[Asterisk-Users] Segfaults with NAT clients

Matthew Farley asterisk at wheatstate.net
Wed Mar 19 15:11:18 MST 2003


Another puzzler from my asterisk system:

For reference, here is my basic setup:
-Asterisk (latest CVS as of this afternoon (3/19/2003)
-All clients are Cisco ATA 186 units
-Public IP for Asterisk server
-All clients behind NAT firewalls

Everything was working fine with my Asterisk system until I added a
client behind a firewall that has three numbers in the final octet of
its public IP number.

For instance:

A client behind a firewall with public IP of 63.77.102.4 would be fine
A client behind a firewall with public IP of 63.77.102.221 would fail

The failure does not present itself until an INVITE is issued
(registration works fine). When the INVITE happens to or from such an
IP, though, Asterisk segfaults. After studying the output of sip debug,
I noticed that somehow the Contact: field is getting messed up.

The field should look like:
Contact: <sip:3117000 at 63.91.19.135:5060;user=phone;transport=udp>

Instead, it looks like:
Contact: <sip:3117000 at 63.91.19.0:5060;user=phone;transport=udp>

I checked the settings in the ATA, and they are all correct, with no
reference whatsoever to '63.91.19.0'. The ATA is on the same firmware as
all of my working units.

I can only assume that Asterisk is somehow losing that last octet when
it deals with a NAT client behind a firewall which has a three-digit
number at the end. Does this seem accurate, or am I missing something
here?

I have attached an excerpt of sip debug output showing this problem
(line 22). Any suggestions that anyone could offer for
troubleshooting/fixing this problem would be greatly appreciated.

Thanks!
-Matt

 
-- 
Matthew Farley <asterisk at wheatstate.net>
-------------- next part --------------
sip show peers
Name/username    Host                 Mask             Port     Status    
3116001/3116001  63.91.19.8      (D)  255.255.255.255  61342    Unmonitored
3116000/3116000  63.91.19.8      (D)  255.255.255.255  61342    Unmonitored
3115004/3115004  208.222.40.6    (D)  255.255.255.255  65038    Unmonitored
3115003/3115003  (Unspecified)   (D)  255.255.255.255  0        Unmonitored
3117001/3117001  63.91.19.135    (D)  255.255.255.255  64622    Unmonitored
3117000/3117000  63.91.19.135    (D)  255.255.255.255  64622    Unmonitored
3115002/3115002  208.222.40.6    (D)  255.255.255.255  65040    Unmonitored
3115001/3115001  208.222.40.6    (D)  255.255.255.255  65040    Unmonitored
3115000/3115000  208.222.40.6    (D)  255.255.255.255  65038    Unmonitored
iconnecthere/63  213.137.73.178       255.255.255.255  5060     Unmonitored

8 headers, 0 lines
Sip read: 
INVITE sip:3115000 at 208.222.40.225;user=phone SIP/2.0
Via: SIP/2.0/UDP 192.168.3.200:5060
From:  <sip:3117000 at 208.222.40.225;user=phone>;tag=1890095068
To:  <sip:3115000 at 208.222.40.225;user=phone>
Call-ID: 1099999641 at 192.168.3.200
CSeq: 2 INVITE
Contact:  <sip:3117000 at 63.91.19.0:5060;user=phone;transport=udp>
User-Agent: Cisco ATA  v2.15 ata18x (020927a)
Expires: 300
Content-Length: 249
Content-Type: application/sdp

v=0
o=3117000 15763 15763 IN IP4 192.168.3.200
s=ATA186 Call
c=IN IP4 63.91.19.0
t=0 0
m=audio 10000 RTP/AVP 0 4 8 101
a=rtpmap:0 PCMU/8000/1
a=rtpmap:4 G723/8000/1
a=rtpmap:8 PCMA/8000/1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15

11 headers, 11 lines
Using latest request as basis request
Sending to 192.168.3.200 : 5060 (NAT)


More information about the asterisk-users mailing list