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@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/