[asterisk-bugs] [Asterisk 0014546]: [patch] Patch to improve NAT handling for Polycoms behind proxy

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Mar 12 08:44:31 CDT 2009


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=14546 
====================================================================== 
Reported By:                acunningham
Assigned To:                file
====================================================================== 
Project:                    Asterisk
Issue ID:                   14546
Category:                   Core/RTP
Reproducibility:            always
Severity:                   feature
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.6.0.6 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2009-02-24 19:42 CST
Last Modified:              2009-03-12 08:44 CDT
====================================================================== 
Summary:                    [patch] Patch to improve NAT handling for Polycoms
behind proxy
Description: 
Attached will be very similar patches to 1.4.21.1 and 1.6.0.6 to prevent
one-way audio in the following scenario:

1. A Polycom is behind NAT.

2. The Polycom registers to a SIP proxy outside NAT, such as OpenSIPS.

3. Asterisk calls the Polycom via the proxy. The sip.conf entry for the
proxy has net=yes set.

4. The Polycom is slow to start sending RTP.

5. Asterisk starts sending RTP to the port in the SDP.

6. The Polycom then starts sending RTP. The NAT device changes the RTP
source port.

7. Because the proxy isn't behind NAT, Asterisk fails to recognize that
the Polycom is behind NAT, and doesn't change the RTP destination to the
port it's receiving RTP from on the NAT device. This leads to one-way audio
for the duration of the call.

The patch cures this by always changing the RTP destination port based on
what's received from the client, even if Asterisk doesn't think the client
is behind NAT. This is safe to do for non-NAT clients as the change of port
will not happen. The patch has been tested with both NAT and non-NAT
phones.
====================================================================== 

---------------------------------------------------------------------- 
 (0101642) file (administrator) - 2009-03-12 08:44
 http://bugs.digium.com/view.php?id=14546#c101642 
---------------------------------------------------------------------- 
Those won't help, I need to see exactly what chan_sip is doing. I've looked
over the code and the only time the nat setting for RTP is changed is when
the call is initially setup and the nat value from sip.conf is used to set
the value. The only time then that rtp->nat would be unset is if it was not
set in sip.conf on the peer entry. I've even confirmed this with my stuff
here, I'm using stuff locally on a LAN with nat=yes and it most certainly
is still doing symmetric RTP. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-03-12 08:44 file           Note Added: 0101642                          
======================================================================




More information about the asterisk-bugs mailing list