Session-initiation-protocol-proxies-and-routing
提供:Dev Guides
SIP-プロキシとルーティング
知っているように、プロキシサーバーはステートレスまたはステートフルのいずれかです。 ここで、この章では、プロキシサーバーとSIPルーティングについて詳しく説明します。
ステートレスプロキシサーバー
ステートレスプロキシサーバーは、受信したメッセージを単に転送します。 この種類のサーバーは、呼び出しまたはトランザクションの情報を保存しません。
- ステートレスプロキシは、転送されたSIP要求を忘れます。
- トランザクションは、ステートレスプロキシを介して高速になります。
ステートフルプロキシサーバー
ステートフルプロキシサーバーは、受信したすべての要求と応答を追跡します。 必要に応じて、保存された情報を将来使用できます。 反対側から応答を受信しない場合、要求を再送信できます。
- ステートフルプロキシは、転送されたリクエストを記憶するため、事前のルーティングに使用できます。 ステートフルプロキシは、_transaction_状態を維持します。 _Transactionはトランザクションの状態を意味し、 state を呼び出しません。
- ステートフルプロキシの場合、トランザクションはステートレスほど高速ではありません。
- ステートフルプロキシは、必要に応じて分岐および再送信できます(例:話中転送など)。
経由および記録ルート
レコードルート
Record-Routeヘッダーは、同じcall-idに対する後続のリクエストのパスに存在することを望むプロキシによってリクエストに挿入されます。 その後、ユーザーエージェントが後続のリクエストをルーティングするために使用します。
Via
Viaヘッダーは、サーバーによって要求に挿入され、ループを検出し、応答がクライアントに戻る方法を見つけるのに役立ちます。 これは、応答のみが宛先に到達するのに役立ちます。
- UA自身がリクエストを送信するときに、Viaヘッダーフィールドに自身のアドレスを生成して追加します。
- 要求を転送するプロキシは、独自のアドレスを含むViaヘッダーフィールドをViaヘッダーフィールドのリストの先頭に追加します。
- 要求に対する応答を生成するプロキシまたはUAは、すべてのViaヘッダーフィールドを要求から順番に応答にコピーしてから、上部のViaヘッダーフィールドで指定されたアドレスに応答を送信します。
- 応答を受信するプロキシは、上部のViaヘッダーフィールドをチェックし、自身のアドレスと一致します。 一致しない場合、応答は破棄されています。
- 次に、上部のViaヘッダーフィールドが削除され、応答が次のViaヘッダーフィールドで指定されたアドレスに転送されます。
Viaヘッダーフィールドには、プロトコル名、バージョン番号、およびトランスポート(SIP/2.0/UDP、SIP/2.0/TCPなど)が含まれ、ポート番号と、received、rport、branchなどのパラメーターが含まれます。
- UAまたはプロキシが、上部のViaヘッダーフィールドで指定されたアドレスとは異なるアドレスからリクエストを受信した場合、受信したタグはViaヘッダーフィールドに追加されます。
- UAおよびプロキシによってViaヘッダーフィールドにブランチパラメーターが追加されます。これは、Request-URIとTo、From、Call-ID、およびCSeq番号のハッシュ関数として計算されます。