Hello,
I'm trying to set up the dispatcher module from kamailio, but I'm running into errors just loading the dispatcher module and setting the params in my config file and would like to know where I'm going wrong.
I've added destinations through kamctl as well and whenever I try to use dispatcher reload or dispatcher dump, I get a 500 error saying neither of those methods are found.
I'm using kamailio version 5.6.3 and these are the errors I'm getting when starting up kamailio:
/usr/sbin/kamailio[102176]: ERROR: dispatcher [dispatch.c:824]: ds_load_list(): can't open list file [/etc/kamailio/dispatcher.list]
/usr/sbin/kamailio[102176]: ERROR: dispatcher [dispatcher.c:434]: mod_init(): no dispatching list loaded from file
/usr/sbin/kamailio[102176]: ERROR: <core> [core/sr_module.c:974]: init_mod(): Error while initializing module dispatcher (/usr/lib/x86_64-linux-gnu/kamailio/modules/dispatcher.so)
Many thanks in advance,
Temi
Hello all, little and fast context, we have 8 docker swarm clusters (4 nodes each) where there are deployed as global service 4 kamailio per cluster. Each cluster runs 8 replicas of a call processing service/app (for the sake of this question we’ll assume the performance of this app is ok, no problems on what it does and how much it consumes in cpu/memory).
kamailio is configured to use http_client module to query the processing app (those queries are load balanced by the docker swarm cluster) in a very simple way, added below in this email.
Everything goes well, there’s an average of ~450 caps on each kamailio on peak hours.
Question and reason of this email is: Is this the best approach i can take? (the http_client) or maybe there’s a more efficient one for this scenario? maybe kemi, or other?
The processing app is written in golang.
We’re planning to add more traffic (significantly more) to this instances and i would like to know if there’s a better scenario, to explore it before this migration.
Thanks, regards
—
request_route {
route(AF_SL);
}
route[AF_SL] {
if(is_method("ACK")){
exit;
}
if(is_method("REGISTER")){
sl_reply("200", "OK");
exit;
}
if(is_method("OPTIONS")){
sl_reply("200", "OK");
exit;
}
if(is_method("CANCEL")){
sl_reply("200","OK");
sl_reply("487","Request Terminated");
exit;
}
if(is_method("INVITE")){
if ($hdr(X-Carrier-In)!="" && $hdr(Organization)!="" && $hdr(X-SBC-Type)!="") {
sl_reply("100","Trying");
$var(retCode) = http_client_query("http://cbrcre:3001/cbrcre/v1/callHandler",'xsbct=$(hdr(X-SBC-Type){s.escape.param})&org=$(hdr(Organization){s.escape.param})&xci=$(hdr(X-Carrier-In){s.escape.param})&fu=$(fu{s.escape.param})&ru=$(ru{s.escape.param})&rU=$(rU{s.escape.param})&fU=$(fU{s.escape.param})&ci=$(ci{s.escape.param})&cin=$(hdr(Call-Info){s.escape.param})&ih=$hdr(Identity)&tag=$(ft{s.escape.param})&ct=$(ct{s.escape.param})&via=$(hdr(Via)[0]{s.escape.param})', "$var(result)");
xlog("L_INFO", "*************** RESULT: $var(result)\n\n");
jansson_get("response_code", "$var(result)", "$var(rc)");
switch($var(rc)){
case "200":
if jansson_get("contact", "$var(result)", "$var(ct)") == true {
append_branch("$var(ct)");
}
if jansson_get("callinfo", "$var(result)", "$var(cinfo)") == true {
append_to_reply("Call-Info: $var(cinfo)\r\n");
}
if jansson_get("pai", "$var(result)", "$var(pai)") ==true {
append_to_reply("P-Asserted-Identity: $var(pai)\r\n");
}
if jansson_get("xfrom", "$var(result)", "$var(xfrom)") ==true {
append_to_reply("X-From: $var(xfrom)\r\n");
}
if jansson_get("identity", "$var(result)", "$var(identity)") ==true {
append_to_reply("Identity: $var(identity)\r\n");
}
append_to_reply("X-Handled: ServiceBroker\r\n");
sl_send_reply("302", "Redirect");
break;
default:
jansson_get("reason","$var(result)","$var(reason)");
jansson_get("sbReason","$var(result)","$var(sbreason)");
append_to_reply("X-SBReason: $var(sbreason)\r\n");
sl_send_reply("$var(rc)", "$var(reason)");
}
exit;
}
xlog("L_ERR","missing xci or org or sbct");
sl_send_reply("608", "SBK Rejected");
}
}
Hi,
There are two proxy servers and two registrar servers with DMQ enabled, and
we have upgraded the proxy servers to 5.7.4 and the registrar servers to
5.5.5.
Kamailio proxy version 5.7.4
Kamailio registrar version: 5.5.5
Following the upgrade of the proxy server to 5.7.4, calls are not working
and no response is received.
Once again, we have reverted the proxy server to 5.5.5, so that the proxy
server and the registrar server version are now the same.The calls are now
working as expected.
We suspect it could be an DMQ issue.
I would appreciate your suggestions on this matter of compatibility between
proxy and registry servers.
Thanks.
Hi,
I set up a transparent kamailo proxy for IPv4 and IPv6.
The PBX which should be reached can handle both.
Now I have the case that the phone comes in on IPv6, but kamailio sends
it out via IPv4.
If I ping the PBX on the kamailio server (debian) I get the IPv6
address, since it is preferred.
Why does kamailio send to the IPv4 address of the PBX?
And how can I change this?
There are only A and AAAA records in the DNS
dns_try_ipv6=yes
is set.
Debian 12.5
Kamailio 5.6.5
Any hint is welcome.
Best regards
Bernd
Hi all,
I am using Kamailio 5.7.4 on a Debian 12 machine. I used ansible to
template some files, and a newline was omitted at the end of the uacreg
table due to a templating issue.
This caused kamailio to crash on start up, with the error:
20(27) CRITICAL: <core> [core/pass_fd.c:281]: receive_fd(): EOF on 24
Even with debug enabled it still wasn't clear the issue was caused by the
uac module. I had to do a gdb backtrace to figure it out.
Whilst the mistake was on my part, I wondered if this should be handled
more cleanly?
Cheers
Matthew
I am trying to build Kamailio with repo tags/5.6.4 to get my hands on the stirshaken module that was not part of apt repositories, however it results in a build error:
root@ip-fobby:/usr/src/kamailio# make modules modules=modules/stirshaken
make -C src/ modules
make[1]: Entering directory '/usr/src/kamailio/src'
CC (gcc) [M stirshaken.so] stirshaken_mod.o
stirshaken_mod.c:28:10: fatal error: stir_shaken.h: No such file or directory
28 | #include <stir_shaken.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [../../Makefile.rules:100: stirshaken_mod.o] Error 1
make[1]: *** [Makefile:511: modules] Error 1
make[1]: Leaving directory '/usr/src/kamailio/src'
make: *** [Makefile:34: modules] Error 2
Obviously there’s no stir_shaken.h file withib the directory src/modules/stirshaken, but I cannot see why, or how I proceed? Is this a likely symptom of faulty libstirshaken installation?
/M
Hi, I'm trying to capture the content of an AVP from the LCR module and assign it to another variable to make use of what is obtained by the regex. For this, I have used the avp_subst.
The content of $avp(i:709):
1|sip:|0|||2416027840||5061||;transport=udp|11|1
I need to extract the index that indicates the port "5061" at position 8.
I haven't been able to achieve this by trying several regex patterns.
Has anyone experienced something similar?
Thanks!
Hi,
The kamailio version we are using is "5.5.5", We are facing a kamailio
crash issue recently and it has generated the core-dump. Based on the
core-dump analysis we could see that "*si_desc = "udp receiver
child=3" *getting
crashed. We could see the below error in the core-dump trace,
#22 0x0000562c33524750 in udp_rcv_loop () at core/udp_server.c:543
tmp = 0x1150955ff0 <error: Cannot access memory at address 0x1150955ff0>
Please suggest how to fix this and your inputs will be appreciated.
Note: Due to confidentiality, I'm not able to share the core-dump trace.
Thanks.