[SIPForum-discussion] Branch parameter v/s CSeq as transaction identifier

McDowell, John T john.mcdowell at highmark.com
Mon Feb 1 19:38:02 UTC 2010


I think I know what you're getting at.  It seems duplicitous, and probably is in most real cases.  The fact is that the branch ID is rather loosely defined (beyond the magic cookie) and can vary by implementation.  The CSeq is a legacy programming technique for determining linearity and is rigidly defined.

I don't know about you, but I'd rather read a trace of a CSeq than try to figure out what a vendor did in the branch by reading their word/letter cryptography means xyz nonsense.

Arstechnica article on SIP:
http://arstechnica.com/business/networking-and-security/2010/01/voip-in-depth-an-introduction-to-the-sip-protocol-part-1.ars/2

>From rfc3261:
CSeq or Command Sequence contains an integer and a method name.  The
   CSeq number is incremented for each new request within a dialog and
   is a traditional sequence number.


The branch ID inserted by an element compliant with this

   specification MUST always begin with the characters "z9hG4bK".  These

   7 characters are used as a magic cookie (7 is deemed sufficient to

   ensure that an older RFC 2543 implementation would not pick such a

   value), so that servers receiving the request can determine that the

   branch ID was constructed in the fashion described by this

   specification (that is, globally unique).  Beyond this requirement,

   the precise format of the branch token is implementation-defined.

Hope this helps.

John McDowell

From: discussion-bounces at sipforum.org [mailto:discussion-bounces at sipforum.org] On Behalf Of SIP Babie
Sent: Monday, February 01, 2010 2:25 AM
To: discussion at sipforum.org
Subject: Re: [SIPForum-discussion] Branch parameter v/s CSeq as transaction identifier

Dear Forum Members,

Please provide your inputs on the same.

Regards
sipBabie
On Fri, Jan 29, 2010 at 2:39 PM, SIP Babie <sipbabie at gmail.com<mailto:sipbabie at gmail.com>> wrote:
Hi All,

I would like to know why and how is a branch parameter in Via header able to identify a transaction, and if so, why do we need CSeq header to identify a transaction?

If possible please explain with an example.

Regards
sipBabie


________________________________
This e-mail and any attachments to it are confidential and are intended solely for use of the individual or entity to whom they are addressed. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not keep, use, disclose, copy or distribute this e-mail without the author's prior permission. The views expressed in this e-mail message do not necessarily represent the views of Highmark Inc., its subsidiaries, or affiliates.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sipforum.org/pipermail/discussion/attachments/20100201/157b2082/attachment-0002.html>


More information about the discussion mailing list