2016-05-10 4 views
0

なぜSIP CANCELメソッドがINVITEと同じCSeq番号とブランチIDを必要とするのですか?対応するINVITEブランチIDとCANCELを一致させるだけで十分です。それは長い値であるため、トランザクションを識別するのに十分です。ではなぜcseqのCANCELに同じ値があるのですか?SIP CANCEL Request

答えて

0

この理由は、以前の仕様に準拠するためです。rfc2543です。この古い仕様では、ブランチパラメータは使用されていませんでした。代わりに、rq-uri、to-tag、call-id、cseq、およびtop-viaがチェックされました。

rfc2543との互換性を維持するために、新しい仕様ではマジッククッキー( "z9hG4bK")で始まるブランチを使用する必要がありますが、依然として古い方法が必要です。

は(Serverトランザクションにマッチング要求) rfc3261のセクション17.2.3で定義されたルール

If the branch parameter in the top Via header field is not present, 
or does not contain the magic cookie, the following procedures are 
used. These exist to handle backwards compatibility with RFC 2543 
compliant implementations. 

The INVITE request matches a transaction if the Request-URI, To tag, 
From tag, Call-ID, CSeq, and top Via header field match those of the 
INVITE request which created the transaction. 
+0

おかげに従わなければならないCANCEL、INVITEを一致させるには。私はrfc 2543も読む必要があります。 – Sudhansu

+0

あなたはそうする必要はありません! rfc3261はrfc2543に準拠する必要があるすべての情報を提供します... – AymericM