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

Re: [reSIProcate] Route Set problem with Update in resip 1.1 RC1


The name getLastRequest is a little confusing – it is actually supposed to be the message used to create a UAC dialog, not the last request in the dialog.  I ended up figuring out why getLastRequest was being updated mid-dialog – see my last email.  I’m working on a fix now.

 

From: Kovar, William (Bill) [mailto:bkovar@xxxxxxxxx]
Sent: Thursday, March 08, 2007 1:30 PM
To: Scott Godin; Byron Campen
Cc: Robert Sparks; resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
Subject: RE: [reSIProcate] Route Set problem with Update in resip 1.1 RC1

 

Scott,

 

I may be missing something but....

 

if (creator &&

(creator->getLastRequest()->header(h_CSeq).sequence() == response.header(h_CSeq).sequence())

 && code >=200 && code < 300)

 

The middle _expression_ will always be true if the lastRequest I send is CSeq 3 and the response is CSeq 3. Which would also mean that if I sent an Update (rally any request) and received a 200 OK, I would also update the routeset.

 

In other words, that piece isALWAYS true.... I don't know the particulars of getLastRequest() so I'm guessing a little.

 

I have no other private code changes.

 

 

Bill Kovar

bkovar@xxxxxxxxx

Avaya, Inc.

(732) 852-2609

 

 


From: Scott Godin [mailto:slgodin@xxxxxxxxxxxx]
Sent: Thursday, March 08, 2007 1:20 PM
To: Kovar, William (Bill); Byron Campen
Cc: Robert Sparks; resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
Subject: RE: [reSIProcate] Route Set problem with Update in resip 1.1 RC1

Thanks for trying again Bill – but I must admit – I’m baffled.

 

1.       Creator->getLastRequest()->header(h_CSeq).sequence() should be 1 when initial invite is sent.

2.       Creator->getLastRequest()->header(h_CSeq).sequence() is changed to 2 when INVITE with ProxyAuth is sent out

3.       Creator->getLastRequest()->header(h_CSeq).sequence() should not be modified again (I can’t find any where that would modify it).

4.       The 200 response to your re-invite carries a CSeq of 3.  And since 3 doesn’t equal Creator->getLastRequest()->header(h_CSeq).sequence() -> 2 – then the routeset should not be updated – when using the following code (in Dialog::dispatch for responses):

 

      const SipMessage& response = msg;

      int code = response.header(h_StatusLine).statusCode();

      // If this is a 200 response to the initial request, then store the routeset (if present)

      BaseCreator* creator = mDialogSet.getCreator();

      if (creator && (creator->getLastRequest()->header(h_CSeq).sequence() == response.header(h_CSeq).sequence()) && code >=200 && code < 300)

      {

         if (response.exists(h_RecordRoutes))

         {

            mRouteSet = response.header(h_RecordRoutes).reverse();

         }

      }

 

 

Any idea’s why?  Do you any other local edits that may be causing creator->getLastRequests sequence number to be incremented (perhaps modifications to ClientAuthManager)?

 

Scott

 

From: Kovar, William (Bill) [mailto:bkovar@xxxxxxxxx]
Sent: Thursday, March 08, 2007 12:27 PM
To: Scott Godin; Byron Campen
Cc: Robert Sparks; resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
Subject: RE: [reSIProcate] Route Set problem with Update in resip 1.1 RC1

 

Scott,

 

I put your code back in and ran the scenario where I send INVITE, INVITE w/Proxy-Auth and Re-Invite.

 

Each 200 OK updated mRouteSet

 

See log snip below:

 

------------>>>>>>>> INITIAL INVITE
 ![2007-03-08 16:58:24.424] <1524:RESIP:TRANSPORT>  DEBUG | transportselector.cxx:869 | Transmitting to [ V4 135.8.52.181:5060 UDP target domain=135.8.52.181 received on: Transport: [ V4 0.0.0.0:5060 UDP target domain=unspecified connectionId=0 ] connectionId=0 ] tlsDomain= via [ V4 135.8.116.33:5060 UDP target domain=135.8.52.181 connectionId=0 ]

 

INVITE sip:76800@xxxxxxxxx SIP/2.0

 

Via: SIP/2.0/UDP 135.8.116.33:5060;branch=z9hG4bK-d8754z-7034f95d557c5006-1---d8754z-;rport

 

Max-Forwards: 70

 

Contact: <sip:56000@xxxxxxxxxxxx:5060>

 

To: <sip:76800@xxxxxxxxx>

 

From: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=e0733a11

 

Call-ID: NTlhOWI1MTZmNDIzMWZiZjlkZmYzN2VlY2U0ZTAwNDI.

 

CSeq: 1 INVITE

 

Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, UPDATE, NOTIFY

 

User-Agent: AvSIP 1.04.2

 

Content-Length: 0

 

-------------->>>>>>>>>>> INVITE w/Proxy-Auth

 

 ![2007-03-08 16:58:24.471] <1524:RESIP:TRANSPORT>  DEBUG | transportselector.cxx:869 | Transmitting to [ V4 135.8.52.181:5060 UDP target domain=135.8.52.181 received on: Transport: [ V4 0.0.0.0:5060 UDP target domain=unspecified connectionId=0 ] connectionId=0 ] tlsDomain= via [ V4 135.8.116.33:5060 UDP target domain=135.8.52.181 connectionId=0 ]

 

INVITE sip:76800@xxxxxxxxx SIP/2.0

 

Via: SIP/2.0/UDP 135.8.116.33:5060;branch=z9hG4bK-d8754z-e154f11ec7627f48-1---d8754z-;rport

 

Max-Forwards: 70

 

Contact: <sip:56000@xxxxxxxxxxxx:5060>

 

To: <sip:76800@xxxxxxxxx>

 

From: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=e0733a11

 

Call-ID: NTlhOWI1MTZmNDIzMWZiZjlkZmYzN2VlY2U0ZTAwNDI.

 

CSeq: 2 INVITE

 

Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, UPDATE, NOTIFY

 

Proxy-Authorization: Digest username="56000",realm="avaya.com",nonce="MTE3MzQwNzE0NjpTREZTZXJ2ZXJTZWNyZXRLZXk6MTkzOTg5MjA3NA==",uri="sip:76800@xxxxxxxxx",response="dbb7358419477f367f4a07816d2cc48c",algorithm=MD5

 

User-Agent: AvSIP 1.04.2

 

Content-Length: 0

 

-------------------------->>>>> 200 OK w/mRouteSet being assigned
 ![2007-03-08 16:58:24.674] <808:RESIP:DUM>  DEBUG | DialogId.cxx:50 | DialogId::DialogId: NTlhOWI1MTZmNDIzMWZiZjlkZmYzN2VlY2U0ZTAwNDI.-e0733a11-804697e7eddddb1f12046f94dc00
 ![2007-03-08 16:58:24.674] <808:RESIP:DUM>  DEBUG | DialogSet.cxx:428 | Found matching dialog mClientSubscriptions(0), mServerSubscriptions(0) for

 

SIP/2.0 200 OK

 

Via: SIP/2.0/UDP 135.8.116.33:5060;received=135.8.116.33;branch=z9hG4bK-d8754z-e154f11ec7627f48-1---d8754z-;rport=5060

 

Record-Route: <sip:135.8.83.172:5061;lr;transport=tls>

 

Record-Route: <sip:135.8.52.181:5060;lr>

 

Contact: "meet me 1"<sip:76800@xxxxxxxxx:5061;transport=tls>;isfocus

 

To: <sip:76800@xxxxxxxxx>;tag=804697e7eddddb1f12046f94dc00

 

From: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=e0733a11

 

Call-ID: NTlhOWI1MTZmNDIzMWZiZjlkZmYzN2VlY2U0ZTAwNDI.

 

CSeq: 2 INVITE

 

Session-Expires: 240;refresher=uas

 

Allow: INVITE, CANCEL, BYE, ACK, PRACK, SUBSCRIBE, NOTIFY, REFER, OPTIONS

 

Content-Type: application/sdp

 

Server: Avaya CM/R013x.01.2.632.1

 

Supported: 100rel, timer, replaces, join, histinfo

 

P-Asserted-Identity: "meet me 1" <sip:76800@xxxxxxxxx:5061>

 

Content-Length: 202

 

 

 

v=0

 

o=- 1 2 IN IP4 135.8.83.172

 

s=-

 

c=IN IP4 135.8.83.133

 

t=0 0

 

m=audio 42532 RTP/AVP 0 18 127

 

a=rtpmap:0 PCMU/8000

 

a=rtpmap:18 G729/8000

 

a=fmtp:18 annexb=no

 

a=rtpmap:127 telephone-event/8000

 


 ![2007-03-08 16:58:24.674] <808:RESIP:DUM>  DEBUG | Dialog.cxx:315 | Dialog::dispatch: SipResp: 200 tid=e154f11ec7627f48 cseq=INVITE contact=76800@xxxxxxxxx:5061 / 2 from(wire)
 ![2007-03-08 16:58:24.674] <808:RESIP:DUM>  INFO | Dialog.cxx:582 | ############# Setting Route Set
 ![2007-03-08 16:58:24.674] <808:RESIP>  DEBUG | sipmessage.cxx:963 | SipMessage::getContents: application/sdp
 ![2007-03-08 16:58:24.674] <808:RESIP>  DEBUG | helper.cxx:2035 | Got sdp

 

 ![2007-03-08 16:58:24.674] <808:RESIP:DUM>  INFO | InviteSession.cxx:2067 | Transition UAC_Early -> UAC_Answered
 ![2007-03-08 16:58:24.674] <808:RESIP:APP>  INFO | UserAgent.cpp:901 | sip:76800@xxxxxxxxx: CUserAgent::onOffer(ISH SDP) on session 23 - SipResp: 200 tid=e154f11ec7627f48 cseq=INVITE contact=76800@xxxxxxxxx:5061
 
 ----------------------------->>>>> Next Invite (3)
  ![2007-03-08 16:58:34.283] <1524:RESIP:TRANSPORT>  DEBUG | transportselector.cxx:869 | Transmitting to [ V4 135.8.52.181:5060 UDP target domain=135.8.52.181 received on: Transport: [ V4 0.0.0.0:5060 UDP target domain=unspecified connectionId=0 ] connectionId=0 ] tlsDomain= via [ V4 135.8.116.33:5060 UDP target domain=135.8.52.181 connectionId=0 ]
 
 INVITE sip:76800@xxxxxxxxx:5061;transport=tls SIP/2.0
 
 Via: SIP/2.0/UDP 135.8.116.33:5060;branch=z9hG4bK-d8754z-f26e897b7b668a40-1---d8754z-;rport
 
 Max-Forwards: 70
 
 Route: <sip:135.8.52.181:5060;lr>
 
 Route: <sip:135.8.83.172:5061;lr;transport=tls>
 
 Contact: <sip:56000@xxxxxxxxxxxx:5060>
 
 To: <sip:76800@xxxxxxxxx>;tag=804697e7eddddb1f12046f94dc00
 
 From: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=e0733a11
 
 Call-ID: NTlhOWI1MTZmNDIzMWZiZjlkZmYzN2VlY2U0ZTAwNDI.
 
 CSeq: 3 INVITE
 
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, UPDATE, NOTIFY
 
 Content-Type: application/sdp
 
 Proxy-Authorization: Digest username="56000",realm="avaya.com",nonce="MTE3MzQwNzE0NjpTREZTZXJ2ZXJTZWNyZXRLZXk6MTkzOTg5MjA3NA==",uri="sip:76800@xxxxxxxxx:5061;transport=tls",response="611b2402bbc088a03334ce5ed24221bf",algorithm=MD5
 
 User-Agent: AvSIP 1.04.2
 
 Content-Length: 151
 
 
 
 v=0
 
 o=- 1 12 IN IP4 135.8.83.172
 
 s=-
 
 c=IN IP4 0.0.0.0
 
 t=0 0
 
 m=audio 42516 RTP/AVP 0 127
 
 a=rtpmap:0 PCMU/8000
 
 a=rtpmap:127 telephone-event/8000

 

--------------------->>>>>>>>>>>>>>   200 OK (3) set mRouteSet again!!

 

 ![2007-03-08 16:58:34.345] <808:RESIP:DUM>  DEBUG | DialogId.cxx:50 | DialogId::DialogId: NTlhOWI1MTZmNDIzMWZiZjlkZmYzN2VlY2U0ZTAwNDI.-e0733a11-804697e7eddddb1f12046f94dc00
 ![2007-03-08 16:58:34.345] <808:RESIP:DUM>  DEBUG | DialogSet.cxx:428 | Found matching dialog mClientSubscriptions(0), mServerSubscriptions(0) for

 

SIP/2.0 200 OK

 

Via: SIP/2.0/UDP 135.8.116.33:5060;received=135.8.116.33;branch=z9hG4bK-d8754z-f26e897b7b668a40-1---d8754z-;rport=5060

 

Record-Route: <sip:135.8.52.181:5060;lr>

 

Contact: "  CONFERENCE 2"<sip:76800@xxxxxxxxx:5061;transport=tls>;isfocus

 

To: <sip:76800@xxxxxxxxx>;tag=804697e7eddddb1f12046f94dc00

 

From: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=e0733a11

 

Call-ID: NTlhOWI1MTZmNDIzMWZiZjlkZmYzN2VlY2U0ZTAwNDI.

 

CSeq: 3 INVITE

 

Session-Expires: 240;refresher=uas

 

Allow: INVITE, CANCEL, BYE, ACK, PRACK, SUBSCRIBE, NOTIFY, REFER, OPTIONS

 

Content-Type: application/sdp

 

Server: Avaya CM/R013x.01.2.632.1

 

Supported: 100rel, timer, replaces, join, histinfo

 

Content-Length: 150

 

 

 

v=0

 

o=- 1 3 IN IP4 135.8.83.172

 

s=-

 

c=IN IP4 0.0.0.0

 

t=0 0

 

m=audio 42532 RTP/AVP 0 127

 

a=rtpmap:0 PCMU/8000

 

a=rtpmap:127 telephone-event/8000

 


 ![2007-03-08 16:58:34.345] <808:RESIP:DUM>  DEBUG | Dialog.cxx:315 | Dialog::dispatch: SipResp: 200 tid=f26e897b7b668a40 cseq=INVITE contact=76800@xxxxxxxxx:5061 / 3 from(wire)
 ![2007-03-08 16:58:34.345] <808:RESIP:DUM>  DEBUG | ClientAuthManager.cxx:41 | ClientAuthManager::handle: transitioning NTlhOWI1MTZmNDIzMWZiZjlkZmYzN2VlY2U0ZTAwNDI.-e0733a11to cached
 ![2007-03-08 16:58:34.345] <808:RESIP:DUM>  DEBUG | ClientAuthManager.cxx:193 | ClientAuthManager::RealmState::transition from cached to cached
 ![2007-03-08 16:58:34.345] <808:RESIP:DUM>  INFO | Dialog.cxx:582 | ############# Setting Route Set
 ![2007-03-08 16:58:34.345] <808:RESIP>  DEBUG | sipmessage.cxx:963 | SipMessage::getContents: application/sdp
 ![2007-03-08 16:58:34.345] <808:RESIP>  DEBUG | helper.cxx:2035 | Got sdp

 

 ![2007-03-08 16:58:34.345] <808:RESIP:DUM>  INFO | InviteSession.cxx:2067 | Transition InviteSession::SentReinvite -> InviteSession::Connected

 

Bill Kovar

bkovar@xxxxxxxxx

Avaya, Inc.

(732) 852-2609