< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

Re: [reSIProcate] Embedded headers in a SIP Uri


Title: [reSIProcate] Embedded headers in a SIP Uri

Line 850 is currently this:

  pb.skipToOneOf(Symbols::RA_QUOTE, Symbols::SEMI_COLON);

And is used to move from the ? to end of the URI.  If we change this to just:

     pb.skipToOneOf(ParseBuffer::Whitespace);

and the URI is contained in angle brackets (ie. NameAddr), then the > will end up at the end of the mEmbeddedHeadersText.

I think the following would be better:

   pb.skipToOneOf(Symbols::RA_QUOTE, ParseBuffer::Whitespace);

 

I have no idea why the SEMI_COLON condition was there – does anyone know?

 

I’ve added some more asserts to your new test in testSipMessage.cxx to try and exercise this, but I haven’t test it.

 

Scott

 

 

 

From: resiprocate-devel-bounces@xxxxxxxxxxxxxxx [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxx] On Behalf Of Jeremy Geras
Sent: May 21, 2008 3:40 PM
To: resiprocate-devel@xxxxxxxxxxxxxxx
Subject: [reSIProcate] Embedded headers in a SIP Uri

 

There's an exception when the INVITE below is parsed (using the latest code).  It looks like a bug in the parsing of embedded headers in a Uri (shows up when the Request-Line is parsed).  My reading of 3261 is that "headers" in the following won't ever contain a space (unless it's escaped):

SIP-URI          =  "sip:" [ userinfo ] hostport
                    uri-parameters [ headers ]

So I think Uri.cxx:850 should be changed to the following:

pb.skipToOneOf(ParseBuffer::Whitespace);

I've updated resip/stack/test/testSipMessage.cxx with a test case for this.  I'll check in my fix to Uri.cxx if someone can confirm that it looks good.

Thanks,
Jeremy


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

INVITE sip:7003@xxxxxxxxxxxxx:20060?REQUIRE=replaces SIP/2.0
Via: SIP/2.0/UDP 192.122.24.109;branch=z9hG4bKfc4a20db5EC58FB8
From: "7006 601" <sip:7006@xxxxxxxxxxxxxxxxxxxxxxx>;tag=29C49D21-D9FDBDBC
To: <sip:7003@xxxxxxxxxxxxx:20060?REQUIRE=replaces>
CSeq: 1 INVITE
Call-ID: a9ad18fd-5fd391bf-309febea@xxxxxxxxxxxxxx
Contact: <sip:7006@xxxxxxxxxxxxxx>
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
User-Agent: PolycomSoundPointIP-SPIP_601-UA/2.1.1.0052
Supported: 100rel,replaces
Allow-Events: talk,hold,conference
Replaces: MDQ5MDJmZGEyYTkyNTBhZjBhNDg0NjUyMzE1MTc2Mjk.;to-tag=cf71d002;from-tag=1394930945
Referred-By: <sip:7776@xxxxxxxxxxxxxxxxxxxxxxx>
Max-Forwards: 70
Content-Type: application/sdp
Content-Length: 253

v=0
o=- 1210601497 1210601497 IN IP4 192.122.24.109
s=Polycom IP Phone
c=IN IP4 192.122.24.109
t=0 0
m=audio 2224 RTP/AVP 0 8 18 101
a=sendrecv
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000



Jeremy Geras
Software Developer
CounterPath Corporation

T  604.320.3344 x1373
F  250.380.0404


This email may be privileged and/or confidential, and the sender does not waive any related rights and obligations. Any distribution, use or copying of this email or the information it contains by other than an intended recipient is unauthorized. If you receive this email in error, please notify me immediately and delete the contents and any attachments.

_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel