Hi there.
So I’m fighting what must be a bit of a common problem here but the usual googling isn’t really helping me out.
A bit of background:
Classic Nat scenario of a sip handset behind a NAT firewall over the internet to VoIP SBC setup using Kamailio 3.3 and RTPProxy and Freeswitch as the registrar / calls server behind kamailio.
(please excuse the beautiful ASCI art)
--------------
---- ----| RTPproxy |-------
--------------- ------------ | -------------- | ---------------
|SIP Phone|--------|Firewall |---------internet-------------| kamailio |-----------|Freeswitch|
--------------- ------------ -------------- ---------------
SIP Phones can register fine (over TCP or TLS, Kam offloads TLS if used) however when establishing a call the SIPPhone sends its local network IP address within the SDP instead of the firewalls external address. Causing media to me miss
directed by the RTP Proxy.
I’ve put a phone in with STUN to check that this is the only issue and that phone works fine .Usually in this situation we would just use STUN or TURN / ICE to get around the issue however the handsets that we are working with (and have
to work with for other reasons) do not support any of these technologies. So I’ve been forced to try and find another solution.
I was hoping to find some method within kamailio / RTPproxy to resolve this. I could just rewrite the SDP in certain situations but that feels a little bit brutal if I’m honest. I’ve heard of RTPproxy being able to do some sort of rtp
latching where it can correct its destination ip address after it receives its first rtp packets from the SIP Phone after being forwarded by the onsite firewall but other than this ‘word of mouth’ suggestion I’ve not managed to find any detail of this functionality
in the usual online resources.
Can anyone suggest any other potential methods for getting around this problem?
Many Thanks
Rob