[sr-dev] Bug in Record-Route (???) / undocumented behaviour

Carsten Bock carsten at ng-voice.com
Wed Jan 18 15:40:16 CET 2017


Hi,

I have a server listening on a single tls-socket:

--------------------------------------------------------------------------
Bug in Record-Route???
--------------------------------------------------------------------------

listen=tls:47.11.23.42:443

I use this socket for both Websocket and SIP-TLS. Kamailio basically
does a WebSockets to SIP-TLS translation. For simplicity reasons, I
use only one TLS socket for both TLS and WebSockets.

If I simply do the following in my routing-script:

record_route();
$du = "sip:server;transport=tls";

it will simply add a single Record-Route header, e.g.:

Record-Route: <sip:47.11.23.42:443;transport=ws>

It will only add this single Record-Route header, despite the fact,
that it's actually translating between WebSocket and SIP-TLS.
The expected behaviour would be:

Record-Route: <sip:47.11.23.42:443;transport=ws>
Record-Route: <sip:47.11.23.42:443;transport=tls>

The problem is, that the upstream Proxy (a loadbalancer) only speaks
SIP-TLS and UDP (for Interconnecting) and not WebSockets. As a result,
in-Dialog-Requests fail, as the Loadbalancer cannot reach the next hop
using "transport=ws".

In the code, I did see, that COND_IF_DIFF_REALMS actually should also
check the protocol, so I'm not sure, why this is not happening.

--------------------------------------------------------------------------
Undocumented Feature / Workaround
--------------------------------------------------------------------------
Looking at the code of RR, I've found that I can actually set
"enable_double_rr" to 2, which will ALWAYS add a second Record-Route
header. Apart from the fact, that I don't need the second record-route
header always, it solves my problem.

At least the latter I will add to the docs, but however I haven't
found any time to look any deeper into the Bug.


Thanks,
Carsten










-- 
Carsten Bock
CEO (Geschäftsführer)

ng-voice GmbH
Millerntorplatz 1
20359 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten at ng-voice.com

Office +49 40 5247593-40
Fax +49 40 5247593-99

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/



More information about the sr-dev mailing list