概要
このドキュメントでは、Cisco Unified Border Element(CUBE)でSession Initiation Protocol(SIP)セッション更新の問題をトラブルシューティングする方法について説明します。
著者:Technical Marketing Engineer CUBE、Andres Salgado
前提条件
要件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
SIPセッションの更新の概要
セッション開始プロトコル(SIP)セッションタイマーサポート機能により、SIPセッションを繰り返しINVITE要求で定期的に更新する機能が追加されます。繰り返されるINVITE要求またはRe-INVITEがアクティブコールレッグで送信され、ユーザエージェント(UA)またはプロキシがSIPセッションのステータスを判別できるようになります。このキープアライブメカニズムがなければ、着信要求と発信要求(ステートフルプロキシ)を記憶するプロキシは、コール状態を不必要に維持し続けることができます。セッションの終了時にUAがBYEメッセージの送信に失敗した場合、またはネットワークの問題によりBYEメッセージが失われた場合、ステートフルプロキシはセッションが終了したことを認識しません。[Re-INVITES]を使用すると、アクティブセッションがアクティブのままになり、完了したセッションが終了します。
相互運用性と互換性
相互運用性
この機能は、SIPセッションを定期的に更新します。定期的な更新により、ユーザエージェントとプロキシはSIPセッションのステータスを監視し、ネットワーク障害が発生したときにネットワークリソースがハングするのを防止できます。
互換性
SIPセッションタイマーサポート機能を実装する必要があるのは、コール内の2人のユーザエージェントまたはプロキシ参加者の1人だけです。この機能は、古いSIPネットワークと簡単に互換性があります。SIPセッションタイマーサポート機能では、更新間隔の値のネゴシエートに使用される2つの新しい汎用ヘッダーも追加されます。
ユーザエージェントの役割
最初のINVITE要求はセッションの期間を確立し、Session-ExpiresヘッダーとMin-SEヘッダーを含めることができます。これらのヘッダーは、ユーザエージェントクライアント(UAC)に必要なセッションタイマー値を示します。受信側のUser Agent Server(UAS)またはプロキシは、セッションタイマー値を小さくできますが、Min-SEヘッダーの値を小さくすることはできません。セッションタイマーの継続時間が設定されている最小値よりも短い場合、プロキシまたはUASは422応答メッセージも送信できます。UASまたはプロキシは、セッションタイマー値が許容可能であると検出した場合、Session-Expiresヘッダーを2xxclass応答にコピーします。
UASまたはプロキシは、UACにSession-Expiresヘッダーが含まれていない場合、INVITEにSession-Expiresヘッダーを挿入できます。したがって、UACは、要求にSession-Expiresヘッダーがない場合でも、応答でSession-Expiresヘッダーを受信できます。
2 xxresponseでは、Session-Expiresヘッダーのrefresherparameterは、誰がre-INVITESを実行するかを示します。たとえば、パラメータにvalueUACが含まれている場合、UACは更新を実行します。互換性の問題については、2つのユーザエージェントのうち1つだけがセッションタイマー機能をサポートする必要があります。その場合、この機能をサポートするUAが更新を実行します。他のUAは更新を繰り返しINVITEとして解釈し、無視します。
再INVITEはINVITE要求と同じように処理されますが、事前に決められたセッション間隔で送信されます。Re-INVITEは、新しいセッションの有効期限を保持します。re-INVITE要求を担当するUAは、セッションが期限切れになる前にre-INVITEを送信します。応答がない場合、UAはセッションが期限切れになる前にコールを終了するBYE要求を送信します。セッションが期限切れになる前にre-INVITEが送信されない場合、UACまたはUASはBYEを送信できます。
2 xxresponseにSession-Expiresヘッダーが含まれていない場合は、セッションの有効期限がなく、re-INVITESを送信する必要はありません。
Session-Expiresヘッダー
Session-Expiresヘッダーは、SIPコールのセッション間隔を伝達します。これはINVITE要求に入れられ、INVITEに対する2 xxclass応答で許可されます。その存在は、UACがこのコールにセッションタイマーを使用することを示します。SIP-Expiresヘッダーとは異なり、現在の時間であるデルタタイムと、応答からのセッション間隔だけを含めることができます。
たとえば、1800秒(30分)の値を持つSession-Expiresヘッダーを含むre-INVITEに対する200 OK応答をUASが生成した場合、UASは200 OK応答が送信された30分後0分300300000000000003000000000000000000000000000000000000000000000000000各プロキシのセッションの有効期限は、2xxが受信または送信された時刻から30分後です。UACでは、最終応答の受信から30分後に有効期限が切れます。
Session-Expiresヘッダーの推奨値は1800秒です。
Session-Expiresヘッダーの構文は次のとおりです。
Session-Expires = ("Session-Expires" | "x") ":" delta-seconds
refresher = ";" "refresher" "=" "UAS"|"UAC"
初期INVITEではTherefresherparameterはオプションですが、UACはこれをUACに設定して、セッションの更新を開始することを示すことができます。200 OK応答には、リフレッシャパラメータが設定されている必要があります。
Min-SEヘッダー
INVITE要求の処理負荷のため、プロキシ、UAC、およびUASが受け入れる最小タイマー値を設定できます。プロキシ、UAC、およびUAS。min-secコマンドは最小タイマーを設定し、初期INVITE要求のMin-SEヘッダーで伝送されます。
コールが発信されると、Min-SEヘッダーの存在は、UASおよびUACがセッションタイマーの期間に受け入れる最小値のプロキシを秒単位で通知します。デフォルト値は1800秒(30分)です。 セッションタイマーを設定された値より小さくしないことをお勧めします。UASとプロキシは、UACによる422エラーの生成を防止します。設定されると、min-secコマンド値は、ルータから発信されたすべてのコールに影響します。Min-SEヘッダーがない場合、UAは任意の値を受け入れます。
Min-SEヘッダーの構文は次のとおりです。
Min-SE = "Min-SE" ":" delta-seconds
422応答メッセージ
Session-Expiresヘッダーの値が小さすぎる場合、UASまたはプロキシは422 Session Timer To Smallresponseメッセージでコールを拒否します。422応答メッセージでは、プロキシまたはUASに、受け入れ可能な最小セッション値を示すMin-SEヘッダーが含まれます。UACは、より大きなセッションタイマー値を使用してコールを再試行できます。
INVITE要求の後に422応答メッセージが受信された場合、UACはINVITEを再試行できます。
サポートされるヘッダーと必須ヘッダー
Supportedヘッダーにtimerargumentが含まれている場合は、UAがSIPセッションタイマーをサポートしていることを示します。Requireヘッダーにtimerargumentが存在する場合は、反対のUAがコールを成功させるためにSIPセッションタイマーをサポートする必要があることを示します。
- 2xx応答では、Session-Expiresヘッダーのrefresherparameterは、Re-INVITESを実行するユーザを示します
- 2xx応答にSession-Expiresヘッダーが含まれていない場合は、セッションの有効期限がなく、Re-INVITESを送信する必要はありません
- 最初のINVITEでは、refresherパラメータはオプションです。200 OK応答には、リフレッシャパラメータが設定されている必要があります
- Min-SEヘッダーは、UASおよびすべてのプロキシに、UACがセッションタイマー期間に受け入れる最小値を秒単位で通知します。デフォルト値は1800秒(30分)です
コールフローの例
SIPプロバイダーからの着信コールでは、応答がUACに設定されるため、200 OKの15分後にUAC(SIPプロバイダー)がセッション更新(Re-Invite)を送信します。
Cisco Unified Communications Manager(CUCM)は、86400秒後にセッションの更新を送信します。
セッションの期限切れCUCMはデフォルト値1800を送信しますが、最大86400まで増やすことができます。
更新の更新による相互運用性の問題の回避
1. CUBEは、SIPプロファイルを使用したセッション更新の更新を無効にできます。
voice class sip-profiles 200
request ANY sip-header Allow-Header modify ", UPDATE" "“
Response ANY sip-header Allow-Header modify ", UPDATE" "“
Voice service voip
sip
sip-profiles 200
2.音声サービスVoIPのSIPのsession refreshコマンドは、着信レッグにヘッダーが存在しない場合、発信INVITEにセッションの有効期限を追加します。
3.セッションの更新を、CUCM 10.x以降の更新ではなくInviteに設定します。
CUCMのSIPプロファイルの下の[Session Refresh]メソッド。
通話中のRE-INVITE/UPDATEの使用
ネットワークから送信される不要なRe-Invites/UPDATEを回避し、ローカルで使用して運用上の問題を回避します。セッションの更新は、メディアが変更された場合にのみ渡されます。
Midcall-reinviteの概要
CUBEは、media-changeを介したコール中シグナリングパススルーで再招待を消費します。CUBEは各脚を個別に処理します。
15分後に、セッションの更新が表示されます。
Session Expiresヘッダーを含むMidcall-reinviteの設定例。
関連情報