[Serusers] nat + multiple RTP proxy
dhiraj.2.bhuyan at bt.com
dhiraj.2.bhuyan at bt.com
Fri Dec 12 20:49:01 CET 2003
Hello List,
I am trying to get SER + nathelper working with multiple RTP proxies on the route (please read the mail appended below on the problem I am trying to solve and how am trying to solve it). I spent sometime understanding the internals of SER - but it will be great if anyone can help me with the following problem -
My test settings is -
UA1 ---- NAT ---- SER/RTP1 ----- SER/RTP2 ------- UA2
I am forcing rtpproxy on SER2 also.
In file nathelper.c, I added a test case in force_rtp_proxy_f(..) to check if the SIP/SDP packet was sent by a device behind NAT. I use the SER received_test(msg) to do this check (which is basically a msg->via1->host == msg->rcv.src_ip test). I try setting up a call from UA1 to UA2. When SER1 receives the SIP/SDP packet from UA1, the received_test correctly detects that UA1 is behind NAT. But when UA2 sends back an OK with its SDP data (which SER2 modifies before sending it to SER1), a received_test (in SER1) on this SIP/SDP message returns positive (isn't via1 added by SER2? and via2 the one added by UA1?).
I will appreciate any help on this. Is there any better way to do this? I am not doing a check on contact header since fix_nated_contact may have already been called (save reason for not checking the SDP contact information).
Sorry I am unable to add any debugging information - as I am writing from home.
Regards,
Dhiraj
Network Security Specialist,
BT Exact
> -----Original Message-----
> From: dhiraj.2.bhuyan at bt.com [mailto:dhiraj.2.bhuyan at bt.com]
> Sent: Friday, December 12, 2003 6:39 PM
> To: jiri at iptel.org; sobomax at portaone.com
> Cc: serusers at lists.iptel.org
> Subject: [Serusers] nat + multiple RTP proxy
>
>
> 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 at bt.com
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
More information about the sr-users
mailing list