Greetings list,
I spent some time looking into the rtpproxy and nathelper code. Currently, nathelper +
rtpproxy will work ONLY if there is "one" RTP proxy on the path. In a scenario
like -
UA1 ---- NAT ---- SER/RTP1 ----- SER/RTP2 ---- NAT --- UA2
where UA1 and UA2 are subscribed to two different SERs and are also behind NAT, RTP proxy
1 never forwards the RTP traffic from UA1 to RTP proxy 2 (because of the way it is
designed) since RTP1 is waiting for at least one RTP packet from RTP proxy 2 and vice
versa - hence the deadlock.
This can be fixed if the RTP proxy waits for one UDP packet from the device behind NAT,
but does not wait for any packets from the device it thinks is not behind NAT before
forwarding it the RTP traffic (coming from the other end). Thus in the above scenario, RTP
1 waits for at least one packet from UA1 - but does not wait for any packet from RTP2.
I am writing a patch for nathelper and rtpproxy to add this functionality (should be
available by next week). Anyone - any thoughts on this?
Dhiraj Bhuyan
Network Security Specialist,
BT Exact Business Assurance Solutions
Tel: +44 1473 643932
Mob: +44 7962 012145
Email: dhiraj.2.bhuyan(a)bt.com