Hello!
I need to disable topos for one specific SIP trunk (in-out), it looks like
it’s enough to use event_route with IP address filtering.
But for some reason, the incoming INVITE from the peer still gets processed
by topos and I also don’t see a mention of [msg-incoming] in the logs, only
this:
WARNING: <script>: [msg-outgoing] OPTIONS/you/1.1.1.1
Code snippet:
loadmodule "topos.so"
modparam("topos", "db_url", DBURL)
modparam("topos", "contact_mode", 1)
modparam("topos", "header_mode", 1)
modparam("topos", "methods_noinitial", "OPTIONS,SUBSCRIBE,PUBLISH")
modparam("topos", "dialog_expire", 7210)
modparam("topos", "rr_update", 1)
modparam("topos", "event_mode", 5)
/*
1 - execute event_route[topos:msg-outgoing]
2 - execute event_route[topos:msg-sending]
4 - execute event_route[topos:msg-incoming]
8 - execute event_route[topos:msg-receiving]
*/
request_route {
....
event_route[topos:msg-outgoing] {
if ( $sndto(ip) == "1.1.1.1" ) {
xlog("L_WARN","[msg-outgoing] $rm/$rU/$sndto(ip) \n");
drop;
}
}
}
event_route[topos:msg-incoming] {
if ( $si == "1.1.1.1" ) {
xlog("L_WARN","[msg-incoming] $rm/$rU/$si \n");
drop;
}
}
# kamailio -v
version: kamailio 5.7.1 (x86_64/linux) 1cf389-dirty
--
BR,
Denys Pozniak
Dear experts,
Would appreciate if anyone can explain why in the given sample Lua script the 'Handle Retransmission' block checks the return code of t_check_trans (if KSR.tm.t_check_trans == 0 then), but in the Kamailio native config standard file if just calls the t_check_trans() function without checking the return code. What is the intention here and how does it work? Thank you in advance.
Handle retransmission script from native config file:
if (!is_method("ACK")) {
if(t_precheck_trans()) {
t_check_trans();
exit;
}
t_check_trans();
}
Handle retransmission from sample Lua script:
if not KSR.is_ACK() then
if KSR.tmx.t_precheck_trans() > 0 then
KSR.tm.t_check_trans();
return 1;
end
if KSR.tm.t_check_trans() == 0 then
return 1;
end
end
How can I set the destination URI for an INVITE to be a
websocket-secure destination? Is it possible?
Summary
I've a proxy with tcp_connection_match=1, but websocket URIs always
have transport=ws (never transport=wss) in them, so relaying a call to
a WSS connection always fails.
I tested running kamailio 6.0.0-dev2 compiled from a commit made this
week. This proxy server uses nathelper rather than outbound module.
Detail
We know that "transport=ws" is used for both WS and WSS. I've a proxy
server that receives an INVITE for a WSS destination, and this proxy
supports both WS and WSS.
This proxy server must have core parameter tcp_connection_match=1 set,
and this leads the t_relay() to fail.
When an INVITE comes, these are the steps.
- The URI is something like
sip:user@anonymous.invalid;alias=198.51.100.10~52833~6;transport=ws.
- First handle_ruri_alias() removes the alias (which has ~6 in it, for
wss) and sets the $du to something like
sip:198.51.100.10:52833;transport=ws.
- Then loose_route_preloaded() processes the Route header fields and
forces the outbound socket to the TLS websocket one.
- Then t_relay() fails to relay the INVITE and responds with 477 or 500.
If, however, there's a non-TLS websocket connection open to the proxy,
the INVITE would be erroneously relayed over that (using the wrong
kamailio-side TCP port).
I can go deeper with testing if required. I wonder whether this is a bug.
James
Hello!
I was wondering if someone was trying to build Kamailio RPM packages
containing modules secsipid and secsipid_proc and faced the same problem.
I compiled secsipidx library and copied secsipid.h, libsecsipid.h as well
as libsecsipid.a files into the source directory of secsipid_proc module.
And when I'm trying to build RPM packages, I get the following error:
CC (gcc) [M secsipid_proc.so] secsipid_proc_mod.o
secsipid_proc_mod.c:28:10: fatal error: secsipid.h: No such file or
directory
#include <secsipid.h>
^~~~~~~~~~~~
compilation terminated.
make[2]: *** [../../Makefile.rules:100: secsipid_proc_mod.o] Error 1
make[1]: *** [Makefile:508: modules] Error 1
make[1]: Leaving directory '/builddir/build/BUILD/kamailio-5.8.2/src'
make: *** [Makefile:34: every-module] Error 2
Thanks a lot!
Hello,
Kamailio SIP Server v5.8.3 stable release is out.
This is a maintenance release of the latest stable branch, 5.8, that
includes fixes since the release of v5.8.2. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.8.x. Deployments running previous v5.8.x
versions are strongly recommended to be upgraded to v5.8.3.
For more details about version 5.8.3 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2024/09/kamailio-v5-8-3-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Kamailio Advanced Training, October 8-10, 2024 -- asipto.com
Hi all,
Just need some clarifications about the Permissions module: I currently use
it with db_mode = 1 and was expecting that the
parameter "trusted_cleanup_interval" would refresh the cache tables every X
seconds, but apparently this is not the case.
I was looking for a way for Kamailio to automatically reload the address
table into memory every 5 minutes, for example, and I (mis)understood
that "trusted_cleanup_interval" would do the trick, but it doesn't work as
expected.
Question: is there any command, besides kamcmd, to automatically reload the
permissions table? I would like to avoid having to add a line in the
crontab....
Atenciosamente / Kind Regards / Cordialement / Un saludo,
*Sérgio Charrua*
Hello,
We have compiled openssl 3.0.9 from source because it's FIPS validated, and
want to use it with Kamailio. The server also has the Ubuntu openssl 3.0.2
package installed.
Does anyone know how we can tell Kamailio to use the openssl library in
/opt/openssl/lib64, and how we can verify that it really is using it?
Thanking you in advance,
--
David Cunningham, Voisonics Limited
http://voisonics.com/
USA: +1 213 221 1092
New Zealand: +64 (0)28 2558 3782
Hello,
I am considering to release Kamailio v5.8.3 (out of branch 5.8) sometime
next week, most likely on Wednesday, Sep 4, 2024. If anyone is aware of
issues not yet on the bug tracker, report them there asap in order to
have a better chance to be fixed.
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Hi kamilians,
we have the intention to archive the app_mono module in a few[0]. Most likely at the end of next week. If you use app_mono and you don't want to see it fade away now it's the time to rise your voice.
Cheers,
Victor
[0] https://github.com/kamailio/kamailio/pull/3964
Hi All,
I am trying to replay a request to the destination via Kamailio, and I am using t_relay_to_tcp for that , but in that case Kamailio is adding its own address as the top VIA header. Is there a way I can instruct Kamailio not to add local via header ?
Hello all, context first, we have an REST API that performs queries to
external devices in the network (diameter to DRA's, REST to different
servers) and based on n conditions returns the content for a Contact header
to be used in a SIP 302.
Now we're consuming this API with http_client (synchronously) and as
there's no way to speed up the API (pipeline executions, delays on external
api's etc etc) we're hitting a limit where all children become busy waiting
for the API to answer.
So i decided to move to http_async_client and started working on it on the
lab with this first and base concept to test.
request_route {
#for testing purposes only
if(is_method("ACK")){
exit;
}
$http_req(all) = $null;
$http_req(suspend) = 1;
$http_req(timeout) = 500;
$http_req(method) = "POST";
$http_req(hdr) = "Content-Type: application/json";
jansson_set("string", "event", "sip-routing", "$var(cre_query)");
xlog("L_INFO","API ASYNC ROUTING REQUEST: $var(cre_query)\n");
$http_req(body) = $var(cre_query);
t_newtran();
http_async_query("http://192.168.86.128:8000/", "CRE_RESPONSE");
}
http://192.168.86.128:8000/ receives the POST, randomly creates a delay
between 0.5 and 1 second and responds (simulating the real api with an
excess delay to probe the concept)
Then
route[CRE_RESPONSE] {
if ($http_ok && $http_rs == 200) {
xlog("L_INFO","CRE RESPONSE: $http_rb\n");
# for testing purpose, Contact content will be replaced from the received
api response
append_to_reply("Contact: <sip:1234@google.com>\r\n");
send_reply(302,"Moved Temporarily");
exit;
}
send_reply(500, "Internal error");
exit;
}
INVITE is received and processed, API is called, after API response, 302 is
replied and then an ACK (ignored by now).
Situation is that the 302 retransmitted
37 1519.846253067 192.168.86.34 → 192.168.86.128 SIP/SDP 585 Request:
INVITE sip:service@192.168.86.128:5060 |
38 1519.848100380 192.168.86.128 → 192.168.86.34 SIP 318 Status: 100
Trying |
39 1520.094997642 192.168.86.128 → 192.168.86.34 SIP 407 Status: 302
Moved Temporarily |
40 1520.102323728 192.168.86.34 → 192.168.86.128 SIP 453 Request: ACK
sip:service@192.168.86.128:5060 |
41 1520.591300933 192.168.86.128 → 192.168.86.34 SIP 407 Status: 302
Moved Temporarily |
42 1521.591061065 192.168.86.128 → 192.168.86.34 SIP 407 Status: 302
Moved Temporarily |
43 1523.591227956 192.168.86.128 → 192.168.86.34 SIP 407 Status: 302
Moved Temporarily |
18(24) DEBUG: tm [t_reply.c:1703]: t_retransmit_reply(): reply
retransmitted. buf=0x7f6d79745dc0: SIP/2.0 3..., shmem=0x7f6d75187fd8:
SIP/2.0 3
18(24) DEBUG: tm [t_reply.c:1703]: t_retransmit_reply(): reply
retransmitted. buf=0x7f6d79745dc0: SIP/2.0 3..., shmem=0x7f6d75187fd8:
SIP/2.0 3
18(24) DEBUG: tm [t_reply.c:1703]: t_retransmit_reply(): reply
retransmitted. buf=0x7f6d79745dc0: SIP/2.0 3..., shmem=0x7f6d75187fd8:
SIP/2.0 3
18(24) DEBUG: tm [timer.c:634]: wait_handler(): finished transaction:
0x7f6d75184cc8 (p:0x7f6d74f600c8/n:0x7f6d74f600c8)
18(24) DEBUG: tm [h_table.c:132]: free_cell_helper(): freeing transaction
0x7f6d75184cc8 from timer.c:643
Any help to avoid the retransmission and make the transaction just finish
right after the 302 will be appreciated.
regards
Hello,
I wanted to know if this can be accomplished, or if I'm doing something wrong.
What I'm hoping to accomplish is to have kamailio periodically send OPTIONS packets to endpoints that are connected over UDP only.
As of right now, I currently have the following configured under usrloc:
modparam("usrloc", "timer_interval", 5)
modparam("usrloc", "timer_procs", 2)
modparam("usrloc", "use_domain", MULTIDOMAIN)
modparam("usrloc", "db_url", DBURL)
modparam("usrloc", "db_mode", 0)
modparam("usrloc", "ka_mode", 1)
modparam("usrloc", "ka_method", "OPTIONS")
modparam("usrloc", "ka_from", "sip:ping@sip-domain.com")
modparam("usrloc", "ka_domain", "sip-domain.com")
modparam("usrloc", "ka_timeout", 125)
modparam("usrloc", "ka_interval", 60)
With these parameters, all endpoints will be sent OPTIONS packets periodically as expected. When setting "ka_mode" to "4", as expected, endpoints registered with UDP only receive OPTIONS packets; which is what I wanted.
The issue that I'm having with these parameters is that endpoints registered with anything other that UDP are triggering a contact-expired event after a little over 2 minutes. I have the registrar set to 3600 as an expiry; I'm assuming the contact is expiring due to the "ka_timeout" value.
--------------------------
Is there a way to only have keep-alive packets/ and timeouts apply to endpoints registered on UDP?
Thank you.
Hi all!
I need to integrate a REST Service with Kamailio. Integration is easy, not
a problem, but my concern is that the REST Services has a JWT token
authentication required for each request, common to many (it not all) REST
Services.
So, it is required to POST for authentication (username and password) and
once I get authentication done, and receive a JWT token, I will need to use
this token in all other requests to the REST Service. The token is valid
for 24h.
My question is:
- how to save the token for use during 24h, on all calls/sessions, without
the need to authenticate on every call?
- how to detect the token has expired and re-authenticate?
I looked for some modules, but could not find any that suited me.
I am thinking of executing a Python script for this, but concerned about
latency and PDD....
Any thoughts? Any suggestions? Any known best-practice?
Atenciosamente / Kind Regards / Cordialement / Un saludo,
*Sérgio Charrua*
Hello All,
I am trying to limiting the number of video calls (converting Volte to
Vilte). To reduce traffic on the enodeb.
Its like if there are 10 volte calls going on then I should be able to
limit the number calls that can be converted to Vilte.
I tried to write a route in kamailio_pcscf.cfg using module ims_dialog. But
it doesnt work and get some errors while doing a modparam.
Tried another method of counting eRAB at eNB (ENBUEID and ERABID pair with
qci-2). This worked, but after sometime the extra call got established.
Looks like traffic is going through qci 9 bearer.
Is there any method where we can achieve this.
Thanks in Advance.
Regards,
Dushyanth
Hi Batanai,
After disabling #!define WITH_NAT in Kamailio, calls from the Asterisk
endpoint to Microsoft Teams are functioning correctly. Both inbound and
outbound calls exhibit proper two-way audio and no disconnection issues but
there is no Bye when hangup from ms teams.
However, I am encountering a problem with outbound calls originating from
Microsoft Teams. When a call is placed from MS Teams, the recipient's phone
rings as expected. Once the call is answered, Microsoft Teams disconnects
the call immediately. The root of the issue seems to be that the ACK
message is not being sent or received properly. As a result, Microsoft
Teams does not receive the ACK, leading to an immediate call termination.
Additionally, Asterisk does not receive a BYE message from Kamailio.
*Summary of the Issue:*
- *Inbound Calls*: From Asterisk to MS Teams work fine, with full audio
and no disconnections but no BYE from ms teams.
- *Outbound Calls*: From MS Teams to Asterisk result in the call being
disconnected immediately after being answered due to a missing ACK, and
Asterisk does not receive a BYE message.
Thanks,
On Tue, Aug 27, 2024 at 5:45 PM Batanai Musiiwa <batanai.musiiwa(a)etel.co.zw>
wrote:
> Hi @
> Muhammad. May you advise if the calls are disconnecting in either
> direction?
>
> ;
>
> On Tue, Aug 27, 2024 at 11:05 AM Muhammad Sohaib via sr-users <
> sr-users(a)lists.kamailio.org> wrote:
>
>> Hi everyone,
>>
>> Thank you all for your kind help with the TLS configuration. Palany's
>> suggestion worked flawlessly, and now both inbound and outbound calls are
>> functioning.
>>
>> However, I'm facing a one-way audio issue, and calls are disconnected
>> after 30 seconds. I suspect this might be related to NAT. Here’s the
>> current setup:
>>
>> *Asterisk <===> Kamailio (as SBC) <=====> MS Teams*
>>
>> Could this be related to my NAT configuration, or is there something else
>> I should investigate? Any guidance would be greatly appreciated.
>>
>> Thanks again for your support!
>>
>> On Thu, Aug 15, 2024 at 11:02 PM palany <palany(a)advancedzim.com> wrote:
>>
>>>
>>>
>>> Hi Muhammad
>>>
>>>
>>>
>>> Can you try your tls cfg as below and make sure your certificates have
>>> the right permissions.
>>>
>>>
>>>
>>> [server:default]
>>>
>>> method = TLSv1.2+
>>>
>>> verify_certificate = no
>>>
>>> require_certificate = no
>>>
>>> private_key = /etc/letsencrypt/live/MYDOMAIN/privkey.pem
>>>
>>> certificate = /etc/letsencypt/live/MYDOMAIN/fullchain.pem
>>>
>>>
>>>
>>> [client:default]
>>>
>>> method = TLSv1.2+
>>>
>>> verify_certificate = no
>>>
>>> require_certificate = no
>>>
>>> private_key = /etc/letsencrypt/live/MYDOMAIN/privkey.pem
>>>
>>> certificate = /etc/letsencrypt/live/MYDOMAIN/fullchain.pem
>>>
>>> *From:* Muhammad Sohaib via sr-users [mailto:sr-users@lists.kamailio.org]
>>>
>>> *Sent:* Thursday, 15 August 2024 3:46 PM
>>> *To:* Kamailio (SER) - Users Mailing List
>>> *Cc:* Muhammad Sohaib
>>> *Subject:* [SR-Users] certificate verify failed (sni: unknown)
>>> integration with ms teams
>>>
>>>
>>>
>>> Dear all,
>>>
>>>
>>>
>>> Trying to integrate Kamailio with MS Teams by following
>>> https://skalatan.de/en/blog/kamailio-sbc-teams
>>>
>>>
>>>
>>> kamcmd dispatcher.list | egrep "URI|FLAGS"
>>>
>>>
>>> URI: sip:
>>> sip.pstnhub.microsoft.com;transport=tls
>>> FLAGS: IP
>>> URI: sip:
>>> sip2.pstnhub.microsoft.com;transport=tls
>>> FLAGS: IP
>>> URI: sip:
>>> sip3.pstnhub.microsoft.com;transport=tls
>>> FLAGS: IP
>>>
>>>
>>>
>>> Kamailio Logs:
>>>
>>> /usr/local/sbin/kamailio[412158]: INFO: <script>: Sent out tm request:
>>> OPTIONS sip:sip.pstnhub.microsoft.com;transport=tls SIP/2.0#015#012
>>> Via: SIP/2.0/TLS
>>> x.x.x.x:5061;branch=z9hG4bK5dad.92de50b2000000000000000000000000.0#015#012
>>> To: <sip:sip.pstnhub.microsoft.com;transport=tls>#015#012
>>> From: <sip:test.mytest.com
>>> >;tag=5d0939b82abe9b1bbf185d963b6e6c88-edeb3c71#015#012
>>> CSeq: 10 OPTIONS#015#012
>>> Call-ID: 2db6bede5631d9b6-412158(a)88.99.244.106#015#012
>>> <http://2db6bede5631d9b6-412158@88.99.244.106#015%23012>
>>> Max-Forwards: 70#015#012Content-Length: 0#015#012
>>> User-Agent: kamailio (5.8.2 (x86_64/linux))
>>>
>>> /usr/local/sbin/kamailio[412165]: ERROR: tls [tls_server.c:1312]:
>>> tls_h_read_f(): protocol level error
>>> /usr/local/sbin/kamailio[412165]: ERROR: tls [tls_util.h:49]:
>>> tls_err_ret(): TLS write:error:0A000086:SSL routines::certificate verify
>>> failed (sni: unknown)
>>> /usr/local/sbin/kamailio[412165]: ERROR: tls [tls_server.c:1316]:
>>> tls_h_read_f(): src addr: 52.114.75.24:5061
>>> /usr/local/sbin/kamailio[412165]: ERROR: tls [tls_server.c:1319]:
>>> tls_h_read_f(): dst addr: x.x.x.x:0
>>> /usr/local/sbin/kamailio[412165]: ERROR: <core> [core/tcp_read.c:1524]:
>>> tcp_read_req(): ERROR: tcp_read_req: error reading - c: 0x7fa74d265d40 r:
>>> 0x7fa74d265e68 (-1)
>>>
>>>
>>> tls.cfg:
>>>
>>> [server:default]
>>> method = TLSv1.2+
>>> verify_certificate = yes
>>> require_certificate = yes
>>> private_key = /etc/letsencrypt/live/test.mytest.com/privkey.pem
>>> certificate = /etc/letsencrypt/live/test.mytest.com/fullchain.pem
>>> ca_list = /etc/letsencrypt/live/test.mytest.com/fullchain.pem
>>> server_name = test.mytest.com
>>>
>>> [client:default]
>>> method = TLSv1.2+
>>> verify_certificate = yes
>>> require_certificate = yes
>>> private_key = /etc/letsencrypt/live/test.mytest.com/privkey.pem
>>> certificate = /etc/letsencrypt/live/test.mytest.com/fullchain.pem
>>> ca_list = /etc/letsencrypt/live/test.mytest.com/fullchain.pem
>>>
>>> Please suggest what I am missing.
>>>
>>> ---
>>>
>>> Thanks,
>>>
>>
>>
>> --
>> Thanks,
>> __________________________________________________________
>> Kamailio - Users Mailing List - Non Commercial Discussions
>> To unsubscribe send an email to sr-users-leave(a)lists.kamailio.org
>> Important: keep the mailing list in the recipients, do not reply only to
>> the sender!
>> Edit mailing list options or unsubscribe:
>>
>
--
Thanks,
Hello list!
Please help me understand if putting my b2bua in sensory deprivation is
actually the best approach to punish it for sole reason of its existence.
The background of this horror story is pretty cliche, call center needs a
way to infinitely expand, so I'm building a scaling telephony core.
Our main protagonist is an innocent b2bua with a very grounded backstory:
step 0: receive external instruction to start a call
step 1: originate
step 2: park
step 3: play moh until:
- - a) told to pass it to other component
- - b) told to hang up
- - c) hang up on local timeout
A simplified diagram of the call flow looks something like this (repeating
names are same components):
### Signaling ###
Remote Destination
^
Kamailio-external
^
Freeswitch-originator
V
Freeswitch- queue
V
Kamailio-local
V
Agent
### end of signaling ###
### Media ###
Remote Destination
^
Rtpengine-external
^
Freeswitch-originator
V
Freeswitch-queue
V
Rtpengine- local
V
Agent
### end of media ###
Due to specifics of the setting, re-negotiating the media and any
non-essential signaling with remote destination is a very much last resort.
And, as you can imagine, after step3a (pass it to other component), the
character development of Freeswitch-originator service stops completely.
Well, at least it is doing an honest job by playing the music on hold,
which a little bit justifies its presence on the media path. But not for
long.
In the world of near future, pull request number 3956 is merged with the
master branch, exposing the rtpengine API and leaving me no reason not to
move MoH to a kernel media player. At this moment I feel a wild urge to get
rid of Freeswitch-originator at all, but then I read the sources for mohq
and dialog to remind myself that Kamailio is a proxy and proxies can't do
this... So I fill b2bua's dialplan with 387.44 million lines of hateful
comments and remind it to rcvonly every time it tries to warn the others
about the grim fate.
When the queue designates an agent to his call, theoretically I don't even
need the second freswitch as well - if agen't media session has been
established (sometimes ICE take tooo long) with Rtpengine- local, I can
bridge their media sessions using publish and subscribe.
I'd like to ask your opinion, list: do you see any plotholes potential
issues with such deisgn?
I'd honestly like to set Freeswitch to bypass-media, so it wont' waste
ports and cpu for nothing at all.
Are there any issues if I add body for the iniitial invite in the
request_route as if it was received in there?
Maybe there's a better way, overall?
Any critique is welcome!
Thank you
--
AC
Hello Experts,
I need your advice on the following issue if you can kindly help.
I am working on a hold call flow:
UA - > Kamailio (RTP Engine) - > FS
initial call establishes fine, RTP engine is invoked and SDP media IP is modified correctly. Then
1.
I am receiving a hold re-invite with a send-only
2.
I see Kamailio is changing the media IP in the SDP (with my RTP engine IP) when it sends the Invite to my core FS server.
3.
FS sends 200 OK with a=recvonly
4.
Kamailio relays the message as it is to the other leg.
can someone advise me, on how can I invoke rtpengine at step 4, so the SDP is sent with my media server IP in the 200 OK?
--- 200 OK from FS ----
SIP/2.0 200 OK
Via: SIP/2.0/UDP 13.54.01.02:5060;branch=z9hG4bKd2e8.8a573af8d927f67c1db4550676f8be88.0;i=1
Via: SIP/2.0/TCP 192.168.10.117:51280;received=218.33.01.02;rport=51280;branch=z9hG4bKPj7d1d8968830d4ed3922eec7da7cdc17c;alias
Record-Route: <sip:13.54.01.02:5060;r2=on;lr=on>
Record-Route: <sip:13.54.01.02;transport=tcp;r2=on;lr=on>
From: <sip:0403225908@trunk.xyz.corp>;tag=6a180ffa7f824972a2c59ba47f293acb
To: <sip:+61285038000@trunk.xyz.corp>;tag=DZrpcpgS1BDKF
Call-ID: 4154062196634c34a2dbcb6b612bf44c
CSeq: 12263 INVITE
Contact: <sip:+61285038000@54.88.54.88:5060;transport=udp>
User-Agent: UserAgentX/v1.0
Accept: application/sdp
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Require: timer
Supported: timer, path, replaces
Session-Expires: 1800;refresher=uac
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 266
v=0
o=FreeSWITCH 1724635755 1724635757 IN IP4 54.88.54.88
s=FreeSWITCH
c=IN IP4 54.88.54.88
t=0 0
m=audio 21202 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=recvonly
a=ptime:20
a=rtcp:21203 IN IP4 54.88.54.88
--- 200 OK relayed towards the UA ----
2024/08/26 17:22:39.923639 172.16.8.126:5060 -> 218.33.78.33:51280
SIP/2.0 200 OK
Via: SIP/2.0/TCP 192.168.10.117:51280;received=218.33.01.02;rport=51280;branch=z9hG4bKPj7d1d8968830d4ed3922eec7da7cdc17c;alias
Record-Route: <sip:13.54.01.02:5060;r2=on;lr=on>
Record-Route: <sip:13.54.01.02;transport=tcp;r2=on;lr=on>
From: <sip:0403225908@trunk.xyz.corp>;tag=6a180ffa7f824972a2c59ba47f293acb
To: <sip:+61285038000@trunk.xyz.corp>;tag=DZrpcpgS1BDKF
Call-ID: 4154062196634c34a2dbcb6b612bf44c
CSeq: 12263 INVITE
Contact: <sip:+61285038000@54.88.54.88:5060;transport=udp>
User-Agent: UserAgentX/v1.0
Accept: application/sdp
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Require: timer
Supported: timer, path, replaces
Session-Expires: 1800;refresher=uac
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 266
v=0
o=FreeSWITCH 1724635755 1724635757 IN IP4 54.88.54.88
s=FreeSWITCH
c=IN IP4 54.88.54.88
t=0 0
m=audio 21202 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=recvonly
a=ptime:20
a=rtcp:21203 IN IP4 54.88.54.88
my configs for within dialog route:
#####
route[WITHINDLG] {
append_hf("X-Test-Header: route_WITHINDLG\r\n");
if (has_totag()) {
if (loose_route()) {
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction fails
}
if (is_method("ACK")) {
xlog("L_INFO", "Relaying ACK\n");
}
if (is_method("INVITE|UPDATE")) {
if (has_body("application/sdp") && search_body("m=image") && search_body("T38")) {
xlog("L_INFO", "T.38 re-INVITE detected, skipping rtpengine invocation\n");
} else {
xlog("L_INFO", "Non-T.38 INVITE detected, invoking rtpengine\n");
rtpengine_manage("replace-origin replace-session-connection");
}
}
route(RELAY);
} else {
if (is_method("SUBSCRIBE") && uri == myself) {
route(PRESENCE);
exit;
}
if (is_method("ACK")) {
if (t_check_trans()) {
t_relay();
exit;
} else {
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}
}
#####
looking forward to your usual guidance.
Thank you!
Regards,
Shah
Hello,
I encountered a problem stopping Kamailio with FIPS OpenSSL:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007ff7292380ac in OPENSSL_sk_pop () from /lib64/libcrypto.so.3
Missing separate debuginfos, use: dnf debuginfo-install
kamailio-5.7.3-4816.x86_64
(gdb) bt
#0 0x00007ff7292380ac in OPENSSL_sk_pop () from /lib64/libcrypto.so.3
#1 0x00007ff72914bf5b in conf_modules_finish_int () from /lib64/libcrypto.so.3
#2 0x00007ff72914c694 in CONF_modules_unload () from /lib64/libcrypto.so.3
#3 0x00007ff7291efff9 in OPENSSL_cleanup () from /lib64/libcrypto.so.3
#4 0x00007ff72954702b in ?? ()
#5 0x0000000100061c08 in ?? ()
#6 0x00007ff7190566c8 in ?? ()
#7 0x00007ffccf196a20 in ?? ()
#8 0x000000000071da8a in futex_release (lock=0x7ff729f08b50 <syslog>)
at core/mem/../mem/../futexlock.h:134
#9 0x00000000006e9448 in destroy_tls () at core/tls_hooks.c:75
#10 0x000000000041f278 in cleanup (show_status=1) at main.c:594
#11 0x0000000000420af1 in shutdown_children (sig=15, show_status=1) at
main.c:721
#12 0x0000000000421717 in handle_sigs () at main.c:752
#13 0x0000000000430c88 in main_loop () at main.c:1988
#14 0x0000000000439d13 in main (argc=14, argv=0x7ffccf1973f8) at main.c:3212
(gdb)
Environment:
Oracle Linux Server 9.3
Kamailio 5.7.3
yum list --installed | grep ssl
openssl.x86_64 10:3.0.7-24.0.3.el9_fips
@tools
openssl-libs.x86_64 10:3.0.7-24.0.3.el9_fips
@tools
openssl-pkcs11.x86_64 0.4.11-7.el9
@anaconda
xmlsec1-openssl.x86_64 1.2.29-9.el9
@AppStream
What can I do for further investigation?
Thanks
Hello all,
I wanted to inform you about an upcoming change regarding the syntax we use for defining socket names in the listen (-l) command line argument.
Current Syntax:
-l udp:10.10.10.10:5060/11.11.11.11:5060
Proposed Options:
1. -l udp:10.10.10.10:5060/11.11.11.11:5060=s1
2. -l s1=udp:10.10.10.10:5060/11.11.11.11:5060 ( A draft PR about this option can be found in https://github.com/kamailio/kamailio/pull/3954)
[https://opengraph.githubassets.com/69f8a4a1d2c8988372b4942f84bde95de94502d2…]<https://github.com/kamailio/kamailio/pull/3954>
main: Add support for naming socket in cli by xkaraman · Pull Request #3954 · kamailio/kamailio<https://github.com/kamailio/kamailio/pull/3954>
Pre-Submission Checklist Commit message has the format required by CONTRIBUTING guide Commits are split per component (core, individual modules, libs, utils, ...) Each component has a single...
github.com
Please note that the socket name (s1) in both options is/should be optional. The change will allow for better clarity and flexibility when defining sockets, particularly when a name needs to be assigned and match the config file style.
I would appreciate your feedback on which syntax you find more intuitive or any concerns you might have with these options. Your input is important to ensure a smooth transition.
Best regards,
Xenofon
Hello all,
I'm using Kamailio as SIP redirect (act as routing decision for SBC) depending mainly on sqlops and db_postgres modules, and it's working perfectly.
What I need now is to have a kind of cluster of Kamailio servers for high availability purpose.
What is the best option for me ?
BR
Hi,
I just tried to send numbers of SIP register to kamailio (release 5.8.2). It is reported that there are some memory leakage in shared memory after the expiry of all the registration sessions. After drill down the code. function save_pending(...) is called. (in ims_registrar_pcscf/save.c). Inside that function, it seems that "sec_verify_params" is not deallocated upon the function completes.
Findings:
- sec_verify_params uses the result from function cscf_get_security_verify(...)
- Function cscf_get_security_verify(...) returns the result of function parse_sec_agree(...)
- Function parse_sec_agree(...) returns "params" where "shm_malloc(...)" is called
It seems that the memory pointed by 'sec_verify_params' is not further referenced by others. Should shm_free(...) be called when leaving function save_pending(...) in order to free the unused memory of 'sec_verify_params'?
Please advice.
Thank you.
Regards,
Hong
Hi,
I implemented an apple and android push server/proxy with kamailio 5.8.1.
The server/proxy is transparent.
It works fine with UDP, since the registration after the push comes from
the same ip and port.
So t_continue works without problems.
(We use the new registration as signal thet the phone is ready)
If we use tcp at the client, he gets the push, wakes up and send the new
registration on an other port.
The SIP stack uses now an other connection.
t_continue fails, because it uses the old data of the original invite
acccording to the first registration.
Is it possible to change the stored connection values according to the
new registration data?
Best regards,
Bernd
Hello,
Based on business requirements, 35% of invites should be handled by async_workers and 65% with be handled by main children.
The target is 1500cps.
I'm using the following conf :
children=64
async_worker=128
when doing performance tests using SIPp, I figured out the 1500cps is well supported by the conf above, but when I updated the data in database to not use anymore async workers, the cps is getting decreased and it was between 200 and 500.
This a client requirements is to be able to enable/disable feature that needs to be handled by async workers.
Could you please help me on this?
Thanks in advance
We're seeing an issue where some webRTC clients are not receiving inbound calls. Kamailio logs show the following error:
WARNING: {1 609669922 INVITE BW152025538120824-895739618(a)10.103.43.11}: <core> [core/msg_translator.c:3007]: via_builder(): TCP/TLS connection (id: 0) for WebSocket could not be found
ERROR: {1 609669922 INVITE BW152025538120824-895739618(a)10.103.43.11}: <core> [core/msg_translator.c:2086]: build_req_buf_from_sip_req(): could not create Via header
ERROR: {1 609669922 INVITE BW152025538120824-895739618(a)10.103.43.11}: tm [t_fwd.c:484]: prepare_new_uac(): could not build request
ERROR: {1 609669922 INVITE BW152025538120824-895739618(a)10.103.43.11}: tm [t_fwd.c:1764]: t_forward_nonack(): failure to add branches
DEBUG: {1 609669922 INVITE BW152025538120824-895739618(a)10.103.43.11}: tm [t_funcs.c:358]: t_relay_to(): t_forward_nonack returned error -2 (-2)
DEBUG: {1 609669922 INVITE BW152025538120824-895739618(a)10.103.43.11}: tm [t_funcs.c:376]: t_relay_to(): -2 error reply generation delayed
It seems to be happening after the client has been connected to Kamailio for more than 24 hours. The socket connection details look correct in the external DB and in the output of ws.dump, core.tcp_list, and ul.dump.
A restart of Kamailio or a reload of the webRTC client, triggering a new websocket connection, will clear the issue. However, we haven't been able to determine exactly when and why a client ends up in this state.
While a client is in this state, REGISTER requests are still handled successfully, they can make outbound calls and TCP keepalives from the client are working.
I'm still working on trying to debug this with GDB so I can see what the value of send_info is in https://github.com/kamailio/kamailio/blob/master/src/core/msg_translator.c#…, but I wasn't having luck with multiple child processes running, and now my client has reloaded and is working again. I've restarted Kamailio with a single child process, so when it does start failing again, I may have better luck with GDB.
Any thoughts on what might be causing clients to get into this state? Whatever additional information I can provide that might help, I'm happy to share. Thanks!
Hi guys, some modules are not shown in Kamailio Kemi's documentation, such as secfilter. Is there any way to load them and use them in Python?
a way is to simulate the secfilter but it is not a general solution.
(Sorry in advance for the obvious question)
ALL:
Hi, here is my lua script:
```
local body = '{"ip":"172.16.4.111", "ports":[5261, 5260]}'
local resp = ""
local code = KSR.http_client.curl_connect_post("configapi", "", "application/json", body, resp)
```
the error is :
```
24(2406) DEBUG: app_lua [app_lua_api.c:1024]: sr_kemi_lua_exec_func_ex(): param[0] for: curl_connect_post is str: configapi
24(2406) DEBUG: app_lua [app_lua_api.c:1024]: sr_kemi_lua_exec_func_ex(): param[1] for: curl_connect_post is str:
24(2406) DEBUG: app_lua [app_lua_api.c:1024]: sr_kemi_lua_exec_func_ex(): param[2] for: curl_connect_post is str: application/json
24(2406) DEBUG: app_lua [app_lua_api.c:1024]: sr_kemi_lua_exec_func_ex(): param[3] for: curl_connect_post is str: {"ip":"172.16.4.111", "ports":[5261, 5260]}
24(2406) DEBUG: app_lua [app_lua_api.c:1024]: sr_kemi_lua_exec_func_ex(): param[4] for: curl_connect_post is str:
24(2406) ERROR: <core> [core/pvapi.c:429]: pv_cache_get(): invalid parameters
24(2406) ERROR: http_client [http_client.c:739]: ki_curl_connect_post(): failed to get pv spec for:
```
I know the error means: "resp" type is not right, what is the correct type ? I search google for this issue, no one knows, someone please help me.
Thinks
Hello Brothers,
I've installed kamailio throw "apt install" on Debian and it's installed version: kamailio 5.6.3 (x86_64/linux).
Now I've a big problem that kamailio cannot running with TLSv1 and it has to be TLSv1.2+ as tls.cfg doc said:
# We do not enable anything else than TLSv1.2+
# over the public internet. Clients do not have
# to present client certificates by default.
How could I avoid this restriction please to enable TLSv1?
Thank you,
Hello everyone!
The function phonenum_match_cn from module PHONENUM is not available on
KSR. Is there any work around to use it on Lua config?
Best regards,
Joao
I have integrated Microsoft teams and freepbx using Kamailio version 5.8 as
my SBC.
Calls from freepbx to teams are working fine with audio and I am having
challenges with calls from teams to freepbx. The calls rings and after
answering there is only way audio and the call drops off after thirty
seconds. My pbx is behind a microtik router and I have port forwarded my sip
port and rtp ports to freepbx and have also disabled sip alg. My Kamailio is
hosted in AWS. I have attached both my pcap from Kamailio, freepbx and my
Kamailio.cfg. I am thinking It's a misconfiguration challenge or something
else. Please help I am failing to see my challenge.
Best Regards,
Hello All
I am using kamailio sip account as gateway at Freeswitch side but when I
enable caller id from = true then call from Freeswitch to kamailio didn’t
authenticate
As I check it’s about from header when I disable caller id from = false the
call get authenticate since it get sip username and domain but when there
is caller id the from header get callerid@ip address
Can anyone guide me
Thanks
HI,
We are facing a hang issue with Kamailio for the get_profile_size method.
Randomly, the Kamailio got hangs, and the CPU went 100%.
During the hanging time, we generated the TRAP and we could see that the
hang happened on the get_profile_size method. We are getting this hang
randomly in dlg_profile.c of the following lines:
The hang occurs, causing the CPU to spike to 100% at one of the following
lines randomly:
1. if(value->len == ph->value.len && memcmp(value->s, ph->value.s,
value->len) == 0) {
2. ph = ph->next;
3. while(ph != profile->entries[i].first);
During our analysis, we found that PROCESS ID 7608 gets a spike of 100%
utilization.
We suspect there may be an issue with the processing of the 'ph' variable,
but we couldn't identify the root cause. I've attached the Kamailio TRAP
for further details. Could you please suggest what might be causing this
problem and how we can resolve it?
Thank you.
Hello Kamailio Community,
I am currently working on a large scale VoIP deployment and would love to get insights on the best practices for scaling Kamailio. Our current setup handles a moderate volume of calls,,, but we’re expecting a significant increase in traffic soon. Specifically.., I am looking for advice on:
-Optimizing Kamailio’s configuration for high availability and performance.
-Efficiently managing load balancing and failover.
-Recommended hardware specifications for large-scale operations.
-Common pitfalls to avoid when scaling up.
Any tips or resources you could share would be greatly appreciated. If you have experience with similar projects,,, I’d love to hear about your setups and any challenges you faced.
Thank you!
Maria
[aws](https://www.igmguru.com/cloud-computing/aws-developer-certification-tr…
HI,
We are facing a hang issue with Kamailio for the get_profile_size method.
Ramdomly, the Kamailio got hangs, and the CPU went 100%.
During the hanging time, we generated the TRAP and we could see that the
hang happened on the get_profile_size method. We are getting this hang
randomly in dlg_profile.c of the following lines:
The hang occurs, causing the CPU to spike to 100% at one of the following
lines randomly:
1. if(value->len == ph->value.len && memcmp(value->s, ph->value.s,
value->len) == 0) {
2. ph = ph->next;
3. while(ph != profile->entries[i].first);
During our analysis, we found that PROCESS ID 7608 gets a spike of 100%
utilization.
We suspect there may be an issue with the processing of the 'ph' variable,
but we couldn't identify the root cause. I've attached the Kamailio TRAP
for further details. Could you please suggest what might be causing this
problem and how we can resolve it?
Thank you.
I have integrated Microsoft teams and freepbx using Kamailio version 5.8 as
my SBC.
Calls from freepbx to teams are working fine with audio and I am having
challenges with calls from teams to freepbx. The calls rings and after
answering there is only way audio and the call drops off after thirty
seconds. My pbx is behind a microtik router and I have port forwarded my sip
port and rtp ports to freepbx and have also disabled sip alg. My Kamailio is
hosted in AWS. Below are google drive links logs for the incoming call in
Kamailio , freepbx and my Kamailio.cfg. I am thinking It's a
misconfiguration challenge or something else. Please help I am failing to
see my challenge.
kamailio.pcap -
https://drive.google.com/file/d/1aoJhksgwcH-52unwxuyzn8GAmG9PEnOM/view?usp=s
haring
freepbx.pcap -
https://drive.google.com/file/d/1JJXs9UOUFak5Y4uWI_ARB56vQfVYfSDj/view?usp=s
haring
kamailio.cfg -
https://drive.google.com/file/d/1v2ZtylOf8fIMYH4OckGmnP489PO7WI7J/view?usp=s
haring
Best Regards
Hi,
I have a dialog where I have set:
dlg_set_property("timeout-noreset");
But it seems the timeout is reset anyway when handling an in-dialog UPDATE request, at least, on Kamailio 5.5.4. This does not seem to happen with reinvites.
I haven't been able to get more information thus far, other than to be able to say that there is nothing unusual about the UPDATE request and there are no additional errors at log level 2. I was wondering if anyone else has encountered this.
-- Alex
--
Alex Balashov
Principal Consultant
Evariste Systems LLC
Web: https://evaristesys.com
Tel: +1-706-510-6800
Hi,
we are using kamailio with app_python3.
It works very good, but in some cases, there are error logs stating:
app_python3 [python_exec.c:91]: apy_exec(): <python method> not found or is not callable
It happens sporadically, and a restart of kamailio fixes it.
As far as i can see it might be linked to concurrent arrival of several messages.
Best regards,
Johannes
# kamailio -v
version: kamailio 5.5.6 (x86_64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id:
compiled on 12:01:03 Jul 22 2024 with gcc 10.2.1
Hi
I am running kamailio 5.4 on debian
I have carrierfailureroute configured incase of primary service provider
fails. I also have Stirshaken configured to add Identity header on outbound
calls. Issue is when call fail overs to carrierfailureroute,
http_async_query changes $ru to the primary carrier
From the debug logs, when primary carrier sends a 488 (primary carrier
expects SIP TLS but my call is UDP - to test the failover scenario)
39(285) DEBUG: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn} tmx
[t_var.c:561]: pv_get_tm_reply_code(): reply code is <488>
39(285) DEBUG: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn}
carrierroute [cr_func.c:178]: set_next_domain_on_rule(): searching for
matching routing rules39(285) INFO: {1 18398 INVITE
8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn} carrierroute [cr_func.c:197]:
set_next_domain_on_rule(): next_domain is 47987
Carrier route rewrites the failover carrier
39(285) INFO: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn}
carrierroute [cr_func.c:706]: cr_do_route(): uri 14371234567 was rewritten
to sip:14371234567@sip.primaryprovider.com, carrier 1, domain 47987
Before http_async_query rd and ru are still the failover carrier
39(285) INFO: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn} <script>:
[callid: 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn] - [cfg:2976] - Debug testing
----- rd is sip.primaryprovider.com ----- ru is
sip:14371234567@sip.primaryprovider.com
39(285) DEBUG: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn}
http_async_client [async_http.c:469]: async_send_query(): transaction
suspended [5261:1830449764]
39(285) DEBUG: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn}
http_async_client [async_http.c:625]: async_push_query(): query sent [
https://authn-uat.ccid.neustar.biz/ccid/authn/v2/identity?apiKey=randomkey]
(0x7fdcad097e60) to worker 1
However, when the route is being called after the http_async_query it
changes to the primary one:
26(272) DEBUG: tm [t_lookup.c:1612]: t_lookup_ident_filter(): transaction
found
26(272) DEBUG: http_async_client [async_http.c:235]: async_http_cb():
resuming transaction (5261:1830449764)
26(272) DEBUG: tm [t_lookup.c:1612]: t_lookup_ident_filter(): transaction
found
26(272) INFO: <script>: [callid: 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn] -
[cfg:2995] - Debug testing ----- rd is 1.2.3.4 ----- ru is
sip:14371234567@1.2.3.4:5061;transport=TLS
Due to this, call keeps going to the primary and it fails
if ( http_async_query(STIRSHAKEN_AS_URL, "AS_RESPONSE") == -1 ) {
xlog("L_ERR ", "[cfg:$cfg(line)] Failed to connect AS service for token $fu
-> $tu \n");
return;
}
route[AS_RESPONSE] {
xlog("L_INFO", "[callid: $ci] - [cfg:$cfg(line)] - Debug testing ----- rd
is $rd ----- ru is $ru\n");
if ($http_ok) {
xlog("L_INFO", "[cfg:$cfg(line)] Resuming outbound call transaction for $fu
-> $tu Received - $http_rb \n");
# Add identity and Date headers
if (jansson_get("identity", $http_rb, "$var(identity)")) {
insert_hf("Identity: $var(identity)\n", "Content-Length");
}
if (jansson_get("date", $http_rb, "$var(date)")) {
if ($hdr(Date) != $null){
remove_hf("Date");
}
insert_hf("Date: $var(date)\n", "Identity");
}
} else {
xlog("L_ERR", "[cfg:$cfg(line)] Resuming outbound call transaction. Error -
$http_err)\n");
}
route(RELAY);
exit;
}
Please help to understand why rd / ru changes to primary carrier.
Regards,
Maharaja Azhagiah
Hi,
We are encountering a hang issue after deploying the following code:
*route(DLG_MANAGE);*
*if ($dlg_var(voip_id) == $null) { $dlg_var(voip_id) =
$hdr(X-Voip-ID);}route[DLG_MANAGE] { if (is_method("INVITE")) {
dlg_manage(); }}*
This code includes the set_dialog_profile. We have this setup with 2 proxy
servers with DMQ enabled, but the issue only occurs on one proxy.
When the Kamailio proxy hangs, no logs are written.
If you have any suggestions to resolve this issue, please help.
Thanks.
Hello,
Can anyone help me to resolve one issue? scenario is -
1- Register two UE (UE-A and UE-B)
2- Call from UE-A to UE-B for a specific duration (lets say: 100 seconds)
3 Verify if call is working: Answer is YES, call is working.
4. shutdown the eNB
5. Observation: No BYE/De-registration message is not coming as expected.
6. Again start eNB and register same UE (UE-A and UE-B)
7. Register UE-A and UE-B both
8. It will not remove previous contacts or not updating the reg-state.
9. I am running with Rx enable mode.
Hello everyone,
I am trying to use a single Kamailio server to register to multiple MS Teams Direct Routing endpoints.
The config snippet I am using is this:
sht_iterator_start("i1", "teams-endpoints");
while(sht_iterator_next("i1")) {
$var(teams_endpoint) = $shtitkey(i1);
$xavp(tls=>server_name) = $var(teams_endpoint);
$xavp(tls[0]=>server_id) = $var(teams_endpoint);
$uac_req(method)="OPTIONS";
$uac_req(ruri)="sip:sip.pstnhub.microsoft.com:5061;transport=tls";
$uac_req(furi)="sip:" + $var(teams_endpoint);
$uac_req(turi)="sip:sip.pstnhub.microsoft.com:5061;transport=tls";
$uac_req(hdrs)="Contact: <sip:" + $var(teams_endpoint) + ":" + "5061" + ";transport=tls>\r\n";
### Create a unique Call-ID based on the Timestamp and the Message Body in MD5
$var(unhashed_cid) = $TV(Sn) + $mb + "";
$uac_req(callid)=$(var(unhashed_cid){s.md5});
uac_req_send();
}
sht_iterator_end("i1");
When the HTable has only one endpoint, everything works fine.
When I add a second endpoint, the first one continues to work but the second one failing with the error from Microsoft:
Q.850;cause=63;text="85babcde-e0b5-4a85-8f4a-12345678c9ae;SBC certificate is not issued correctly. Provided trunk FQDN 'endpoint-02.domain.com' is not included in certificate's CN or SAN list. Certificate allows following FQDNs only: endpoint-01.domain.com.
After some digging around, I realized that all endpoint after the first fail because Kamailio is re-using the same TLS connection for all subsequent OPTIONS as well, but of course the connection has been established with the certificate of the first endpoint.
I have tested the certificates by switching around the first endpoint, so that shouldn't be a problem.
Is there any way I can force it to establish a new TCP/TLS connection for each subsequent request?
Any help would be much appreciated, I have been pulling my hair out with this one!
Best regards,
Nick
[https://s-install.avcdn.net/ipm/preview/icons/icon-envelope-tick-green-avg-…]<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_cam…> Virus-free.www.avg.com<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_cam…>
Hello!
I am working on with Kamailio, I have already understood to add log
prefix like `log_prefix="NAT {$rm $mt $hdr(CSeq) $ci}: "`, but I also want
to record event time, so
how can I config `datetime` in log files. Thanks~
if(t_suspend())
{
$dlg_var(start_time) = $timef(%Y/%m/%d %H:%M:%S);
xlog("L_NOTICE", "==> processing suspended in transaction [$T(id_index):$T(id_label)] ");
} else {
xlog("L_ERR", "t_suspend err");
exit;
}
Sometimes, I get this log==> processing suspended in transaction [0:13614] ",as far as I know, 0 means that the value cannot be obtained. Executing t_continue(tindex, tlabel, rtname) with parameter 0 will fail.by the way, It's a question of probability.
Hello,
I'm using the async_task_group_route for async module to handle some invites, when testing with sipp tools, I got some Dead call error message and after investigating It seems that for the same invite I sent multiple 302 message to sipp because the ACK sent by sipp was not handle before thr retr_timer1 & retr_timer2.
Please can you help me to free the transaction after sending the first 302 ? Thank you in advance.
Hi guys, some modules are not shown in Kamailio Kemi's documentation, such as secfilter. Is there any way to load them and use them in Python?
a way is to simulate the secfilter but it is not a general solution.
(Sorry in advance for the obvious question)
Hi guys, some modules are not shown in Kamailio Kemi's documentation, such as secfilter. Is there any way to load them and use them in Python?
a way is to simulate the secfilter but it is not a general solution.
(Sorry in advance for the obvious question)
Hi guys, some modules are not shown in Kamailio Kemi's documentation, such as secfilter. Is there any way to load them and use them in Python?
a way is to simulate the secfilter but it is not a general solution.
(Sorry in advance for the obvious question)