Hi,
I've now twice experienced a core dump in my Kamailio install, where it tries to process an INVITE that is made to a domain name that does not exist.
Log:
Oct 27 14:49:58 landsort /usr/local/kamailio/sbin/kamailio[40058]: ERROR: <core> [resolve.c:1540]: ERROR: sip_hostport2su: could not resolve hostname: "ulndsort.sr.se"
Oct 27 14:49:58 landsort /usr/local/kamailio/sbin/kamailio[40058]: ERROR: tm [ut.h:327]: failed to resolve "ulndsort.sr.se"
Oct 27 14:49:58 landsort /usr/local/kamailio/sbin/kamailio[40058]: ERROR: tm [t_fwd.c:1530]: ERROR: t_forward_nonack: failure to add branches
Oct 27 14:49:58 landsort /usr/local/kamailio/sbin/kamailio[40058]: ERROR: sl [sl_funcs.c:371]: ERROR: sl_reply_error used: Unresolvable destination (478/SL)
Oct 27 14:49:58 landsort /usr/local/kamailio/sbin/kamailio[40058]: WARNING: tm [t_lookup.c:1543]: WARNING: script writer didn't release transaction
Oct 27 14:50:02 landsort /usr/local/kamailio/sbin/kamailio[40114]: : <core> [pass_fd.c:293]: ERROR: receive_fd: EOF on 14
Oct 27 14:50:02 landsort /usr/local/kamailio/sbin/kamailio[40051]: ALERT: <core> [main.c:785]: child process 40058 exited by a signal 11
Oct 27 14:50:02 landsort /usr/local/kamailio/sbin/kamailio[40051]: ALERT: <core> [main.c:788]: core was generated
Backtrack from coredump:
(gdb) bt
#0 t_unref (p_msg=0x8010af140) at atomic_x86.h:231
#1 0x0000000000509581 in exec_post_script_cb (msg=0x8010af140, type=Variable "type" is not available.
) at script_cb.c:195
#2 0x00000000004297fa in receive_msg (
buf=0x891ae0 "INVITE sip:vaxo-10@ulndsort.sr.se SIP/2.0\r\nVia: SIP/2.0/UDP 134.25.127.234:5060;rport;branch=z9hG4bKPjNOjNgRxGeWilvm07L79hdOmgzVAvYB78\r\nMax-Forwards: 69\r\nFrom: \"Teknisk Utveckling MTU 24\" <sip:mtu-24@"..., len=Variable "len" is not available.
) at receive.c:225
#3 0x00000000004b5579 in udp_rcv_loop () at udp_server.c:544
#4 0x0000000000455654 in main_loop () at main.c:1633
#5 0x0000000000459c33 in main (argc=Variable "argc" is not available.
) at main.c:2546
(gdb)
Does this relate to any known issue? Should I just upgrade?
FreeBSD 9, by the way.
--
Måns Nilsson primary/secondary/besserwisser/machina
MN-1334-RIPE +46 705 989668
You should all JUMP UP AND DOWN for TWO HOURS while I decide on a NEW CAREER!!
Hi guys,
I've cross compiled Kamailio (4.1.6) for ARM (Wandboard-IMX6). Everything
seems works fine, but when I try to enable rtpproxy-ng module and Alignment
trap error occurred just during rtpp_test (exchanging ping-ponge message
betweek rtpproxy and rtpproxy-ng module of Kamailio)
rtpengine[2258]: Got valid command from 127.0.0.1:50470: ping - { "command":
"ping" }
rtpengine[2258]: Returning to SIP proxy: d6:result4:ponge
user.err kernel: [66832.254887] Alignment trap: not handling instruction
edc30b08 at [<40b3a130>]
user.alert kernel: [66832.262030] Unhandled fault: alignment exception
(0x801) at 0x4033a782
local0.err kamailio: ERROR: <core> [daemonize.c:307]: daemonize(): Main
process exited before writing to pipe
In x86 architecture same packages works correctly without any problem.
Does anybody encountered this kind of error?
Marino
-----
Marino Mileti
--
View this message in context: http://sip-router.1086192.n5.nabble.com/Kamailio-for-ARM-with-rtpproxy-ng-t…
Sent from the Users mailing list archive at Nabble.com.
Dear All
I compiled Kamailio4.2.0 with below command
make group_include="standard standard-dep stable experimental" all
to compile all modules.
When I install, I get below error
touch /usr/local/lib64/kamailio/modules/counters.so
install -m 755 counters.so /usr/local/lib64/kamailio/modules
LD (gcc) [U kamcmd] kamcmd
*/usr/bin/ld: error: cannot find -lncurses*
collect2: ld returned 1 exit status
make[2]: *** [kamcmd] Error 1
ERROR: make --no-print-directory -C ../../utils/sercmd install-if-newer
failed
make[1]: *** [install-utils] Error 1
make: *** [install-modules] Error 1
am I missing any package here.., please let me know.
Thanks
Kamal
Hi All,
Please can anyone help me to solve this error, occurred while running icscf
module .
0(4053) : <core> [cfg.y:3406]: yyerror_at(): parse error in config file
/etc/kamailio-icscf/icscf.cfg, from line 52, column 1 to line 53, column 0:
syntax error
ERROR: bad config file (1 errors)
Thanks
Anil
Hi All
Last few days we have tried to setup Kamailio for IMS server setup.
We have not been successful.
Now we are planning to use Kamailio 4.2.0 code base (Latest) to setup
Kamailio IMS setup.
I am looking for a link/document, that gives proper step by step
instructions how to setup Kamailio as IMS servers (P-CSCF, I-CSCF and
S-CSCF).
Can somebody kindly provide the official link or any other working link,
that I can follow to setup P-CSCF, I-CSCF ,S-CSCF and HSS.
Thanks
kamal
Having a hard time piecing together lots of pieces out of context.
Here's what I want:
1. User logs in to my web app via its own authentication mechanisms.
2. Via an authenticated REST endpoint, my web app connects to the
ephemeral auth service and returns a temporary username/password to the
client.
3. The client connects to a web socket SIP interface, authenticating
with the username/password it was given.
4. I'd also like to support authentication via standard SIP client using
the user's default username/password, but that's a bit down the road still.
Here is my kamailio-local.cfg. I'm using the web socket example copied
from the docs, with a little cleanup and a few optional checks removed
for now.
loadmodule "db_mongodb.so"
#!define DBURL "mongodb://mongo/perceptron"
#!define WITH_AUTH
#!define WITH_NAT
loadmodule "xhttp.so"
#modparam("xhttp", "url_match", "^/sip/")
tcp_accept_no_cl=yes
loadmodule "msrp.so" # Only required if using MSRP over WebSockets
loadmodule "websocket.so"
loadmodule "auth_ephemeral.so"
modparam("auth_ephemeral", "secret", "Kamailio rulez!!11")
event_route[xhttp:request] {
set_reply_close();
set_reply_no_connect();
# xlog("L_DBG", "HTTP Request Received\n");
if ($hdr(Upgrade) =~ "websocket" && $hdr(Connection) =~ "Upgrade" &&
$rm=~ "GET" ) {
# Validate Host - make sure the client is using the correct
# alias for WebSockets
if ($hdr(Host) == $null || !is_myself("sip:" + $hdr(Host))) {
# xlog("L_WARN", "Bad host $hdr(Host)\n");
xhttp_reply("403", "Forbidden", "", "");
exit;
}
if (ws_handle_handshake()) {
exit;
}
}
xhttp_reply("404", "Not found", "", "");
}
When I attempt to validate this, I get:
0(1) ERROR: <core> [pvapi.c:790]: pv_parse_spec2(): error searching
pvar "hdr"
0(1) ERROR: <core> [pvapi.c:994]: pv_parse_spec2(): wrong char [U/85]
in [$hdr(
Upgrade)] at [5 (5)]
0(1) : <core> [cfg.y:3436]: yyerror_at(): parse error in config file
/usr/local
/etc/kamailio/kamailio-local.cfg, line 28, column 7-19: Can't get from
cache: $h
dr(Upgrade)
ERROR: bad config file (1 errors)
I don't know what that means. I've copied the config directly from the
website.
I tried quoting "Upgrade" and such in the $hdr lines, but that gives me:
0(1) ERROR: <core> [pvapi.c:790]: pv_parse_spec2(): error searching
pvar "hdr"
0(1) ERROR: <core> [pvapi.c:994]: pv_parse_spec2(): wrong char ["/34]
in [$hdr(
"Upgrade")] at [5 (5)]
0(1) : <core> [cfg.y:3436]: yyerror_at(): parse error in config file
/usr/local
/etc/kamailio/kamailio-local.cfg, line 28, column 7-21: Can't get from
cache: $h
dr("Upgrade")
ERROR: bad config file (1 errors)
What am I missing here?
I also had to comment out the xlog lines because those gave me errors.
Do I need another module loaded to use xlog?
Finally, does anyone have a working, complete example of SIP over web
sockets with ephemeral auth integrated? I'm not sure if I should be
checking the ephemeral auth credentials in the web sockets code, the SIP
routes or somewhere else. I'm also not sure how I should set up
authentication such that users can log in with both their standard
credentials or those retrieved via the ephemeral auth module.
Thanks.
Hi,
I am trying add WebRTC support to existing IMS using kamailio. The idea is
to let kamailio handle all webrtc calls alone with diameter backend to IMS
for AAA.
So, i thought of using auth_diameter and aac module for authentication and
accounting. However auth_diameter docs say that the module is obsolete and
will work no more.
Also i am not sure about how to use diameter support in aac module. So, is
there any any tutorial or how-to for this?
I am aware of ims_* modules but i think they are meant to be used in case
we want kamailio to act as IMS core (P-CSCF, S-CSCF etc.).
Thank you.
Gents,
assuming we don't use async methods (I know, it's against fashion),
eventually you'll end up in having some bottlenecks in your config...
Now thanks to a lot of children you can easily work around this, a maximum
of 32 children gives you already quite something, and if you use the
dispatcher, you can ramp that up to quite some capacity. ;)
Now, there are moments where still limits are passed, so what would be the
best way to keep your system healthy?
I was thinking in the direction of using a hashtable value or $var to keep
track of the children in use and e.g. if 31 children are used, refuse to
process the 32th request (assuming 32 children are setup). Would this be a
valid strategy? Or am I overthinking?
Grtz,
Davy
Hi,
My current setup is
I have one kamailio server and one asterisk server.In the asterisk server I
have two trunk where there are two different PRI provider is used for
outbound call.
I am using uac_replace_from function to route call to different trunk of
the same server.
However I want to use lcr module and I can check if particular gateway is
up and down using lcr module and route the call.
But problem is In my current scenario the gateway is up but one PRI is down
for one provider and other one is up.So how to check if one sip trunk is
working and other one is not working? Can you suggest me a solution?
--
Debojit Kakoti
Mobile : +91 9650654870
Email : debojkakoti88(a)gmail.com
Skype : deboj1988
Hello all. I use rtpengine and rtpproxy-ng module at kamailio for proxying
RTP and modifying SDP between endpoints. I use two types of clients - such
as WSS based and UDP based clients.
I have a trouble with append_branch and rtpengine handling for this
packets.
I try to implement this logic of my script
Logic of my script:
--checking location table for rows with needed account
--get info from contact at loop
for every step
--check technology (sip or ws)
--append_branch with existing destination for this account
--rewrite packet with rtpengine to needed technology
after loop forward packets via t_relay
At listing bellow rtpproxy_manage have no flag "b" that implement needed
functionality. It not included at the script because I tried include it but
rtpengine says that ca nnot handle this request. As i understand this flag
worked with rtpproxy and rtpproxy-ng apps only. Not with rtpengine.
At my test I have 2 endpoints with WS and UDP phones (at fist step ir WS
and 2 step it UDP). All calls going form asterisk via UDP. When I do these
steps (at my script) I see packet at TCP dump and saw that sended only one
packet to UDP but body of packet is WS. Then I saw log of kamailio. I see
that at second step packet changed body to WS body (so strange because
other steps before and after goes for UDP (as at logic of script))
If I set "b" flag I can call only UDP endpoint, but at log I see as I say
that rtpengine can not do thomething with SIP packets and send with
t_relay uncghanged UDP packet only.
sql_query("ca", "select contact from location where username='$tU'", "ra");
xlog("rows: $dbr(ra=>rows) cols: $dbr(ra=>cols)\n");
if($dbr(ra=>rows)>0){
$var(i)=0;
while($var(i)<$dbr(ra=>rows)){
xlog("L_INFO","SQL query return contact {$dbr(ra=>[$var(i),0])} for {$tU}
at step {$var(i)}\n");
if ($dbr(ra=>[$var(i),0])=~"transport=ws"){
xlog("L_INFO", "This is a Websocket call to endpoint");
sql_pvquery("ca", "select received from location where
contact='$dbr(ra=>[$var(i),0])'","$var(recieved)");
xlog("L_INFO","SQL query return recieved {$var(recieved)} for {$tU}\n");
$du=$var(recieved);
xlog("L_INFO", "Request going FROM ASTERISK to WS. Destination is {$du}\n");
xlog("L_INFO","Websocket Destination URI is {$var(recieved)} for {$tU}\n");
rtpproxy_manage("froc+SP");
t_on_reply("REPLY_FROM_WS");
append_branch("sip:$tU@$du");
$var(i) = $var(i) + 1;
}
else
{
xlog("L_INFO", "This is a classic UDP call to endpoint");
$du="sip:"+$(dbr(ra=>[$var(i),0]){s.select,1,@});
xlog("L_INFO","Classic Destination URI is {$dbr(ra=>[$var(i),0])} for
{$tU}\n");
rtpproxy_manage("co");
t_on_reply("MANAGE_CLASSIC_REPLY");
append_branch("sip:$tU@$du");
$var(i) = $var(i) + 1;
}
#append_branch("sip:$tU@$du");
}
}
return 1;
So it customised schema of standart example
seturi("sip:a@example.com
<https://e.mail.ru/compose/?mailto=mailto%3asip%253Aa@example.com>");
append_branch("sip:b@example.com
<https://e.mail.ru/compose/?mailto=mailto%3asip%253Ab@example.com>");
append_branch("sip:c@example.com
<https://e.mail.ru/compose/?mailto=mailto%3asip%253Ac@example.com>");
append_branch("sip:d@example.com
<https://e.mail.ru/compose/?mailto=mailto%3asip%253Ad@example.com>");
t_relay();
I need fro advice how to fix this may be with another applications or with
another steps. Thanks.