[SR-Users] Kamailio sends SIP messages to old websocket after reconnection during call

Idris AVCI idris.avci at gmail.com
Thu May 17 17:45:00 CEST 2018


We use kamailio as a backend for JSSIP based WebRTC UAs.
We use SIP over Weboscket as transport and everythings work fine generally.

Some websocket connections to kamailio drop during an active call and JSSIP
reconnects immediately. New websocket connection has a different port than
the dropped one but kamailio tries to send to old websocket port which is
not active anymore.

We use GRUU and configured all the related parameters in registrar, dialog,
tm, websocket, tls, xhttp and userloc modules both for versions 4.4 and 5.1
but couldn't find a solution yet.

For a typical call below are the ordered events:

1. UA register to kamailio over wss (Code: WS1)
2. Kamailio send an INVITE to the UA (Code: Call1)
3. UA answer and media starts
4. UA drops WS1 to kamailio and reconnect (Code: WS2)
5. UA has an active websocket (WS2) to kamailio
6. Kamailio tries to send BYE message of Call1 to WS1 which is no longer
active and complains that websocket could not be found
7. Kamailio send an INVTE to the UA (Code: Call2) over WS2
8. UA answer and media starts
9. Kamailio send BYE message of Call2 to UA over WS2 and everything work as
expected (No websocket drop)

Error log:

WARNING: <core> [msg_translator.c:2761]: via_builder(): TCP/TLS connection
(id: 0) for WebSocket could not be found

I think we need a mechanism that will update the dialog information of
Call1 to use WS2 after reconnection.

Any help greatly appreciated.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20180517/caa09d77/attachment.html>

More information about the sr-users mailing list