[Home]

Summary:ASTERISK-23106: pjsip: ACK to 200 OK sent to private IP address on outbound channel's INVITE request
Reporter:Matt Jordan (mjordan)Labels:
Date Opened:2014-01-06 15:54:51.000-0600Date Closed:2014-01-31 09:11:04.000-0600
Priority:MajorRegression?
Status:Closed/CompleteComponents:Resources/res_pjsip Resources/res_pjsip_nat
Versions:12.0.0 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) freepbx_grandstream.tar.gz
Description:Note: this only happens with GrandStream devices.

Scenario:
* Dial between two GrandStream phones
* Outbound channel's device sends 200 OK
* Asterisk sends ACK to the private IP address of the outbound channel's device

Note that we do send the 200 OK to the inbound channel device's public IP address.

{noformat}

[Jan  6 16:36:13] VERBOSE[19775] res_pjsip_logger.c: <--- Received SIP response (846 bytes) from UDP:74.87.121.99:53997 --->
ÿSIP/2.0 200 OK
ÿVia: SIP/2.0/UDP 199.102.239.103:5060;rport=5060;branch=z9hG4bKPj533c2053-eb63-4896-a67d-d190de484d09
ÿFrom: "GXV3175" <sip:5003@199.102.239.103>;tag=7ef05a61-4081-4bcd-ad09-ec82e4cf11bf
ÿTo: <sip:5002@74.87.121.99>;tag=547897211
ÿCall-ID: 475af947-6311-45a8-b058-49ec80e4a15e
ÿCSeq: 3964 INVITE
ÿContact: <sip:5002@10.4.0.148:53997>
ÿSupported: replaces, path, timer, eventlist
ÿUser-Agent: Grandstream GXV3140 1.0.7.74
ÿSession-Expires: 1800;refresher=uac
ÿRequire: timer
ÿAllow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
ÿContent-Type: application/sdp
ÿContent-Length:   208
ÿ
ÿv=0
ÿo=5002 8000 8000 IN IP4 10.4.0.148
ÿs=SIP Call
ÿc=IN IP4 10.4.0.148
ÿt=0 0
ÿm=audio 36682 RTP/AVP 0 101
ÿa=sendrecv
ÿa=rtpmap:0 PCMU/8000
ÿa=ptime:20
ÿa=rtpmap:101 telephone-event/8000
ÿa=fmtp:101 0-15
ÿ
[Jan  6 16:36:13] VERBOSE[19776] res_pjsip_logger.c: <--- Transmitting SIP request (407 bytes) to UDP:10.4.0.148:53997 --->
ÿACK sip:5002@10.4.0.148:53997 SIP/2.0
ÿVia: SIP/2.0/UDP 199.102.239.103:5060;rport;branch=z9hG4bKPj0000bcab-f6c6-4ab6-bf2d-df9b08839477
ÿFrom: "GXV3175" <sip:5003@199.102.239.103>;tag=7ef05a61-4081-4bcd-ad09-ec82e4cf11bf
ÿTo: <sip:5002@74.87.121.99>;tag=547897211
ÿCall-ID: 475af947-6311-45a8-b058-49ec80e4a15e
ÿCSeq: 3964 ACK
ÿMax-Forwards: 70
ÿUser-Agent: FPBX-12.0.1alpha6(12.0.0)
ÿContent-Length:  0
ÿ
ÿ
{noformat}
Comments:By: Kinsey Moore (kmoore) 2014-01-13 15:24:54.319-0600

I have managed to reproduce this in the testsuite with only the contact address being private and only the 200 OK being sent back without the 100 and 180. This problem does not occur if the 200 has the correct address in the contact header regardless of the address in provisional messages.

By: Kinsey Moore (kmoore) 2014-01-29 09:47:08.185-0600

I finally managed to get a trace in a similar scenario (albeit using chan_sip) and I am working on labbing this up to attempt to reproduce with actual phones under Asterisk 12/chan_pjsip.

The biggest difference I see is that for the grandstream's response the addresses in the To: and Contact: headers differ while in the preliminary trace I got that works (SNOMs), the addresses in the To: and Contact: headers are identical.