[asterisk-bugs] [Asterisk 0018172]: Peer goes unreachable when placing a call from it.

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Oct 26 08:02:07 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=18172 
====================================================================== 
Reported By:                jordankirby
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   18172
Category:                   Channels/chan_sip/General
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     feedback
Asterisk Version:           SVN 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-10-20 06:23 CDT
Last Modified:              2010-10-26 08:02 CDT
====================================================================== 
Summary:                    Peer goes unreachable when placing a call from it.
Description: 
We are using 1.8RC5, Asterisk RealTime (MySQL) and realtime caching.
Both the server and the phones are behind separate NAT (phone in office,
server in data centre).

In this example, SIP/3001 calls SIP/3002 (via a gosub). The call proceeds
fine but asterisk sees SIP/3001 as unavailable for a period of time after
the initial invite.

This looks to be because asterisk starts sending OPTIONS and NOTIFIES to
the LAN IP address of the phone rather than it's NATed IP address.

In the attached trace:
  10.50.0.47 is the server's LAN IP.
  212.62.4.230 is the server's NATed IP.
  192.168.1.231 is 3001's LAN IP.
  195.59.152.66 is 3001's NATed IP.

Asterisk output:

  == Using SIP RTP CoS mark 5
    -- Executing [3002 at DLPN_All:1] Gosub("SIP/3001-000000aa",
"internal,3002,1")
    -- Executing [3002 at internal:1] Dial("SIP/3001-000000aa", "SIP/3002")
  == Using UDPTL CoS mark 5
  == Using SIP RTP CoS mark 5
    -- Called 3002
    -- SIP/3002-000000ab is ringing
[Oct 20 12:11:05] NOTICE[24099]: chan_sip.c:24694 sip_poke_noanswer: Peer
'3001' is now UNREACHABLE!  Last qualify: 37
  == Spawn extension (internal, 3002, 1) exited non-zero on
'SIP/3001-000000aa'
    -- Registered SIP '3001' at 195.59.152.66:17261
[Oct 20 12:11:55] NOTICE[24099]: chan_sip.c:19523
handle_response_peerpoke: Peer '3001' is now Reachable. (34ms / 2000ms)

====================================================================== 

---------------------------------------------------------------------- 
 (0128401) jordankirby (reporter) - 2010-10-26 08:02
 https://issues.asterisk.org/view.php?id=18172#c128401 
---------------------------------------------------------------------- 
This does look to be related to those issues.

If I comment out the line below the problem goes (since we always use NAT
it doesn't seem to have a negative impact but I assume it would if you
weren't using NAT):

__set_address_from_contact(fullcontact->str, &peer->addr, 0);

(line 26183 in chan_sip.c in 1.8.0)

Unfortunately my knowledge of the asterisk code is far too limited to find
where the fault with the code actually is! 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-10-26 08:02 jordankirby    Note Added: 0128401                          
======================================================================




More information about the asterisk-bugs mailing list