< 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 basic rule is:
Once the route set is computed (from an initial INVITE or response that creates a dialog) it doesn't change.
Only the remote target can change.
 
So this in-dialog Update shouldn't be doing this....
 
Bill Kovar
Avaya, Inc.
(732) 852-2609
 


From: Byron Campen [mailto:bcampen@xxxxxxxxxxxx]
Sent: Wednesday, March 07, 2007 4:31 PM
To: Kovar, William (Bill)
Cc: resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
Subject: Re: [reSIProcate] Route Set problem with Update in resip 1.1 RC1

This is interesting. I do not think it would be correct to change the Record-Route stack to reflect the Route set in the dialog. Obviously something in the middle is confused if this happens, and changing the Record-Route stack in the response is liable to confuse it even further. Both endpoints should just ignore the Record-Route header-field-values entirely, I think.

Any other opinions?

Best regards,
Byron Campen

There seems to be another problem with Record Route processing.
 
After an established dialog, an Update is received that runs through Helper::makeResponse() to build a 200 msg that does not contain the correct Route Set.
 
I had found this error in a different scenario, i.e. a response, which is fixed. Now I see this in an Update, i.e. a request.
 
I believe the problem is at Helper.cxx line 410
 
Here's a log snip, correct route set in ACK in blue, bad route set in 200 OK in red for same call-id:
 
 ![2007-03-07 20:14:53.258] <2952: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 ]
 
ACK sip:76800@xxxxxxxxx:5061;transport=tls SIP/2.0
 
Via: SIP/2.0/UDP 135.8.116.33:5060;branch=z9hG4bK-d8754z-b20c1e5c1c57e971-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=0945f2f40dddb181b46f94dc00
 
From: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=b855e212
 
Call-ID: ZDU4Yjg4M2UxYTE1MjRiNzJkZTU3ZWMzYmNlMjZlZjk.
 
CSeq: 2 ACK
 
Content-Type: application/sdp
 
Proxy-Authorization: Digest username="56000",realm="avaya.com",nonce="MTE3MzMzMTA4NTpTREZTZXJ2ZXJTZWNyZXRLZXk6NzQ1MTU0ODc4",uri="sip:76800@xxxxxxxxx",response="e1bdfe0882c087d5334812ad288f7c60",algorithm=MD5
 
User-Agent: AvSIP 1.04.2
 
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 36456 RTP/AVP 0 18 127
 
a=fmtp:18 annexb=no
 
a=rtpmap:0 PCMU/8000
 
a=rtpmap:18 G729/8000
 
a=rtpmap:127 telephone-event/8000
 

 ![2007-03-07 20:14:53.258] <2952:RESIP:TRANSPORT>  DEBUG | Transport.cxx:213 | Adding message to tx buffer 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 ]
 ![2007-03-07 20:14:53.305] <2952:RESIP:TRANSPORT>  DEBUG | Transport.cxx:287 | incoming from: [ V4 135.8.52.181:32796 UDP target domain=unspecified received on: Transport: [ V4 0.0.0.0:5060 UDP target domain=unspecified connectionId=0 ] connectionId=0 ]
 ![2007-03-07 20:14:53.305] <2952:RESIP:TRANSACTION>  DEBUG | TransactionUser.cxx:66 | Checking if SipReq:  UPDATE
56000@xxxxxxxxxxxx:5060 tid=03950393A79343D4439ec3.0 cseq=UPDATE contact=76800@xxxxxxxxx:5061 / 1 from(wire) is for me
 ![2007-03-07 20:14:53.305] <2952:RESIP:TRANSACTION>  DEBUG | TransactionUser.cxx:71 | Checking rule...
 ![2007-03-07 20:14:53.305] <2952:RESIP:TRANSACTION>  DEBUG | MessageFilterRule.cxx:70 | Matching rule for:
 
UPDATE sip:56000@xxxxxxxxxxxx:5060 SIP/2.0
 
Via: SIP/2.0/UDP 135.8.52.181:5060;branch=z9hG4bK83A503034493935543998a.0
 
Via: SIP/2.0/TLS avaya.com;psrrposn=1;received=135.8.83.172;branch=z9hG4bK80945f2f40dddb1c1b46f94dc00
 
Max-Forwards: 69
 
Record-Route: <sip:135.8.52.181:5060;lr>
 
Contact: "  CONFERENCE 2"<sip:76800@xxxxxxxxx:5061;transport=tls>;isfocus
 
To: "IC 7.1 B2B" <sip:56000@xxxxxxxxx>;tag=b855e212
 
From: sip:76800@xxxxxxxxx;tag=0945f2f40dddb181b46f94dc00
 
Call-ID: ZDU4Yjg4M2UxYTE1MjRiNzJkZTU3ZWMzYmNlMjZlZjk.
 
CSeq: 1 UPDATE
 
Session-Expires: 240;refresher=uac
 
Min-SE: 240
 
Allow: INVITE, CANCEL, BYE, ACK, PRACK, SUBSCRIBE, NOTIFY, REFER, OPTIONS
 
Supported: 100rel, timer, replaces, join, histinfo
 
User-Agent: Avaya CM/R013x.01.2.632.1
 
Content-Length: 0
 
 
 

 ![2007-03-07 20:14:53.383] <2952:RESIP:TRANSACTION>  DEBUG | MessageFilterRule.cxx:241 | MSG User = 56000
 ![2007-03-07 20:14:53.383] <2952:RESIP:TRANSACTION>  DEBUG | MessageFilterRule.cxx:252 | List USER = 56000
 ![2007-03-07 20:14:53.383] <2952:RESIP:TRANSACTION>  DEBUG | TransactionUser.cxx:74 | Match!
 ![2007-03-07 20:14:53.383] <2952:RESIP>  DEBUG | Helper.cxx:372 | Helper::makeResponse(SipReq:  UPDATE
56000@xxxxxxxxxxxx:5060 tid=83A503034493935543998a.0 cseq=UPDATE contact=76800@xxxxxxxxx:5061 / 1 from(wire) code=100 reason=
 ![2007-03-07 20:14:53.383] <2952:RESIP:TRANSACTION>  DEBUG | TimerQueue.cxx:85 | Adding timer: Timer Trying tid=83A503034493935543998a.0 ms=3500
 ![2007-03-07 20:14:53.383] <2952:RESIP:TRANSACTION>  DEBUG | TransactionState.cxx:1852 | Send to TU: TU: DialogUsageManager size=0
 
UPDATE sip:56000@xxxxxxxxxxxx:5060 SIP/2.0
 
Via: SIP/2.0/UDP 135.8.52.181:5060;branch=z9hG4bK83A503034493935543998a.0
 
Via: SIP/2.0/TLS avaya.com;psrrposn=1;received=135.8.83.172;branch=z9hG4bK80945f2f40dddb1c1b46f94dc00
 
Max-Forwards: 69
 
Record-Route: <sip:135.8.52.181:5060;lr>
 
Contact: "  CONFERENCE 2"<sip:76800@xxxxxxxxx:5061;transport=tls>;isfocus
 
To: "IC 7.1 B2B" <sip:56000@xxxxxxxxx>;tag=b855e212
 
From: sip:76800@xxxxxxxxx;tag=0945f2f40dddb181b46f94dc00
 
Call-ID: ZDU4Yjg4M2UxYTE1MjRiNzJkZTU3ZWMzYmNlMjZlZjk.
 
CSeq: 1 UPDATE
 
Session-Expires: 240;refresher=uac
 
Min-SE: 240
 
Allow: INVITE, CANCEL, BYE, ACK, PRACK, SUBSCRIBE, NOTIFY, REFER, OPTIONS
 
Supported: 100rel, timer, replaces, join, histinfo
 
User-Agent: Avaya CM/R013x.01.2.632.1
 
Content-Length: 0
 
 
 

 ![2007-03-07 20:14:53.383] <2840:RESIP:DUM>  INFO | DialogUsageManager.cxx:1190 | Got: SipReq:  UPDATE 56000@xxxxxxxxxxxx:5060 tid=83A503034493935543998a.0 cseq=UPDATE contact=76800@xxxxxxxxx:5061 / 1 from(wire)
 ![2007-03-07 20:14:53.399] <2840:RESIP:DUM>  DEBUG | DialogUsageManager.cxx:1456 | DialogUsageManager::processRequest: SipReq:  UPDATE
56000@xxxxxxxxxxxx:5060 tid=83A503034493935543998a.0 cseq=UPDATE contact=76800@xxxxxxxxx:5061 / 1 from(wire)
 ![2007-03-07 20:14:53.399] <2840:RESIP:DUM>  INFO | DialogUsageManager.cxx:1516 | Handling in-dialog request: SipReq:  UPDATE
56000@xxxxxxxxxxxx:5060 tid=83A503034493935543998a.0 cseq=UPDATE contact=76800@xxxxxxxxx:5061 / 1 from(wire)
 ![2007-03-07 20:14:53.399] <2840:RESIP:DUM>  DEBUG | DialogId.cxx:50 | DialogId::DialogId: ZDU4Yjg4M2UxYTE1MjRiNzJkZTU3ZWMzYmNlMjZlZjk.-b855e212-0945f2f40dddb181b46f94dc00
 ![2007-03-07 20:14:53.399] <2840:RESIP:DUM>  DEBUG | DialogSet.cxx:428 | Found matching dialog mClientSubscriptions(0), mServerSubscriptions(0) for
 
UPDATE sip:56000@xxxxxxxxxxxx:5060 SIP/2.0
 
Via: SIP/2.0/UDP 135.8.52.181:5060;branch=z9hG4bK83A503034493935543998a.0
 
Via: SIP/2.0/TLS avaya.com;psrrposn=1;received=135.8.83.172;branch=z9hG4bK80945f2f40dddb1c1b46f94dc00
 
Max-Forwards: 69
 
Record-Route: <sip:135.8.52.181:5060;lr>
 
Contact: "  CONFERENCE 2"<sip:76800@xxxxxxxxx:5061;transport=tls>;isfocus
 
To: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=b855e212
 
From: <sip:76800@xxxxxxxxx>;tag=0945f2f40dddb181b46f94dc00
 
Call-ID: ZDU4Yjg4M2UxYTE1MjRiNzJkZTU3ZWMzYmNlMjZlZjk.
 
CSeq: 1 UPDATE
 
Session-Expires: 240;refresher=uac
 
Min-SE: 240
 
Allow: INVITE, CANCEL, BYE, ACK, PRACK, SUBSCRIBE, NOTIFY, REFER, OPTIONS
 
Supported: 100rel, timer, replaces, join, histinfo
 
User-Agent: Avaya CM/R013x.01.2.632.1
 
Content-Length: 0
 
 
 

 ![2007-03-07 20:14:53.399] <2840:RESIP:DUM>  DEBUG | Dialog.cxx:315 | Dialog::dispatch: SipReq:  UPDATE 56000@xxxxxxxxxxxx:5060 tid=83A503034493935543998a.0 cseq=UPDATE contact=76800@xxxxxxxxx:5061 / 1 from(wire)
 ![2007-03-07 20:14:53.399] <2840:RESIP>  DEBUG | Helper.cxx:372 | Helper::makeResponse(SipReq:  UPDATE
56000@xxxxxxxxxxxx:5060 tid=83A503034493935543998a.0 cseq=UPDATE contact=76800@xxxxxxxxx:5061 / 1 from(wire) code=200 reason=
 ![2007-03-07 20:14:53.399] <2840:RESIP:DUM>  DEBUG | Dialog.cxx:984 | Dialog::makeResponse:
 
SIP/2.0 200 OK
 
Via: SIP/2.0/UDP 135.8.52.181:5060;branch=z9hG4bK83A503034493935543998a.0
 
Via: SIP/2.0/TLS avaya.com;psrrposn=1;received=135.8.83.172;branch=z9hG4bK80945f2f40dddb1c1b46f94dc00
 
Record-Route: <sip:135.8.52.181:5060;lr>
 
Contact: <sip:56000>
 
To: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=b855e212
 
From: <sip:76800@xxxxxxxxx>;tag=0945f2f40dddb181b46f94dc00
 
Call-ID: ZDU4Yjg4M2UxYTE1MjRiNzJkZTU3ZWMzYmNlMjZlZjk.
 
CSeq: 1 UPDATE
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, UPDATE, NOTIFY
 
Content-Length: 0
 
 
 

 ![2007-03-07 20:14:53.399] <2840:RESIP:APP>  INFO | UserAgent.cpp:2146 | sip:76800@xxxxxxxxx CUserAgent::onReadyToSend(CISH) on session 23 - SipResp: 200 tid=83A503034493935543998a.0 cseq=UPDATE contact=56000 / 1 from(tu)
 ![2007-03-07 20:14:53.399] <2840:RESIP:APP>  INFO | UserAgent.cpp:2147 | NO OP
 ![2007-03-07 20:14:53.399] <2840:RESIP:DUM>  DEBUG | DialogUsageManager.cxx:800 | SEND:
 
SIP/2.0 200 OK
 
Via: SIP/2.0/UDP 135.8.52.181:5060;branch=z9hG4bK83A503034493935543998a.0
 
Via: SIP/2.0/TLS avaya.com;psrrposn=1;received=135.8.83.172;branch=z9hG4bK80945f2f40dddb1c1b46f94dc00
 
Record-Route: <sip:135.8.52.181:5060;lr>
 
Contact: <sip:56000>
 
To: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=b855e212
 
From: <sip:76800@xxxxxxxxx>;tag=0945f2f40dddb181b46f94dc00
 
Call-ID: ZDU4Yjg4M2UxYTE1MjRiNzJkZTU3ZWMzYmNlMjZlZjk.
 
CSeq: 1 UPDATE
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, UPDATE, NOTIFY
 
User-Agent: AvSIP 1.04.2
 
Content-Length: 0
 
 
 

 ![2007-03-07 20:14:53.399] <2840:RESIP>  DEBUG | SipStack.cxx:290 | SEND: SipResp: 200 tid=83A503034493935543998a.0 cseq=UPDATE contact=56000 / 1 from(tu)
 ![2007-03-07 20:14:53.414] <2952:RESIP:TRANSACTION>  DEBUG | TimerQueue.cxx:85 | Adding timer: Timer J tid=83A503034493935543998a.0 ms=32000
 ![2007-03-07 20:14:53.414] <2952:RESIP:TRANSPORT>  DEBUG | TransportSelector.cxx:521 | Looked up source for destination: [ V4 135.8.52.181:5060 UDP target domain=unspecified received on: Transport: [ V4 0.0.0.0:5060 UDP target domain=unspecified connectionId=0 ] connectionId=0 ] -> [ V4 135.8.116.33:0 UDP target domain=unspecified received on: Transport: [ V4 0.0.0.0:5060 UDP target domain=unspecified connectionId=0 ] connectionId=0 ] sent-by=135.8.52.181 sent-port=5060
 ![2007-03-07 20:14:53.414] <2952:RESIP:TRANSPORT>  DEBUG | TransportSelector.cxx:869 | Transmitting to [ V4 135.8.52.181:5060 UDP target domain=unspecified 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=unspecified received on: Transport: [ V4 0.0.0.0:5060 UDP target domain=unspecified connectionId=0 ] connectionId=0 ]
 
SIP/2.0 200 OK
 
Via: SIP/2.0/UDP 135.8.52.181:5060;branch=z9hG4bK83A503034493935543998a.0
 
Via: SIP/2.0/TLS avaya.com;psrrposn=1;received=135.8.83.172;branch=z9hG4bK80945f2f40dddb1c1b46f94dc00
 
Record-Route: <sip:135.8.52.181:5060;lr>
 
Contact: <sip:56000@xxxxxxxxxxxx:5060>
 
To: "IC 7.1 B2B"<sip:56000@xxxxxxxxx>;tag=b855e212
 
From: <sip:76800@xxxxxxxxx>;tag=0945f2f40dddb181b46f94dc00
 
Call-ID: ZDU4Yjg4M2UxYTE1MjRiNzJkZTU3ZWMzYmNlMjZlZjk.
 
CSeq: 1 UPDATE
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, UPDATE, NOTIFY
 
User-Agent: AvSIP 1.04.2
 
Content-Length: 0
 
 
 

 ![2007-03-07 20:14:53.414] <2952:RESIP:TRANSPORT>  DEBUG | Transport.cxx:213 | Adding message to tx buffer to: [ V4 135.8.52.181:5060 UDP target domain=unspecified received on: Transport: [ V4 0.0.0.0:5060 UDP target domain=unspecified connectionId=0 ] connectionId=0 ]
 
Bill Kovar
Avaya, Inc.
(732) 852-2609
 
_______________________________________________
resiprocate-devel mailing list