Hi!
Is there any way to get which timer on transaction actually expired?
Scenario is following:
INVITE - 180 - 200 OK - (restransmissions 250 msec starts) - pause 15 sec - ACK.
In INVITE i'm setting
t_on_reply("MY_REPLY")
But in around 10 sec after first 200 OK (and 12 sec after INVITE) I'm getting in logs
DEBUG: tm [h_table.c:133]: free_cell_helper(): freeing transaction 0x7fb632d77090 from timer.c:689
and on next 200 OK I'm never getting into onreply_route[MY_REPLY] again.
Nowhere in the code or config I have explicit set any of timers with 10 or 12 seconds value. Most of them are default.
So, can I somehow get which timer expired exactly?
PS: If any, pause in 15 sec for a reason to emulate this issue.
Regards, Igor
Hello,
I am new to Kamailio and I am using Kamailio 5.2. When trying to the load
the XHTTP module, event route not found error is thrown and XHTTP is module
is not getting loaded. I am trying to use JSONRPC module through HTTP
transport for RPC calls. Using XMLRPC, things work fine.
DEBUG: <core> [core/sr_module.c:896]: init_mod(): xhttp
ERROR: xhttp [xhttp_mod.c:136]: mod_init(): failed to find
event_route[xhttp:request]
ERROR: <core> [core/sr_module.c:898]: init_mod(): Error while initializing
module xhttp (/usr/lib/kamailio/modules/xhttp.so)
ERROR: error while initializing modules
I have added below to Kamailio.cfg file:
loadmodule "xhttp.so"
event_route[xhttp:request] {
if(src_ip!=127.0.0.1) {
xhttp_reply("403", "Forbidden", "text/html",
"<html><body>Not allowed from $si</body></html>");
exit;
}
if ($hu =~ "^/RPC") {
jsonrpc_dispatch();
} else {
xhttp_reply("200", "OK", "text/html",
"<html><body>Wrong URL $hu</body></html>");
}
return;
}
Any help in this regard.
Thanks,
Dhruva
We have configured Kamailio IMS (P, I, S-CSCF) to use a single realm with the same NETWORKNAME and trying to make a call between bob and alice.
We are getting S-CSCF replies “Forbidden – Domain not served” in two scenarios:
1. When bob calls alice, the INVITE went from P->S->I->S and the destination S-CSCF responded this error
2. During SIP registration in responding to SUBSCRIBE (endpoint still can register even with this reply, so we proceeded with making call)
In quick search we found that in scscf/kamailio.cfg route{ } implementation there is a case when this error is generated:
# Terminating
if (uri == myself || uri =~ "tel:.*") {
if (!term_impu_registered("location")) {
xlog("L_DBG", "We need to do an UNREG server SAR assignemnt");
assign_server_unreg("UNREG_SAR_REPLY", "location", "term");
exit;
}
} else {
sl_send_reply("403","Forbidden - Domain not served");
exit();
}
route(term);
break;
What is this error designed for? Also in general are we supposed to rework the routing code in Kamailio.cfg (P, S, I-CSCF)?
Thanks for any suggestions in advance.
Yin
Hi,
Heads up... I suspect the Kamailio 5.2.x RPM files for CentOS 7 were
recently updated June 10th and are now no longer accepted by a standard yum
install...
*Repository file in /etc/yum.repos.d/:*
[home_kamailio_v5.2.x-rpms]
name=RPM Packages for Kamailio v5.2.x (CentOS_7)
type=rpm-md
baseurl=
http://download.opensuse.org/repositories/home:/kamailio:/v5.2.x-rpms/CentO…
gpgcheck=1
gpgkey=
http://download.opensuse.org/repositories/home:/kamailio:/v5.2.x-rpms/CentO…
enabled=1
*Operating System Version:*
CentOS Linux release 7.6.1810 (Core)
(Fresh image -- varying cloud providers)
*Command to install:*
yum install kamailio
*Resulting error message:*
kamailio-5.2.3-4.el7.centos.x8 FAILED
http://download.opensuse.org/repositories/home%3A/kamailio%3A/v5.2.x-rpms/C…:
[Errno 14] HTTPS Error 416 - Requested Range Not Satisfiable
Trying other mirror.
Error downloading packages:
kamailio-5.2.3-4.el7.centos.x86_64: [Errno 256] No more mirrors to try.
*Troubleshooting:*
I verified the IP address for the opensuse URL with three different
Internet providers and tested the installation on servers in different
cloud providers geolocated in both Canada and United States and received
the exact same results in all cases.
--
Joshua Riffle
*DevOps Lead & Duke of the Dial Tone*
We Are Skyetel and You Are Awesome.
p: (360) 843-9903 o: (360) 986-5200
s: http://www.skyetel.com e: josh(a)skyetel.com
Hello,
What does this CRITICAL error mean?
Jun 11 05:48:13 debian8 /usr/local/sbin/kamailio[8468]: {1 1 INVITE
Njg0MzNhMzJhOTY3MzQ3NmNlNWY0ODkzMTJmNTM1ZTk.} CRITICAL: <core>
[core/mem/q_malloc.c:486]: qm_free(): BUG: bad pointer 0xa3c188 (out
of memory block!) called from core: core/data_lump.c: free_lump(466) -
aborting
I got it when i make new call during debugging new module in Kamailio?
In module we have to change some message's body with data_lump.
I asked relaed issue (strange behaviour while developing new module)
in Kamailio developer forum <sr-dev(a)lists.kamailio.org>
With Best Regards.
--
--Mojtaba Esfandiari.S
Hi!
Just to confirm, is event route [dialog:end] not called on fr_inv_timer expiry?
Cause it's called on call busy (486) and reject (whatever 6xx). So, what's the idea of not calling it on timeout? Or I'm missing something?
Kamailio 5.2
Thanks!
Regards, Igor.
Hello,
I was wondering if there are any best practices for authenticating
websocket connection establishment inside the xhttp event route?
Thanks and regards,
Grant
Hi All,
In our setup running kamailio (alpine image) in stateless mode and have following TCP config set. After client registers to the backend see two TCP connections created - one towards the client and the other towards the backendserver. If there's a abrupt network disconnect either at the client side or at the backend side, do not see TCP reset happening from kamailio as per the config. Per below config expected after 120seconds( = [tcp_keepidle] + ( [tcp_keepintvl * tcp_keepcnt] ) instead it keeps resending TCP keepalive packets at varying intervals for varying duration length(like 6mins, 14mins..) before resetting the TCP connections. Also want to mention that we are not using TCPOPS module here.
I am trying to achieve consistent duration for TCP reset in kamailio. Could you please point me if I have missed anything here?
Setup:
Client ---- Kamailio (stateless mode) ---- Backend server
TCP Config:
tcp_connection_lifetime = 3600
tcp_accept_aliases = no
tcp_async = yes
tcp_connect_timeout = 10
tcp_crlf_ping = yes
tcp_keepalive = yes
tcp_keepcnt = 3
tcp_keepidle = 30
tcp_keepintvl = 30 # Total 2 mins - 30+(30*3)=120 sec
tcp_linger2 = 30
tcp_rd_buf_size = 65536
tcp_send_timeout = 10
thanks,
raj
Hi all,
I tried to implement simple announcer by using play_media function in
latest rtpengine module. I implemented simple Lua script and I tried to
test the implementation with simple SIPp scenario.
Here is the Lua function to reply the received INVITE request.
```Lua
function ksr_route_announcer()
KSR.info("======= Announcer =====\n");
local u = KSR.pv.gete("$rU");
KSR.info("username is: " .. u .. "\n");
if u == "ann" then
KSR.info("announcer has been called.\n");
if KSR.textops.has_body_type("application/sdp") then
KSR.info("request contains SDP.\n");
KSR.tm.t_newtran();
KSR.rtpengine.rtpengine_manage0();
KSR.tm.t_reply(200, "OK");
KSR.x.exit();
end
end
end
```
According to kamailio logs rtpengine modified the INVITE SDP, but I want to
add SDP to 200 OK response. How should I manage rtpengine to append SDP
answer to the 200 OK response?
The attached is the SIPp log, as you can see that last 200 OK doesn't
contain SDP.
Regards,
Ali