Hi,
I am using MTREE and DIALPLAN modules to load lots of info to kamailio. (6
million rows).
When kamailio was running with 3.2.1 (no mem_join=1 option), the used size
was increasing but the process of loading the data was fast eanough.
I upgraded to 3.3.2 and set mem_join=1. Now the loading process take about
10 time longer and sometimes stops kamailio from responding to traffic.
Any ideas?
Thanks,
Uri
Hi
I am trying to run the Ubuntu nightlies from
http://deb.kamailio.org/kamailiodev-nightly and loading the p-cscf config
files.
Things were working fine while I was on the 20130110 nightlies, but when I
upgraded to 20130122 I get the following errors. Any have an idea why
sem_post is undefined and how to fix this?
0(1980) ERROR: <core> [sr_module.c:572]: ERROR: load_module: could not
open module </usr/lib64/kamailio/modules/ims_registrar_pcscf.so>:
/usr/lib64/kamailio/modules/ims_registrar_pcscf.so: undefined symbol:
sem_post
0(1980) ERROR: <core> [sr_module.c:572]: ERROR: load_module: could not
open module </usr/lib64/kamailio/modules/cdp.so>:
/usr/lib64/kamailio/modules/cdp.so: undefined symbol: sem_post
0(1980) ERROR: <core> [sr_module.c:572]: ERROR: load_module: could not
open module </usr/lib64/kamailio/modules/ims_qos.so>:
/usr/lib64/kamailio/modules/ims_qos.so: undefined symbol: sem_post
Thanks
-Barry Flanagan
Hello List.
The last weekend our kamailio process crashed with this error :
Jun 24 06:55:08 pxh /usr/local/sbin/kamailio[10661]: : <core>
[pass_fd.c:293]: ERROR: receive_fd: EOF on 29
Jun 24 06:55:08 pxh /usr/local/sbin/kamailio[10542]: ALERT: <core>
[main.c:751]: child process 10601 exited by a signal 11
Jun 24 06:55:08 pxh /usr/local/sbin/kamailio[10542]: ALERT: <core>
[main.c:754]: core was generated
Jun 24 06:55:08 pxh /usr/local/sbin/kamailio[10542]: INFO: <core>
[main.c:766]: INFO: terminating due to SIGCHLD
Can someone tell me what seems to be the problem here?
We’re using :
version: kamailio 3.2.2 (x86_64/linux) 98ba92-dirty
flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS,
DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC,
DBG_QM_MALLOC, 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 4MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 98ba92 -dirty
compiled on 12:45:36 Feb 2 2012 with gcc 4.4.6
And this is the bt full from gdb
Core was generated by `/usr/local/sbin/kamailio -m 1024'.
Program terminated with signal 11, Segmentation fault.
#0 mi_profile_list (cmd_tree=<value optimized out>, param=<value optimized
out>) at dlg_profile.c:789
789 if ( mi_print_dlg( rpl,
ph->dlg, 0)!=0 )
Missing separate debuginfos, use: debuginfo-install
filesystem-2.4.30-2.1.el6.x86_64 glibc-2.12-1.25.el6_1.3.x86_64
keyutils-libs-1.4-1.el6.x86_64 krb5-libs-1.9-9.el6_1.2.x86_64
libcom_err-1.41.12-7.el6.x86_64 libselinux-2.0.94-5.el6.x86_64
mysql-libs-5.1.52-1.el6_0.1.x86_64 nss-softokn-freebl-3.12.7-1.1.el6.x86_64
openssl-1.0.0-20.el6_2.1.x86_64 pcre-7.8-3.1.el6.x86_64
zlib-1.2.3-26.el6.x86_64
(gdb) bt full
#0 mi_profile_list (cmd_tree=<value optimized out>, param=<value optimized
out>) at dlg_profile.c:789
node = <value optimized out>
rpl_tree = 0x20a6790
rpl = 0x20a67b0
profile = 0x7fe99a2dda00
ph = 0x0
profile_name = <value optimized out>
value = <value optimized out>
i = <value optimized out>
#1 0x00007fe9dce287b1 in run_mi_cmd (fifo_stream=<value optimized out>) at
../../lib/kmi/mi.h:77
No locals.
#2 mi_fifo_server (fifo_stream=<value optimized out>) at fifo_fnc.c:509
mi_cmd = 0x208f8f0
mi_rpl = <value optimized out>
hdl = 0x0
line_len = 41
file_sep = 0x2039017 ""
command = 0x7fe9dfdbdef9 "profile_list_dlgs"
file = 0x7fe9dfd98d78 "/tmp/openser_receiver_27809"
f = 0x2039018
reply_stream = 0x20b0980
#3 0x00007fe9dce2a640 in fifo_process (rank=<value optimized out>) at
mi_fifo.c:247
fifo_stream = 0x209a0b0
#4 0x00007fe9dce2a9de in mi_child_init (rank=0) at mi_fifo.c:211
pid = <value optimized out>
#5 0x00000000004dba41 in init_mod_child (m=0x7fe9dfc6ba10, rank=0) at
sr_module.c:886
No locals.
#6 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6bd08, rank=0) at
sr_module.c:883
No locals.
#7 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6c248, rank=0) at
sr_module.c:883
No locals.
#8 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6c748, rank=0) at
sr_module.c:883
No locals.
#9 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6d288, rank=0) at
sr_module.c:883
No locals.
#10 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6d928, rank=0) at
sr_module.c:883
No locals.
#11 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6dee0, rank=0) at
sr_module.c:883
No locals.
#12 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6e1f0, rank=0) at
sr_module.c:883
No locals.
#13 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6e5d0, rank=0) at
sr_module.c:883
No locals.
#14 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6e830, rank=0) at
sr_module.c:883
No locals.
#15 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6ebd0, rank=0) at
sr_module.c:883
No locals.
#16 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6f220, rank=0) at
sr_module.c:883
No locals.
#17 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6f648, rank=0) at
sr_module.c:883
No locals.
#18 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6fa60, rank=0) at
sr_module.c:883
No locals.
#19 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6fe40, rank=0) at
sr_module.c:883
No locals.
#20 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc702c0, rank=0) at
sr_module.c:883
No locals.
#21 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc70ae8, rank=0) at
sr_module.c:883
No locals.
---Type <return> to continue, or q <return> to quit---
#22 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc70e18, rank=0) at
sr_module.c:883
No locals.
#23 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc71100, rank=0) at
sr_module.c:883
No locals.
#24 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc716c0, rank=0) at
sr_module.c:883
No locals.
#25 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc71df0, rank=0) at
sr_module.c:883
No locals.
#26 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc723c0, rank=0) at
sr_module.c:883
No locals.
#27 0x000000000046077d in main_loop () at main.c:1661
i = <value optimized out>
pid = <value optimized out>
si = 0x0
si_desc = "udp receiver child=15 sock=64.76.154.35:5060", '\000'
<repeats 20 times>, "\003", '\000' <repeats 15 times>,
"\030\325\a\232\351\177\000\000\001\000\000\000\002", '\000' <repeats 11
times>,
"\001\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000)\000\000\000\000\000\000"
#28 0x0000000000461f13 in main (argc=<value optimized out>,
argv=0x7fff2f2b2848) at main.c:2475
cfg_stream = <value optimized out>
c = <value optimized out>
r = <value optimized out>
tmp = 0x7fff2f2b3f76 ""
tmp_len = 0
options = 0x5a3178
":f:cm:M:dVhEb:l:L:n:vrRDTN:W:w:t:u:g:P:G:SQ:O:a:A:"
ret = -1
seed = 1850310455
rfd = <value optimized out>
debug_save = <value optimized out>
debug_flag = <value optimized out>
dont_fork_cnt = <value optimized out>
n_lst = <value optimized out>
p = <value optimized out>
(gdb)
Regards,
Ricardo.-
Hi,
Following this issue, and the issue "BYE dialog timeout bad syntax" from
Julia.
I have 2 kamailio servers. srv1 creates a dlg_timeout BYE and sends it to
srv2 that forwards the BYE to the next sip server (some other server...).
I can definitely see that the BYE that is being forward is malformed. The
TO header info is not complete (the port section for example).
When a "normal" bye is received from srv1 (not dlg_timeout) all works fine.
One thing that i do in this scenario, on srv2 i use uac_replace() on the TO
header. So, it is OK that the final destination is different (i do
translations).
I attached the BYE from both servers.
Any ideas?
Thanks,
Uri
You probably meant the To and From headers, I'm guessing. Yeah, as long as
there is no display name component, URIs in headers like that don't have to
go in <>s. The way Kamailio sends it is grammatically valid, per RFC 3261.
The user agents are at fault for not understanding it correctly. Alex
Balashov <abalashov at
evaristesys.com<http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>>
wrote: >*"BYE headers"? Which headers? *>* *>*Uri Shacked <ushacked at
gmail.com <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>>
wrote: *>* *>>*Hi, *>>* *>>*I think there is a bug with the BYE that is
sent to the caller and *>>*callee *>>*when dialog timeout happends. *>>* *>>
*The BYE headers are sent with no "<" or ">". *>>*So, some sip singaling
points decline the BYE. *>>* *>>*BR, *>>*Uri *>>* *>>*
*>>*------------------------------------------------------------------------
*>>* *>>*_______________________________________________ *>>*SIP Express
Router (SER) and Kamailio (OpenSER) - sr-users mailing *>*list *>>*sr-users
at lists.sip-router.org<http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>
*>>*http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users *>* *>*--
*>*Sent from my mobile, and thus lacking in the refinement one might *>*expect
from a fully-fledged keyboard. *>* *>*Alex Balashov - Principal *>*Evariste
Systems LLC *>*235 E Ponce de Leon Ave *>*Suite 106 *>*Decatur, GA
30030 *>*United
States *>*Tel: +1-678-954-0670 *>*Web: http://www.evaristesys.com/,
http://www.alexbalashov.com/ *>*
*>*_______________________________________________
*>*SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list *
>*sr-users at lists.sip-router.org<http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>
*>*http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users * -- Sent
from my Nexus 10, with all the figments of autocorrect that might imply.
Alex Balashov - Principal Evariste Systems LLC 235 E Ponce de Leon Ave
Suite 106 Decatur, GA 30030 United States Tel: +1-678-954-0670 Web:
http://www.evaristesys.com/, http://www.alexbalashov.com/ --------------
next part -------------- An HTML attachment was scrubbed... URL: <
http://lists.sip-router.org/pipermail/sr-users/attachments/20130422/0c75272…>
Hello,
there were old and recent discussions about the representation of time
in accounting records. At this moment the acc module stores the unix
timestamp as datetime value.
In some countries is required to store more accuracy, beyond the
seconds. Also, the datetime gives some troubles with converting back to
unix timestamp, specifically with time zones and daylight saving times.
I want to open a discussion that is visible for all users and devs,
being something affecting probably everyone, input from anyone that is
interested being relevant to select the right approach.
Here are some suggestions presented so far.
1) store seconds.miliseconds as double - there is a patch (which
probably needs some tunings itself) on tracker. The precision is shifted
from seconds to milliseconds. Internally computed from microseconds from
timeval structure. The other modules might need updates (iirc dbtext has
only 2 decimals precisions for double, while miliseconds will require at
least three -- could be the case for flatstore or other modules).
Advantage is the computing of duration directly by subtraction of two
values.
2) store seconds and microseconds as two separate values. Should be no
issues with existing modules. Even more accuracy than above, no issues
with other modules, but will require to use two columns (thus four
values to compute the duration)
Any other suggestions?
Personally, at this moment, I will go with 2), but that might not meet
everyone's needs. So a solution can be to make it configurable, as a
bitmask of what time representation to store.
Say, there will be a new parameter timestamp_mode for acc module:
- bit one set - store seconds timestamp as for now (default)
- bit two set - store seconds and microseconds in separate integer columns
- bit three set - store seconds.miliseconds as double value in one column
I could add the parameter and tune acc for bit one and two. For bit
three a deeper review is needed for other modules, probably the
developer that submitted to the tracker can do it.
More suggestions? Pro or cons opinions?
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, San Francisco, USA - June 24016, 2013
* http://asipto.com/u/katu *
Dear Sir,
I am using kamailio 1.5.0, having installed and configured as given on the
kamailio site
<http://www.kamailio.org/dokuwiki/doku.php/install:kamailio-1.5.x-from-svn>
on my PC having Centos operating system. I have configured the config files
kamailio.cfg, kamctlrc accordingly as given on site.
when I start the kamailio using kamctl start command. it gives the error
message like
*[root@localhost ~]# kamctl start
database engine 'MYSQL' loaded
Control engine 'FIFO' loaded
INFO: Starting Kamailio :
ERROR: PID file /var/run/kamailio.pid does not exist -- Kamailio start
failed
*please* *help me out to solve this problem and suggest me where I am
wrong. * *I have configured kamalio so many times it gives me the same kind
of error message.
*
*
-
With Regards,
Dinesh Kumar Gautam
Noida,
+919911838275
Hi,
With TCP, there is no way Server can establish a TCP connection through
client's Firewall/NAT.
So, when Client connection is disconnected from the server due to Network
issues, the Registration should be removed.
I tried to handle this with a Event Route in tcp_read.c. However, There is
not an easy way to find the Registration with TCP socket info (IP and Port
of the Client).
Could anyone suggest a solution?
Thanks
Krish Kura
While I have seen other posts I have not found anything that describes my scenario.
Kamailio sets in front of a group of asterisk servers which are used in a round robin dispatch group. All asterisk servers share a common database in which voicemail boxes are defined and messages are stored.
I'm looking for a way to make message waiting work in this example. I have tried creating a view with basic peer information for asterisk to use for message notification, however asterisk does not 'see' these peers until a call is made to the specific user and the peer info is retrieved from the database, which can delay notifications severely rendering them useless. I also want to avoid sending a copy of the registrations to asterisk servers, as the purpose of the distributed system is to eliminate the large number of sip registrations asterisk needs to manage.
I have also seen a couple of script methods that look at the voicemail directory structure for file changes and trigger an application like sipsak to generate the notifications and let kamailio relay them. From what I see, the consensus is not to go this route. In my case the script would need to look at the database level, and maybe some sort of database trigger could be used.
What are others doing / what do others recommend as the best way to handle message waiting with a situation where kamailio sets in front of a voicemail server?
Any input is appreciated.
Dan-
Hello,
I have a kamailio 3.3.4 server running on x86-64 Linux, and I have a
script which looks something like this:
$var(gwruri) = $rU;
if ($(var(gwruri){s.substr,0,1}) == "+") {
$var(gwruri) = $(var(gwruri){s.substr,1,0});
}
When this script is run with say $rU = "+0000009724" (real number
removed). $var(gwruri) should contain the same but without the +, this
is not the case, $var(gwruri) ends up being "0000007724".
This smells memory corruption. When run under valgrind, valgrind
generates this error when that code is run:
==1206== Source and destination overlap in strncpy(0x55e3b2a, 0x55e3b2b, 10)
==1206== at 0x4C25ACF: strncpy (mc_replace_strmem.c:339)
==1206== by 0x2A28BB92: set_var_value (pv_svar.c:122)
==1206== by 0x2A2800D1: pv_set_scriptvar (pv_core.c:1683)
==1206== by 0x45E8F8: lval_assign (lvalue.c:353)
==1206== by 0x416A78: do_action (action.c:1524)
==1206== by 0x41E465: run_actions (action.c:1644)
==1206== by 0x4177FD: do_action (action.c:1136)
==1206== by 0x41E465: run_actions (action.c:1644)
==1206== by 0x4177FD: do_action (action.c:1136)
==1206== by 0x41E465: run_actions (action.c:1644)
==1206== by 0x419C67: do_action (action.c:1140)
==1206== by 0x41E465: run_actions (action.c:1644)
==1206==
I am not very familiar with the kamailio source code, but as far as I
can tell this happens because the strncpy() in set_var_value() in
pv_svar.c copies the string directly within the same overlapping memory
area. The same memory area is used because the tr_eval_string() function
and the TR_S_SUBSTR-code in pv_trans.c reuses the input buffer and just
increments the pointer and since the source pvar is the same as the
destination pvar the strncpy() ends up copying between overlapping
memory area.
I am not sure what the best fix would be for that, but I have attached a
patch which copies the string in the TR_S_SUBST code to _tr_buffer and
returns that buffer instead like a lot of the other transformations in
that function does.
If this fix is correct some other transformation functions probably
needs to be corrected as well.
--
Martin Mikkelsen, Zisson AS