Hi everyone,
I have run into an issue with a reliable messaging with PRACK not being
handled properly. The UAC sends an invite with supported:100rel. The UAS
responds with both a 100 and a 183, the contact for the 183 has a SIP URI
and URI Parameter. When the PRACK is being sent to the UAS the R-URI has
incorrectly added a URI-Port and no included the URI-Parameter.
>From 3261 I believe that the UAC MUST not add the URI-Port as it is not in
the contact, and MUST add the URI-Parameter even if it is unknown. This is
where I think the problem arises as the PRACK is not within the DIALOG
established by the 183. But the developer of the UAC is complaining that
the UAS is not responding with a 481. This mismatch of DIALOG is causing
183 and PRACK to continue to be sent back and forth without RAck or CSeq
being updated. The UAC then sends a CANCEL at the session timeout even if
a 200OK for the call has been received from the UAS.
My questions are:
MUST the UAC send the URI-Parameter
MUST the UAC not add a URI-Port when there is none in the CONTACT
MUST the UAS respond with a 481 to a PRACK when the DIALOG does not match?
This is the section from 3262 in question:
A matching PRACK is defined as one within the same dialog as the
response, and whose method, CSeq-num, and
response-num in the RAck header field match, respectively, the method
from the CSeq, the sequence number from
the CSeq, and the sequence number from the RSeq of the reliable
provisional response. If a PRACK request is received
by the UA core that does not match any unacknowledged reliable
provisional response, the UAS MUST respond to
the PRACK with a 481 response.
Thanks
--
Alex
Request-Line: INVITE sip:[email protected]:5060 SIP/2.0
Call-ID: [email protected]
CSeq: 1 INVITE
From: "Username"<sip:[email protected]>;tag=abcd
To: "16032150000"<sip:[email protected]>
Via: SIP/2.0/UDP 10.200.80.40:5060
;branch=z9hG4bK-2dff84-b3ae1d3b-7d156a5f
Contact: <sip:[email protected]:5060>
Supported: 100rel
Max-Forwards: 69
Session-Expires: 60
Min-SE: 60
Remote-Party-ID: <sip:[email protected]>;party=calling
Content-Length: 192
Content-Type: application/sdp
Status-Line: SIP/2.0 100 Giving a try
Call-ID: [email protected]
CSeq: 1 INVITE
From: "Username" <sip:[email protected]>;tag=abcd
To: "16032150000" <sip:[email protected]>
Via: SIP/2.0/UDP 10.200.80.40:5060
;branch=z9hG4bK-2dff84-b3ae1d3b-7d156a5f
Server: VCSR
Content-Length: 0
Status-Line: SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP 10.200.80.40:5060
;branch=z9hG4bK-2dff84-b3ae1d3b-7d156a5f
From: "Username" <sip:[email protected]>;tag=abcd
To: "16032150000" <sip:[email protected]>;tag=gK02b20c22
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:11.100.90.72;did=d11.4a4ba2f1>
Allow: INVITE, ACK, CANCEL, BYE, REGISTER, REFER, INFO, SUBSCRIBE,
NOTIFY, PRACK, UPDATE, OPTIONS
Require: 100rel
RSeq: 16283
Content-Disposition: session; handling=required
Content-Type: application/sdp
Content-Length: 258
Request-Line: PRACK sip:[email protected]:5060 SIP/2.0
Call-ID: [email protected]
CSeq: 2 PRACK
From: "Username"<sip:[email protected]>;tag=abcd
To: "16032150000"<sip:[email protected]>;tag=gK02b20c22
Via: SIP/2.0/UDP 10.200.80.40:5060
Max-Forwards: 70
RAck: 16283 1 INVITE
Content-Length: 0
<183 & PRACK repeat at regular intervals>
Status-Line: SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.200.80.40:5060
;branch=z9hG4bK-2dff84-b3ae1d3b-7d156a5f
From: "Username" <sip:[email protected]>;tag=abcd
To: "16032150000" <sip:[email protected]>;tag=gK02b20c22
Call-ID: [email protected]
CSeq: 1 INVITE
Accept: application/sdp, application/isup, application/dtmf,
application/dtmf-relay, multipart/mixed
Contact: <sip:11.100.90.72;did=d11.4a4ba2f1>
Allow: INVITE, ACK, CANCEL, BYE, REGISTER, REFER, INFO, SUBSCRIBE,
NOTIFY, PRACK, UPDATE, OPTIONS
Supported: timer
Session-Expires: 60;refresher=uas
Content-Disposition: session; handling=required
Content-Type: application/sdp
Content-Length: 258
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors