[SR-Users] Missing contact in 180 ringing causes wrong routing

Xuo Guoto xuoguoto at protonmail.com
Tue Feb 15 15:52:35 CET 2022


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 at erx-staging-q01.mydomain.com>;tag=5589ec6e-8c68-44de-b03c-72751d9b9fa4
To: <sip:user_jbjd at 10.10.1.9>;tag=611ql89jnj
Call-ID: 895f3d45-5479-4603-9d38-6429ff77b06d
CSeq: 16925 INVITE
Contact: <sip:user_jbjd at 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 at erx-staging-q01.mydomain.com>;tag=cf7a7770-529d-4450-8bed-880382dce1dd
To: <sip:user_jbjp at 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 at 10.10.1.9>;tag=611ql89jnj
From: "Anonymous" <sip:anonymous at 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 at 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.



More information about the sr-users mailing list