Hi Kamailio community,
I need your urgent help regarding a situation where the Kamailio TCP packet
delayed in relaying SIP packets. They delay between the time Kamailio logs
the relay to the time it left the system was ~20 seconds difference, which
is huge in SIP world.
Any ideas, thoughts or suggestions on how I can narrow down to the
problem? We have about 30 cases of this today
Thanks in advance.
--
Andy Chen
Sr. Telephony Lead Engineer
achen@ <achen(a)thinkingphones.com>fuze.com
--
*Confidentiality Notice: The information contained in this e-mail and any
attachments may be confidential. If you are not an intended recipient, you
are hereby notified that any dissemination, distribution or copying of this
e-mail is strictly prohibited. If you have received this e-mail in error,
please notify the sender and permanently delete the e-mail and any
attachments immediately. You should not retain, copy or use this e-mail or
any attachment for any purpose, nor disclose all or any part of the
contents to any other person. Thank you.*
Greetings,
Does the function "add_diversion() present in the "Diversion" module allows
me to introduce other parameters (privacy, counter, etc) or is it only for
the "diversion-reason"?
If it doesn't let me do that, how can I add the Diversion with insert_hf()
and make sure the headers are added in the right order?
Cheers
Hi Everyone,
My project involves keeping track of the allowable duration for the caller
to talk, and keeping track of the status of the call with the back end
database. Currently i have implemented using the following modules (aside
from the default modules in the sample config script).
* http_async_client.so - to communicate with the backend DB
* dialog.so - mainly use to detect the 200 ok answer in relation to invite,
and the end of the call
* cnxcc.so - to release the call when the allowable talk time is reached
The flow is as below:-
Invite -- > http to backend DB to ask for talk time
<-- DB returns value
200 ok (answer) ---> http backend DB to update that the call has answered
<-- DB returns ok
dialog end or Cnxcc terminate --> http backend DB to update that the call
has hangup
My problem is that if there is a need to restart the kamailio config there
is no 'graceful' way to hangup all the calls and inform the backend, or
deny any new calls from coming in. If kamailio is restarted then cnxcc
would have forgotten that there is a maximum talk time allowed to be called
or recover from the restart.
How to I make the system resilience to failures/restarts.
Appreciate any good suggestions.
regards
CK
Dear All,
It looks like there is a serious error inside db_mongodb module in the latest versions of Kamailio 4.4.7 and 5.1.2.
During query operations string fields inside result structure db1_res_t could be corrupted because of incorrect usage of bson memory.
The issue is located in the function db_mongodb_convert_bson() around line 614.
This issue is reproduced when we need to read more than 150 documents from the database. So that is why this issue still exists.
Firstly bson_iter_utf8 function returns pointer to memory which is allocated inside bson memory and which is used multiple times.
So the data must be copied into Kamailio memory instead storing that pointer. The pointer becomes invalid after some time.
Secondly, this pointer must not be freed by the caller of bson_iter_utf8 . At the current version bson allocated pointer is freed by Kamailio function pkg_free like it is was allocated by pkg_malloc .
So I am going to create ticket in the github and propose the fix.
It looks like nobody uses mongodb with Kamailio in db_mode=1 :)
Best regards
Konstantin
>----------------------------------------------------------------------
>
>Message: 1
>Date: Sat, 21 Apr 2018 23:37:26 +0300
>From: Konstantin Polyakov < piligrim_pk(a)mail.ru >
>To: sr-users(a)lists.kamailio.org
>Subject: [SR-Users] Kamailio doesn't start with db_mongodb and usrloc.
>Message-ID: < 1524343046.238272820(a)f356.i.mail.ru >
>Content-Type: text/plain; charset="utf-8"
>
>
>Hello!
>
>Similar issue but with different symptoms.
>
>kamailio 4.4.7 (tried to use db_mongodb module from 5.1.2)
>usrloc is configured to use db_mode=1 and db_insert_null=1.
>
>MongoDB 3.6.3
>mongo-c-driver was tested 1.9.2 and 1.9.4.
>
>location table contains 300 records.
>
>The issue was not reproduced since February when we started a new feature. Now it is reproduced constantly, but on some machines.
>
>Logs:
>
>[0;39;49m[0;39;49m 1(13958) DEBUG: usrloc [udomain.c:313]: dbrow2info(): non-local socket <all.com>...ignoring
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:476]: preload_udomain(): empty username record in table location...skipping
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:256]: dbrow2info(): bad callid
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [udomain.c:484]: preload_udomain(): skipping record for agent in table location
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:476]: preload_udomain(): empty username record in table location...skipping
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:231]: dbrow2info(): bad contact
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [udomain.c:484]: preload_udomain(): skipping record for cflags in table location
>[0;39;49m[0;39;49m 1(13958) DEBUG: usrloc [udomain.c:313]: dbrow2info(): non-local socket <��keepalive>...ignoring
>[0;39;49m[0;35;49m 1(13958) WARNING: usrloc [../../ut.h:717]: shm_str_dup(): shm_str_dup fallback; dup called for src->s == NULL or src->len < 0
>[0;39;49m[0;35;49m 1(13958) WARNING: usrloc [../../ut.h:731]: shm_str_dup(): shm_str_dup fallback; skip memcpy for src->s == NULL
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:476]: preload_udomain(): empty username record in table location...skipping
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:231]: dbrow2info(): bad contact
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [udomain.c:484]: preload_udomain(): skipping record for cseq in table location
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:231]: dbrow2info(): bad contact
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [udomain.c:484]: preload_udomain(): skipping record for 5.17.xxx in table location
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:231]: dbrow2info(): bad contact
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [udomain.c:484]: preload_udomain(): skipping record for .17.x in table location
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:476]: preload_udomain(): empty username record in table location...skipping
>[0;39;49m[0;39;49m 1(13958) DEBUG: usrloc [udomain.c:313]: dbrow2info(): non-local socket <nce>...ignoring
>[0;39;49m[0;35;49m 1(13958) WARNING: usrloc [../../ut.h:717]: shm_str_dup(): shm_str_dup fallback; dup called for src->s == NULL or src->len < 0
>[0;39;49m[0;35;49m 1(13958) WARNING: usrloc [../../ut.h:731]: shm_str_dup(): shm_str_dup fallback; skip memcpy for src->s == NULL
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:476]: preload_udomain(): empty username record in table location...skipping
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:476]: preload_udomain(): empty username record in table location...skipping
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:476]: preload_udomain(): empty username record in table location...skipping
>[0;39;49m[0;39;49m 1(13958) DEBUG: usrloc [udomain.c:313]: dbrow2info(): non-local socket <c-89-5ada654b-35a2-42>...ignoring
>[0;39;49m[0;39;49m 1(13958) DEBUG: usrloc [udomain.c:313]: dbrow2info(): non-local socket <>...ignoring
>[0;39;49m[0;33;49m 1(13958) CRITICAL: usrloc [udomain.c:231]: dbrow2info(): bad contact
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [udomain.c:484]: preload_udomain(): skipping record for 38.146:5360 in table location
>[0;39;49m[0;39;49m 1(13958) DEBUG: usrloc [udomain.c:313]: dbrow2info(): non-local socket <ified>...ignoring
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [ucontact.c:94]: new_ucontact(): no ruid for aor: lQ.com@5.17.60@8/Ղusername
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [urecord.c:149]: mem_insert_ucontact(): failed to create new contact
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [udomain.c:517]: preload_udomain(): inserting contact failed
>[0;39;49m[0;31;49m 1(13958) ERROR: usrloc [ul_mod.c:457]: child_init(): child(1): failed to preload domain 'location'
>[0;39;49m[0;31;49m 1(13958) ERROR: <core> [sr_module.c:923]: init_mod_child(): Error while initializing module usrloc (/usr/ecsp/lib64/kamailio/modules/usrloc.so)
>[0;39;49m[0;31;49m 1(13958) ERROR: <core> [pt.c:329]: fork_process(): init_child failed for process 1, pid 13958, "udp receiver child=0 sock=5.17.138.137:5060 (5.17.138.137:5060)"
>[0;39;49m[0;33;49m 1(13958) CRITICAL: <core> [main.c:1615]: main_loop(): Cannot fork
>[0;39;49m[1;31;49m 0(13956) ALERT: <core> [main.c:740]: handle_sigs(): child process 13958 exited normally, status=255
>[0;39;49m[0;36;49m 0(13956) INFO: <core> [main.c:768]: handle_sigs(): terminating due to SIGCHLD
>[0;39;49m[0;39;49m 0(13956) DEBUG: <core> [main.c:770]: handle_sigs(): terminating due to SIGCHLD
>
>
>Could you please help us to resolve the issue?
>Thank you in advance.
>Best regards
>Konstantin
>
Hi,
Does the UAC module support ha1 passwords for the remote registrar?
The DDL for the uacreg table indicates the might be the case, but it’s unclear which one the UAC module would use by default.
Is there a parameter to set this?
Cheers,
Ben
Hello,
I am considering to package a new release from branch 5.1, respectively
v5.1.3 sometime next week, likely on Tuesday or Wednesday (April 24 or
25). I any issue is not yet reported on github tracker, do it as soon as
possible to have a chance to be investigated.
Cheers,
Daniel
--
Daniel-Constantin Mierla
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com
Hi,
Currently, my Kamailio proxy uses a MySql DB to get configuration data. We
have a plan to migrate MySQL to MariaDB.
Is there MariaDB modules with Kamailio ?
Thanks in advance for your answer.
P. Ginhoux
Hi,
I need to enable Kamailio to work with ipv6 also, and I enabled
auto_bind_ipv6=1
and when restarted I can see that it is listening to ipv6 ip addresses also.
The problem is that it stripped the ip address at the end and it is
listening to the wrong one.
When I try to register I get timeout, since it is not listening the correct
address.
ip address of the server is 2604:a880:400:d0::yyyy:xxxx
and when I execute "sudo netstat -plnt" too see which app is listening to
which address/port I can see:
....
tcp6 0 0 2604:a880:400:d0:::5085 :::*
LISTEN 17748/kamailio
tcp6 0 0 2604:a880:400:d0:::5061 :::*
LISTEN 17748/kamailio
It somehow stripped the last part of the address (yyyy:xxxx). I dont know
if it is related to :: which would be all zeros, but it doesn't work even
if i explicitly specify which address to listen with
listen=[2604:a880:400:d0:0000:0000:yyyy:xxxx]
or
listen=tcp:[2604:a880:400:d0:0000:0000:yyyy:xxxx]:5061
or
listen=tcp:[2604:a880:400:d0::yyyy:xxxx]:5061
I tried all combinations and the results are always the same...
Have anybody had this problem before?
Do you know how to fix this?
Best regards,
Marko Selakovic
Dear all,
I have a config with multiple interface( multiple IP in same subnet) and want to know how I can select the interface used to send a request (UDP).
The best is the possibility to choose for each request the outgoing interface but if it's not possible I think I can also work with a solution where the outgoing interface is defined globally ?
I need this because one provider request one IP for inbound call and one IP for outbound call .
Thanks
Laurent
Hello,
I am palnning to set variables to limit the number of channels but I would
like to set up them in database in order to upload them without needing to
restart the service.
I also would like to have that db information to be loaded in memory.
So far I only thought in dialplan module but i am looking for a more
"fancy" way.
Can someone recommend me a module?
thank you