[Home]

Summary:ASTERISK-02860: Incorrect parsing of remote-party-ID
Reporter:linuss (linuss)Labels:
Date Opened:2004-11-19 05:08:50.000-0600Date Closed:2008-01-15 15:14:47.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Channels/chan_sip/Interoperability
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:When a Cisco AS5xxx gateway passes on a call on which caller ID was not received, the remote party ID does not have the username field filled in, instead there is just the hostname part e.g.:

Remote-Party-ID: <sip:1.2.3.4>;party=calling;screen=yes;privacy=full

Asterisk incorrectly reads this via get_rpid_num() and results in a caller ID being passed out of '1234' rather than a blank one, or 'unknown'.

Diffs suggest that this is still an issue on the current head.

****** ADDITIONAL INFORMATION ******

We don't have a sacrificial machine to upgrade to HEAD at this time to verify on latest code, but we'll easily route a PSTN number with this behavour to the SIP box of anyones choice for development testing.
Comments:By: Olle Johansson (oej) 2004-11-20 15:03:04.000-0600

Could I please get qa SIP debug of a transaction with all the headers from the Cisco and our resulting RPID header?

By: linuss (linuss) 2004-11-23 05:19:32.000-0600

Sample SIP INVITE follows:

INVITE sip:1022@gk.magrathea.net:5060 SIP/2.0
Via: SIP/2.0/UDP  123.123.123.123:5060
From: "anonymous" <sip:123.123.123.123>;tag=4891E5BC-151A
To: <sip:1022@gk.magrathea.net>
Date: Tue, 23 Nov 2004 11:15:12 gmt
Call-ID: C705FEA7-3C7711D9-B00AE070-2E6BBE31@123.123.123.123
Supported: timer,100rel
Min-SE:  1800
Cisco-Guid: 3339018879-1014436313-2953306224-778812977
User-Agent: Cisco-SIPGateway/IOS-12.x
Allow: INVITE, OPTIONS,BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO
CSeq: 101 INVITE
Max-Forwards: 6
Remote-Party-ID: <sip:123.123.123.123>;party=calling;screen=yes;privacy=full
Timestamp: 1101208512
Contact: <sip:123.123.123.123:5060>
Expires: 180
Allow-Events: telephone-event
Content-Type: application/sdp
Content-Length: 371

v=0
o=CiscoSystemsSIP-GW-UserAgent 9665 750 IN IP4 123.123.123.123
s=SIP Call
c=IN IP4 123.123.123.123
t=0 0
m=audio 18022 RTP/AVP 4 18 3 2 8 0 19
c=IN IP4 123.123.123.123
a=rtpmap:4 G723/8000
a=fmtp:4 annexa=no
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=yes
a=rtpmap:3 GSM/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:19 CN/8000

By: linuss (linuss) 2004-11-23 05:23:23.000-0600

Additional info:

The problem is specifically seen when the call is onwarded routed to an IAX destination, although I assume it also occurs on SIP.

It doesnt actually now appear to be directly related to the RPID field, as with the RPID removed the same behaviour occurs when * parses the 'from' address.

The problem would appear to be in whichever function is used to get_callerid_from_from or similar, as this function will be incorrectly deciding that a caller id in the form a.b.c.d is actually a number and not a host address.

By: Mark Spencer (markster) 2004-11-23 11:10:41.000-0600

Fixed in CVS

By: Russell Bryant (russell) 2004-11-25 10:20:51.000-0600

Since you commited this from the airport, I'll let it slide that you didn't give me a patch.  :)

By: Digium Subversion (svnbot) 2008-01-15 15:14:47.000-0600

Repository: asterisk
Revision: 4323

U   trunk/channels/chan_sip.c

------------------------------------------------------------------------
r4323 | markster | 2008-01-15 15:14:47 -0600 (Tue, 15 Jan 2008) | 2 lines

Fix for rpid (from airport, bug ASTERISK-2860)

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=4323