web-dev-qa-db-ja.com

SIPでのセッション、ダイアログ、トランザクションの違いは?

セッション、ダイアログ、トランザクションの違いは何ですか?

すべて一緒に存在する必要がありますか?

12
roottraveller

取引

トランザクションは、要求、受信された最終でない(1xx)応答、および最終応答(2xx、3xx、4xx、5xx、または6xx)、および応答の確認(ACKまたはPRACK)で構成されますが、 2xx応答に対するACK。例えば:

SIP peer A sends an INVITE Request to SIP peer B
SIP peer B returns a Response of 100 TRYING; this is a non-final Response, so the transaction is not completed yet
SIP peer B returns 200 OK (a final response), accepting the invitation; this completes the transaction

基本的に、1つの完全な要求/応答。

ダイアログ

ダイアログは、2つのSIP=ピア間の一連のトランザクションです。ダイアログの目的は、セッションをセットアップし、場合によっては変更してから破棄することです。したがって、名前Session Initiation Protocol2つの間に進行中のダイアログが多数存在する可能性があるため、SIPピアはいつでも(たとえば、間に多数の同時コールが発生している可能性があります) 2つのSIPサーバー)、ダイアログはヘッダーのFrom、To、およびCall-IDフィールドで識別されます。したがって、SIPピアAは2つのBYEリクエストを取得します同時に、これらのフィールドを調べて、それらがどのダイアログに属しているかを判別できます。
ダイアログに表示される可能性のある一般的なトランザクションのセットには、次のものがあります。

SIP peer A invites SIP peer B to a session and suggests a certain codec, but does not include authentication and so is rejected
SIP peer A again invites SIP peer B to a session, this time supplying authentication, and the invitation is accepted
SIP peer B sends an invitation to change the codec used, and it is accepted
SIP peer A ends the session

セッション

セッションは、ピア間を流れる単なるメディアストリーム(オーディオやビデオなど)であり、通常はRTP(およびRTCP)パケットで構成されます。たとえば、SIP =は音声通話を行うために使用され、セッションはエンドポイント間で送信される音声データです

質問に答えるには、3つすべてを一緒に必要とするか、セッションを作成するためにトランザクションとダイアログが必要か、そしてセッションがプロトコルの要点であるか

これはスレッドへのリンクです ダイアログとトランザクションの例が含まれています

26
snowcloned