Regarding the issue 1274 (https://github.com/kamailio/kamailio/issues/1274) there's a problem in highly scalable environments to avoid conflicts in storing dialogs in the same DB.
As @miconda pointed out:
> The internal id is made from two integers, hash entry and hash id (h_entry, h_id). h_entry is the index of the slot in the hash table used to store the dialog structure, computed by hashing over call id. h_id is an incremented integer specific for each hash table slot.
>
> So, …
[View More]when loading a new record from database, if its h_id is not conflicting with an existing dialog on the same hash table slot, all is ok, otherwise the module is not going to work properly with two dialogs having same h_id.
>
> So, when loading a new record from database, if its h_id is not conflicting with an existing dialog on the same hash table slot, all is ok, otherwise the module is not going to work properly with two dialogs having same h_id.
>
> Among solutions I thought of:
>
> 1. have the servers generating non conflicting h_id, by having a start value different per server and an increment step larger than the number of servers. Iirc, here was at some point a similar attempt, but somehow didn't make it. Let's say one has two servers, first server starts allocating h_id from 1 and increments by 2 (e.g: 1, 3, 5, ...) and the seconds start from 2 and increments with 2 (2, 4, 6, ...). Those values can be set via mod params, eventually with an option to rely on server_id.
> This should be the least intrusive in the other modules built on top of dialog. But it is rather rigid, with the example above, if one adds an extra server, it needs to reconfigure the old ones, so each server starts from either 1, 2 or 3 and increment by 3. Of course, one can set increment step to a larger value, like 100, and then has flexibility to deploy up to 1 hundred servers before having to reconfigure in case there is need for more server.
>
> 2. add server_id as the third field in the dialog id. It will require review of other modules using dialog and eventual code updates in those modules. One column to store the server_id needs to be added to dialog db tables.
>
> 3. switch from this conflicting id system to something like string unique ids, similar to what we have in usrloc records. This will require coding in other modules, changes to database schema, etc., so more work comparing with the above two, but could be the best in long term.
It would be great to have the option 3 developed if possible but we would also be satisfied with the option 2 to have a third field, server_id, in the dialog id.
Thank You!
--
Alex
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1500
[View Less]
When K connects to another SIP proxy over TCP or TLS, the connection is shared for all requests to that destination. If the receiving SIP proxy is K, it means that only one worker process is handling all those requests. This may become a bottleneck if processing of requests is time consuming, e.g., because of DB operations.
It should therefore be possible one way or another to establish more than one parallel TCP or TLS connections to the same destination. One solution could be based on a …
[View More]function call, such as t_forward_connect(number), to be called before t_relay specifying the desired number of parallel connections shared randomly by outgoing requests.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1107
[View Less]
There are lots of module parameters that are not documented in the README file:
"amqp_timmer_process_interval"
"amqp_consumer_ack_timeout_micro"
"amqp_consumer_ack_timeout_sec"
"amqp_interprocess_timeout_micro"
"amqp_interprocess_timeout_sec"
"amqp_waitframe_timeout_micro"
"amqp_waitframe_timeout_sec"
"amqp_consumer_workers"
"amqp_query_timeout_micro"
"amqp_query_timeout_sec"
"pua_include_entity"
"json_escape_char"
"app_name"
"…
[View More]use_federated_exchange"
"federated_exchange"
"amqp_heartbeats"
"amqp_primary_zone"
"amqp_command_hashtable_size"
"amqp_result_avp"
"amqps_ca_cert"
"amqps_cert"
"amqps_key"
"amqps_verify_peer"
"amqps_verify_hostname"
Also, the follwing functions are not documented:
"kazoo_json_keys"
"kazoo_async_query"
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/976
[View Less]
Hello,
I'm testing kamailio with a SIP client with presence support, when I get a connection drop from a client (i.e when the client lost the access to the Internet connection) I do not receive the change in the status to offline immediately, I just received when the timeout from the presentity database finishes.
I know that I'm able to change the expiry parameter from the presentity table, but that increases my battery consumption and the data exchange, the same happens if I reduce the …
[View More]publish interval on the client side.
The connection with the server are connected with the TLS or TCP.
@miconda Suggested that a solution could be:
"For TCP/TLS, what can work, it's to use tcpops module which can execute an event route when a tcp/tls connection is dropped. If you track the association of connection id with the call-id of the presence publish, then you may be able to do some tricks and lower the expires of the published presence state. I haven't had the time to see what's possible there, but could worth investing.
An alternative would be to enhance presence module to behave as registrar/usrloc (which can delete contact records on connection drop) to expire documents when tcp/tls connection is closed (not sure if anyone already added it)."
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/915
[View Less]
From https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843477
> From: Ondřej Surý <ondrej(a)debian.org>
> To: Debian Bug Tracking System <submit(a)bugs.debian.org>
> Subject: src:kamailio: stop using libval-dev for DNSSEC validation
>
> Package: src:kamailio
> Version: 4.4.3-2
> Severity: serious
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> Dear maintainer,
>
> please stop using libdnsval-dev for DNSSEC validation. src:…
[View More]dnsval
> is very poorly upstream maintained (SVN repository, issue tracker,
> mailing list are non-functional) and I am going to schedule it for
> removal for stretch.
>
> In a long term you should migrated to better and maintained library
> (preferrably getdns or just libunbound), but now please just drop
> it.
>
> Cheers,
> Ondrej
>
> - -- System Information:
> Debian Release: 8.6
> APT prefers stable-updates
> APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500, 'stable')
> Architecture: amd64 (x86_64)
>
> Kernel: Linux 4.2.0-41-generic (SMP w/24 CPU cores)
> Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
>
> -----BEGIN PGP SIGNATURE-----
So I'm going to remove **dnssec** module from the official Debian package
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/851
[View Less]
Hi,
When using dialog module and track_cseq_updates when needing to update CSeq for authenticated invites, if early media is present the CSeq in the Rack header is not also incremented.
Kamailio version:
version: kamailio 4.4.2 (x86_64/linux) 892ad6
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, …
[View More]USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 892ad6
compiled on 11:18:36 Sep 28 2016 with gcc 5.4.0
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/801
[View Less]
Sipwise hat ON:
We have more than one server and we need to keep things in db in order to share sca subscription/appearance between servers
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/781
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for feature requests.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
* http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev…
[View More]Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
If you submit a feature request (or enhancement) add the description of what you would like to be added.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
Currently the functions set_advertised_address and set_advertised_port only accept strings as parameters. Trying to use it with variable causes an error.
Having the function using a hard coded value is not a good practice and in order to add flexibility to the script in different installations it would be nice to have this function accepting variables.
Also, the 'advertise' option on the 'listen' parameter is not always desired because it apply for all messages sent via the socket, and there are situations where different advertised IP for the same interface are necessary.
### Expected behavior
set_advertised_address should receive a variable as parameter and use its value to change the SIP headers.
### Actual observed behavior
Kamailio won't start if set_advertised_address is used with a variable due to script parse error or it will set the SIP message with the literal string "$var(test)" for example, instead of using the value of $var(test).
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
# kamailio -v
version: kamailio 5.2.2 (x86_64/linux) 67f967
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144 MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 67f967
compiled on 11:40:41 Mar 11 2019 with gcc 4.8.5
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `uname -a`)
-->
```
# uname -a
Linux voice-conn-kamailio-1 3.10.0-514.21.2.el7.x86_64 #1 SMP Tue Jun 20 12:24:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2137
[View Less]
>From http://lists.kamailio.org/pipermail/sr-dev/2016-August/036231.html
On 24/08/16 10:17, Andreas Granig wrote:
> Hi,
>
> When translating strings with the dialplan module, you sometimes end up
> with very complex patterns for sanitizing the target string and
> performing some replacements, since for a given dialplan id, processing
> stops on the first match within the dialplan entries for a given dpid.
>
> The idea is to introduce a "continue" flag (default 0) in …
[View More]the dialplan
> table indicating to proceed with processing further dialplan entries
> within the given dpid after a match. The use case is to have a sanitize
> rule with highest priority which e.g. removes any spaces, dashes and
> parentheses from the target string, then with a lower priority do
> further processing with the cleaned up string, e.g. stripping leading
> double-zeroes or a plus when normalizing to E164 numbers, or replacing a
> single leading zero with the country code and so on.
>
> This is particularly useful when a user dials a number from an address
> book of some sort (e.g. on a mobile app) where number formats are stored
> with country-specific formating characters like "+1-(234)-567 890", and
> catching all of that in one rule results in really messy match/replace
> patterns.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/764
[View Less]
### Description
Hello,
When there is an error in my ruby script, app_ruby prints exception message without a stack trace, like this:
```
Dec 14 16:25:17 servername /usr/sbin/kamailio[24313]: ERROR: app_ruby [app_ruby_api.c:105]: app_ruby_print_last_exception(): exception: wrong number of arguments (1 for 2..3)
Dec 14 16:25:17 servername /usr/sbin/kamailio[24313]: ERROR: app_ruby [app_ruby_api.c:1078]: app_ruby_run_ex(): ruby exception (6) on callback for: ksr_request_route (res type: 17)
```
…
[View More]Altough this message tells what is the error, it doesn't tell **where** the error happened, so it's hard to find the source of the problem.
In ruby, exceptions have _backtrace()_ method returning stack trace as an array of strings. It would be really helpful if app_ruby also call this method and append its result to error message.
### Reproduction
in kamailio.cfg
```
loadmodule "app_ruby.so"
modparam("app_ruby", "load", "/etc/kamailio/ruby/routes.rb")
cfgengine "ruby"
```
in /etc/kamailio/ruby/routes.rb
```
def some_method(param1, param2)
end
def ksr_request_route
some_method(1)
end
```
### Expected behavior
```
Dec 14 16:46:24 servername /usr/sbin/kamailio[24314]: ERROR: <core> [core/kemi.c:87]: sr_kemi_core_err(): wrong number of arguments (1 for 2): /etc/kamailio/ruby/routes.rb:1:in `some_method'
/etc/kamailio/ruby/routes.rb:4:in `ksr_request_route'
```
#### Actual observed behavior
```
Dec 14 16:45:42 servername /usr/sbin/kamailio[24311]: ERROR: app_ruby [app_ruby_api.c:105]: app_ruby_print_last_exception(): exception: wrong number of arguments (1 for 2)
```
### Possible Solutions
Relevant code seem to be here: https://github.com/kamailio/kamailio/blob/master/src/modules/app_ruby/app_r…
I found example C code to print stack trace here but couldn't figure out how to integrate to app_ruby: http://zoo-project.org/svn/trunk/zoo-project/zoo-kernel/service_internal_ru…
Equivalent ruby code would be (this code is not idiomatic, my aim is to provide C-like ruby code):
```
def some_error_generating_method
method_taking_two_params(1)
rescue => exception
message = exception.to_s() + "\n"
stack_trace = exception.backtrace()
for line in stack_trace
message = message + line + "\n"
end
print(message)
end
```
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.2.0 (x86_64/linux) 535e13
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144 MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 535e13
compiled on 10:26:34 Nov 28 2018 with gcc 4.8.5
```
* **Operating System**:
Centos 7.2 64bit
```
Linux servername 3.10.0-327.28.2.el7.x86_64 #1 SMP Wed Aug 3 11:11:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1766
[View Less]
### Description
I recently downloaded kamailio 5.2.3 and tried to install it for investigation purposes. I was trying to include app_java module in order to execute some brief java apps in kamailio. But then I get the same issue wen I compile and when I run kamailio
Thank you for all the help you can give me
### Troubleshooting
I get the same bunch of warnings everytime I try to make all
java_msgobj.c: In function ‘fill_sipmsg_object’:
java_msgobj.c:83:27: warning: passing argument 2 of ‘(*…
[View More]env)->SetIntField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetIntField(env, SipMsgInstance, fid, msg->id);
^~~~~~~~~~~~~~
java_msgobj.c:83:27: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:96:27: warning: passing argument 2 of ‘(*env)->SetIntField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetIntField(env, SipMsgInstance, fid, msg->pid);
^~~~~~~~~~~~~~
java_msgobj.c:96:27: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:110:30: warning: passing argument 2 of ‘(*env)->SetObjectField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetObjectField(env, SipMsgInstance, fid, jStrParam);
^~~~~~~~~~~~~~
java_msgobj.c:110:30: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:127:30: warning: passing argument 2 of ‘(*env)->SetObjectField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetObjectField(env, SipMsgInstance, fid, jStrParam);
^~~~~~~~~~~~~~
java_msgobj.c:127:30: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:142:30: warning: passing argument 2 of ‘(*env)->SetObjectField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetObjectField(env, SipMsgInstance, fid, jStrParam);
^~~~~~~~~~~~~~
java_msgobj.c:142:30: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:156:27: warning: passing argument 2 of ‘(*env)->SetIntField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetIntField(env, SipMsgInstance, fid, msg->len);
^~~~~~~~~~~~~~
java_msgobj.c:156:27: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:172:30: warning: passing argument 2 of ‘(*env)->SetObjectField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetObjectField(env, SipMsgInstance, fid, jStrParam);
^~~~~~~~~~~~~~
java_msgobj.c:172:30: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:189:30: warning: passing argument 2 of ‘(*env)->SetObjectField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetObjectField(env, SipMsgInstance, fid, jStrParam);
^~~~~~~~~~~~~~
java_msgobj.c:189:30: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:205:27: warning: passing argument 2 of ‘(*env)->SetIntField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetIntField(env, SipMsgInstance, fid, msg->parsed_orig_ruri_ok);
^~~~~~~~~~~~~~
java_msgobj.c:205:27: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:222:30: warning: passing argument 2 of ‘(*env)->SetObjectField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetObjectField(env, SipMsgInstance, fid, jStrParam);
^~~~~~~~~~~~~~
java_msgobj.c:222:30: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:237:27: warning: passing argument 2 of ‘(*env)->SetIntField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetIntField(env, SipMsgInstance, fid, msg->add_to_branch_len);
^~~~~~~~~~~~~~
java_msgobj.c:237:27: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:251:27: warning: passing argument 2 of ‘(*env)->SetIntField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetIntField(env, SipMsgInstance, fid, msg->hash_index);
^~~~~~~~~~~~~~
java_msgobj.c:251:27: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:265:27: warning: passing argument 2 of ‘(*env)->SetIntField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetIntField(env, SipMsgInstance, fid, msg->msg_flags);
^~~~~~~~~~~~~~
java_msgobj.c:265:27: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:286:30: warning: passing argument 2 of ‘(*env)->SetObjectField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetObjectField(env, SipMsgInstance, fid, jStrParam);
^~~~~~~~~~~~~~
java_msgobj.c:286:30: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
java_msgobj.c:306:30: warning: passing argument 2 of ‘(*env)->SetObjectField’ from incompatible pointer type [-Wincompatible-pointer-types]
(*env)->SetObjectField(env, SipMsgInstance, fid, jStrParam);
^~~~~~~~~~~~~~
java_msgobj.c:306:30: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘struct _jobject **’
CC (gcc) [M app_java.so] java_support.o
CC (gcc) [M app_java.so] java_iface.o
java_iface.c: In function ‘java_exec’:
java_iface.c:205:53: warning: passing argument 2 of ‘(*_aj_env)->NewLocalRef’ from incompatible pointer type [-Wincompatible-pointer-types]
invk_method_ref = (*_aj_env)->NewLocalRef(_aj_env, invk_method);
^~~~~~~~~~~
java_iface.c:205:53: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
java_iface.c:205:18: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
invk_method_ref = (*_aj_env)->NewLocalRef(_aj_env, invk_method);
^
java_iface.c:208:39: warning: passing argument 2 of ‘(*_aj_env)->DeleteLocalRef’ from incompatible pointer type [-Wincompatible-pointer-types]
(*_aj_env)->DeleteLocalRef(_aj_env, invk_method_ref);
^~~~~~~~~~~~~~~
java_iface.c:208:39: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
java_iface.c:216:40: warning: passing argument 2 of ‘(*_aj_env)->MonitorEnter’ from incompatible pointer type [-Wincompatible-pointer-types]
if((*_aj_env)->MonitorEnter(_aj_env, invk_method_ref) != JNI_OK) {
^~~~~~~~~~~~~~~
java_iface.c:216:40: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
java_iface.c:234:40: warning: passing argument 2 of ‘(*_aj_env)->DeleteLocalRef’ from incompatible pointer type [-Wincompatible-pointer-types]
(*_aj_env)->DeleteLocalRef(_aj_env, invk_method_ref);
^~~~~~~~~~~~~~~
java_iface.c:234:40: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
java_iface.c:235:40: warning: passing argument 2 of ‘(*_aj_env)->DeleteLocalRef’ from incompatible pointer type [-Wincompatible-pointer-types]
(*_aj_env)->DeleteLocalRef(_aj_env, invk_method);
^~~~~~~~~~~
java_iface.c:235:40: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
java_iface.c:258:39: warning: passing argument 2 of ‘(*_aj_env)->DeleteLocalRef’ from incompatible pointer type [-Wincompatible-pointer-types]
(*_aj_env)->DeleteLocalRef(_aj_env, invk_method_ref);
^~~~~~~~~~~~~~~
java_iface.c:258:39: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
java_iface.c:259:39: warning: passing argument 2 of ‘(*_aj_env)->DeleteLocalRef’ from incompatible pointer type [-Wincompatible-pointer-types]
(*_aj_env)->DeleteLocalRef(_aj_env, invk_method);
^~~~~~~~~~~
java_iface.c:259:39: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
java_iface.c:266:39: warning: passing argument 2 of ‘(*_aj_env)->MonitorExit’ from incompatible pointer type [-Wincompatible-pointer-types]
if((*_aj_env)->MonitorExit(_aj_env, invk_method_ref) != JNI_OK) {
^~~~~~~~~~~~~~~
java_iface.c:266:39: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
java_iface.c:272:38: warning: passing argument 2 of ‘(*_aj_env)->DeleteLocalRef’ from incompatible pointer type [-Wincompatible-pointer-types]
(*_aj_env)->DeleteLocalRef(_aj_env, invk_method_ref);
^~~~~~~~~~~~~~~
java_iface.c:272:38: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
java_iface.c:273:38: warning: passing argument 2 of ‘(*_aj_env)->DeleteLocalRef’ from incompatible pointer type [-Wincompatible-pointer-types]
(*_aj_env)->DeleteLocalRef(_aj_env, invk_method);
^~~~~~~~~~~
java_iface.c:273:38: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
CC (gcc) [M app_java.so] java_native_methods.o
java_native_methods.c: In function ‘Java_org_siprouter_SipMsg_ParseSipMsg’:
java_native_methods.c:484:9: warning: return from incompatible pointer type [-Wincompatible-pointer-types]
return fill_sipmsg_object(jenv, _aj_msg);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC (gcc) [M app_java.so] app_java_mod.o
app_java_mod.c: In function ‘child_init’:
app_java_mod.c:236:38: warning: passing argument 2 of ‘(*_aj_env)->DeleteLocalRef’ from incompatible pointer type [-Wincompatible-pointer-types]
(*_aj_env)->DeleteLocalRef(_aj_env, child_init_id);
^~~~~~~~~~~~~
app_java_mod.c:236:38: note: expected ‘jobject {aka struct _jobject *}’ but argument is of type ‘jmethodID {aka struct _jmethodID *}’
#### Reproduction
1. Download 5.2.3
2. in /usr/local/src/kamailio-5.2.3/
2.1 make include_modules="app_java" cfg
2.2 make all
2.3 make install
3 kamailo -e -E -ddd
#### Debugging Data
0(18169) ERROR: <core> [core/sr_module.c:498]: load_module(): could not open module </usr/local/lib64/kamailio/modules/app_java.so>: libjvm.so: cannot open shared object file: No such file or directory
0(18169) CRITICAL: <core> [core/cfg.y:3507]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 300, column 12-24: failed to load module
0(18169) ERROR: <core> [core/modparam.c:152]: set_mod_param_regex(): No module matching <app_java> found
0(18169) CRITICAL: <core> [core/cfg.y:3510]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 306, column 46: Can't set module parameter
0(18169) ERROR: <core> [core/modparam.c:152]: set_mod_param_regex(): No module matching <app_java> found
0(18169) CRITICAL: <core> [core/cfg.y:3510]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 307, column 55: Can't set module parameter
0(18169) ERROR: <core> [core/modparam.c:152]: set_mod_param_regex(): No module matching <app_java> found
0(18169) CRITICAL: <core> [core/cfg.y:3510]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 308, column 60: Can't set module parameter
0(18169) ERROR: <core> [core/modparam.c:152]: set_mod_param_regex(): No module matching <app_java> found
0(18169) CRITICAL: <core> [core/cfg.y:3510]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 309, column 41: Can't set module parameter
0(18169) ERROR: <core> [core/cfg.y:3370]: yyparse(): cfg. parser: failed to find command java_method_exec (params 2)
0(18169) CRITICAL: <core> [core/cfg.y:3510]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 483, column 37: unknown command, missing loadmodule?
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
version: kamailio 5.2.3 (x86_64/linux) c36229
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144 MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: c36229
* **Operating System**:
Ubuntu 18.04
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1984
[View Less]
The local-request event route is not documented. When using our friend google I find an old blog post by @miconda but not much else. I can come up with some good text, but need to know what can be done in the route, like
- modify request uri
- add/remove headers
- drop request
- add/modify destination uri ($du)
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/980
**Description**
We are using ims_charging module and Freediameter as diameter server for billing process....recently we faced one issue...For Initial **INVITEs** kamailio sending **CCR request (INITIAL_REQUEST)** to **diameter server** but if we receive Immediate **CANCLE** for the **INVITE**, kamailio sending **CCR request ( TERMINATE_REQUEST )** without waiting for the **CCR request (INITIAL_REQUEST) response** from the **Diameter server.**..
**Expected behavior**
Kamailio has to send **…
[View More]CCR request ( TERMINATE_REQUEST )** after getting the **response** from the **INITIAL_REQUEST.**
**Additional Info**
kamailio server : 4.2
platform : linux
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2143
[View Less]
Covers setups when kamailio behind the service with HAPROXY protocol support but in other hand it also serves requests from other services that available per direct connection (such as B2BUA in the same local network).
#### Pre-Submission Checklist
- [*] Commit message has the format required by CONTRIBUTING guide
- [*] Commits are split per component (core, individual modules, libs, utils, ...)
- [*] Each component has a single commit (if not, squash them into one commit)
- [*] No commits to …
[View More]README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [*] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
- [*] PR should be backported to stable branches
- [*] Tested changes locally
#### Description
- function tcpconn_read_haproxy() returns 2 if PROXY header NOT found.
- Message about no header shown at the debug level.
- No errors
- TCP connection successfully establishes
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/2206
-- Commit Summary --
* handle tcp request with tcp_accept_haproxy even no PROXY header found
* core:tcp allow to handle TCP connections even message does not contain PROXY protocol header
* core:tcp allow to handle TCP connections even message does not contain PROXY protocol header
-- File Changes --
M src/core/tcp_main.c (8)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/2206.patchhttps://github.com/kamailio/kamailio/pull/2206.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/2206
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [ ] Commit message has the format required by CONTRIBUTING guide
- [ ] Commits are split per component (core, individual modules, libs, utils, ...)
- [ ] Each component has a single commit (if not, squash them into one commit)
- [ ] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/2209
-- Commit Summary --
* add received_in_via function(use it in hiops module)
* hiops: new module in Kamailio
-- File Changes --
M src/core/msg_translator.c (25)
M src/core/msg_translator.h (3)
A src/modules/hiops/Alarm-Indicator.c (153)
A src/modules/hiops/Alarm-Indicator.h (57)
A src/modules/hiops/BIT_STRING.c (189)
A src/modules/hiops/BIT_STRING.h (33)
A src/modules/hiops/CMakeLists.txt (92)
A src/modules/hiops/Code.c (64)
A src/modules/hiops/Code.h (49)
A src/modules/hiops/CommunicationIdentifier.c (94)
A src/modules/hiops/CommunicationIdentifier.h (43)
A src/modules/hiops/GeneralizedTime.c (706)
A src/modules/hiops/GeneralizedTime.h (69)
A src/modules/hiops/HI1-Operation.c (94)
A src/modules/hiops/HI1-Operation.h (61)
A src/modules/hiops/IA5String.c (77)
A src/modules/hiops/IA5String.h (27)
A src/modules/hiops/INTEGER.c (1025)
A src/modules/hiops/INTEGER.h (82)
A src/modules/hiops/IP-value.c (130)
A src/modules/hiops/IP-value.h (55)
A src/modules/hiops/IPAddress.c (393)
A src/modules/hiops/IPAddress.h (67)
A src/modules/hiops/LawfulInterceptionIdentifier.c (126)
A src/modules/hiops/LawfulInterceptionIdentifier.h (38)
A src/modules/hiops/LocalTimeStamp.c (191)
A src/modules/hiops/LocalTimeStamp.h (50)
A src/modules/hiops/Makefile (15)
A src/modules/hiops/National-HI1-ASN1parameters.c (139)
A src/modules/hiops/National-HI1-ASN1parameters.h (43)
A src/modules/hiops/NativeEnumerated.c (207)
A src/modules/hiops/NativeEnumerated.h (32)
A src/modules/hiops/NativeInteger.c (332)
A src/modules/hiops/NativeInteger.h (37)
A src/modules/hiops/Network-Element-Identifier.c (198)
A src/modules/hiops/Network-Element-Identifier.h (60)
A src/modules/hiops/Network-Identifier.c (94)
A src/modules/hiops/Network-Identifier.h (48)
A src/modules/hiops/Notification.c (153)
A src/modules/hiops/Notification.h (57)
A src/modules/hiops/OBJECT_IDENTIFIER.c (764)
A src/modules/hiops/OBJECT_IDENTIFIER.h (139)
A src/modules/hiops/OCTET_STRING.c (1807)
A src/modules/hiops/OCTET_STRING.h (86)
A src/modules/hiops/PrintableString.c (109)
A src/modules/hiops/PrintableString.h (24)
A src/modules/hiops/Priority.c (125)
A src/modules/hiops/Priority.h (38)
A src/modules/hiops/TimeStamp.c (64)
A src/modules/hiops/TimeStamp.h (49)
A src/modules/hiops/UTCTime.c (179)
A src/modules/hiops/UTCTime.h (38)
A src/modules/hiops/asn_application.h (47)
A src/modules/hiops/asn_codecs.h (109)
A src/modules/hiops/asn_codecs_prim.c (312)
A src/modules/hiops/asn_codecs_prim.h (53)
A src/modules/hiops/asn_internal.h (128)
A src/modules/hiops/asn_system.h (137)
A src/modules/hiops/ber_decoder.c (283)
A src/modules/hiops/ber_decoder.h (64)
A src/modules/hiops/ber_tlv_length.c (178)
A src/modules/hiops/ber_tlv_length.h (50)
A src/modules/hiops/ber_tlv_tag.c (144)
A src/modules/hiops/ber_tlv_tag.h (60)
A src/modules/hiops/constr_CHOICE.c (1114)
A src/modules/hiops/constr_CHOICE.h (57)
A src/modules/hiops/constr_SEQUENCE.c (1425)
A src/modules/hiops/constr_SEQUENCE.h (60)
A src/modules/hiops/constr_TYPE.c (77)
A src/modules/hiops/constr_TYPE.h (180)
A src/modules/hiops/constraints.c (93)
A src/modules/hiops/constraints.h (63)
A src/modules/hiops/der_encoder.c (201)
A src/modules/hiops/der_encoder.h (68)
A src/modules/hiops/hi1ops.c (682)
A src/modules/hiops/hi1ops.h (102)
A src/modules/hiops/hi2ops.c (1319)
A src/modules/hiops/hi2ops.h (109)
A src/modules/hiops/hiops.c (272)
A src/modules/hiops/hiops.h (38)
A src/modules/hiops/per_decoder.c (93)
A src/modules/hiops/per_decoder.h (56)
A src/modules/hiops/per_encoder.c (151)
A src/modules/hiops/per_encoder.h (69)
A src/modules/hiops/per_opentype.c (378)
A src/modules/hiops/per_opentype.h (22)
A src/modules/hiops/per_support.c (483)
A src/modules/hiops/per_support.h (135)
A src/modules/hiops/tcp_socket.c (136)
A src/modules/hiops/tcp_socket.h (39)
A src/modules/hiops/xer_decoder.c (368)
A src/modules/hiops/xer_decoder.h (106)
A src/modules/hiops/xer_encoder.c (67)
A src/modules/hiops/xer_encoder.h (59)
A src/modules/hiops/xer_support.c (227)
A src/modules/hiops/xer_support.h (55)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/2209.patchhttps://github.com/kamailio/kamailio/pull/2209.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/2209
[View Less]
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for feature requests.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
* http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev…
[View More]Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
If you submit a feature request (or enhancement) add the description of what you would like to be added.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
Looking for a mechanism to reload Location attributes at runtime.
Having both registered and permanent Contacts under AoR, with Attributes from `usrloc` to be used for various routing decisions.
This is about attributes of permanent Contacts. Registered ones have `xavp_contact` of `usrloc` to store attributes during registration.
**Problem:**
Only way to make it work is:
1. adding a permanent Contact using `rpc ul.add`
2. assigning attributes in DB `location_attr` per RUID (can't find an rpc function for attributes)
3. restart Kamailio
modparam("usrloc", "db_mode", 1)
modparam("usrloc", "db_load", 1)
This however is far from ideal, having to restart Kamailio for every change in attributes of a Contact.
### Expected behavior
#### Actual observed behavior
#### Debugging Data
```
(paste your debugging data here)
```
#### Log Messages
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your log messages here)
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your sip traffic here)
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a improvement.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
version: kamailio 5.3.3 (x86_64/linux) 44ccb9
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `uname -a`)
-->
```
(paste your output here)
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2299
[View Less]
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
* http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev…
[View More]Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
We are using xmlrpc to terminate the calls once customer balance reaches to zero. call got terminated but we will not be able to set the dialog variable related to hangup_reason. There should be a way during dlg.terminate_dlg xmlrpc request that if i mention the some parameter then it should set before sending bye to callee and caller.
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
### Troubleshooting
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
```
(paste your debugging data here)
```
#### Log Messages
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your log messages here)
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your sip traffic here)
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
root@ip-172-31-4-160:/etc/kamailio# kamailio -version
version: kamailio 5.1.4 (x86_64/linux) 6ebfda
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 6ebfda
compiled on 11:48:26 Sep 7 2018 with gcc 4.8.4
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `uname -a`)
-->
```
root@ip-172-31-4-160:/etc/kamailio# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
root@ip-172-31-4-160:/etc/kamailio# uname -a
Linux ip-172-31-4-160 3.13.0-143-generic #192-Ubuntu SMP Tue Feb 27 10:45:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1737
[View Less]
This will allow us to point https://www.kamailio.org/wiki/features/new-in-devel to the file and "force" developers to update that file with the new features when they are introduced in the repository
Remaining developers to upgrade the wiki seems pointless and anyone can create a PR for changes
---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/668
### Description
Consuming messages without message body fails due to a JSON parsing error:
```
ERROR: kazoo [kz_json.c:287]: kz_json_parse(): Error parsing json: unexpected end of data
ERROR: kazoo [kz_json.c:288]: kz_json_parse():
ERROR: kazoo [kz_amqp.c:2960]: kz_amqp_send_worker_event(): error parsing json body
```
This makes it unable to consume messages from RabbitMQ's event exchange plugin ( https://www.rabbitmq.com/event-exchange.html ), as the documentatin states: **"The message body …
[View More]is always blank."**
### Possible Solutions
As a possible fix I tried following change in kz_amqp.c:
```
void kz_amqp_send_worker_event(kz_amqp_server_ptr server_ptr, amqp_envelope_t* envelope, kz_amqp_bind_ptr bind)
{
char buffer[100];
kz_amqp_cmd_ptr cmd = NULL;
kz_amqp_consumer_delivery_ptr ptr = NULL;
json_obj_ptr json_obj = NULL;
json_object* JObj = NULL;
str* message_id = NULL;
int idx = envelope->channel-1;
int worker = 0;
int _kz_server_id = server_ptr->id;
int msg_size = envelope->message.body.len;
//begin of changes
int routingkey_size = envelope->routing_key.len;
if (msg_size == 0 && routingkey_size > 0 ) {
char *routingkey_data = pkg_malloc(routingkey_size + 1);
memset(routingkey_data, 0, routingkey_size + 1);
memcpy(routingkey_data, (char*)envelope->routing_key.bytes, routingkey_size);
LM_DBG("Message size: %d\n", msg_size);
LM_DBG("Routing Key: %s\n", routingkey_data);
char *pos = strchr(routingkey_data,'.');
while (pos){
*pos = '_';
pos = strchr(pos,'.');
}
LM_DBG("New Routing Key: %s\n", routingkey_data);
sprintf(buffer, "kazoo:%s", routingkey_data);
if(kz_amqp_consumer_fire_event(buffer) != 0) {
LM_ERR("kazoo:%s not found", routingkey_data);
}
pkg_free(routingkey_data);
return;
}
char *json_data = pkg_malloc(msg_size + 1);
if(!json_data) {
LM_ERR("no more package memory available. needed %d\n", msg_size + 1);
return;
}
char *json_data = pkg_malloc(msg_size + 1);
//end of changes
if(!json_data) {
LM_ERR("no more package memory available. needed %d\n", msg_size + 1);
return;
}
```
The change is rather simple: If there is no message-body supplied, the event-route _kazoo:<binding_key>_ is called (after replacing any '.' with '_' in the routing_key).
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1837
[View Less]
### Description
Currently, the `geoip2` module loads the IP database at startup and keeps it in cache and there is no way to tell Kamailio to reload the database without a full restart.
### Possible Solutions
To keep this module inline with other modules that use external datasources, I would suggest to implement a new RPC command and a new geoip2 function to reload the database defined in the `path` geoip2 modparam without the need of a restart.
I'm not aware of the effort required for …
[View More]implementing either of them, but only having an RPC command would effectively solve this issue as you can call RPC commands from within Kamailio conf, thus, the reload function would not be something strictly required but more of a nice-to-have.
### Examples:
Function:
```
geoip2_reload()
```
RPC command:
```
kamctl rpc gip2.reload / kamctl rpc geoip2.reload
```
Kamcmd command:
```
kamcmd geoip2.reload
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2029
[View Less]
### Description
<!--
Kamailoi crashes every 10 hours
-->
### Troubleshooting
coredump data below.
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to …
[View More]attach more of what you consider to
be relevant.
-->
```
(gdb) bt full
#0 0x000000000046ccdd in get_hash1_raw (s=0x5da51296 <Address 0x5da51296 out of bounds>, len=9) at core/hashes.h:109
p = 0x5da51296 <Address 0x5da51296 out of bounds>
v = 4100353960
h = 0
#1 0x000000000046cfb6 in str_hash_get (ht=0xa6d6c0 <cnts_hash_table>, key=0x5da51296 <Address 0x5da51296 out of bounds>, len=9) at core/str_hash.h:94
h = 0
e = 0x19
#2 0x000000000046debe in cnt_hash_lookup (group=0x7ffc2db9d7c0, name=0x7eff79693b80) at core/counters.c:420
e = 0x7eff80c48c88
first = 0xbd8191bc2e950d55
cnt_rec = 0x7eff80c48cb0
#3 0x000000000046e752 in counter_lookup_str (handle=0x7ffc2db9d7d0, group=0x7ffc2db9d7c0, name=0x7eff79693b80) at core/counters.c:541
cnt_rec = 0x19
#4 0x00007eff7d65b447 in get_stat (name=0x7eff79693b80) at ../../core/counters.h:197
h = {id = 13}
grp = {s = 0x0, len = 0}
#5 0x00007eff7d65c113 in statsc_svalue (name=0x7eff79693b80, res=0x7eff79693f4b) at statsc_mod.c:149
stat = 0xd
__FUNCTION__ = "statsc_svalue"
#6 0x00007eff7d65db79 in statsc_timer (ticks=113205942, param=0x0) at statsc_mod.c:274
sm = 0x7eff79693b70
tn = 1571099286
n = 115
__FUNCTION__ = "statsc_timer"
#7 0x00000000005db7f9 in sr_wtimer_exec (ticks=113205942, param=0x0) at core/timer_proc.c:390
wt = 0x7eff80c56f48
wn = 0x0
wp = 0x0
cs = 0
__FUNCTION__ = "sr_wtimer_exec"
#8 0x00000000005daa29 in fork_sync_timer (child_id=-1, desc=0x7c8a71 "secondary timer", make_sock=1, f=0x5db4f2 <sr_wtimer_exec>, param=0x0, interval=1000) at core/timer_proc.c:224
pid = 0
ts1 = 1811295077
ts2 = 1000
#9 0x00000000005dbb26 in sr_wtimer_start () at core/timer_proc.c:416
__FUNCTION__ = "sr_wtimer_start"
#10 0x0000000000425a33 in main_loop () at main.c:1729
i = 8
pid = 3615
si = 0x0
si_desc = "udp receiver child=7 sock=91.216.86.57:5060\000\377~\000\000@۹-\374\177\000\000\020\207A\000\000\000\000\000\020\336\271-\374\177\000\000\323c{\000\000\000\000\000\031\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\200\000\000\000\000\000__:\201\377~\000\000\250\346\260v\377~\000\000\270\314À\377~\000"
nrprocs = 8
woneinit = 1
__FUNCTION__ = "main_loop"
#11 0x000000000042c72a in main (argc=7, argv=0x7ffc2db9def8) at main.c:2696
cfg_stream = 0x1ee3010
c = -1
r = 0
tmp = 0x7ffc2db9ef2c ""
tmp_len = 0
port = 0
proto = 0
options = 0x76a9a0 ":f:cm:M:dVIhEeb:l:L:n:vKrRDTN:W:w:t:u:g:P:G:SQ:O:a:A:x:X:Y:"
ret = -1
---Type <return> to continue, or q <return> to quit--- info locals
seed = 2620966285
rfd = 4
debug_save = 0
debug_flag = 0
dont_fork_cnt = 0
n_lst = 0x2
p = 0x0
st = {st_dev = 20, st_ino = 22346, st_nlink = 2, st_mode = 16832, st_uid = 0, st_gid = 0, __pad0 = 0, st_rdev = 0, st_size = 40, st_blksize = 4096, st_blocks = 0, st_atim = {tv_sec = 1568107728, tv_nsec = 458000000}, st_mtim = {
tv_sec = 1571064422, tv_nsec = 57000000}, st_ctim = {tv_sec = 1571064422, tv_nsec = 57000000}, __unused = {0, 0, 0}}
__FUNCTION__ = "main"
(gdb) list
104 register unsigned v;
105 register unsigned h;
106
107 h=0;
108
109 hash_update_str(s, s+len, p, v, h);
110 return hash_finish(h);
111 }
112
113
```
#### Log Messages
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
no relevant messages
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
seems to be triggered by internal timer
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.2.4 (x86_64/linux) 759867
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144 MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 759867
compiled on 12:20:22 Sep 11 2019 with gcc 4.8.5
```
* **Operating System**:
<!--
CentOS Linux release 7.4.1708 (Core)
Linux xxx 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
-->
```
CentOS Linux release 7.4.1708 (Core)
Linux xxx 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2101
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed …
[View More]GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x ] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
- It is allowed to use '@' within a username and/or a password for MySQL.
Database as a Service providers like e.g. Microsoft Azure use
these in usernames by default.
The existing URI parser always treated the '@' as a separator between
username:password and host:port/db parts of the URI.
The parser now checks how many '@' characters are present in the URI
and only treats the last occurence as separator for the host:port/db
part.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/1346
-- Commit Summary --
* module_db_mysql: Allow '@' in username/password for db_url URIs
-- File Changes --
M src/modules/db_mysql/my_uri.c (35)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/1346.patchhttps://github.com/kamailio/kamailio/pull/1346.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1346
[View Less]