Hi Matthew, The CSeq counter should increase for each successive transaction in a particular direction. The PRACK transaction(s) are separate transactions. they just happen to take place smack in the middle of the INVITE transaction. So the option2 should be correct. For more clarification follow these links: http://lists.cs.columbia.edu/pipermail/sip-implementors/2001-February/00 0440.html http://lists.cs.columbia.edu/pipermail/sip-implementors/2005-September/0 10195.html
Hope this helps. Regards, Parveen -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matthew Gardiner Sent: Tuesday, February 14, 2006 4:32 PM To: Sip-Implementors Subject: [Sip-implementors] Local CSeq number after PRACK Hi all, I apologise if this question has already been asked in the sip-implementors group. If so, I have either lost or missed the relevant mails and I would be happy if someone could point out the relevant links to me. However, the question is as follows: When a PRACK is sent to acknowledge a provisional response should the caller's local CSeq assume the value of the "outer" INVITE transaction or that of the PRACK transaction, regarding the CSeq to be referred to in future requests by the caller. For example consider a simple call, with 100rel, which is setup and then torn down by the caller. Option 1) Local CSeq retains value of CSeq in INVITE after dialog establishment --> INVITE CSeq 1 <-- 180 CSeq 1 --> PRACK CSeq 2 <-- 200 CSeq 2 PRACK <-- 200 CSeq 1 INVITE --> ACK CSeq 1 ... media ... (no intervening SIP messages) ... --> BYE CSeq 2 <-- 200 CSeq 2 BYE Option 2) Local CSeq uses value of CSeq in the PRACK after dialog establishment --> INVITE CSeq 1 <-- 180 CSeq 1 --> PRACK CSeq 2 <-- 200 CSeq 2 PRACK <-- 200 CSeq 1 INVITE --> ACK CSeq 1 ... media ... (no intervening SIP messages) ... --> BYE CSeq 3 <-- 200 CSeq 3 BYE Hence the CSeq published in the BYE in Option 2) is 1 more than that used in Option 1) as it comes from the PRACK's CSeq, which was itself incremented after the INVITE. My interpretation of RFC 3261 and 3262, suggest that Option 2), i.e. the local CSeq is updated with the CSeq used in the PRACK is correct. However my experience of other vendor's equipment suggests that opinions vary. RFC 3262 states that the "PRACK is like any other non-INVITE request within a dialog" and hence the local CSeq should be incremented by 1. All feedback welcome, Matthew Gardiner Software Enginneer Aculab _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors ********************** Legal Disclaimer **************************** "This email may contain confidential and privileged material for the sole use of the intended recipient. Any unauthorized review, use or distribution by others is strictly prohibited. If you have received the message in error, please advise the sender by reply email and delete the message. Thank you." ********************************************************************** _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
