Hi guys,
starting from Fred article
https://www.fredposner.com/1836/kamailio-tls-and-letsencrypt/
we move step forward creating this small PoC to deploy Kamailio in docker
container with TLS enabled using Let's Encrypt
https://github.com/evoseed/kamailio-tls-letsencrypt
What do you think?
Any feedback?
Any mistakes to correct or improvements to make?
Thanks a lot
Have a good evening
Giovanni Tommasini
*evoseed s.r.l.*
phone: +39 340 11 28 800
mail: giovanni.tommasini(a)evoseed.io
site: evoseed.io
address: Via Lucrezio 13, Trieste Italy
I have in config:
modparam("sanity", "uri_checks", 3) /* RURI, From */
and then config call sanity_check() on incoming requests:
if (!sanity_check()) {
xnotice("Request from <$var(src_ip)> has invalid syntax\n");
exit;
};
When incoming request has:
From: sipp <sip:@192.168.255.95:5062>;tag=1
no notice is printed to syslog.
>From RFC 3261:
SIP-URI = "sip:" [ userinfo ] hostport uri-parameters [ headers ]
userinfo = ( user / telephone-subscriber ) [ ":" password ] "@"
user = 1*( unreserved / escaped / user-unreserved )
My understanding of that is that there needs to be at least one
character before @ sign.
-- Juha
i want to remove the First Via Header received from uac to kamailio.
so in my script i use remove_hf("Via") but in the relayed request i see that ";received=x.x.x.x;rport=xxxx" is left without any header before it.
i think internally kamailio adds a lump before i call the remove_hf function.
how to do it properly ?
Thanks
Hello,
Is it possible to run a background Python script within Kamailio? I.e.
call "fork_process" and then a non-terminating "python_exec()" from the
child?
--
-- regards
--
-- Matthias Urlichs
Hi,
I want to ask you if there is an approximate timeline for a kamailio 5.6 release?
We are planning an upgrade on our systems and are weighing different options.
Thank you
Stefan
Hello all,
I was trying to implement db_text and the documentation states it should be
something like
modparam("usrloc|auth_db", "db_url", "db_text:///tmp/kamailiodb")
but that doesn't work, it's
modparam("usrloc|auth_db", "db_url", "text:///tmp/kamailiodb")
so this line should probably be updated:
https://github.com/kamailio/kamailio/blob/master/src/modules/db_text/doc/db…
Regards,
David Villasmil
email: david.villasmil.work(a)gmail.com
phone: +34669448337
Hello Everyone,
I am trying inject DTMF and getting error message.
ERROR:rtpengine:rtpe_function_call: proxy replied with error: No SSRC context present for DTMF injection
I have full call rtpengine debug which I can provide upon request.
Rtpengine version
rtpengine-9.5.4.1-9.fc32.x86_64
Volga629
hello,
i want a generic way to get the sip uri in contact header.
for example if
Contact: Sipp <sip:6565@ip;ov=65;gid=45>;tid=700
i want a way to get both
<sip:6565@ip;ov=65;gid=45> (without header param)
and
<sip:6565@ip;ov=65;gid=45>;tid=700 (with header param)
Thanks.
Dear,
I use the address table to ENABLE UAC doesn't registererd in subscriber table just for emergency call then after the BYE to I remove it from the address table.
I 'd like to purge the UAC from address table BUT NEED to RELOAD in CACHE the address table.
To use the "kamctl address relaod" works BUT I want to reload the address table from my Kamailio.cfg (route).
I found the function "address_reload" ( https://kamailio.org/docs/modules/3.1.x/modules_k/permissions.html#id2528769)
but I have an error when trying to start kamailio.
Best regards,
--
Youssef BOUJRAF | Managing Director
Direct Line: +32 (0)2 880 33 30
Mobile: +32 (0)477 94 86 89
Dubai Mobile : +971 (0)55 9928871
Fax: +32 (0)2 318 82 21
Skype: y_boujraf
Email: yboujraf(a)by-research.be
Web : www.by-systems.be/
BY-SYSTEMS sprl| Avenue Charles Plisnier 13 | B-1070 Anderlecht | Belgium | TVA: BE 0819.832.617______________________________________________________________________________
This communication, issued by BY-SYSTEMS SPRL, is confidential and we do not waive confidentiality by mistransmission. If you have received it by mistake please notify the sender immediately by reply and then delete it permanently from your system without copying it, using it for any purposes or disclosing its contents to any other person. Thank you for your cooperation. Any views expressed in this message are those of the individual sender and may not necessarily reflect the views of BY-SYSTEMS SPRL. Emails are not secure and cannot be guaranteed to be error free as they can be intercepted, amended, lost or destroyed, or contain viruses. Anyone who communicates with us by email is taken to accept these risks.
Hello list,
I have kamailio 5.5.3 (x86_64/linux) configured as an SBC in front of asterisk to front end webrtc clients. Browser clients running JsSIP 3.7.0 connect to kamailio via webrtc and kamailio sends the traffic back to asterisk using SIP. rtpengine is configured to relay the RTP packets.
I need to send websocket pings every 10 seconds to the browser clients.
I have the following config in kamailio:
modparam("websocket", "keepalive_mechanism", 1)
modparam("websocket", "keepalive_timeout", 10)
modparam("websocket", "keepalive_interval", 2)
modparam("websocket", "keepalive_processes", 2)
modparam("websocket", "verbose_list", 1)
If my understanding of the documentation is correct, I do not need to do any additional configuration.
But looking at the websocket traffic, I do not see any ping packets in websocket. I am also using sipdump module to capture all packets sent and received by kamailio and the ping packets are not visible there either.
What could be wrong here? Do I need to do any additional config?
Thanks for every help!
X.
Have a need to strip out various parameters from the user portion of the RURI and/or the To (npdi, etc). Does anyone have any clever methods for doing so that don't involve just brute forcing through the individual parameters?
Confidentiality Notice: This e-mail, and any attachment to it, contains privileged and confidential information intended only for the use of the individual(s) or entity named on the e-mail. If the reader of this e-mail is not the intended recipient, or the employee or agent responsible for delivering it to the intended recipient, you are hereby notified that reading this e-mail is strictly prohibited. If you have received this e-mail in error, please immediately return it to the sender and delete it from your system.
Hi,
has anybody managed to connect to Zoom with Kamailio, ideally using
rtpengine?
I'm getting error 500 when I call them …
--
-- regards,
--
-- Matthias Urlichs
Hi,
We're currently testing Kamailio 5.5.3 on Debian 11 compiled with RADCLI
and we're experiencing an issue with radius authentication:
Feb 23 08:54:22 redacted /sbin/kamailio[817172]: WARNING: <script>: RADIUS
auth failed for redacted (IP:redacted:5060)
Feb 23 08:54:22 redacted /sbin/kamailio[817173]: radcli: rc_avpair_new:
rc_avpair_new: no attribute 1/1 in dictionary
Feb 23 08:54:22 redacted2 /sbin/kamailio[817173]: ERROR: auth_radius
[sterman.c:204]: add_cisco_vsa(): unable to add Cisco-AVPair attribute
I don't believe this is directly a Kamailio issue but enabling debug
logging hasn't revealed any clues ( The log lines remain the same without
additional info ) This was working previously on 5.5.X on Debian 9
Has anyone experienced this before or have any suggestions on where to
start looking?
Thanks
I'm testing with this kamailio version:
$ kamcmd version
kamailio 5.5.4 (x86_64/linux) 54c9df
on:
$ cat /etc/issue
Debian GNU/Linux 11 \n \l
with:
$ openssl version
OpenSSL 1.1.1k 25 Mar 2021
Whenever I start kamailio I get 3199 log lines like this:
2022-03-10T10:04:39.700676+09:00 lab002201-flip-server
/usr/local/src/git/kamailio-5.5/src/kamailio[261703]: CRITICAL: <core>
[core/mem/q_malloc.c:519]: qm_free(): BUG: freeing already freed pointer
(0x7f8eb57f7848), called from tls: tls_init.c: ser_free(323), first free
tls: tls_init.c: ser_free(323) - ignoring
I searched the issues at github and found:
https://github.com/kamailio/kamailio/issues/2560https://github.com/kamailio/kamailio/issues/2912
So I tried to start kamailio with
--atexit=no
but those logs remain.
With and without using --atexit=no there is no crash and all my tests are
OK.
But should I be worried to put this in production?
Hello
i try to fix one endpoint, it does neet do have a
a=rtpmap:116 telephone-event/8000
a=fmtp:116 0-15
sometimes i got:
a=rtpmap:115 telephone-event/8000
and sometimes:
a=rtpmap:114 telephone-event/8000
a=fmtp:114 0-15
so - should i use txtops and search for fmtp, and use
search_append_body ?
ifsearch_body(re) does not find 'a=fmtp:95' (95..127 - dynamic payload
here), or am I reinventing the wheel again ? Any hints?
--
Krzysztof Drewicz
Senior Infrastructure Administrator
CLUDO | ul. Grochowska 306/308, 03-840 Warszawa
t+48221223977
kdrewicz(a)cludo.pl | www.cludo.pl
Thanks for your time in advance!
When dealing with multiple headers in different formats, i.e.
Diversion: <sip:foo>, <sip:bar>
$hdrc(Diversion) returns 1 header instead of 2. Is this expected
behavior? What is the best way to manage all scenarios of possible
multiple header values? It seems currently there is no easy way to iterate
over ALL diversion headers, including scenarios like the following below:
Diversion: <sip:abc>
or
Diversion: <sip:abc>, <sip:def>
or
Diversion: <sip:abc>
Diversion: <sip:def>, <sip:ghi>
etc.
- Brandon
Hello,
Kamailio SIP Server v5.4.8 stable release is out.
This is a maintenance release of the latest stable branch, 5.4, that
includes fixes since the release of v5.4.7. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.4.x. Deployments running previous v5.4.x
versions are strongly recommended to be upgraded to v5.4.8.
Note that 5.4 is the second last stable branch, still officially maintained
by Kamailio development team. The latest stable branch is 5.5, with
v5.5.4 being release out of it.
For more details about version 5.4.8 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2022/03/kamailio-v5-4-8-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
March 28-31, 2022 (Europe Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hello,
I am planning to release a new version from branch 5.4, respectively
5.4.8, sometime next week, likely on Wednesday or Thursday (Mar 9/10, 2022).
If anyone is aware of issues not yet reported to bug tracker or missing
backports, report them in order to try to get the fixes in this release.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
March 28-31, 2022 (Europe Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hi Everyone,
I have Kamailio sitting between MS Teams and Asterisk, and using rtpengine to terminate SRTP on Kamailio so that all my internal traffic is unencrypted. My current config works fine for inbound calls where I initiate the INVITE and Teams responds, but if Teams sends the INVITE I am having an issue where SRTP cannot finish negotiating. Non SRTP calls work fine with RTPEngine as well, so it's just the RTP to SRTP I am struggling with.
According to this I believe I must pass a=crypto in response to the INVITE which also has a=crypto: https://www.dialogic.com/-/media/1f8b54b43087407d9c2b38846c5c2cb5.ashx?h=40…
You can see that in the initial invite from Teams, I get RTP/SAVP with a=crypto, but I do not send one in my OK response after 183 Session In Progress. As below - I am wondering if it's because not all audio channels seem to be getting swapped to SAVP?
I'd like to do a generic SRTP <> RTP bridge config (I've tried below). However, I am not 100% sure on how to detect when to swap between AVP and SAVP, so I've also tried just doing rtpengine_manage() and relying on other code to swap between SAVP or AVP *only* when going to/from Teams to keep it simple. I also tried both with and without "replace-origin replace-session-connection ICE=remove" but I still get the same behaviour in all cases.
Any advice appreciated, as this is my first time dealing with SRTP (and rtpengine). Feeling very stuck. Thanks!
branch_route[MANAGE_BRANCH] {
...
route(NATMANAGE);
route(HANDLE_SRTP);
}
onreply_route[MANAGE_REPLY] {
xdbg("incoming reply\n");
if(status=~"[12][0-9][0-9]") {
route(NATMANAGE);
}
route(HANDLE_SRTP);
}
route[HANDLE_SRTP] {
if (!has_body("application/sdp")) {
return;
}
rtpengine_manage();
return; # As a test, just do rtpengine_manage() and set SAVP/AVP elsewhere. Same behaviour.
# Handle bridging of RTP and SRTP
# Inbound traffic to SBC should be converted from SRTP to RTP
if (proto==TLS) {
rtpengine_manage("RTP/AVP");
# Outbound traffic destined to a TLS destination should be converted from RTP to SRTP
} else if ($ru =~ "transport=tls") {
rtpengine_manage("RTP/SAVP");
}
}
# INVITE from teams
rtpengine_manage("replace-origin replace-session-connection ICE=remove RTP/AVP");
# INVITE to teams
rtpengine_manage("replace-origin replace-session-connection ICE=remove RTP/SAVP");
INVITE sip:+614xxxx@rh.sbc-syd-01.teams.xxxx:5061;user=phone;transport=tls SIP/2.0^M
...
v=0^M
o=- 57931 0 IN IP4 127.0.0.1^M
s=session^M
c=IN IP4 52.113.76.53^M
b=CT:10000000^M
t=0 0^M
m=audio 51398 RTP/SAVP 104 9 103 111 18 0 8 97 101 13 118^M
c=IN IP4 52.113.76.53^M
a=rtcp:51399^M
a=ice-ufrag:C8ss^M
a=ice-pwd:2bV9D6GcXF5f8m0px/wufQD/^M
a=rtcp-mux^M
a=candidate:1 1 UDP 2130706431 52.113.76.53 51398 typ srflx raddr 10.0.32.179 rport 51398^M
a=candidate:1 2 UDP 2130705918 52.113.76.53 51399 typ srflx raddr 10.0.32.179 rport 51399^M
a=candidate:2 1 tcp-act 2121006078 52.113.76.53 49152 typ srflx raddr 10.0.32.179 rport 49152^M
a=candidate:2 2 tcp-act 2121006078 52.113.76.53 49152 typ srflx raddr 10.0.32.179 rport 49152^M
a=label:main-audio^M
a=mid:1^M
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:geUHLB1mshmnI5hN83bnO57Hbdm2i7dD14sDAnpA|2^31^M
a=sendrecv^M
a=rtpmap:104 SILK/16000^M
a=rtpmap:9 G722/8000^M
a=rtpmap:103 SILK/8000^M
a=rtpmap:111 SIREN/16000^M
a=fmtp:111 bitrate=16000^M
a=rtpmap:18 G729/8000^M
a=fmtp:18 annexb=no^M
a=rtpmap:0 PCMU/8000^M
a=rtpmap:8 PCMA/8000^M
a=rtpmap:97 RED/8000^M
a=rtpmap:101 telephone-event/8000^M
a=fmtp:101 0-16^M
a=rtpmap:13 CN/8000^M
a=rtpmap:118 CN/16000^M
a=ptime:20^M
I correctly convert to/from RTP/AVP and RTP/SAVP for the 183 Session in progress. It is RTP/SAVP before going to Teams:
SIP/2.0 183 Session Progress^M
...
v=0^M
o=- 57931 2 IN IP4 1.2.3.4^M
s=NexusOne^M
c=IN IP4 1.2.3.4^M
t=0 0^M
m=audio 37820 RTP/SAVP 9 8 0 101^M
a=maxptime:150^M
a=mid:1^M
a=rtpmap:9 G722/8000^M
a=rtpmap:8 PCMA/8000^M
a=rtpmap:0 PCMU/8000^M
a=rtpmap:101 telephone-event/8000^M
a=fmtp:101 0-16^M
a=sendrecv^M
a=rtcp:37821^M
a=ptime:20^M
m=audio 0 RTP/AVP 104 9 103 111 18 0 8 97 101 13 118^M
m=audio 0 RTP/AVP 104 9 103 111 18 0 8 97 101 13 118^M
But then when I send the OK after the 183, I am setting RTP/SAVP before sending to MS Teams, but not setting a=crypto:
Also note that I can see there are _some_ channels still as RTP/AVP so maybe this is part of the issue.
SIP/2.0 200 OK^M
...
v=0^M
o=- 57931 2 IN IP4 1.2.3.4^M
s=NexusOne^M
c=IN IP4 1.2.3.4^M
t=0 0^M
m=audio 37820 RTP/SAVP 9 8 0 101^M
a=maxptime:150^M
a=mid:1^M
a=rtpmap:9 G722/8000^M
a=rtpmap:8 PCMA/8000^M
a=rtpmap:0 PCMU/8000^M
a=rtpmap:101 telephone-event/8000^M
a=fmtp:101 0-16^M
a=sendrecv^M
a=rtcp:37821^M
a=ptime:20^M
m=audio 0 RTP/AVP 104 9 103 111 18 0 8 97 101 13 118^M
m=audio 0 RTP/AVP 104 9 103 111 18 0 8 97 101 13 118^M
Rhys Hanrahan | Chief Information Officer
e: rhys(a)nexusone.com.au<mailto:rhys@nexusone.com.au>
[www.nexusone.com.au]<http://www.nexusone.com.au/> [signature_1116663581] <http://www.fusiontech.com.au/>
NEXUS ONE | FUSION TECHNOLOGY SOLUTIONS
p: 1800 NEXUS1 (1800 639 871) or 1800 565 845 | a: Suite 12.03 Level 12, 227 Elizabeth Street, Sydney NSW 2000
www.nexusone.com.au<http://www.nexusone.com.au/> | www.fusiontech.com.au<http://www.fusiontech.com.au/>
The information in this email and any accompanying attachments may contain; a. Confidential information of Fusion Technology Solutions Pty Ltd, Nexus One Pty Ltd or third parties; b. Legally privileged information of Fusion Technology Solutions Pty Ltd, Nexus One Pty Ltd or third parties; and or c. Copyright material Fusion Technology Solutions Pty Ltd, Nexus One Pty Ltd or third parties. If you have received this email in error, please notify the sender immediately and delete this message. Fusion Technology Solutions Pty Ltd, Nexus One Pty Ltd does not accept any responsibility for loss or damage arising from the use or distribution of this email.
Please consider the environment before printing this email.
Hi,
I'm using Kamailio 5.5.3 with a KEMI / Python based configuration on Debian
11.
In my reply route I am trying to convert a 183 to a 180 with:
KSR.textopsx.change_reply_status(180,
"Ringing")
I've noticed with TOPOS enabled, it doesn't work and I still see a 183 go
out. But with it disabled, it works as expected and it's converted to a
180. I get the same behaviour with / without msg_apply_changes()
Config looks like this:
def ksr_onreply_manage(self, msg):
KSR.info(f"ksr_onreply_manage\r\n")
scode = KSR.pv.get("$rs")
if KSR.permissions.allow_source_address_group()<0:
if scode == 183:
KSR.info(f"ksr_onreply_manage: Converting 183 to 180\r\n")
KSR.textopsx.change_reply_status(180, "Ringing")
KSR.textopsx.msg_apply_changes()
if scode>100 and scode<299 :
self.ksr_route_natmanage(msg)
return 1
The debug log doesn't reveal anything too obvious, I can share if its of
any use.
Does anyone have any suggestions?
Thanks
Matthew
Hi Dear
I am trying to understand how "listen" and "advertise" work for sip
signaling purpose ( corebooks : listen
<http://www.kamailio.org/wiki/cookbooks/5.4.x/core#listen> and advertise )
Flow : kamailio behind NAT using softphones on private and public networks.
- kamailio :
Network :
IPv4_private 192.168.1.6 / IPv4_public
kamailio.cfg :
listen=udp: IPv4_private: 5060 advertise IPv4_public : 5060
- uac (softphone) :
zoiper, microsip, cisco spa508g
USE CASE :
I 'd like to force all softphone on the same local network to reach
kamailio through a public ip address.
??? QUESTION : Do I need to REGISTER on IPv4_private address of Kamailio OR
REGISTER on IPv4_public address of kamailio or DEFINE another "listen" with
another PORT WITHOUT "advertise" for softphone on same kamailio network ?
listen=udp: IPv4_private: 5060 advertise IPv4_public : 5060
listen=udp: IPv4_private: 5066
Do I need to use "kamctl ps" to verify which interface is listening on port
?
Thanks in advance
Best Regards,
Youssef BOUJRAF
Email: yboujraf(a)gmail.com
Hello,
We searched for a simple GUI that could drive a kamailio - a bunch of
trunks, some custom logic, tried to use open source Sipwise C5 - a way too
big and heavy.
Any hints ? links ? Mabe a paid subscription?
Our goal is - to have a GUI that could - put a version number to
configuration, and have a simple way to audit changes - only to log - what
was done, when and from which management account.
vi + svn/git - it's working but this is no GUI, ACLs in sqlite, also work,
but - need to have a ssh console, keep files in some repository - well this
is simply inconvenient when you have more than 5 trunks with registration
etc...
BR,
--
*Krzysztof Drewicz*
Senior Infrastructure Administrator
CLUDO | ul. Grochowska 306/308, 03-840 Warszawa
t+48221223977
kdrewicz(a)cludo.pl | www.cludo.pl <http://www.cludo.pl/>
Hi,
My Kamailio installation originates TLS connections using source port 5061.
Is there a way to teach it not to do that? Seting tcp_reuse_port=no
doesn't have any effect.
--
-- Matthias Urlichs
Hi All,
I am new to Kamailio and testing location server using kamailio and
redis-cluster.
My setup is simple: All SIP REGISTER messages will be forwarded to this
location-server. The server checks for AUTH and then needs to save the
usrloc in redis-cluster.
I have hiredis and hiredis-cluster libraries installed
I am using ndb_redis to support redis-cluster with below configuration:
modparam("ndb_redis", "server", "name=172.17.0.3:7000
;addr=172.17.0.3;port=7000")
modparam("ndb_redis", "server", "name=172.17.0.4:7001
;addr=172.17.0.4;port=7001")
modparam("ndb_redis", "server", "name=172.17.0.5:7002
;addr=172.17.0.5;port=7002")
modparam("ndb_redis", "server", "name=172.17.0.6:7003
;addr=172.17.0.6;port=7003")
modparam("ndb_redis", "server", "name=172.17.0.7:7004
;addr=172.17.0.7;port=7004")
modparam("ndb_redis", "server", "name=172.17.0.8:7005
;addr=172.17.0.8;port=7005")
modparam("ndb_redis", "cluster", 1)
If SIP method is REGISTER, Kamailio sends redis_cmd to store as below:
redis_cmd("172.17.0.3:7000", "sadd %s %s", "location:usrdom::437780082:
mazhagiah.sip.zang.io", "location:entry::$xavp(ulrcd=>ruid)", "r");
However, redis-cluster replies with MOVED message, but kamailio / ndb_redis
throughs error as below:
0(3915) DEBUG: ndb_redis [redis_client.c:391]: redisc_get_server(): Hash
2590462363 (172.17.0.3:7000)
0(3915) DEBUG: ndb_redis [redis_client.c:395]: redisc_get_server(): Entry
2591109923 (172.17.0.8:7005)
0(3915) DEBUG: ndb_redis [redis_client.c:395]: redisc_get_server(): Entry
2590232843 (172.17.0.7:7004)
0(3915) DEBUG: ndb_redis [redis_client.c:395]: redisc_get_server(): Entry
2590175467 (172.17.0.6:7003)
0(3915) DEBUG: ndb_redis [redis_client.c:395]: redisc_get_server(): Entry
2590347603 (172.17.0.5:7002)
0(3915) DEBUG: ndb_redis [redis_client.c:395]: redisc_get_server(): Entry
2590290227 (172.17.0.4:7001)
0(3915) DEBUG: ndb_redis [redis_client.c:395]: redisc_get_server(): Entry
2590462363 (172.17.0.3:7000)
0(3915) DEBUG: ndb_redis [redis_client.c:896]: redisc_exec():
rsrv->ctxRedis = 0x558e4d739210
0(3915) DEBUG: ndb_redis [redis_client.c:903]: redisc_exec():
rsrv->ctxRedis = 0x558e4d739210
0(3915) DEBUG: ndb_redis [redis_client.c:957]: redisc_exec():
rpl->rplRedis->type:6
0(3915) ERROR: ndb_redis [redis_client.c:959]: redisc_exec(): Redis
error:MOVED 10082 172.17.0.4:7001
0(3915) DEBUG: <core> [sruid.c:182]: sruid_next(): new sruid is
[uloc-621e8438-f4b-b] (11 / 19)
0(3915) DEBUG: registrar [save.c:410]: pack_ci(): generated ruid is:
uloc-621e8438-f4b-b
0(3915) DEBUG: <core> [sruid.c:182]: sruid_next(): new sruid is
[uloc-621e8438-f4b-c] (12 / 19)
Please help if I am missing anything with my configuration or library.
Thanks
Raja
Hello,
I have a problem with Kamailio 5.4.6 and auth_ephemeral. I have the
following in the Kamailio configuration
loadmodule "auth_ephemeral"
modparam( "auth_ephemeral", "sha_algorithm", 3 )
modparam( "auth_ephemeral", "username_format", 0 )
modparam( "auth_ephemeral", "secret", 1234 )
as per
https://kamailio.org/docs/modules/4.1.x/modules/auth_ephemeral.html#auth_ep…
and registrations fail. In the logs we see:
Jan 2 18:21:10 enswitch43 /sbin/kamailio[37501]: DEBUG: {1 545 REGISTER
rhaqgafd7boteg24jp5db0} sanity [sanity.c:777]: check_parse_uris():
looking up From header
Jan 2 18:21:10 enswitch43 /sbin/kamailio[37501]: DEBUG: {1 545 REGISTER
rhaqgafd7boteg24jp5db0} sanity [sanity.c:817]: check_parse_uris():
parsing From URI
Jan 2 18:21:10 enswitch43 /sbin/kamailio[37501]: DEBUG: {1 545 REGISTER
rhaqgafd7boteg24jp5db0} <core> [core/parser/parse_uri.c:1296]:
parse_uri(): bad port in uri (error at char 5 in state 2) parsed:
<sip:3518929:16411>(17) /<sip:3518929:1641150726@192.168.2.99> (35)
Jan 2 18:21:10 enswitch43 /sbin/kamailio[37501]: WARNING: {1 545
REGISTER rhaqgafd7boteg24jp5db0} sanity [sanity.c:820]:
check_parse_uris(): failed to parse From uri
Apparently Kamailio is confused by the timestamp following the username
separated by the : character. The REGISTER message is below:
REGISTER sip:192.168.2.99 SIP/2.0
Via: SIP/2.0/WSS 192.0.2.202;branch=z9hG4bK5452321
Max-Forwards: 70
To: "3518929" <sip:3518929:1641148397@192.168.2.99>
From: "3518929" <sip:3518929:1641148397@192.168.2.99>;tag=ht76o8b2b6
Call-ID: phkj9mi2n3s3ju7uu3qq2f
CSeq: 274 REGISTER
Contact:
<sip:edh7mmti@192.0.2.202;transport=wss>;reg-id=1;+sip.instance="<urn:uuid:ca5e9372-dfa1-459a-b6ba-4398d23bd896>";expires=300
Allow: ACK,CANCEL,INVITE,MESSAGE,BYE,OPTIONS,INFO,NOTIFY,REFER
Supported: path, gruu, outbound
User-Agent: Raspberry Phone (SipJS - 0.11.6)
Content-Length: 0
and Kamailio parses it as sip:<username>:<port> instead of
sip:<username>:<timestamp>.
Is this a bug that should be reported or is there any setting that I am
missing?
Hi List
We t_on_failure re-route calls to another destination in case one fails
for example announcement servers...
Before sending to the announcement server I do add some extra header to
define which announcement in which language should be played:
append_hf("IMP-annc: $avp(announcecode)\r\n");
append_hf("IMP-mandate: $avp(mandate)\r\n");
append_hf("IMP-language: $avp(callerlang)\r\n");
Also $rU is being set prior to sending the call to the announcement
server.
Now one of our announcement servers became unavailable and t_on_failure
was triggered.
The 2nd announcement servers was receiving the calls without any of the
additional header and with the 'inbound' $ru without the altered $rU
https://www.kamailio.org/docs/modules/devel/modules/tm.html#tm.f.t_on_failu…
I'm a bit confused by that, as this states the URI is reset to the
value it had on 'relaying'. Is this on 'inbound replaying' or on
'outbound relaying' when route(RELAY) was called to send the call TO
the first annoucement server?
Is there a bit more specific information on that behaviour?
--
Mit freundlichen Grüssen
-Benoît Panizzon- @ HomeOffice und normal erreichbar
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web http://www.imp.ch
______________________________________________________
Greetings,
I'm new to Kamailio and working to add Kamailio to an existing Asterisk
solution. I'm attracted to the idea of routing via KEMI jsdt since our
Asterisk ARI is using nodejs. Playing with KEMI jsdt I was trying to use
require() to break up the monolithic routing script. It seems that Kamailio
uses Ducktape 2 without module-node or module-ducktape, requiring all
routing in a single file? I'd appreciate any suggested practices for
managing Kamailio configurations.
Cheers,
Ian
Hi everyone,
in my environment (kamailio - http API for retrieve destinations -
rtpengine) it is used a lot parallel forking, the flow is as follows:
A -> INVITE -> Kamailio -> http API/rtjson / t_relay -> Kamailio -> client
B / C / D (only one accepting the call)
Kamailio loops to itself to have a parallel forking, it involves rtpengine
correctly.
Both audio and video work during call.
The issue comes with one of destinations sending 183 with SDP, the caller
will send then a video preview as early media before call is established.
I noticed that only the first one "asking" for early media is receiving
this video preview (sometimes none of clients requesting it), all others
are ignored by caller.
This is a case of 1-to-many, I searched a lot about this but it seems at
least not working or not supported, could you confirm that there is no
configuration trick possible to make work this early media to many
destinations?
Another issue in above call flow, is that if client B is receiving
correctly this early media video and client C answers the call (200OK)
client C does not see any video, audio working and video is completely
missing from rtp, only a reinvite makes possible to see video. Is this a
client side only issue (so only solution is the reinvite) or there is
something missing on my kamailio configuration?
Thanks
Filippo
Hello,
I use DNS failover feature for routing some calls, and I wonder about its limitations.
I noticed that INVITE and ReINVITE requests are correctly routed based on SRV priority/weight in case of failure, but ACK requests do not use them.
Let’s say I have Kamailio A relaying requests to a pool of Kamailios B1 and B2 in TLS.
DNS records are the below ones.
kamailiob.net. 60 NAPTR 20 100 S SIPS+D2T _sips._tcp.kamailiob.net.
_sips._tcp.kamailiob.net. 60 SRV 1 10 5061 kamailiob-1.net.
_sips._tcp.kamailiob.net. 60 SRV 2 10 5061 kamailiob-2.net.
If B1 is down, I expect requests being relayed to B2 (because of priority 2 in the SRV record).
* For initial INVITEs: R-URI is sip:kamailiob.net
* If B1 is down, the request is retried to B2 => OK
* For in-dialog requests: Route header in incoming request is sip:kamailiob.net so it is set as next destination with loose_route function
* If B1 is down, the request is retried to B2 for ReINVITE => OK
* But once the ACK comes in, with the same Route header (sip:kamailiob.net), Kamailio tries to send it to B1 only (no retries to B2, and even no retransmissions to B1 either).
* When B1 is back UP again a few seconds later, Kamailio does not try to relay the ACK again. The ACK request is attempted to be retransmitted only once to B1. It fails and no more retries after that.
Is it the expected behavior? Or is it something misconfigured on Kamailio A? Or is it a TLS connection issue?
Here is the DNS configuration on Kamailio A (TM module is enabled):
dns_try_naptr=yes
use_dns_failover=yes
use_dns_cache=yes
dns_srv_lb=yes
enable_tls=yes
tcp_max_connections=4096
tls_max_connections=4096
tcp_reuse_port=yes
tcp_connect_timeout=10
tcp_send_timeout=10
tcp_connection_lifetime=3600
I had a look into the DNS tutorial (https://github.com/kamailio/kamailio/blob/master/doc/tutorials/dns.txt) without finding any hint about this.
If anyone has already played with SIP DNS failover in Kamailio, your help would be appreciated, thanks!
Julien
Hi all,
I'm switching my kamailio to use Let's Encrypt certificates.
Do I need to force a restart of kamailio when the certificate
is renewed or will this be automatic?
The doc indicates that reload is possible (but not advised)
but it looks to be for a "configuration change" (tls.cfg file change)
and not for certificate change.
Maybe certificates are automatically reloaded?
Regards
Aymeric
--
Antisip - http://www.antisip.com
Hello,
My problem: our provider opens a TLS connection to us. They want us to
use this channel for outgoing calls, instead of opening a new SIP
connection to their server.
Is there a way to teach Kamailio to do that?
--
-- Matthias Urlichs
Hello guys,
We're dispatching with hash over user, if i execute dispatcher.reload
<http://www.kamailio.net/docs/modules/5.0.x/modules/dispatcher.html#dispatch…>
does the dispatcher list gets calculated? i.e. user A is always dispatched
to box3, if i reload, is the hash recalculated and will probably be
dispatched differently?
Regards,
David Villasmil
email: david.villasmil.work(a)gmail.com
phone: +34669448337
Hello,
I would like to do a load balance between Asterisk SIP trunks. You can see
a diagram from this link:
https://drive.google.com/file/d/1Qy66L5rQCfxysYQpSd2-ek_8-by0T8PR/view?usp=…
SIP Packets capture log:
https://drive.google.com/file/d/1CHGUOwoRDAC93MMBtyfa8gBISKIVC-ng/view?usp=…
Details
1. Asterisk1 makes SIP trunk connection with Kamailio.
2. Kamailio makes SIP trunk connection with Asterisk2 and Asterisk3
3. Caller register SIP phone with Asterisk1
Caller extension = 8002
4. Asterisk2 makes a blind transfer to Kamailio. (Call to 8009 then
transfer to ARI APP)
exten = 8009,1,Transfer(SIP/3802@<kamailio public IP>)
5. ARI app extension is 3802
My problem is that Kamailio LB only works when I try to connect
with Asterisk1 and Asterisk2 or Asterisk1 and Asterisk3. If I have two
Asterisks in dispatcher.list, it doesn't work and it appears *SIP/2.0 401
Unauthorized* in sip packets capture log.
Kamailio version: 5.5.2
Kamailio.cfg
modparam("dispatcher", "list_file", "/etc/kamailio/dispatcher.list")
modparam("dispatcher", "flags", 3)
modparam("dispatcher", "xavp_dst", "_dsdst_")
modparam("dispatcher", "xavp_ctx", "_dsctx_")
# Dispatch requests
route[DISPATCH] {
# round robin dispatching on gateways group '1'
if(!ds_select_dst("1", "4")) {
send_reply("404", "No destination");
exit;
}
xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
# Try next destionations in failure route
failure_route[RTF_DISPATCH] {
if (t_is_canceled()) {
exit;
}
# next DST - only for 500 or local timeout
if (t_check_status("500")
or (t_branch_timeout() and !t_branch_replied())) {
if(ds_next_dst()) {
xdbg("--- SCRIPT: retrying to <$ru> via <$du>
(attrs: $xavp(_dsdst_=>attrs))\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
}
}
dispatcher.list
# setid(int) destination(sip uri) flags(int,opt) priority(int,opt)
attrs(str,opt)
1 sip:10.148.0.31:5123
1 sip:10.148.0.44:5123
Thanks,
Warawich
I'm not sure if this is by design or not. I have things I want to log to a SQL DB, but it's not nearly as important as call handling, so the sql_query_async() function looked ideal, but in testing, if the DB is not responsive, the call processing gets blocked. In the example below, I'm using just a short hostname which isn't resolvable, but if I have an IP address there that isn't really assigned (for example if the DB server is down), the same blocking behavior is exhibited, but the error is slightly different (can't connect instead of unknown host).
Here's my config. This specific simple config was tested on Kamailio 5.5, but I observe similar behavior (in a more complicated config) in the dev branch as well.
- - - -
#!KAMAILIO
async_workers=2
loadmodule "db_mysql"
loadmodule "sqlops"
loadmodule "sl"
loadmodule "xlog"
loadmodule "pv"
force_rport=yes
## Host sql does not resolve.
modparam("sqlops","sqlcon","cb=>mysql://kamailio:kamailiorw@sql/kamailio")
## But start anyways.
modparam("sqlops", "connect_mode", 1)
request_route {
sl_send_reply("100", "Trying"); ## Prevent re-transmissions from the UAC
xlog("L_NOTICE", "Time before sql_query_async(): [$TV(Sn)]\n");
sql_query_async("cb", "INSERT INTO table1 (col) VALUES ('val')");
xlog("L_NOTICE", "Time before sl_send_reply(): [$TV(Sn)]\n");
sl_send_reply("404", "Not found");
}
Here's the log if I send a simple INVITE with SIPp. Note the timestamps
9(16) NOTICE: <script>: Time before sql_query_async(): [1645574694.546165]
9(16) ERROR: db_mysql [km_my_con.c:163]: db_mysql_new_connection(): driver error: Unknown MySQL server host 'sql' (-3)
9(16) ERROR: <core> [db.c:319]: db_do_init2(): could not add connection to the pool
9(16) ERROR: sqlops [sql_api.c:190]: sql_reconnect(): failed to connect to the database [cb]
9(16) ERROR: sqlops [sqlops.c:232]: sql_check_connection(): failed to connect to database
9(16) ERROR: sqlops [sqlops.c:264]: sql_query_async(): invalid connection to database 9(16) NOTICE: <script>: Time before sl_send_reply(): [1645574699.552440]
Ben Kaufman
Sr. VoIP Engineer - BCM One
+1.612.735.9309
bkaufman(a)bcmone.com<mailto:bkaufman@bcmone.com>
24 hour client support: +1.855.639.6300
[https://www.bcmone.com/files/bcmone-logo.png]<https://www.bcmone.com/> [https://www.bcmone.com/files/twitter-icon-circle.png] <https://www.facebook.com/bcmonenyc/> [https://www.bcmone.com/files/twitter-icon-circle.png] <https://twitter.com/bcm_one/> [https://www.bcmone.com/files/linkedin-icon-circle.png] <https://www.linkedin.com/company/business-communications-management/>
NOTE: This e-mail and any attachments are from BCM One, Inc. and are intended
solely for the use and review of the individual(s) to whom it is addressed.
If you believe you received this e-mail in error, please notify the sender
immediately, delete the e-mail (and any attachments) from your computer and do
not copy or disclose it to anyone else.
Dear,
I enabled two softphone with ADDRESS.
- codec1 : ip 192.168.30.241/32 5060
- codec2 : ip 192.168.30.242/32 5060
I enable one softphone with SUBSCRIBER
- codec3 : is registered (login/passwd)
codec4 is not part of the domain, is not subriber and address.
Kamailio proxy
- kamailio : ip 192.168.30.240/32 5060
In the kamailio.cfg
ROUTE[AUTH]# IP authorization and user authenticationroute[AUTH] {#!ifdef WITH_AUTH #!ifdef WITH_IPAUTH if((!is_method("REGISTER")) && allow_source_address()) { # source IP allowed return; }#!endif if (is_method("REGISTER") || from_uri==myself) { # authenticate requests if (!auth_check("$fd", "subscriber", "1")) { auth_challenge("$fd", "0"); exit; } # user authenticated - remove auth header if(!is_method("REGISTER|PUBLISH")) consume_credentials(); } # if caller is not local subscriber, then check if it calls # a local destination, otherwise deny, not an open relay here if (from_uri!=myself && uri!=myself) { sl_send_reply("403","Not relaying"); exit; } #!else # authentication not enabled - do not relay at all to foreign networks if(uri!=myself) { sl_send_reply("403","Not relaying"); exit; } #!endif return;}
Regarding the condition
#!ifdef WITH_IPAUTH if((!is_method("REGISTER")) && allow_source_address()) { # source IP allowed return; }#!endif
USE CASE :
If codec4 (not registered or same domain) tries to INVITE codec3 (in subscriber) the codec, an INVITE MESSAGE is sent and the codec3 could ACK.
- But I don't want to allow the INVITE, I 'd like to not allow the codec4 to reach codec3.
- But if codec1 or codec2 tries to reach codec3, kamailio will allow the INVITE.
Best Regards,
--
Youssef BOUJRAF
Hi all, I'm facing a strange behaviour from a client (iOS application based
on pjsip library) which is doing as follow when receiving a call (on phone
locked):
- accept the call rejecting video (m=video 0...) in SDP
- reinvite to negotiate again video media
Specifically the reinvite passing through kamailio (+rtpengine) has this
SDP body after rtpengine offer (the client use TLS so I can't see the
original message):
v=0
o=- 3854443139 3854443142 IN IP4 PUBLIC_RTP_ENGINE_IP
s=pjmedia
b=AS:386
t=0 0
a=X-nat:0
m=audio 46734 RTP/AVP 8 101
c=IN IP4 PUBLIC_RTP_ENGINE_IP
b=TIAS:96000
a=ssrc:1456418416 cname:441b90ac6db72f22
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv
a=rtcp:46735
m=video 0 RTP/AVP 96
c=IN IP4 PUBLIC_RTP_ENGINE_IP
b=TIAS:256000
m=video 46776 RTP/AVP 98
c=IN IP4 PUBLIC_RTP_ENGINE_IP
b=TIAS:256000
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=42e01e; packetization-mode=1
a=sendrecv
a=rtcp:46777
from this I can understand that the client is doing something strange,
because there is still the rejection line (I know that this question should
go to the pjsip guys) but I would also like to know if it is possible to
"clean" this sdp by kamailio.
A few clients receiving this sdp are answering with only audio.
Reading the docs, sdpops/textops modules allow modifying lines by prefix or
media, but till now I have no luck to exclude only the line "m=video 0
RTP/AVP 96" and his attributes without touching the correct video request.
Could someone please give me some hints on it?
Dear Kamailio Expert,
Could you help me switching redirect sip server to another sip server ?
As described below architecure.
I have some uac_redirect module to implement , but kamailio cannot perform
running states.
Pleas help to reditect sip server to another sip server.
Thanks & Best regards,
Hi all,
We had to connect to an SBC, which was not compliant to RFC 3261.
It was urgent, because management was waiting for first call.
Within minutes, I could implement a workaround in kamailio routing configuration:
## CV experimental 2022-02-17: fake Supported HF
if (is_present_hf("Require") && !is_present_hf("Supported")) {
append_hf("Supported: $hdr(Require)\r\n", "Require");
msg_apply_changes();
}
Thank you, kamailio!
All the best
Christoph
Hello Experts,
Please help me to change port service from default 5060 port into other
port due to security reason. Since I have change port in kamailio.cfg file,
but services cannot fly normally that shown client unable login online
(status not online).
[image: image]
<https://user-images.githubusercontent.com/76675592/154027407-24ab423b-302b-…>
Besides, I need to run the kamailio services after install default
kamailio, I have not found where procedure found in this installation
process on github.com/kamailio.
Could you please share if there another steps of compiling Kamailio source,
install, deploy process, and running command for this specific installation
process?
Thanks
Gb
Hello,
Kamailio SIP Server v5.5.4 stable release is out.
This is a maintenance release of the latest stable branch, 5.5, that
includes fixes since the release of v5.5.3. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.5.x. Deployments running previous v5.5.x
versions are strongly recommended to be upgraded to v5.5.4.
For more details about version 5.5.4 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2022/02/kamailio-v5-5-4-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Hello,
I am considering to release Kamailio v5.5.4 later this week, likely on
Thursday, Feb 17, 2022. This is the usual heads up
notification to see if anyone is aware of issues not yet reported to bug
tracker and if yes, do it as soon as possible to give them a chance to
be fixed.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
Feb 21-24, 2022 (America Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hello,
I want to announce the availability of sipexer v1.0.0 - a sip cli tool
that can facilitate testing and monitoring of SIP signalling systems. It
tries to have a modern approach, with a flexible templating system,
supporting both IPv4 and IPv6 with all the common transport layers,
respectively UDP, TCP, TLS and WebSocket (for WebRTC).
The project can be found at:
* https://github.com/miconda/sipexer
It is written in Go language for better portability, binaries for Linux,
MacOS and Windows are made available for download in the release page:
* https://github.com/miconda/sipexer/releases/tag/v1.0.0
Among its features:
* send OPTIONS request (quick SIP ping to check if server is alive)
* do registration and un-registration with customized expires value
and contact URI
* authentication with plain or HA1 passwords
* set custom SIP headers
* template system for building SIP requests
* fields in the templates can be set via command line parameters or a
JSON file
* variables for setting field values (e.g., random number, data,
time, environment variables, uuid, random string, …)
* simulate SIP calls at signalling layer (INVITE-wait-BYE)
* respond to requests coming during SIP calls (e.g., OPTIONS keepalives)
* send instant messages with SIP MESSAGE requests
* color output mode for easier troubleshooting
* support for many transport layers: IPv4 and IPv6, UDP, TCP, TLS and
WebSocket (for WebRTC)
* send SIP requests of any type (e.g., INFO, SUBSCRIBE, NOTIFY, …)
One usage example that could ease the testing of Kamailio is initiating
registrations or simulating calls over WebSocket without the need of
having a JavaScript soft phone application running in a web browser.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://www.asipto.com
Hello,
I'm using Kamailio as a proxy between several voice gateways and if the
call fails for whatever reason (far end is busy etc) I am forwarding to an
Asterisk box to play an announcement.
Within the failure route I am using allow_source_address_group() to ascertain
if the failure response was from a Voice Gateway or Asterisk itself,
however it appears to return the group for the first branch when the reply
is from the second branch to Asterisk.
To handle the failure I am adding some headers, and setting a new
destination indirectly with ds_select_dst before t_relay. I am using 5.5.3
on Debian 11, using KEMI / Python.
Does anyone have any ideas?
Thanks
Matthew
Hello all,
I have a kamailio ( kamailio 5.5.3 (x86_64/linux)) with asterisk (Asterisk 16.2.1~dfsg-2ubuntu1) with following architecture
┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐
│ Asterisk ├───────┤ Kamailio │ 188.xxx.59.171 ───────── 103.xxx.xx.134 │ Linphone │
└─────────────┘ └─────────────┘ └─────────────────────┘
10.10.1.13 10.10.1.9
In case the diagram is not displayed correctly its pasted at https://pastebin.com/b0UtE4Lj
Registrations are handled by Kamailio and calls from linphone are routed to Asterisk. Similarly all calls originating in asterisk are routed over to Kamailio which in turn looks up AOR and routes the calls over to Linphone.
Along with Linphone I also have a WebRTC endpoint at Kamailio.
When calls are sent to WebRTC from asterisk, it gets correctly routed over to Asterisk, but if the client is Linphone the ACK of 200OK is not routed correctly to Linphone.
I get this error in the logs:
[core/forward.c:229]: get_send_socket2(): protocol/port mismatch (forced tls:188.xxx.59.171:5061, to udp:188.xxx.59.171:5060)
Digging into the difference between WebRTC and Linphone, I could see that in 1800 Ringing packet from WebRTC has a Contact headers while its missing in the packet from Linphone
This is the 180 ringing from WebRTC:
tag: rcv
pid: 695615
process: 17
time: 1644860126.209155
date: Mon Feb 14 23:05:26 2022
proto: wss ipv4
srcip: 103.xxx.xx.134
srcport: 52508
dstip: 188.xxx.59.171
dstport: 443
~~~~~~~~~~~~~~~~~~~~
SIP/2.0 180 Ringing
Via: SIP/2.0/WSS 188.xxx.59.171:443;branch=z9hG4bK730a.2cc7461b72f0c895e7cce5a0cedce4f7.0
Via: SIP/2.0/UDP 10.10.1.13:7000;received=10.10.1.13;rport=7000;branch=z9hG4bKPje4d8c7fc-3ecd-421c-b4bd-698097abb4c7
From: "Anonymous" <sip:anonymous@erx-staging-q01.mydomain.com>;tag=5589ec6e-8c68-44de-b03c-72751d9b9fa4
To: <sip:user_jbjd@10.10.1.9>;tag=611ql89jnj
Call-ID: 895f3d45-5479-4603-9d38-6429ff77b06d
CSeq: 16925 INVITE
Contact: <sip:user_jbjd@erx-staging-q01.mydomain.com;gr=urn:uuid:a8b474b8-1e18-43cb-ab17-f6bbe02c548d>
Supported: gruu, outbound
User-Agent: SIP.js/0.7.8
Record-Route: <sip:188.xxx.59.171:443;transport=ws;r2=on;lr=on;did=ad6.8121>
Record-Route: <sip:10.10.1.9;r2=on;lr=on;did=ad6.8121>
Content-Length: 0
While this is from Linphone
tag: rcv
pid: 695614
process: 16
time: 1644860097.970935
date: Mon Feb 14 23:04:57 2022
proto: tls ipv4
srcip: 103.xxx.xx.134
srcport: 25843
dstip: 188.xxx.59.171
dstport: 5061
~~~~~~~~~~~~~~~~~~~~
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS 188.xxx.59.171:5061;branch=z9hG4bKb5b1.d3231367383d07b1063098dcb35cc2b0.0
Via: SIP/2.0/UDP 10.10.1.13:7000;received=10.10.1.13;rport=7000;branch=z9hG4bKPjd16f1379-1be7-448e-894a-c42d96f63146
From: "Anonymous" <sip:anonymous@erx-staging-q01.mydomain.com>;tag=cf7a7770-529d-4450-8bed-880382dce1dd
To: <sip:user_jbjp@10.10.1.9>;tag=2ooYDia
Call-ID: 8a025999-b096-4fe0-a623-9f6e6a69b8ae
CSeq: 27838 INVITE
User-Agent: Linphone Desktop/4.3.2 (Ubuntu 20.04.3 LTS, Qt 5.12.12) LinphoneCore/5.0.49
Supported: replaces, outbound, gruu
Record-route: <sip:188.xxx.59.171:5061;transport=tls;r2=on;lr=on;did=3b9.b1b2>
Record-route: <sip:10.10.1.9;r2=on;lr=on;did=3b9.b1b2>
Content-Length: 0
When the 180 ringing is passed on to the Astrerisk it has the contact header modified with alias.
tag: snd
pid: 695615
process: 17
time: 1644860126.210189
date: Mon Feb 14 23:05:26 2022
proto: udp ipv4
srcip: 10.10.1.9
srcport: 5060
dstip: 10.10.1.13
dstport: 7000
~~~~~~~~~~~~~~~~~~~~
SIP/2.0 180 Ringing
Record-Route: <sip:188.xxx.59.171:443;transport=ws;r2=on;lr=on;did=ad6.8121>
Record-Route: <sip:10.10.1.9;r2=on;lr=on;did=ad6.8121>
Via: SIP/2.0/UDP 10.10.1.13:7000;received=10.10.1.13;rport=7000;branch=z9hG4bKPje4d8c7fc-3ecd-421c-b4bd-698097abb4c7
To: <sip:user_jbjd@10.10.1.9>;tag=611ql89jnj
From: "Anonymous" <sip:anonymous@erx-staging-q01.mydomain.com>;tag=5589ec6e-8c68-44de-b03c-72751d9b9fa4
Call-ID: 895f3d45-5479-4603-9d38-6429ff77b06d
CSeq: 16925 INVITE
Contact: <sip:user_jbjd@erx-staging-q01.mydomain.com;alias=103.xxx.xx.134~52508~6;gr=urn:uuid:a8b474b8-1e18-43cb-ab17-f6bbe02c548d>
Supported: gruu, outbound
User-Agent: SIP.js/0.7.8
Content-Length: 0
Now, I am not sure if this is the reason for routing the packets to wrong destination, but this is all I could figure out. Any clue to get this resolved will be much appreciated. My Kamailio config is pasted at https://pastebin.com/qyRS0usw
with regards,
X.
Sent with ProtonMail Secure Email.