[reSIProcate] Dialog not found when 180 To field has no Tag

Stephen Keohane stephen at kindredhill.net
Wed Mar 9 20:32:20 CST 2005


DUM’sters

Sorry if this has been covered before – I didn’t see it in the archives.

I have a Uac which is initiating calls with a Uas. The Uas doesn’t send 
a Tag with the To field in the 180 response. The subsequent 200 (which 
includes the Tag) fails to be found when looked up in the dialog map.

Do I need to use the early dialog mechanism or is this really an issue?

Thanks for your help!

Stephen -

Details -------------------

According to RFC – 3261 : 12.1.2 UAC Behavior pg 71:

“The local sequence number MUST be set to the value of the sequence
number in the CSeq header field of the request. The remote sequence
number MUST be empty (it is established when the remote UA sends a
request within the dialog). The call identifier component of the
dialog ID MUST be set to the value of the Call-ID in the request.
The local tag component of the dialog ID MUST be set to the tag in
the From field in the request, and the remote tag component of the
dialog ID MUST be set to the tag in the To field of the response. A
UAC MUST be prepared to receive a response without a tag in the To
field, in which case the tag is considered to have a value of null.
This is to maintain backwards compatibility with RFC 2543 
<http://www.faqs.org/rfcs/rfc2543.html>, which
did not mandate To tags.”

Here is what I see in the logs

DialogId.cxx:50 | DialogId::DialogId: 
8467be186c3de14a at c2Nvb3Rlcg..-23482900-
Dialog.cxx:198 | ************** Created Dialog as UAC **************
Dialog.cxx:199 | mRemoteNameAddr: <sip:UAC at 10.20.8.77:5060>
Dialog.cxx:200 | mLocalNameAddr: <sip:UAC at 10.20.10.245:12005>;tag=23482900
Dialog.cxx:201 | mLocalContact: <sip:UAC>
Dialog.cxx:202 | mRemoteTarget: <sip:MyName at 10.20.8.77:5060>
Dialog.cxx:207 | Dialog::Dialog 8467be186c3de14a at c2Nvb3Rlcg..-23482900-
DialogSet.cxx:600 | ### Calling CreateAppDialog ###:

SIP/2.0 180 Ringing
To: <sip:UAC at 10.20.8.77:5060>
From: <sip:UAC at 10.20.10.245:12005>;tag=23482900
Via: SIP/2.0/UDP 
10.20.10.245:12005;branch=z9hG4bK-d87543-f16d4916bb41f15a-1--d87543-
Call-ID: 8467be186c3de14a at c2Nvb3Rlcg..
CSeq: 1 INVITE
Contact: <sip:MyName at 10.20.8.77:5060>
Content-Length: 0

Later when the 200 is processed

SIP/2.0 200 OK
To: <sip:UAC at 10.20.8.77:5060>;tag=8d4ad903
From: <sip:UAC at 10.20.10.245:12005>;tag=23482900
Via: SIP/2.0/UDP 
10.20.10.245:12005;branch=z9hG4bK-d87543-f16d4916bb41f15a-1--d87543-
Call-ID: 8467be186c3de14a at c2Nvb3Rlcg..
CSeq: 1 INVITE
Contact: <sip:MyName at 10.20.8.77:5060>
Content-Type: application/sdp
Content-Length: 226

DialogUsageManager.cxx:1308 | Looking for dialogSet: 
8467be186c3de14a at c2Nvb3Rlcg..-23482900 in map:
DialogUsageManager.cxx:1309 | [8467be186c3de14a at c2Nvb3Rlcg..-23482900 -> 
00E66240]
DialogUsageManager.cxx:1210 | DialogUsageManager::processResponse: 
SipResp: 200 tid=f16d4916bb41f15a cseq=INVITE 
contact=MyName at 10.20.8.77:5060 / 1 from(wire)
DialogId.cxx:50 | DialogId::DialogId: 
8467be186c3de14a at c2Nvb3Rlcg..-23482900-8d4ad903

When findDialog is called with the msg it does not find the dialog that 
was created from the 180 response. A short time later an assertion is 
raised in Dialog::forked().

Assertion failed: msg.isResponse() && 
msg.header(h_StatusLine).statusCode() < 200, file .\Dialog.cxx, line 1050




More information about the resiprocate-devel mailing list