[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