Cisco Unified Border Element(SP Edition)コンフィギュレーション ガイド:統合モデル
SIP メッセージの操作
SIP メッセージの操作
発行日;2012/07/12 | 英語版ドキュメント(2012/03/30 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 7MB) | フィードバック

目次

SIP メッセージの操作

内容

プロファイル使用による SIP メッセージの編集

SIP プロファイルについて

メソッド プロファイル

メソッド プロファイルの設定に関する制約事項

メソッド プロファイルに関する情報

メソッド プロファイルの設定

メソッド プロファイルのコンフィギュレーションの削除

メソッド プロファイルの適用

応答コード マッピング

応答コードのマッピングに関する制約事項

応答コードのマッピングの設定

応答コード マッピングの適用

ヘッダー プロファイル

ヘッダー プロファイル設定に関する制約事項

ヘッダー プロファイルについて

ヘッダー操作

PUBLISH メソッドの Event ヘッダー

ヘッダー プロファイルの条件一致

store-rule の宣言

request-line の変更

ユーザ名パラメータの解析

Expires ヘッダーの抑制

カスタマー P-Asserted-Identity の設定

SIP Destination ID

着信要求

発信要求

SIP Source ID

転送されたコールの SIP Source ID

ヘッダー プロファイルの設定情報

ヘッダー プロファイルの設定

ヘッダー プロファイルの適用

SIP 宛先アドレスを取得するためのヘッダーの順序付きリストの設定

SIP 送信元アドレスを取得するためのヘッダーの順序付きリストの設定

転送されたコールの SIP 送信元アドレスを取得するためのヘッダーの順序付きリストの設定

暫定応答フィルタリング

暫定応答フィルタリングの情報

暫定応答フィルタリングの設定

暫定応答フィルタリングの適用

パラメータ プロファイル

パラメータ プロファイル設定に関する制約事項

パラメータ プロファイルについて

パラメータ プロファイルの設定

パラメータ プロファイルのヘッダー プロファイルへの適用

隣接との関連付け

ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能

ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能の設定

SIP プロファイルの設定例

メソッド プロファイルの例

メソッド プロファイルの適用例

事前定義したヘッダー プロファイルの関連付け例

事前定義されたパラメータ プロファイルの関連付け例

応答コード マッピングの関連付け例

ヘッダー プロファイルの設定例

ヘッダー プロファイルの適用例

ヘッダー操作例

例:P-Asserted-Identity ヘッダーの削除

例:別のヘッダーの条件に基づくヘッダーの削除

例:すべての応答からの Organization ヘッダーの削除

例:ヘッダーを別のヘッダーに変換

例:特定のヘッダーを含む送信メッセージ

例:ヘッダーをブラックリストに載せる

例:ヘッダーをホワイトリストに載せる

例:日付ヘッダーのパス

例:INVITE の Organization ヘッダーの除去

例:パラメータ プロファイルの適用

例:P-Called-Party-Identity の除去

例:アウトバウンド request-line の置換

例:P-KT-UE-IP ヘッダーのサポート

応答フィルタリングの例

パラメータ プロファイルの例

ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能の例

エディタの使用による SIP メッセージの編集

SIP メッセージ編集の制約事項

エディタの命名ガイドライン

エディタの設定

SIP メッセージ エディタの設定例

メソッド エディタの例

ヘッダー エディタの例

本文エディタの例

オプション エディタの例

パラメータ エディタの例

スクリプトベースのエディタの使用による SDP の編集

スクリプトベースの編集のための Lua スクリプトの作成

組み込み Lua クラス

組み込みアプリケーション変数

組み込みロガー関数

組み込み登録関数

ユーザ定義によるアプリケーション変数

SBC 上でのスクリプトベースのエディタの設定

スクリプトベースのエディタの作成および設定:例

Lua スクリプトの作成:例

スクリプトベースのエディタの設定:例

スクリプトベースのエディタのアイソレーション テスト:例

スクリプトベースのエディタのライブ テスト:例

SIP メッセージの操作

Cisco Unified Border Element(SP Edition)は、隣接で着信 SIP メッセージを選択的に検査し、操作するように設定できます。

Cisco Unified Border Element(SP Edition)は、以前は Integrated Session Border Controller と呼ばれており、このマニュアルでは通常 Session Border Controller(SBC; セッション ボーダー コントローラ)と呼びます。

本章で使用されているコマンドの詳細な説明については、次の場所にある『 Cisco Unified Border Element (SP Edition) Command Reference: Unified Model 』を参照してください。

http://www.cisco.com/en/US/docs/ios/sbc/command/reference/sbcu_book.html

すべての Cisco IOS コマンドの詳細については、http://tools.cisco.com/Support/CLILookup にある Command Lookup Tool を使用するか、Cisco IOS マスター コマンド リストを参照してください。

Cisco Unified Border Element(SP Edition)での SIP ヘッダー操作の機能履歴

 

リリース
変更内容

Cisco IOS XE Release 2.4

Cisco IOS XR に、SIP ヘッダー プロファイル、SIP 方式プロファイル、パラメータ プロファイル、応答コードマッピング、SIP ヘッダー操作、および暫定応答フィルタリング機能が、統合モデルのサポートとともに追加されました。

Cisco IOS XE Release 2.5

Cisco ASR 1000 シリーズ ルータに次の機能が追加されました。

ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能。

Cisco ASR 1000 シリーズ ルータの SIP ヘッダー操作の強化機能。

SIP ヘッダー操作機能の一部として、P-KT-UE-IP ヘッダー(プライベート ヘッダー タイプ)をサポート。

Cisco IOS XE Release 2.6

Cisco ASR 1000 シリーズ ルータでは、次の SIP ヘッダー操作機能が、新しい CLI でイネーブルになりました。

ユーザ名パラメータの解析

Expires ヘッダーの抑制

カスタマー P-Asserted-Identity の設定

Cisco IOS XE Release 3.1S

Cisco ASR 1000 シリーズ ルータに次の機能が追加されました。

SIP Destination ID

SIP Source ID

Cisco IOS XE Release 3.2S

SBC は、Request-URI のホスト名を使用してコールのコールポリシー ルーティングをサポートします。コールは、Request-URI にユーザ名がない場合でもルーティングされます。

Cisco ASR 1000 シリーズ ルータに PUBLISH メソッド機能の Event ヘッダーが追加されました。

Cisco IOS XE Release 3.3S

SIP メッセージの編集機能が追加されました。

Cisco IOS XE Release 3.4S

スクリプトベースのエディタを使用して SDP を編集する機能が追加されました。

プロファイル使用による SIP メッセージの編集

ここでは、次の SIP プロファイルに関する情報について説明します。

「SIP プロファイルについて」

「メソッド プロファイル」

「応答コード マッピング」

「ヘッダー プロファイル」

「暫定応答フィルタリング」

「パラメータ プロファイル」

「ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能」

「SIP プロファイルの設定例」


) Release 3.3S 以降は、エディタの概念が導入されました。エディタは、対応するプロファイルの拡張バージョンです。「エディタの使用による SIP メッセージの編集」以降では、プロファイルがすべてエディタに置き換えられました。たとえば、メソッド プロファイルはメソッド エディタと呼ばれます。


SIP プロファイルについて

Cisco Unified Border Element(SP Edition)は次の SIP プロファイルを操作できます。

メソッド プロファイル

ヘッダー プロファイル

パラメータ プロファイル

メソッド プロファイルを使用すると、ヘッダー プロファイルとパラメータ プロファイルの、メソッド プロファイルに含まれているメソッド エレメントへの関連付けができます。メソッド プロファイルとともにアクションを使用して、ブラックリストのヘッダーをホワイトリストに含ませたり、ホワイトリストのヘッダーをブラックリストに含ませたり、non-vital メソッドを拒否したりできます。これにより、プロファイルごとの混合アクションをプロファイルに含ませることが可能になります。

ヘッダー プロファイルを使用すると、条件式に基づくアクションを使用して、既存のホワイトリストおよびブラックリストの機能以上の複雑なヘッダー操作を実行できます。

ヘッダー プロファイルは、さらにプロファイルに含まれているヘッダー エレメントのパラメータ プロファイルを関連付けできます。

変数を使用してヘッダーの内容を保存した後、その保存された変数を使用してヘッダーを再構築できます。また、ヘッダーを正規表現で照合できます。条件一致を使用して、隣接設定、転送アドレス、およびいくつかの Boolean 一致基準との一致が可能です。また、ヘッダー プロファイルを使用すると、request-line を参照したり、限定的に変更したりできます。

ヘッダー プロファイルは条件的にヘッダーの任意の場所と一致できますが、ヘッダー全体だけとしか置換できません。SIP パラメータ プロファイルでは、この機能が拡張されて、ヘッダーに関連付けられている個別の SIP Request Uniform Resource Identifier(URI)パラメータを変更できるようになっています。

パラメータ プロファイルを使用すると、vital ヘッダー内の特定の URI パラメータを削除、置換、または追加できます。

また、メソッドごとの request-line 処理だけのために、パラメータ プロファイルをメソッド プロファイル内のメソッドに関連付けできます。

複数の store-rule、request-line、およびヘッダー エントリをそれぞれ、独自のアクションやアクションが適用される条件で設定できます。 図 1 に、隣接、メソッド プロファイル、ヘッダー プロファイル、およびパラメータ プロファイルの階層的な関連付けを示します。点線は、パラメータ プロファイルのメソッド プロファイルへの関連付けの非推奨の方法を示します。

図 1 SIP プロファイル

メソッド プロファイル

SIP メソッドは、メッセージの受信(入力)およびメッセージの送信(出力)の実行時に動的にブラックリストやホワイトリストにすることが可能です。

設定済みのメソッド プロファイルを使用すると、non-vital 要求に対して 2 種類のメソッド プロファイルが可能です。これらは、ブラックリスト(廃棄)またはホワイトリスト(パス)になります。コマンド ラインに「ブラックリスト」がない場合は、ホワイトリスト アクションはメソッドのデフォルト タイプと見なされます。

メソッド プロファイルには、パスした(ホワイトリスト)または廃棄された(ブラックリスト)メソッドのリストが含まれます。単一のプロファイルは、その後、インバウンド コール側またはアウトバウンド コール側に関連付けできます。

メソッド プロファイルは、事前定義されたヘッダー プロファイルに関連付けできます。さらに、事前定義されたパラメータ プロファイルは、メソッドごとの request-line に関連付けできます。

メソッド プロファイルでは vital メソッドをブラックリストまたはホワイトリストにできませんが、ヘッダー プロファイルおよびパラメータ プロファイルは vital メソッドに関連付けできます。

ステータス コード マッピングは、このメソッドで特定される応答を変更できるように、メソッド プロファイル内で宣言されたどのメソッド タイプにも関連付けできます。たとえば、INVITE への 503 応答は、INVITE メソッドに対して適切なマッピングが宣言されている場合は、500 応答に変更される可能性があります。

ここでは、次の項目について説明します。

「メソッド プロファイルの設定に関する制約事項」

「メソッド プロファイルに関する情報」

「メソッド プロファイルの設定」

「メソッド プロファイルの適用」

メソッド プロファイルの設定に関する制約事項

メソッド プロファイルに関する次の制約事項を確認してください。

すべてのプロファイルは、ホワイトリストまたはブラックリストのいずれかである必要があります。

すべての SIP メッセージを処理するために、2 つのプロファイルが適用されます。1 つはインバウンドで、もう 1 つはアウトバウンドです(許可された場合)。

プロファイルでチェックされるのは、リクエスト ユニフォーム リソース識別子(URI)の SIP メソッドだけです。

ブラックリスト内の必須でない SIP 要求は、メソッド プロファイル ルールの結果として拒否されます。SIP 応答は常に転送されます。

プロファイル ルールの結果として転送される、Cisco Unified Border Element(SP Edition)に既知のメソッドはすべて、SIP 対話の作成や削除に影響を及ぼしません。

Cisco Unified Border Element(SP Edition)の操作に必須のメソッドはブラックリストに追加されず、暗黙的にホワイトリストに追加されます。

1 つ以上の隣接によって使用中のプロファイルは削除できません。

non-Information Management System(IMS)プリセットの場合は、デフォルトのメソッド プロファイル(SIP メソッド プロファイルのデフォルト)があります。デフォルトのメソッド プロファイルは、設定されると、インバウンドとアウトバウンドの両方について設定されたユーザ定義のメソッド プロファイルがない隣接に接続されます。SIP メソッド プロファイルのデフォルトは、空のホワイトリストです。

メソッド プロファイルに関する情報

プロファイルの設定後、そのプロファイルをデフォルト アプリケーション用に設定できます。SIP 隣接の場合は、その隣接用のシグナリングにプロファイルを適用できます。


) プロファイルは設定のオプション部分であり、Cisco Unified Border Element(SP Edition)を正しく動作させるために指定する必要はありません。デフォルトの動作では、必須メソッドのいずれかの要求が処理され、他のすべての要求は拒否されます。


プロファイルからのメソッドへの追加や削除は、いつでも実行できます。各メソッドには、オプションとして action コマンドで 3 つのアクションのいずれかを割り当てできます。

メソッドを pass または reject する。

as-profile アクションを使用してデフォルト プロファイルのブラックリストまたはホワイトリストを選択する。

プロファイルは、1 つ以上の隣接に使用されている間は削除できません。どの隣接がプロファイルを使用しているか確認するには、次の show コマンドを入力します。

show sbc sbc-name sbe sip method-profile [profile-name]
or
show sbc sbc-name sbe sip essential-methods
 

表 1 に、必須メソッド セットに含まれるメソッドの一覧を示します。

 

表 1 必須メソッド

INVITE

PRACK

ACK

NOTIFY

CANCEL

REFER

BYE

SUBSCRIBE

REGISTER

request-line 内のパラメータを変更するには、パラメータ プロファイルをメソッド プロファイルに関連付けます。

Cisco IOS XE Release 2.4 以降には、次の機能が含まれています。

事前定義されたヘッダー プロファイルを送信メソッド プロファイルに関連付けできる。

事前定義されたパラメータを、メソッドごとに request-line に関連付けできる。


) メソッド プロファイルがブラックリストやホワイトリストの必須メソッドに許可されなくても、ヘッダー プロファイルとパラメータ プロファイルを必須メソッドに関連付けできる。


応答コード マッピングは、このメソッドで特定される応答を変更できるように、メソッド プロファイル内で宣言されたどのメソッド タイプにも関連付けできます。たとえば、INVITE への 503 応答は、INVITE メソッドに対して適切なマッピングが宣言されている場合は、500 応答に変更される可能性があります。

メソッド プロファイルの設定

手順の概要

1. configure

2. sbc sbc-name

3. sbe

4. sip method-profile profile-name

5. description description

6. blacklist

7. pass-body

8. method name

9. action {as-profile | pass | reject}

10. end

11. show sbc sbc-name sbe sip method-profile [ profile-name ]

12. show sbc sbc-name sbe sip essential-methods

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

方式のプロファイルを設定するサブモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

sip method-profile profile-name

 

Router(config-sbc-sbe)# sip method-profile profile1

メソッド プロファイルを設定し、SIP メソッド プロファイル コンフィギュレーション モードを開始します。

profile- name default を入力すると、デフォルトのプロファイルが設定されます。このプロファイルは、特定のプロファイルが設定されていないすべての隣接に使用されます。

ステップ 5

description description

 

Router(config-sbc-sbe-sip-mth)# description mysbc profile1

特定のプロファイルの記述を追加します。

このコマンドの no 形式を使用すると、説明は削除されます。

この記述は、このプロファイルに対して show コマンドを使用すると表示されます。また、すべてのプロファイルのサマリーを表示する場合にも、各プロファイルにこの記述が使用されます。

ステップ 6

blacklist

 

Router(config-sbc-sbe-sip-mth)# blacklist

ブラックリストのプロファイルを設定します。このコマンドの no 形式を使用すると、ホワイトリストのプロファイルが設定されます。

(注) デフォルトでは、プロファイルはホワイトリストです。

ステップ 7

pass-body

 

Router(config-sbc-sbe-sip-mth)# pass-body

このプロファイルが受け入れた non-vital メソッドに対して、メッセージ本文がパススルーすることを許可します。

このコマンドの no 形式を使用すると、このプロファイルが一致させる non-vital SIP メッセージからメッセージ本文が除去されます。

(注) non-vital メソッドは必須でないメソッドと同じです。

ステップ 8

method name

 

Router(config-sbc-sbe-sip-mth)# method test

指定された名前のメソッドをプロファイルに追加します。SBE メソッド プロファイル エレメント コンフィギュレーション モードを開始します。

このフィールドには、1 ~ 32 文字以内の長さの名前を入力できます(大文字と小文字は区別されません)。

このコマンドの no 形式を使用すると、その名前のメソッドがプロファイルから削除されます。

ステップ 9

action {as-profile | pass | reject}

 

Router(config-sbc-sbe-sip-mth-ele)# action as-profile

パラメータに対して実行されるアクションを指定します。

as-profile はメソッドを廃棄します。

pass はメソッドをパスします。

reject はメソッドを拒否します。

ステップ 10

end

 

Router(config-sbc-sbe-sip-mth-ele)# end

SBE メソッド プロファイル エレメント コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 11

show sbc sbc-name sbe sip method-profile [ profile-name ]

 

Router# show sbc mysbc sbe sip-method-profile profile1

指定した名前のメソッド プロファイルに関する詳細情報を表示します。

デフォルト プロファイルを確認する場合は、profile-name default を使用します。

プロファイル名を指定しない場合は、設定されているすべてのメソッド プロファイルのリストを表示します。

ステップ 12

show sbc sbc-name sbe sip essential-methods

 

Router# show sbc mysbc sbe sip essential-methods

表 1 に記載されている、必須メソッドの一覧を表示します。

メソッド プロファイルのコンフィギュレーションの削除

次に、隣接に適用したメソッド プロファイルのコンフィギュレーションを削除する正しいシーケンスの例を示します。プロファイルへの参照は、すべての隣接から最初に削除する必要があります。この例では、1 つの隣接だけがプロファイルを参照しています。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. adjacency sip adjacency-name

5. no method-profile inbound profile-name

6. exit

7. no sip method-profile profile name

8. end

手順の詳細

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

方式のプロファイルを設定するサブモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip sipadj1

SBE SIP 隣接のモードを開始します。

adjacency-name 引数を使用して、サービスの名前を定義します。

ステップ 5

no method-profile inbound profile-name

 

Router(config-sbc-sbe-adj-sip)# no method-profile inbound profile1

隣接テストのインバウンド シグナリングに使用された profile1 のコンフィギュレーションを削除します。

ステップ 6

exit

 

Router(config-sbc-sbe-adj-sip)# exit

SBE SIP 隣接コンフィギュレーション モードを終了し、SBE コンフィギュレーション モードを開始します。

ステップ 7

no sip method-profile profile name

 

Router(config-sbc-sbe)# no sip method-profile profile1

このコマンドの no 形式を使用すると、その名前のメソッドがプロファイルから削除されます。

ステップ 8

end

 

Router(config-sbc-sbe)# end

SBE モードを終了し、特権 EXEC モードに戻ります。

メソッド プロファイルの適用

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. adjacency sip adjacency-name

5. method-profile inbound profile-name

6. end

7. show sbc sbc-name sbe sip method-profile name

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービスのモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip test

SBE SIP 隣接のモードを開始します。

adjacency-name 引数を使用して、サービスの名前を定義します。

ステップ 5

method-profile inbound profile-name

 

Router(config-sbc-sbe-adj-sip)# method-profile inbound profile1

profile1 を、隣接テストのインバウンド シグナリングに使用されるように設定します。

(注) メソッド プロファイルを隣接に接続する場合は、その隣接が「非接続」のステートである必要があります。

ステップ 6

end

 

Router(config-sbc-sbe-adj-sip)# end

ヘッダー プロファイル モードを終了し、特権 EXEC モードに戻ります。

ステップ 7

show sbc sbc-name sbe sip method-profile name

 

Router# show sbc mysbc sbe sip method-profile one

ヘッダー プロファイル情報を表示します。

応答コード マッピング

応答コード マッピングは、メッセージが Cisco Unified Border Element(SP Edition)をトラバースするときに SIP 応答コードを操作する機能を提供します。マッピング テーブルは、SIP 隣接で受信されたインバウンド メッセージ、または SIP 隣接から送信された応答に適用されます。マッピングは SIP メソッドごとにユーザが定義可能であり、各 SIP メソッドを個別にマッピングできるようになっています。 表 1 に、SIP 応答コードに関するマッピングの制約事項を示します。

 

応答コード
マッピング

100

マッピング不可

1xx

1yy(100 を除く)にマッピング

2xx

2yy にマッピング

3xx

3yy にマッピング

4xx

4yy、5yy、または 6yy にマッピング

5xx

4yy、5yy、または 6yy にマッピング

6xx

4yy、5yy、または 6yy にマッピング

応答コード マッピングでは、次のことを実行できます。

特定の応答コードから特定の応答コードへのマッピング。たとえば、401 から 400 へのマッピングは可能で、401 から 300 へのマッピングは不可。102 から 101 へのマッピングは可能で、102 から 100 へのマッピングは不可。

1 グループの(ワイルドカードを使用して定義された)応答コードから特定の応答コードへのマッピング。たとえば、40X から 400、または 4XX すべてから 400 へのマッピングが可能。

ワイルドカードの例外の指定。たとえば、2XX から 201 へのマッピング、および 200 から 200 へのマッピング。

map-status-code コマンドを使用すると、1 つ以上のマッピングを追加できます。

コンフィギュレーションによって応答コードが、RFC 3261 で定義されていない応答コードにマッピングされた場合は、Cisco Unified Border Element(SP Edition)は理由フレーズ「Unrecognized status code」を適用します。

ここでは、次の項目について説明します。

「応答コードのマッピングに関する制約事項」

「応答コード マッピングの適用」

応答コードのマッピングに関する制約事項

応答コードのマッピングには次の制約事項が適用されます。

応答コードのマッピングは、SIP 応答コードのマッピングだけを対象とします。H.323 コールは、応答コードをマッピングできません。

メッセージによっては SIP Transaction Manager だけに処理されるものもありますが、その場合はメッセージのマッピングができません。たとえば、正しい形式でないメッセージは変換できず、SIP Transaction Manager によって直接応答されます。

SIP 理由フレーズのマッピングに関するプロビジョンはありません。RFC 3261 で定義されているように、理由フレーズは常に理由コードと一致します。一般的な理由フレーズは、要求された理由コードに RFC 3261 の対応する定義がない場合に適用されます。このフレーズはコンパイル時定数です。

応答コードを変更するとメッセージが無効になる可能性があります(たとえば、応答コードをマッピングするとメッセージの必須のヘッダーが失われる場合があります)。新しい応答コードに必須のヘッダーがメッセージに含まれるようにするためのプロビジョンはありません。

隣接ごとの各方向に最大 128 のマッピング(128 のインバウンド マッピングおよび 128 のアウトバウンド マッピング)が許可されます。

応答コードのマッピングの設定

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip method-profile profile-name

5. method name

6. map-status-code

7. range statuscoderange value statuscodevalue

8. end

9. show sbc sbc-name sbe sip method-profile [ profile-name ]

10. show sbc sbc-name sbe sip essential-methods

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

方式のプロファイルを設定するサブモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

sip method-profile profile-name

 

Router(config-sbc-sbe)# sip method-profile profile1

メソッド プロファイルを設定します。

profile- name default を入力すると、デフォルトのプロファイルが設定されます。このプロファイルは、特定のプロファイルが設定されていないすべての隣接に使用されます。

ステップ 5

method name

 

Router(config-sbc-sbe-sip-mth)# method test

指定された名前のメソッドをプロファイルに追加します。

このフィールドには、1 ~ 32 文字以内の長さの名前を入力できます(大文字と小文字は区別されません)。

このコマンドの no 形式を使用すると、その名前のメソッドがプロファイルから削除されます。

ステップ 6

map-status-code

 
Router(config-sbc-sbe-sip-mth-ele)# map-status-code

SIP メソッド プロファイル エレメント コンフィギュレーション モードを開始します。

ステップ 7

range statuscoderange value statuscodevalue

 

Router(config-sbc-sbe-sip-mth-ele-map)# range 5XX value 500

ある範囲の応答コードを 1 つの応答コードにマッピングします。

ステップ 8

end

 

Router(config-sbc-sbe-sip-mth-prf)# end

メソッド プロファイル モードを終了し、特権 EXEC モードに戻ります。

ステップ 9

show sbc sbc-name sbe sip method-profile [ profile-name ]

 

Router# show sbc mysbc sbe sip-method-profile profile1

指定した名前のメソッド プロファイルに関する詳細情報を表示します。

デフォルト プロファイルを確認する場合は、profile-name default を使用します。

プロファイル名を指定しない場合は、設定されているすべてのメソッド プロファイルのリストを表示します。

ステップ 10

show sbc sbc-name sbe sip essential-methods

 

Router# show sbc mysbc sbe sip essential-methods

表 1 に記載されている、必須メソッドの一覧を表示します。

応答コード マッピングの適用

応答コードを隣接に関連付けることによって、応答コードのマッピングを適用します。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. adjacency sip adjacency-name

5. method-profile inbound profile-name

6. end

7. show sbc sbc-name sbe sip method-profile name

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービスのモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip test

SBE SIP 隣接のモードを開始します。

adjacency-name 引数を使用して、サービスの名前を定義します。

ステップ 5

method-profile inbound profile-name

 

Router(config-sbc-sbe-adj-sip)# method-profile inbound profile1

profile1 を、隣接テストのインバウンド シグナリングに使用されるように設定します。

(注) メソッド プロファイルを隣接に接続する場合は、その隣接が「非接続」のステートである必要があります。

ステップ 6

end

 

Router(config-sbc-sbe-adj-sip)# end

ヘッダー プロファイル モードを終了し、特権 EXEC モードに戻ります。

ステップ 7

show sbc sbc-name sbe sip method-profile name

 

Router# show sbc mysbc sbe sip method-profile one

ヘッダー プロファイル情報を表示します。

ヘッダー プロファイル

ヘッダー プロファイル処理は、2 段階のプロセスで行われます。最初の段階では次の手順が実行されます。

1. メッセージから次のヘッダーを選択する。

2. ヘッダー プロファイルに、選択したヘッダーに影響を及ぼすルールがないか調べる。

3. 設定された順序で、各ルールをヘッダーに適用してみる。

4. アクションがヘッダーの追加である場合は、このルールを無視して次に進む。

5. 一致条件が false の場合は次のルールに進み、どのパラメータ プロファイルも評価しない。

6. エレメント内に記述されているアクションまたはパラメータ プロファイルを適用する。アクションがヘッダーの削除である場合は、メッセージ内の次のヘッダーに進む。

2 番めの段階では新しいヘッダーがメッセージに追加されます。これは最初の段階の後に実行されるため、メッセージ内にあるヘッダーのグループは十分に定義されています。手順は次のとおりです。

1. ヘッダーをメッセージに追加する各ルールを取得する。

2. アクションがヘッダーの最初のインスタンスだけを追加することで、メッセージ内にその名前のヘッダーがすでにある場合は、さらに次のルールに進む。


) 別のアクションがヘッダー名を置換した場合、新しいヘッダーを追加する必要があるかどうかを検査するために使用されるのは、その置換された名前になります。つまり、段階 1 で実行された置換されたヘッダー名が、ヘッダー名を比較するこの段階で使用されるのであり、到着するメッセージの元のヘッダー名ではありません。


3. 一致条件が true と評価された場合はヘッダーを追加する。

4. ユーザが設定したこの名前の順序で、そのヘッダーに定義されているすべてのルールを適用する。ヘッダーが追加されている場合は、追加ヘッダー ルールの後に命令されたルールだけを適用する。

ここでは、次の項目について説明します。

「ヘッダー プロファイル設定に関する制約事項」

「ヘッダー プロファイルについて」

「ヘッダー操作」

「ヘッダー プロファイルの設定情報」

「ヘッダー プロファイルの設定」

「ヘッダー プロファイルの適用」

ヘッダー プロファイル設定に関する制約事項

ヘッダー プロファイルに関する次の制約事項を確認してください。

すべてのプロファイルは、ホワイトリストまたはブラックリストのいずれかである必要があります。

すべての SIP メッセージを処理するために、2 つのプロファイルが適用されます。1 つはインバウンドで、もう 1 つはアウトバウンドです(許可された場合)。

Cisco Unified Border Element(SP Edition)の動作に必須の SIP ヘッダーはブラックリストに追加できず、暗黙的にホワイトリストに追加されます。

1 つの隣接によって使用中のプロファイルは削除できません。

暫定フィルタリングの場合は、送信者が信頼できる暫定応答(SIP 100rel)を要求すると暫定応答がブロックされない場合があります。これは、Cisco Unified Border Element(SP Edition)が暫定応答の廃棄により(RFC3262 に従い)コール設定に干渉しないようにするためのものです。

ヘッダー プロファイルの条件一致は、メッセージ内のすべての部分に対して実行されます。照合は、完全一致、または指定されたフィールドのサブストリングでも可能です。

条件はヘッダー プロファイルのヘッダー定義によって参照される特定のヘッダーに関連付けられる場合がありますが、条件式を評価するためにメッセージ内にある他の non-vital の部分も参照できます。したがって、条件は、コール情報ヘッダーの内容を確認しながらヘッダー P-Asserted-Identity に関連付けられる可能性があります。

ヘッダー プロファイルについて

プロファイルの設定後、そのプロファイルをデフォルト アプリケーション用に設定できます。SIP 隣接の場合は、その隣接用のシグナリングにプロファイルを適用できます。

プロファイルからのヘッダーへの追加や削除は、いつでも実行できます。プロファイルで設定されたヘッダーには、SIP ヘッダーに対して有効な文字が含まれている必要があります。

プロファイルは、隣接に使用されている間は削除できません。どの隣接がプロファイルを使用しているか確認するには、次の show コマンドを入力します。

show sbc sbc-name sbe sip method-profile [profile-name]
or
show sbc sbc-name sbe sip essential-methods
 

表 2 に、プロファイルで設定できない一定のセットの必須 SIP を示します。

 

表 2 必須 SIP ヘッダー

To

Content-Type

Expires

Route

Referred-By

From

Content-Length

Min-Expires

Record-Route

Referred-To

Via

Contact

Authorization

Proxy-Authorization

Call-ID

Supported

WWW-Authenticate

Proxy-Require

CSeq

Require

Proxy-Authenticate

Replaces

Max-Forwards

Allow

Event

Subscription-State


) プロファイルは、コンフィギュレーションのオプションの部分になります。指定された SIP 信号に適用できるプロファイルがない場合は、必須ヘッダーが処理され、他のすべてのヘッダーは転送されません。


ヘッダー操作

ヘッダー プロファイルおよびパラメータ プロファイルを使用して、SIP メッセージ内の必須でないヘッダーを変更できます。次に、サポートされるアクションについて簡単に説明します。

ヘッダーを変更せずにパスする(ホワイトリスト機能)。

ヘッダーを変更せずに条件付きでパスする。

ヘッダーを削除する(ブラックリスト機能)。

ヘッダーを条件付きで削除する。

ヘッダー名を置換する。置換名は vital ヘッダーの名前にできません。

ヘッダーの内容を条件付きで置換する(「:」の後に表示)。

ヘッダーの新しいインスタンスを、メッセージ内にそのヘッダーがすでにあるかどうかにかかわらず、メッセージに追加する。

ヘッダーの新しいインスタンスを、メッセージ内にその名前のヘッダーがまだ存在していない場合はメッセージに追加する。

上記のアクションを組み合わせて、一組のグループのアクションとして指定し、プロファイル内で実行させることができる。

ヘッダー プロファイルをメソッド プロファイル内で使用して、ヘッダー アクションを特定の種類の要求だけと関連付けできる。

パラメータ プロファイルをヘッダー プロファイルのヘッダーに関連付けできる。

ヘッダーの内容は変数に保存し、後で replace-value アクション中に展開できる。

Privacy ヘッダーは未知のヘッダーとして扱われ、デフォルトではブラックリストに載せられる(除去される)。ただし、SIP Privacy ヘッダーがパススルーされるように SBC を設定できます。

正規表現との一致は、ヘッダーに対して実行できる。

ヘッダー内のすべての部分を一致対象にできますが、ヘッダー全体の置換しかできません。パラメータ プロファイルではこの機能が拡張されて、ヘッダーに関連付けられた個別の SIP URI パラメータを変更できるようになっています。ヘッダー プロファイルは、non-vital ヘッダー情報だけを変更できます。vital ヘッダー情報を表示するには、show sbc test sbe sip essential-method、show sbc test sbe sip essential-headers、または show sbc test sbe sip essential-parameters コマンドを使用します。

パラメータ プロファイルを指定すると、メッセージの次の部分を一致対象にできます。

Request URI

To

From

Contact

request-line 内のパラメータを変更するには、パラメータ プロファイルをメソッド プロファイルに関連付けます。Contact、To、または From ヘッダー内のパラメータを変更するには、パラメータ プロファイルをヘッダー プロファイルに関連付けます。

PUBLISH メソッドの Event ヘッダー

RFC3903 に従って、SIP PUBLISH 要求は Event ヘッダーを含んでいる必要があります。Cisco IOS XE Release 3.2S よりも前のリリースでは、SBC は既存のメッセージ処理フレームワークを使用して PUBLISH メソッドをパススルーできましたが、Event ヘッダーはパススルーできませんでした。そのため、SBC を介して PUBLISH サービス(Event ヘッダーを含む)を使用しようとするとブロックされる場合がありました。

Cisco IOS XE Release 3.2S 以降では、SBC は既存のメッセージ処理フレームワークを使用して、Event ヘッダーを含む PUBLISH メソッドをパススルーできます。継承プロファイルによってアクセスされるプリセットのヘッダー処理は、Event ヘッダーに渡すように変更されます。

PUBLISH メソッド機能の Event ヘッダーは、SUBSCRIBE、REFER、および NOTIFY メソッドの動作には影響しません。Event ヘッダーは変更されずにパススルーされます。他のすべてのメソッドの場合、Event ヘッダーは通常処理されます。

ヘッダー プロファイルの条件一致

ヘッダー操作を可能にする場合は、ヘッダー アクションが適用されるルールを指示するために一組の条件を指定できます。条件一致では、メッセージ内のすべての部分に対して比較を実行できます。照合は、完全一致、または指定されたフィールドのサブストリングでも可能です。

条件は、ヘッダー プロファイルのヘッダー定義が参照する特定のヘッダーに関連付けできますが、同様に、条件式を評価するためにメッセージ内の他の non-vital な部分も参照できます。


) 条件(条件式)がない場合は、アクションが常に true になる条件を意味します。


各条件は、操作するメッセージの一部、および実行する動作を表します。条件は、次の方法で定義できます。

condition comparison-type operator comparison-value

または

condition boolean-operator operator {true | false}

Example:
condition header-value contains “Cisco”
condition is-request eq true

表 3 に比較タイプを示します。

 

表 3 比較タイプ

status-code

応答コード値

header-value

現在のヘッダーの内容

header-name name header-value

異なるヘッダーの内容

variables

変数の内容の一致

adjacency

隣接の設定の一致

transport

転送アドレスまたは転送ポートの一致

header-uri

URI の一部(ユーザ名)の一致

request-uri

Request-URI の一部(ユーザ名)の一致

word

スタティック ストリングの一致

表 4 に演算子を示します。

 

表 4 演算子

[not] eq

等しい、または等しくない

[not] contains

含む、または含まない

[not] regex-match

正規表現一致(BRE)

store-as

store-rule だけ

表 5 にブール演算子を示します。

 

表 5 ブール演算子

is-sip-uri

ヘッダーに sip: URI が含まれているか

is-tel-uri

ヘッダーに tel: URI が含まれているか

is-request

メッセージは要求

is-100rel-required

コールが 100rel を実行しているか

is-defined

変数が定義されているかを検査

条件一致に関して次の制約事項が適用されます。

同じヘッダーに対して、固有のアクションおよび条件を含む複数の条件式を追加でき、これにより複雑な操作を構成できます。

各条件は、1 つずつ入力する必要があります。既存の条件に次の条件を加える場合、その条件は「and」または「or」で始まる必要があります。条件に「and」または「or」が含まれていない場合は、定義済みの条件が実質的に上書きされます。

ヘッダー プロファイルのコマンド ライン定義にプロファイル タイプが明示的に表現されてない場合は、想定されるヘッダー プロファイル タイプは「ホワイトリスト」になります。

同じタイプの複数のヘッダーは、異なるアクション タイプまたは条件のいずれかを定義している 1 つのプロファイル内で宣言できます。

1 つのプロファイルにワイルドカード ヘッダー エントリは 1 つしか設定できませんが、文字「*」はワイルドカード ヘッダーとして使用できます。

異なるアクションまたは条件を持つ重複したヘッダー名は、コマンド ラインの「entry <integer>」パラメータで特定できます。これは、ヘッダーに関連する特定のアクションを編集または削除する目的には使用できます。コマンド ラインに「エントリ」がない場合は、このヘッダー タイプのヘッダーに関連する最初のエントリが設定中であることが想定されます。

store-rule の宣言

ヘッダーから抽出されたデータは、変数に保存できます。store-rule には、ヘッダー エレメント アクションの前にどれを実行するかが定義されています。store-rule は、次の形式の専用ヘッダー エレメントです。

Store-Rule:<entry>

store-rule には、次の 2 つのいずれかの方法で保存できる条件があります。

1. 条件に「store-as」キーワードを含ませると、ストリングや完全なヘッダー値を変数に直接保存できます。

condition comparison-type store-as variable-name

Example:
condition header-value store-as var1

ヘッダー値の内容は var1 に保存されます。

2. 正規表現をヘッダーに適用するには、キーワード「regex-match」を使用します。正規表現に、正規表現内の特定部にエスケープされたカッコ「\( \)」で囲まれたものが 1 組以上(5 組まで)含まれて、この正規表現が正常に一致した場合は、カッコでグループ化された一致の各部の値が抽出され、regex-match キーワード引数で定義された変数に保存されます。

condition comparison-type regex-match [ store-as variable-name .... (up to 5) ]

Example:
condition header-name P-Asserted-Identiy header-value regex-match sip:\(.*\)@[Cc]isco.com store-as var1
 

比較タイプ、演算子、およびブール演算子の完全なリストは、 表 3 表 4 、および 表 5 を参照してください。

抽出された変数は後で、replace-value や add-first-header/add-header のような値を必要とするアクションで使用できます。変数は、置換ストリング内の「${var}」形式を使用して抽出します。

request-line の変更

ヘッダー プロファイル内でのアクション replace-value で、request-line に対して、制限された変更を実行できます。

ヘッダー プロファイルの request-line 形成部を使用することは、request-line の(パラメータ プロファイルを含む)変更に対する好ましい方法です。

アクション replace-value で使用される値の形式を次に示します。

sip:user@host[:port]

 

store-rule で抽出済みの変数は、request-line の作成で使用できます。

Example:
“sip:${user}@${host}”
 

request-line は、次の形式の専用ヘッダー エレメントです。

Request-URI:<entry>
 

) request-line の変更内容は SIP RFC 3261 フォーマッティング ルールを満たす必要があり、置換された部分で宣言されたホストは SBC に対して有効なホストである必要があります。設定された代替値内に変数がある可能性があるため、ユーザ コンフィギュレーションは設定された変更を事前に選別できません。選別できるのは実際の request-line を決定できる実行時だけで、request-line の構築中にエラーが発生すると、コール障害になる可能性があります。この機能を使用する場合は、コール障害が起こらないように細心の注意を払ってください。


ユーザ名パラメータの解析

隣接で受信したメッセージのユーザ名パラメータの SIP および SIPS URI を検索して解析するように SBC を設定できます。SIP と SIPS URI がユーザ名パラメータを持つ場合、それらのパラメータは、通常の URI パラメータとして扱われます。これは、Request-URI 内の SIP と SIPS URI、および INVITE 要求と out-of-dialog 要求の To ヘッダーと From ヘッダーに適用可能です。

次に、ユーザ名パラメータを持つ URI の例を示します。

「sip:username;cic=1234@host.com;user=phone」。ここでは、「cic=1234」は、「user=phone」などの URI パラメータとして扱われ、ユーザ名は「username;cic=1234」の代わりに「username」として取得されます。

解析をイネーブルにするには、 uri username parameters parse コマンドを使用します。

Expires ヘッダーの抑制

発信 INVITE 要求の Expires ヘッダーを抑制するように SBC を設定できます。Expires ヘッダーを削除するには header-name expires suppress コマンドを使用します。

カスタマー P-Asserted-Identity の設定

発信 SIP メッセージで P-Asserted-Identity の値を指定するように SBC を設定できます。ヘッダーは、ACK、CANCEL、INFO、PRACK、REGISTER、および UPDATE を除くすべての要求と応答に追加されます。

P-Asserted-Identity の値を指定するには、 header-name p-asserted-id [header-value [ header-value ] | assert] コマンドを使用します。

SIP Destination ID


) この機能は、INVITE 要求および非 REGISTER out-of-dialog 要求だけに適用できます。


コールをルーティングする際に、宛先アドレスまたは着信者 ID は、通常 Request-URI から取得されます。ただし、To: または P-Called-Party-ID などのように、この情報を取得できる可能性のある他のヘッダーもあります。

着信側アドレスの取得に使用できるヘッダーの順序付きリストを定義できます。ヘッダーには、すべての非必須 SIP ヘッダーや、To: および Request-URI を含めることができます。ヘッダー リストでは、最大 10 のヘッダーを設定できます。プライオリティ 1 のヘッダーは最初に分析され、プライオリティ 2 のヘッダーは次に分析されます。プライオリティ 10 のヘッダーは最後に分析されます。

ここでは、この機能が着信要求および発信要求でどのように動作するかについて説明します。

着信要求

着信要求の場合

デフォルトでは、SBC は着信者 ID を P-Called-Party-ID: ヘッダーまたは Request-URI のいずれかから抽出します。

SBC が受信した SIP メッセージで特定のヘッダーの複数のインスタンスを検出した場合、最初のインスタンスは、着信者 ID の抽出に使用されます。SBC が ID 抽出時に構文エラーを発見した場合は、ログを作成し、プライオリティ リストの次のヘッダーに進みます。

SIP 要求にヘッダーがない場合、またはヘッダー リストのヘッダーがユーザ名なしの SIP URI を含んでいる場合、SBC はヘッダー リストの次のヘッダーに進みます。

すべてのヘッダーで失敗した場合、SBC は Request-URI から着信者 ID を抽出します。

着信要求がリスト内の Request-URI に優先順位が付けられているポイントに到達した場合は、SBC が Request-URI から着信者 ID を検索できるように、ヘッダー リストに、Request-URI が含まれる場合があります。リストに Request-URI しかない場合、SBC は Request-URI だけを検索します。

発信要求

デフォルトでは、SBC は SIP ヘッダーからインバウンド側に送られた着信者 ID からのドメインおよびユーザ名の両方を SIP ヘッダーに再挿入します。

発信 Request-URI

着信者 ID が Request-URI から抽出されたものである場合は、その着信者 ID を使用して Request-URI が再構築されます。

着信者 ID が別のヘッダーから抽出されたものである場合は、受信した SIP メッセージからの Request-URI のユーザ名とドメインが維持されます。これは、SIP ヘッダー フィルタリング、または他の編集機能(たとえば IP/FQDN URI 変換)が Request-URI に適用される前に行われます。

ヘッダーへの発信または任意のヘッダーのパススルー

着信者 ID がヘッダー(Request-URI 以外)から抽出されたもので、そのヘッダーがインバウンド隣接ヘッダー処理機能を使用してパススルーしたものである場合、SBC はドメインおよびユーザ名をヘッダーに再挿入します。これにより元のメッセージにあったスキーム、URI パラメータ、およびヘッダー パラメータが維持されます。インバウンド ヘッダーのフィルタリング設定が原因でヘッダーが壊れた場合の障害は SBC によって記録されますが、その他の障害は無視されます。

着信者 ID は、発信メッセージに再挿入される前に SBC によって編集される場合があります(たとえば、番号操作の一部として)。これは、アウトバウンド ヘッダー フィルタリングまたは他の編集がヘッダーに適用される前に、アウトバウンド SIP 要求のヘッダーの最初のインスタンスのためだけに行われます。ヘッダー フィルタリングに制限はありません。着信者 ID を含むヘッダーを引き続き削除または変更できるヘッダー編集ルールを設定することもできます。

ヘッダー リストで指定されたすべてのヘッダーのインバウンド ヘッダー フィルタ プロファイル上で、アクション パスを設定することを推奨します。これらのヘッダーはアウトバウンド ヘッダー フィルタ プロファイルによってフィルタリングできます。

宛先アドレス ヘッダー リストを設定するには、dst-address および header-priority コマンドを使用します。

SIP Source ID を取得するためのヘッダープライオリティの設定の詳細については、「SIP 宛先アドレスを取得するためのヘッダーの順序付きリストの設定」を参照してください。

取得したこれらの値に基づいて条件一致を実行するように SBC を設定できます。詳細については、「ヘッダー プロファイルの条件一致」を参照してください。

SIP Source ID

コールをルーティングする際に、コール ポリシーを使用して送信元番号を分析および変更できます。送信元アドレスは通常 From: ヘッダーから取得されます。ただし、ヘッダーは他にも、P-Preferred-Identity、P-Asserted-Identity、Remote-Party-ID などのような、この情報を取得可能な場所にもあります。

着信側アドレスの取得に使用できるヘッダーの順序付きリストを定義できます。ヘッダーには、すべての非必須 SIP ヘッダーや、From ヘッダーを含めることができます。また、SIP Source ID 機能により、リダイレクトまたは転送されるコールのヘッダーの順序付きセットから送信元番号を取得できます。ヘッダー リストでは、最大 10 のヘッダーを設定できます。プライオリティ 1 のヘッダーは最初に分析され、プライオリティ 2 のヘッダーは次に分析されます。プライオリティ 10 のヘッダーは最後に分析されます。

送信元アドレスのヘッダー リストを設定するには、src-address コマンドおよび header-priority コマンドを使用します。

SIP Source ID を取得するためのヘッダープライオリティの設定の詳細については、「SIP 送信元アドレスを取得するためのヘッダーの順序付きリストの設定」を参照してください。

転送されたコールの SIP Source ID

転送されたコールの場合、送信元アドレスを取得するためにコールを転送された発信者のアドレスをソース分析に使用できます。すべての転送されたコールには、コールを転送された発信者の詳細を含む Diversion: ヘッダーが含まれます。転送されたコール(送信元番号を取得可能)のヘッダーのリストを入力するように SBC を設定できます。

Cisco IOS XE Release 3.1.0S の場合、このリストに含めることができる Diversion: ヘッダーは 1 つだけです。

送信元アドレスのヘッダー リストを設定するには、div-address コマンドおよび header-priority コマンドを使用します。

転送されたコールの SIP Source ID を取得するためのヘッダープライオリティの設定の詳細については、「転送されたコールの SIP 送信元アドレスを取得するためのヘッダーの順序付きリストの設定」を参照してください。

取得したこれらの値に基づいて条件一致を実行するように SBC を設定できます。条件一致の詳細については、「ヘッダー プロファイルの条件一致」を参照してください。

ヘッダー プロファイルの設定情報

デフォルトのプロファイル動作(ホワイトリストやブラックリスト)に関係するアクションまたは一連のアクションについては、考慮が必要です。

空のブラックリストは実質的に、non-vital ヘッダーをパスしようとします。

空のホワイトリストは実質的に、すべての non-vital ヘッダーを廃棄します。

条件がヘッダーに関連付けられると、動作がより複雑になります。

インバウンド側で定義するアクションを考慮することが重要です。空のホワイトリストのヘッダー プロファイルがインバウンド側に関連付けられると、non-vital ヘッダーはアウトバンド側でまったく表示されなくなります。したがって、アウトバンド側に適用されるアクションが動作していないように見える場合があります。ヘッダーを(as-profile または pass アクションで)ホワイトリストに追加するか、またはアクション「pass」でヘッダーをブラックリストに追加することによって、インバウンド側の特定のヘッダーを「パス」するアクションを追加する必要があります。

たとえば、ヘッダー プロファイルがホワイトリストに定義されていて(デフォルト動作)、ヘッダー値を変更するヘッダー アクションが条件とともに挿入されると、条件が true の場合はアクションが処理されますが、条件が false の場合は無視されます。

ヘッダーがホワイトリストに挿入されているため、条件が false の場合は変更されてないヘッダーがパスされることが想定されます。しかし、条件が false の場合はアクション(エントリ)は無視されます。したがって、ホワイトリストにヘッダーがないためヘッダーがパスされないように見えます。

これを回避するために、アクション「pass」を持つ 2 番めのエントリを入力できます。したがって、ヘッダー条件が true の場合は内容が変更されますが、条件が false の場合は、無視されて他のエントリ処理が継続されます。2 番めのエントリにはアクション「pass」が定義されているため、ヘッダーがパスされます。

ヘッダー プロファイルの設定

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip header-profile profile-name

5. blacklist

6. description text

7. header name [entry number]

8. action {add-first-header | add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip}

9. condition [ comparison-type | boolean-operator | operator | comparison-value ]

10. end

11. show sbc sbc-name sbe sip header-profile [ profile-name ]

12. show sbc sbc-name sbe sip essential-headers

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

ヘッダー プロファイルを設定するためにサブモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

sip header-profile profile-name

 

Router(config-sbc-sbe)# sip header-profile profile1

ヘッダー プロファイルを設定します。

profile-name default を入力すると、デフォルトのプロファイルが設定されます。このプロファイルは、特定のプロファイルが設定されていないすべての隣接に使用されます。

ステップ 5

blacklist

 

Router(config-sbc-sbe-sip-hdr)# blacklist

ブラックリストのプロファイルを設定します。

このコマンドの no 形式を使用すると、ホワイトリストのプロファイルが設定されます。

(注) デフォルトでは、プロファイルはホワイトリストです。

ステップ 6

description text

 

Router(config-sbc-sbe-sip-hdr)# description blacklist profile

特定のプロファイルの記述を追加します。

このコマンドの no 形式を使用すると、説明は削除されます。

この記述は、このプロファイルに対して show コマンドを使用すると表示されます。また、すべてのプロファイルのサマリーを表示する場合にも、各プロファイルにこの記述が使用されます。

ステップ 7

header name [ entry number ]

 

Router(config-sbc-sbe-sip-hdr)# header Organization entry 1

header name:変更する SIP ヘッダーを設定します。SBC SBE SIP-HDR-ELE コンフィギュレーション モードを開始します。

entry number:動作させるアクション エントリを指定します。

ステップ 8

action {add-first-header | add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip}

 

Router(config-sbc-sbe-sip-hdr-ele)# action replace-value XYZcompany

ヘッダーに適用するアクションのタイプを指定します。

この例では、指定されたアクションが条件付きでヘッダーの内容を XYZcompany の交換値と置換します。

ステップ 9

condition [ comparison-type | boolean-operator | operator | comparison-value ]

 

Router (config-sbc-sbe-sip-hdr-ele-act)# condition header-value ABCcompany

SIP メッセージ プロファイルへのアクションを取る前の一致条件を指定します。条件が満たされると、ステップ 8 で指定されたアクションが実行されます。

SIP ヘッダー プロファイル コンフィギュレーション モードを開始します。

この例では、条件ヘッダー値の値は ABCcompany であり、これに一致すると、値 ABCcompany が XYZcompany に置換されます。

ステップ 10

end

 

Router(config-sbc-sbe-sip-hdr-ele)# end

SBC SBE SIP-HDR-ELE コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 11

show sbc sbc-name sbe sip header-profile [ profile-name ]

 

Router# show sbc mysbc sbe sip header-profile profile1

指定した名前のヘッダー プロファイルに関する詳細情報を表示します。

デフォルト プロファイル名を確認する場合は、 default を使用します。

プロファイル名を指定しない場合は、設定されているすべてのメソッド プロファイルのリストを表示します。

ステップ 12

show sbc sbc-name sbe sip essential-headers

 

Router# show sbc mysbc sbe sip essential-headers

表 1 に記載されている必須ヘッダーの一覧を表示します。

ヘッダー プロファイルの適用

手順の概要

1. configure

2. sbc sbc-name

3. sbe

4. adjacency sip adjacency-name

5. header-profile inbound profile-name

6. end

7. show sbc sbc-name sbe sip header-profile name

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure

 

Router# configure

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービスのモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip sipGW

SBE SIP 隣接のモードを開始します。

adjacency-name 引数を使用して、サービスの名前を定義します。

ステップ 5

header-profile inbound profile-name

 

Router(config-sbc-sbe-adj-sip)# header-profile inbound profile1

ヘッダー プロファイルを、隣接 sipGW のインバウンド シグナリングに使用されるように設定します。

(注) ヘッダー プロファイルを隣接に接続する場合は、その隣接が「非接続」のステートである必要があります。

ステップ 6

end

 

Router(config-sbc-sbe-adj-sip)# end

SBE SIP 隣接モードを終了し、特権 EXEC モードに戻ります。

ステップ 7

show sbc sbc-name sbe sip header-profile name

 

Router# show sbc sbc-name sbe sip header-profile name

ヘッダー プロファイル情報を表示します。

SIP 宛先アドレスを取得するためのヘッダーの順序付きリストの設定

このタスクでは、SIP 宛先アドレスを取得するためのヘッダーのリストを設定します。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip header-profile profile-id

5. dst-address

6. header-prio 1 header-name header-name

7. header-prio 2 header-name header-name

8. header-prio 3 header-name header-name

9. end

10. show sbc sbc-name sbe sip header-profile profile-id

手順の詳細

コマンドまたはアクション
目的

ステップ 1

configure

 

Router# configure

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mySbc

SBC サービス モードの開始をイネーブルにします。

sbc-name 引数を使用して、SBC の名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbc mySbc sbe

SBC サービス内での SBE エンティティ モードの開始をイネーブルにします。

ステップ 4

sip header-profile

 

Router(config-sbc-sbe)# sip header-profile Hprof1

SIP ヘッダー プロファイルを作成します。

ステップ 5

dst-address

 

Router(config-sbc-sbe-sip-hdr)# dst-address

宛先アドレスを設定するために、モードへのエントリをイネーブルにします。

ステップ 6

header-prio 1 header-name header-name

 

Router(config-sbc-sbe-sip-hdr-dst)# header-prio 1 header-name P-Called-Party-ID

ヘッダー プライオリティを設定し、使用するヘッダーを指定します。

ステップ 7

header-prio 2 header-name header-name

 

Router(config-sbc-sbe-sip-hdr-dst)# header-prio 2 header-name To

ヘッダー プライオリティを設定し、使用するヘッダーを指定します。

ステップ 8

header-prio 3 header-name header-name

 

Router(config-sbc-sbe-sip-hdr-dst)# header-prio 3 header-name Request-uri

ヘッダー プライオリティを設定し、使用するヘッダーを指定します。

ステップ 9

end

 

Router(config-sbc-sbe-sip-hdr-dst)# end

宛先アドレス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 10

show sbc sbc-name sbe sip header-profile profile-id

 

Router# show sbc mySbc sbe sip header-profile Hprof1

ヘッダー プロファイルの設定の詳細を表示します。

SIP 送信元アドレスを取得するためのヘッダーの順序付きリストの設定

このタスクでは、SIP 送信元アドレスを取得するためのヘッダーのリストを設定します。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip header-profile profile-id

5. src-address

6. header-prio 1 header-name header-name

7. header-prio 2 header-name header-name

8. header-prio 3 header-name header-name

9. end

10. show sbc sbc-name sbe sip header-profile profile-id

手順の詳細

コマンドまたはアクション
目的

ステップ 1

configure

 

Router# configure

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mySbc

SBC サービス モードの開始をイネーブルにします。

sbc-name 引数を使用して、SBC の名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe mySbc sbe

SBC サービス内での SBE エンティティ モードの開始をイネーブルにします。

ステップ 4

sip header-profile

 

Router(config-sbc-sbe)# sip header-profile Hprof1

SIP ヘッダー プロファイルを作成します。

ステップ 5

src-address

 

Router(config-sbc-sbe-sip-hdr)# src-address

送信元アドレスを設定するために、モードへのエントリをイネーブルにします。

ステップ 6

header-prio 1 header-name header-name

 

Router(config-sbc-sbe-sip-hdr-src)# header-prio 1 header-name P-Asserted-Identity

ヘッダー プライオリティを設定し、使用するヘッダーを指定します。

ステップ 7

header-prio 2 header-name header-name

 

Router(config-sbc-sbe-sip-hdr-src)# header-prio 2 header-name P-Preferred-Identity

ヘッダー プライオリティを設定し、使用するヘッダーを指定します。

ステップ 8

header-prio 3 header-name header-name

 

Router(config-sbc-sbe-sip-hdr-src)# header-prio 3 header-name From

ヘッダー プライオリティを設定し、使用するヘッダーを指定します。

ステップ 9

end

 

Router(config-sbc-sbe-sip-hdr-src)# end

送信元アドレス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 10

show sbc sbc-name sbe sip header-profile profile-id

 

Router# show sbc mySbc sbe sip header-profile Hprof1

ヘッダー プロファイルの設定の詳細を表示します。

転送されたコールの SIP 送信元アドレスを取得するためのヘッダーの順序付きリストの設定

このタスクでは、転送されたコールの SIP 送信元アドレスを取得するためのヘッダーのリストを設定します。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip header-profile profile-id

5. div-address

6. header-prio 1 header-name header-name

7. end

8. show sbc sbc-name sbe sip header-profile profile-id

手順の詳細

コマンドまたはアクション
目的

ステップ 1

configure

 

Router# configure

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mySbc

SBC サービス モードの開始をイネーブルにします。

sbc-name 引数を使用して、SBC の名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe mySbc sbe

SBC サービス内での SBE エンティティ モードの開始をイネーブルにします。

ステップ 4

sip header-profile

 

Router(config-sbc-sbe)#sip header-profile Hprof1

SIP ヘッダー プロファイルを作成します。

ステップ 5

div-address

 

Router(config-sbc-sbe-sip-hdr)# div-address

転送されたコールの送信元アドレスを設定するために、モードへのエントリをイネーブルにします。

ステップ 6

header-prio 1 header-name header-name

 

Router(config-sbc-sbe-sip-hdr-src-div)# header-prio 1 header-name Diversion

ヘッダー プライオリティを設定し、使用するヘッダーを指定します。

ステップ 7

end

 

Router(config-sbc-sbe-sip-hdr-src)# end

送信元アドレス コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 8

show sbc sbc-name sbe sip header-profile profile-id

 

Router# show sbc mySbc sbe sip header-profile Hprof1

ヘッダー プロファイルの設定の詳細を表示します。

次に、宛先アドレス、送信元アドレス、および転送アドレスのヘッダー リストが SBC に設定された後の show コマンドの出力例を示します。

ASR-1002#show sbc mine sbe sip header-profile Hprof1
Header profile "Hprof1"
Description:
Type: Whitelist
dst-address: (inbound only)
header-prio 1 header-name P-Called-ID
header-prio 1 header-name To
header-prio 1 header-name Request-uri
src-address: (inbound only)
header-prio 1 header-name Remote-Party-ID
header-prio 2 header-name P-Preferred-Identity
header-prio 3 header-name From
div-address (inbound only)
header-prio 1 Diversion
store-rules:
No store-rule entries found.
request-line:
No request-line entries found.
headers:
test
entry 1
description:
action add-first-header value "cisco"
condition is-request eq true
Not in use with any adjacencies
Not in use with any method-profile
 
ASR-1002#

 

暫定応答フィルタリング

暫定応答フィルタリングでは、エンドポイントが送信した 1XX 応答(100 を除く)をブロックできます。暫定応答フィルタリングを設定する場合は、次のことを覚えておいてください。

暫定応答は、送信者が信頼性の高い暫定応答(SIP 100rel)を要求した場合にブロックされないことがあります。

100_rel が要求された場合に応答を廃棄することは推奨されません。そうすると、RFC3262 ステートに次の応答を送信してはいけないと示されているため、コール設定ができなくなる場合があります。


) INVITE 内に「Required: 100Rel」ヘッダーで試行されたコールは、183 のメッセージを廃棄するヘッダー プロファイルで隣接が設定されている場合に障害を起こします。


ここでは、次の項目について説明します。

「暫定応答フィルタリングの設定」

「暫定応答フィルタリングの適用」

暫定応答フィルタリングの情報

暫定応答フィルタリングは、action drop-msg コマンドの使用によって実現されます。アクションは、ワイルドカード ヘッダー アクション * に関連付ける必要があります。廃棄する必要のある特定の応答コードに一致させるために、条件を追加する必要があります。


) ヘッダー アクション * は、プロファイル内で 1 回だけ使用できます。


暫定応答フィルタリングの設定

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip header-profile profile-name

5. header *

6. action drop-msg

7. condition status-code

8. end

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

ヘッダー プロファイルを設定するためにサブモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

sip header-profile profile-name

 

Router(config-sbc-sbe)# sip header-profile profile1

ヘッダー プロファイルを設定します。

profile-name default を入力すると、デフォルトのプロファイルが設定されます。このプロファイルは、特定のプロファイルが設定されていないすべての隣接に使用されます。

ステップ 5

header *

 

Router(config-sbc-sbe-sip-hdr)# header *

ブラックリストのプロファイルを設定します。

このコマンドの no 形式を使用すると、ホワイトリストのプロファイルが設定されます。

(注) デフォルトでは、プロファイルはホワイトリストです。

(注) 暫定応答をフィルタリングするためには、コマンド例に示されているように、header コマンドでヘッダー名としてアスタリスク(*)を常に使用します。

ステップ 6

action drop-msg

 

Router(config-sbc-sbe-sip-hdr-ele)# action drop-msg

ヘッダー内のエレメント タイプに対して取るアクションを設定します。

ステップ 7

condition status-code

 

Router(config-sbc-sbe-sip-hdr-ele-act)# condition status-code eq 183

SIP メッセージ プロファイルへのアクションを取る前の一致条件を指定します。

ステップ 8

end

 

Router(config-sbc-sbe-sip-hdr-ele-act)# end

モードを終了し、特権 EXEC モードに戻ります。

暫定応答フィルタリングの適用

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. adjacency sip adjacency-name

5. header-profile inbound profile-name

6. end

7. show sbc sbc-name sbe sip header-profile name

手順の詳細

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービスのモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip sipGW

SBE SIP 隣接のモードを開始します。

adjacency-name 引数を使用して、サービスの名前を定義します。

ステップ 5

header-profile inbound profile-name

 

Router(config-sbc-sbe-adj-sip)# header-profile inbound profile1

インバウンド ヘッダー プロファイルを設定します。

ステップ 6

end

 

Router(config-sbc-sbe-adj-sip)# end

SBE SIP 隣接モードを終了し、特権 EXEC モードに戻ります。

ステップ 7

show sbc sbc-name sbe sip header-profile name

 

Router# show sbc MySbc sbe sip header-profile profile1

指定された SIP ヘッダー プロファイルの詳細情報を表示します。

パラメータ プロファイル

パラメータ プロファイルでは、特定の URI パラメータ名を指定でき、また、ヘッダー内の特定の non-vital URI パラメータを削除、置換、または追加できます。

ヘッダー プロファイルでは、ヘッダーの制限されたセットの一部を形成する SIP URI パラメータに対する潜在的な条件一致が可能になります。これは、ヘッダーや内容の完全な置換だけが可能です。

パラメータ プロファイルでは、ヘッダー パラメータではなく、SIP URI パラメータだけでアクションを実行できます。

ここでは、次の項目について説明します。

「パラメータ プロファイル設定に関する制約事項」

「パラメータ プロファイルについて」

「パラメータ プロファイルの設定」

「パラメータ プロファイルのヘッダー プロファイルへの適用」

パラメータ プロファイル設定に関する制約事項

パラメータ プロファイルに関する次の制約事項を確認してください。

パラメータ プロファイルは、SIP URI に関連付けられたパラメータだけで動作することができ、ヘッダー パラメータでは動作しません。

コール処理の障害を防止するために、アクションは vital(必須)パラメータに対して実行できません。

パラメータ プロファイルは、アウトバウンド側だけで動作します。

既存の隣接設定には、パラメータ アクションに関係する方法に影響を及ぼすものもあります。たとえば、次のように To ヘッダーの書き換えが設定された隣接設定を考えます。

sbc test
sbe
adjacency sip <adj name>
passthrough [to/from]
 

この設定により、To: や From: のヘッダーをインバウンド側からアウトバウンド側に渡すことが可能です。

ただし、隣接のデフォルト設定は false(隣接に対して実行された表示に「passthrough [to/From]」がない)であり、つまり、To: および From: ヘッダーが、デフォルトでは実質的に常にアウトバウンド側で書き換えられるということです。この影響として、インバウンド側の To: や From: のヘッダーに適用されたパラメータ プロファイル アクションは、コンフィギュレーションに「passthrough [to/from]」が設定されていない限り、アウトバウンド側で失われます。したがって、アクション add-not-present では、常にパラメータを、そのパラメータがインバウンド側にあるときでも、アウトバウンド側で追加しているように見えます。

パラメータ プロファイルがパラメータを request-line に追加して、To: ヘッダーに、隣接に対して設定する「passthrough to」設定がない場合は、通常は request-line に基づく To: ヘッダーの書き換えにより、そのパラメータも To: ヘッダー内に表示されます。

request-line の内容は、メソッド プロファイルに付加されているパラメータ プロファイルの動作に影響を及ぼすことがあります。コールのインバウンド側に到着した request-line が Cisco Unified Border Element(SP Edition)のアドレスを直接アドレス指定すると、実質的に、アウトバウンド側で発生したコールは、新しい request-line が生成されることを要求します。これは、インバウンド側に到着したパラメータが実質的に失われて、add-not-present アクションが常にパラメータを追加しているかのように見える可能性があることを意味します。

ただし、request-line が最終宛先をアドレス指定すると、request-line は実質的にアウトバウンド側に渡されて必要に応じて変更されます。この場合のパラメータは、アウトバウンド側で表示されます。

パラメータ プロファイルについて

パラメータ プロファイルは、1 つのヘッダーまたは request-line に対して実行できる一連のアクションを形成します。

パラメータ プロファイルは、メッセージの次の部分だけに対して指定できます。

Request URI

To

From

Contact

Contact、To、または From ヘッダー内のパラメータを変更するには、パラメータ プロファイルをヘッダー プロファイルに関連付けます。

 

request-line 内のパラメータを変更するには、パラメータ プロファイルをメソッド プロファイルに関連付けます。


) メソッド プロファイルがブラックリストやホワイトリストの必須メソッドに許可されなくても、パラメータ プロファイルは必須メソッドに関連付けできます。


パラメータ プロファイルの設定

次のタスクを実行してパラメータ プロファイルを設定します。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip parameter-profile { profile-name }

5. parameter { parameter name }

6. action {add-not-present| add-or-replace | strip}

7. end

8. show sbc sbc-name sbe sip-parameter-profile [ profile name ]

9. show sbc sbc name sbe sip essential-parameters

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービスのモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

sip parameter-profile { profile-name }

 

Router(config-sbc-sbe)# sip parameter-profile parmprof1

パラメータ プロファイルを設定し、SBE SIP ヘッダー コンフィギュレーション モードを開始します。

ステップ 5

parameter { parameter name }

 
Router(config-sbc-sbe-sip-prm)# parameter user

指定された名前のパラメータをパラメータ プロファイルに追加します。

ステップ 6

action {add-not-present| add-or-replace | strip}

 

Router(config-sbc-sbe-sip-prm-ele)# action add-not-present value phone

パラメータに対して実行されるアクションを指定します。

ステップ 7

end

 

Router(config-sbc-sbe-sip-prm-ele)# end

SBE パラメータ プロファイル パラメータ コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 8

show sbc sbc-name sbe sip-parameter-profile [ profile name ]

 

Router# show sbc mysbc sbe sip parameter-profile profile1

指定した名前のパラメータ プロファイルに関する詳細情報を表示します。

デフォルト名を確認する場合は、default を使用します。

ステップ 9

show sbc sbc name sbe sip essential-headers

 

Router# show sbc mysbc sbe sip essential-headers

必須ヘッダーの一覧を表示します。

パラメータ プロファイルのヘッダー プロファイルへの適用

次のタスクを実行して、パラメータ プロファイルをヘッダー プロファイルに適用します。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip header-profile header-profile-name

5. header header-name

6. parameter-profile parameter-profile-name

7. end

8. show sbc sbc-name sbe sip header-profile { profile-name }

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービスのコンフィギュレーション モードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC の Signaling Border Element(SBE)機能のコンフィギュレーション モードを開始します。

ステップ 4

sip header-profile header-profile-name

 

Router(config-sbc-sbe-sip)# sip header-profile profile1

ヘッダー プロファイルに対して、コンフィギュレーション モードを開始します。

ステップ 5

header header-name

 

Router(config-sbc-sbe-sip-hdr)# header P-Asserted-Identity

一致させるヘッダー タイプを指定するヘッダー サブコマンド モードを開始します。

ステップ 6

parameter-profile parameter-profile-name

 

Router(config-sbc-sbe-sip-hdr-ele)# parameter-profile parmprof1

ヘッダー タイプが一致したときに適用するパラメータ プロファイルを設定します。

ステップ 7

end

 

Router(config-sbc-sbe-sip-hdr-ele)# end

SIP ヘッダー プロファイル ヘッダー コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 8

show sbc sbc-name sbe sip header-profile name

 

Router# show sbc sbc-name sbe sip header-profile name

ヘッダー プロファイル情報を表示します。

隣接との関連付け

次の手順を実行して、ヘッダー プロファイルを隣接に関連付けます。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. adjacency sip adjacency-name

5. header-profile inbound profile-name

6. end

7. show sbc sbc-name sbe sip header-profile name

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービスのモードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip sipGW

SBE SIP 隣接のモードを開始します。

adjacency-name 引数を使用して、サービスの名前を定義します。

ステップ 5

header-profile inbound profile-name

 

Router(config-sbc-sbe-adj-sip)# header-profile inbound profile1

profile1 を、隣接 sipGW のインバウンド シグナリングに使用されるように設定します。

ステップ 6

end

 

Router(config-sbc-sbe-sip-hdr-prf)# end

ヘッダー プロファイル モードを終了し、特権 EXEC モードに戻ります。

ステップ 7

show sbc sbc-name sbe sip header-profile name

 

Router# show sbc sbc-name sbe sip header-profile name

ヘッダー プロファイル情報を表示します。

ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能

この機能では、Cisco Unified Border Element(SP Edition)は発信側のネットワーク情報(IP アドレス)を SIP ヘッダーに挿入できます。

この機能を使用すると、ネットワーク アドレス変換(NAT)デバイスに関係するユーザの装置(UE)のパブリック IP アドレスを、「ファイアウォール」パラメータのように SIP コンタクト ヘッダーに挿入できます。関係者に正しく課金するために SIP メッセージ内のパブリック IP アドレス情報が必要であるため、ファイアウォール パラメータをヘッダーに挿入することは必要です。

次に、SIP メッセージ内のコンタクト ヘッダーの修正例を示します。

Contact:<sip:ea7cf5084c04f49e77644dbe53fd5f1d@10.140.90.6;transport=udp;firewall=10.0.48.41>;Expires=600

IP アドレス情報を SIP コンタクト ヘッダーに挿入する例は、「ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能の例」 を参照してください。

ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能の設定

次のタスクを実行して、この機能を設定します。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip parameter-profile profile-name

5. parameter { parameter name }

6. action {add-not-present [value] {private-ip-address | public-ip-address | access-user-data} | add-or-replace [value] {private-ip-address | public-ip-address | access-user-data} | strip}

7. exit

8. sip parameter-profile profile-name

9. parameter { parameter name }

10. action {add-not-present [value] {private-ip-address | public-ip-address | access-user-data} | add-or-replace [value] {private-ip-address | public-ip-address | access-user-data} | strip}

11. exit

12. sip header-profile profile-name

13. action {add-not-present [value] {private-ip-address | public-ip-address | access-user-data} | add-or-replace [value] {private-ip-address | public-ip-address | access-user-data} | strip}

14. exit

15. header header-name

16. entry entry_num {action [add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip] | parameter-profile name}

17. parameter-profile name

18. sip header-profile profile-name

19. header header-name

20. entry entry_num {action [add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip] | parameter-profile name}

21. parameter-profile name

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービスのコンフィギュレーション モードを開始します。

sbc-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC の Signaling Border Element(SBE)機能のコンフィギュレーション モードを開始します。

ステップ 4

sip parameter-profile { profile-name }

 

Router(config-sbc-sbe)# sip parameter-profile proxy-param

パラメータ プロファイルを設定し、SBE SIP ヘッダー コンフィギュレーション モードを開始します。

ステップ 5

parameter { parameter name }

 

Router(config-sbc-sbe-sip-prm)# parameter firewall

指定された名前のパラメータをパラメータ プロファイルに追加し、SIP パラメータ プロファイル パラメータ コンフィギュレーション モードを開始します。

ステップ 6

action {add-not-present [value] {private-ip-address | public-ip-address | access-user-data}| add-or-replace [value] {private-ip-address | public-ip-address | access-user-data}| strip}

 

Router(config-sbc-sbe-sip-prm-ele)# action-strip

パラメータに対して取るアクションを設定します。

ステップ 7

exit

 

Router(config-sbc-sbe-sip-prm-ele)# exit

SBE パラメータ プロファイル パラメータ コンフィギュレーション モードを終了し、SBE コンフィギュレーション モードを開始します。

ステップ 8

sip parameter-profile { profile-name }

 

Router(config-sbc-sbe)# sip parameter-profile access-param

パラメータ プロファイルを設定します。SIP パラメータ プロファイル コンフィギュレーション モードを開始します。

ステップ 9

parameter { parameter name }

 
Router(config-sbc-sbe-sip-prm)# parameter firewall

指定された名前のパラメータをパラメータ プロファイルに追加します。SIP パラメータ プロファイル コンフィギュレーション モードを開始します。

ステップ 10

action {add-not-present [value] {private-ip-address | public-ip-address | access-user-data}| add-or-replace [value] {private-ip-address | public-ip-address | access-user-data}| strip}

 

Router(config-sbc-sbe-sip-hdr-ele)# action add-or-replace value public-ip-address

パラメータに対して取るアクションを設定します。

ステップ 11

exit

 
Router(config-sbc-sbe-sip-hdr-ele)# exit

 

SBE コンフィギュレーション モードを終了します。

ステップ 12

sip header-profile profile-name

 

Router(config-sbc-sbe)# sip header-profile proxy

ヘッダー プロファイルを設定します。SIP ヘッダー プロファイル ヘッダー コンフィギュレーション モードを開始します。

profile-name default を入力すると、デフォルトのプロファイルが設定されます。このプロファイルは、特定のプロファイルが設定されていないすべての隣接に使用されます。

ステップ 13

action {add-not-present [value] {private-ip-address | public-ip-address | access-user-data}| add-or-replace [value] {private-ip-address | public-ip-address | access-user-data}| strip}

 

Router(config-sbc-sbe-sip-hdr-ele)# action add-or-replace value public-ip-address

パラメータに対して取るアクションを設定します。

ステップ 14

exit

 

Router(config-sbc-sbe-sip-hdr-ele)# exit

SBE ヘッダー プロファイル ヘッダー コンフィギュレーション モードを終了し、SIP ヘッダー コンフィギュレーション モードを開始します。

ステップ 15

header name

 

Router(config-sbc-sbe-sip-hdr)# header test1

プロファイルにヘッダー test1 が含まれるように設定します。SIP ヘッダー プロファイル ヘッダー コンフィギュレーション モードを開始します。

ステップ 16

entry entry_num {action [add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip] | parameter-profile name}

 
Router(config-sbc-sbe-sip-hdr-ele)# entry 1

プロファイル内にエントリを設定します。

ステップ 17

parameter-profile parameter-profile-name

 

Router(config-sbc-sbe-sip-hdr-ele)# parameter-profile proxy-param

ヘッダー タイプが一致したときに適用するパラメータ プロファイルを設定します。

ステップ 18

sip header-profile profile-name

 

Router(config-sbc-sbe)# sip header-profile test1

ヘッダー プロファイルを設定します。SIP ヘッダー コンフィギュレーション モードを開始します。

profile-name default を入力すると、デフォルトのプロファイルが設定されます。このプロファイルは、特定のプロファイルが設定されていないすべての隣接に使用されます。

ステップ 19

header name

 

Router(config-sbc-sbe-sip-hdr)# header test1

プロファイルにヘッダー test1 が含まれるように設定します。SBE ヘッダー プロファイル ヘッダー コンフィギュレーション モードを開始します。

ステップ 20

entry entry_num {action [add-header | as-profile | drop-msg | pass | replace-name | replace-value | strip] | parameter-profile name}

 
Router(config-sbc-sbe-sip-hdr-ele)# entry 1 action as-profile

プロファイル内にエントリを設定します。

ステップ 21

parameter-profile parameter-profile-name

 

Router(config-sbc-sbe-sip-hdr-ele)# parameter-profile access-param

ヘッダー タイプが一致したときに適用するパラメータ プロファイルを設定します。

SIP プロファイルの設定例

この項の構成は、次のとおりです。

「メソッド プロファイルの例」

「メソッド プロファイルの適用例」

「事前定義したヘッダー プロファイルの関連付け例」

「事前定義されたパラメータ プロファイルの関連付け例」

「応答コード マッピングの関連付け例」

「ヘッダー プロファイルの設定例」

「ヘッダー プロファイルの適用例」

「ヘッダー操作例」

「応答フィルタリングの例」

「パラメータ プロファイルの例」

「例:P-KT-UE-IP ヘッダーのサポート」

「ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能の例」

メソッド プロファイルの例

次に、メソッド プロファイルを設定すると生成されるコマンドおよび出力の例を示します。

Router# configure terminal
Router(config)# sbc umsbc-node3
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip method-profile test1 ==> Configures new method profile
with name test1
Router(config-sbc-sbe-sip-mth)# method abcd ==> Adds a method abcd to method profile test1
by default, abcd is whitelisted if applied
to the adjacency
Router(config-sbc-sbe-sip-mth)# blacklist ==> Blacklists abcd and allow methods other
than abcd on the adjacency
Router:Nov 13 17:43:11.124 : config[65761]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'username'. Use 'show configuration commit changes 1000000296' to view the changes.
Router(config-sbc-sbe-sip-mth)# end
 
Router:Nov 13 17:43:14.866 : config[65761]: %MGBL-SYS-5-CONFIG_I : Configured from console by username

 

次に、すべてのメソッド プロファイルの出力例を示します。

このコマンドは、隣接が使用できるメソッド プロファイルを記述します。デフォルトでは、「default」メソッド プロファイルは暗黙的に設定されて、すべての隣接のインバウンド方向とアウトバウンド方向の両方に適用されます。デフォルトのメソッド プロファイルは、ユーザ設定のメソッド プロファイルによって書き換えられてない場合は常にアクティブです。「In use」は、メソッド プロファイルが隣接によって使用されるかどうかを示します。値が Yes の場合は、「default」メソッド プロファイルがすべての隣接に適用されて使用されます。しかし、「test1」が設定されている場合は、どの隣接にも適用されません。test1 メソッド プロファイルを隣接に適用すると、test1 は「In use」フィールドに Yes を表示します。

Router# show sbc test sbe sip method-profile

Method profiles for SBC service "test1"
 
Name In use
====================================
test1 No
mprof1 No
default Yes
preset-acc-in-mth No
preset-std-in-mth No
preset-acc-out-mth No
preset-core-in-mth No
preset-std-out-mth No
preset-core-out-mth No
preset-ipsec-in-mth No
preset-ipsec-out-mth No
preset-ibcf-ext-in-mth No
preset-ibcf-int-in-mth No
preset-ibcf-utr-in-mth No
preset-ibcf-int-in-mth No
preset-ibcf-utr-in-mth No
preset-ibcf-ext-out-mth No
preset-ibcf-int-out-mth No
preset-ibcf-utr-out-mth No

 

次に、メソッド プロファイル test1 の出力例を示します。

Router# show sbc test sbe sip method-profile test1
Method profile "test1"
Description:
Type: Whitelist
Methods:
INVITE
action as-profile
map-status-code
range 50X value 500
range 60X value 600
Not in use with any adjacencies

メソッド プロファイルの適用例

次に、メソッド プロファイルを Cisco Unified Border Element(SP Edition)に適用すると生成されるコマンドと出力の例を示します。

method-profile inbound test1 コマンドは、メソッド プロファイル「test1」をインバウンド方向に適用します。これは、すべての受信メッセージに対して、メソッド タイプ「abcd」であるかチェックすることを意味します。「abcd」メソッドが到着すると、そのメソッドをブラックリストに載せて、エラーコード 405 Method Not Allowed を生成します。他のすべてのメソッドは許可されます。

Router# configure terminal
Router(config)# sbc umsbc-node3
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip sipp-10
Router(config-sbc-sbe-adj-sip)# method-profile inbound test1

Router:Nov 13 17:44:28.609 : config[65761]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'username'. Use 'show configuration commit changes 1000000297' to view the changes.
Router(config-sbc-sbe-adj-sip)# end
Router:Nov 13 17:44:31.637 : config[65761]: %MGBL-SYS-5-CONFIG_I : Configured from console by username
 
Router# show sbc umsbc-node3 sbe sip method-profile

Method profiles for SBC service "umsbc-node3"
Name In use
====================================
test1 Yes
testb No
 
Router# show sbc umsbc-node3 sbe sip method-profile test1

Method profile "test1"
Type: Blacklist
Methods:
abcd
In use by:
Adjacency: sipp-10 (in)

事前定義したヘッダー プロファイルの関連付け例

次に、パラメータ myparm=myvalue が INVITE の request-line に追加されていることを確認する例を得示します。

まず、myparm のためにパラメータ プロファイルを設定します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip parameter-profile parmprof1
Router(config-sbc-sbe-sip-prm)# parameter myparm
Router(config-sbc-sbe-sip-prm-ele)# action add-not-present value myvalue

 

次に、メソッド プロファイルの設定および関連付けを行います。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip method-profile mthdprof1
Router(config-sbc-sbe-sip-mth)# method INVITE
Router(config-sbc-sbe-sip-prm-ele)# parameter-profile parmprof1

 

最後に、隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-adj-sip)# method-profile outbound mthdprof1
 

インバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
 

アウトバウンド側:

INVITE sip:1234567@cisco.com;user=phone;myparm=myvalue SIP/2.0

事前定義されたパラメータ プロファイルの関連付け例

次に、P-Asserted-Identity が user=phone を含んでいる場合は、INVITE でそのヘッダーが常にパスされるようにする例を示します。

まず、P-Asserted-Identity header を参照するヘッダー プロファイルを設定します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-profile hdrprof1
Router(config-sbc-sbe-sip-hdr)# header P-Asserted-Identity
Router(config-sbc-sbe-sip-hdr-ele)# action pass
Router(config-sbc-sbe-sip-hdr-ele-act)# condition header-value contains user=phone

次に、ヘッダー プロファイルを作成し、メソッド プロファイルに関連付けます。

Router(config-sbc-sbe)# sip method-profile mthdprof1
Router(config-sbc-sbe-sip-mth)# method INVITE
Router(config-sbc-sbe-sip-prm-ele)# header-profile hdrprof1

最後に、隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-adj-sip)# method-profile outbound mthdprof1

インバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>
 

アウトバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>

応答コード マッピングの関連付け例

次に、INVITE に対するすべての 5XX の応答が 500 にマッピングされるようにステータス コード マップを作成する例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip method-profile mthdprof1
Router(config-sbc-sbe-sip-mth)# method INVITE
Router(config-sbc-sbe-sip-mth-ele)# map-status-code
Router(config-sbc-sbe-sip-mth-ele-map)# range 5XX value 500

 

最後に、隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-adj-sip)# method-profile outbound mthdprof

 

インバウンド側:

SIP/2.0 501 Not Implemented
 

アウトバウンド側:

SIP/2.0 500 Internal Server Error

ヘッダー プロファイルの設定例

次に、ヘッダー プロファイルを設定すると生成されるコマンドおよび出力の例を示します。

Router(config)# sbc umsbc-node3 sbe
Router(config-sbc-sbe)# sip header-profile EXAMPLE
Router(config-sbc-sbe-sip-hdr)# blacklist
Router(config-sbc-sbe-sip-hdr)# header abcd
Router# show sbc sbc4 sbe sip header-profile EXAMPLE

Header profile EXAMPLE
Type: Whitelist
Headers:
abcd
Cisco-Guid
Entry 1:
action add-first-header
User-Agent:
Entry 1:
action as-profile
Remote-Party-ID
Entry 1:
action strip
condition header-value contains user=phone
Entry 2:
parameter-profile adduser
P-Asserted-Identity
Entry 1:
action strip
condition header-value contains user=phone
Organisation
Entry 1:
action replace-value value Cisco-Systems
condition header-value contains MCI
In use by:
Adjacency: callgen100sip (in, out)
 

ヘッダー プロファイルの適用例

次に、ヘッダー プロファイルを Cisco Unified Border Element(SP Edition)に適用すると生成されるコマンドと出力の例を示します。

Router# configure terminal
Router(config)# sbc umsbc-node3 sbe
Router(config-sbc-sbe)# adjacency sip sipp-10
Router(config-sbc-sbe-adj-sip)# header-profile inbound test1
Router(config-sbc-sbe-adj-sip)# header-profile outbound test1
Router# show sbc umsbc-node3 sbe sip header-profile test1

Header profile "test1"
Type: Blacklist
Headers:
abcd
In use by:
Adjacency: sipp-10 (in, out)
 
show running-config
 
sbc umsbc-node3
sbe
activate
 
sip header-profile test1
blacklist
header abcd
!
adjacency sip sipp-10
header-profile inbound test1
header-profile outbound test1
signaling-address ipv4 88.88.109.8
signaling-port 5060
remote-address ipv4 10.10.105.222 255.255.255.255
security trusted-encrypted
signaling-peer 10.10.105.222
signaling-peer-port 5060
account sip-customer

ヘッダー操作例

例:P-Asserted-Identity ヘッダーの削除

次に、ヘッダー P-Asserted-Identity に user=phone が含まれている場合にメッセージ内のヘッダーを削除する例を示します。

まず、ヘッダーにアクセスします。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header P-Asserted-Identity
Router(config-sbc-sbe-hdr-ele)# action strip
Router(config-sbc-sbe-hdr-ele-act)# condition header-value contains user=phone

 

次に、ヘッダーを隣接に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1
 

インバウンド側:

P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>
 

アウトバウンド側:

No P-Asserted-Identity header present

 

前の既存条件に加えて、この条件を追加します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header P-Asserted-Identity
Router(config-sbc-sbe-hdr-ele)# entry 2
Router(config-sbc-sbe-hdr-ele)# action strip
Router(config-sbc-sbe-hdr-ele-act)# condition header-value contains user=phone

 

最後に、ヘッダー プロファイルを隣接に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1
 

インバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>
 

アウトバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
<No P-Asserted-Identity header present>

例:別のヘッダーの条件に基づくヘッダーの削除

次に、メッセージ内の別のヘッダーの条件に基づいてヘッダーを削除する例を示します。まず、P-Asserted-Identity ヘッダーを除去します。ただし Call-Info: に「telephone-event」が含まれている場合に限ります。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header P-Asserted-Identity
Router(config-sbc-sbe-hdr-ele)# action strip
Router(config-sbc-sbe-hdr-ele-act)# condition header-name Call-Info header-value contains telephone-event

 

次に、ヘッダー プロファイルを隣接に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1
 

インバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
P-Asserted-Identity: "rob" <sip:1234567@cisco.com;user=phone>
...
Call-Info: <sip:8985@10.131.132.6>;method="NOTIFY;Event=telephone-event;Duration=1000"
 

アウトバウンド側の結果:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
<No P-Asserted-Identity header present>

例:すべての応答からの Organization ヘッダーの削除

次に、すべての応答から Organization ヘッダーを削除する例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header Organization
Router(config-sbc-sbe-hdr-ele)# action strip
Router(config-sbc-sbe-hdr-ele-act)# condition status-code eq 200

 

ヘッダー プロファイルを隣接に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1
 

インバウンド側:

SIP/2.0 200 OK
... Allow: INVITE,ACK,PRACK,SUBSCRIBE,BYE,CANCEL,NOTIFY,INFO,REFER,UPDATE

 

アウトバウンド側:

SIP/2.0 200 OK
...
<No allow header present>

例:ヘッダーを別のヘッダーに変換

次に、あるヘッダーを別のヘッダーに変換する例を示します(Hist-info への変換)。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header Diversion
Router(config-sbc-sbe-hdr-ele)# action replace-name value Hist-Info

 

ヘッダー プロファイルを隣接に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1

 

インバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
Diversion: <sip:1234567@cisco.com>;reason=unconditional;counter=1;privacy=off
 

アウトバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
Hist-Info: <sip:1234567@cisco.com>;reason=unconditional;counter=1;privacy=off

例:特定のヘッダーを含む送信メッセージ

次に、すべての送信メッセージに特定のヘッダー(Organization: Cisco.com)を含ませる例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header Organization
Router(config-sbc-sbe-hdr-ele)# action add-first-header value cisco.com

ヘッダー プロファイルを隣接に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1

 

インバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
<no Organization header present>
 

アウトバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
Organization: cisco.com

例:ヘッダーをブラックリストに載せる

次に、ヘッダーをブラックリストに載せる例を示します(メソッドや応答のすべてのインスタンスは削除されます)。


) これは、ブラックリストのヘッダー プロファイル タイプだけに対して実行できます。


Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr-ele)# blacklist
Router(config-sbc-sbe-sip-hdr)# header Organization

または:

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe-hdr)# sip header-profile headprof1
Router(config-sbc-sbe-hdr-ele)# blacklist
Router(config-sbc-sbe-sip-hdr)# header Organization
Router(config-sbc-sbe-sip-hdr)# action as-profile

 

ヘッダー プロファイルを隣接に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1

 

インバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
Organization: cisco.com
 

アウトバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
<no Organization: header present>

例:ヘッダーをホワイトリストに載せる

次に、ヘッダーをホワイトリストに載せる例を示します(すべてのメソッドや応答でパス)。


) これは、デフォルト プロファイルで「no blacklist」と同じプロファイルのホワイトリスト タイプに対してだけ指定できます。


Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header Organization

または:

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header Organization
Router(config-sbc-sbe-hdr-ele)# action as-profile

 

ヘッダー プロファイルを隣接に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1
 

インバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
Organization: cisco.com
 

アウトバウンド側:

INVITE sip:1234567@cisco,com;user=phone SIP/2.0
...
Organization: cisco.com

例:日付ヘッダーのパス

次に、ヘッダー(日付)を条件付きで 200 の応答でパスする例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header Date
Router(config-sbc-sbe-hdr-ele)# action pass
Router(config-sbc-sbe-hdr-ele-act)# condition status-code eq 200

 

隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1

 

インバウンド側:

Ensure no other responses contain a Date: header
SIP/2.0 200 OK
...
Date: Mon, 01 Jan 2008 GMT
 

アウトバウンド側:

SIP/2.0 200 OK
...
Date: Mon, 01 Jan 2008 GMT
 
Also try all responses containing a Date: header and ensure the 200 OK only contains one

例:INVITE の Organization ヘッダーの除去

次に、INVITE のすべての「Organization」ヘッダーを除去する例を示します。これを行うには、ヘッダー プロファイルを作成し、メソッド プロファイルに関連付けます。


) ヘッダー プロファイルは、vital(必須)メソッドに関連付けできます。


Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headerprof1
Router(config-sbc-sbe-hdr)# blacklist
Router(config-sbc-sbe-hdr-ele)# header Organization
 
Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe) sip method-profile methodprof1
Router(config-sbc-sbe-sip-mth) blacklist
Router(config-sbc-sbe-sip-mth) method INVITE
Router(config-sbc-sbe-sip-mth-ele) header-profile headerprof1

 

隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# method-profile outbound methodprof1

 

インバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
Organization: cisco.com
 

アウトバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
<no Organization: header present>

例:パラメータ プロファイルの適用

次に、パラメータ プロファイルを適用して、INVITE の request-line に user=phone を追加する例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip parameter-profile test
Router(config-sbc-sbe-sip-prm)# parameter user
Router(config-sbc-sbe-sip-prm-ele)# action add-not-present value phone

 

メソッド プロファイルと関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe) sip method-profile test
Router(config-sbc-sbe-sip-mth) method INVITE
Router(config-sbc-sbe-sip-mth-ele) parameter-profile test

 

隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# method-profile inbound headprof1

 

インバウンド側:

INVITE sip:1234567@cisco.com SIP/2.0
 

アウトバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
 

例:P-Called-Party-Identity の除去

次に、P-Called-Party-Identity を除去し、To: ヘッダーをその内容に基づき変更する例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-sip-hdr)# store-rule entry 1
Router(config-sbc-sbe-sip-hdr-ele-act)# description “store the P-Called-Party-Identity”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition header-name P-Called-Party-Identity header-value store-as pcpid
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# header P-Called-Party-Identity entry 1
Router(config-sbc-sbe-sip-hdr-ele)# action strip
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr-ele)# exit
Router(config-sbc-sbe-sip-hdr)# header To entry 1
Router(config-sbc-sbe-sip-hdr-ele)# action replace-value value “${pcpid}”
Router(config-sbc-sbe-sip-hdr-ele-act)# description “replace the To value”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition variable pcpid is-defined eq true
 

発信隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1
 

例:アウトバウンド request-line の置換

次に、user = が 1234 で始まる場合に、アウトバウンド request-line をホスト 172.1.1.1 に置換する例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-sip-hdr)# store-rule entry 1
Router(config-sbc-sbe-sip-hdr-ele-act)# condition request-uri is-sip-uri eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and request-uri sip-uri-user store-as user
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# request-line entry 1
Router(config-sbc-sbe-sip-hdr-ele)# action replace-value value “sip:${user}@172.1.1.1”
Router(config-sbc-sbe-sip-hdr-ele-act)# description “convert RPID param into Privacy header value”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition is-request eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and request-uri is-sip-uri eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and request-uri sip-uri-user regex-match “^1234”
 

発信隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1
 

例:P-KT-UE-IP ヘッダーのサポート

P-KT-UE-IP ヘッダーは、SIP ヘッダー操作のタイプとしてサポートされるプライベート ヘッダーのタイプです。ここでは、受信されたすべてのメッセージから既存の P-KT-UE-IP ヘッダーを削除し、そのヘッダーを INVITE 要求および OOD 要求の単一の P-KT-UE-IP ヘッダーに置換する例を示します。この例では、コールは adj1 から adj2 に置かれています。

次に、ヘッダー プロファイルを 2 つのエントリで設定する方法を示します。最初のエントリは「P-KT-UE-IP」ヘッダーを除去し、2 番めのエントリは「P-KT-UE-IP」を値セットとともに 18 文字のストリング ${msg.rmt_ip_addr} に追加します。

Router(config-sbc-sbe)# sip header-profile kt
Router(config-sbc-sbe-sip-hdr)# store-rule entry 1
Router(config-sbc-sbe-sip-hdr-ele)# condition adjacency signaling-peer store-as address
Router(config-sbc-sbe-sip-hdr-ele)# exit
Router(config-sbc-sbe-sip-hdr)# header P-KT-UE-IP
Router(config-sbc-sbe-sip-hdr-ele)# entry 1 action strip
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr-ele)# entry 2 action add-header value “${address}”
 

次では、上記のヘッダー プロファイルを、インバウンド ヘッダー プロファイルとして受信隣接に適用します。

Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-adj-sip)# header-profile inbound kt

 

次では、「P-KT-UE-IP」ヘッダーのパススルーができるようにヘッダー プロファイルを設定します。

Router(config-sbc-sbe)# sip header-profile kt-pass
Router(config-sbc-sbe-sip-hdr)# header P-KT-UE-IP
Router(config-sbc-sbe-sip-hdr-ele)# action pass
 

次では、上記のヘッダー プロファイルを、アウトバウンド ヘッダー プロファイルとして送信隣接に適用します。

Router(config-sbc-sbe)# adjacency sip adj2
Router(config-sbc-sbe-adj-sip)# header-profile outbound kt-pass

応答フィルタリングの例

次に、発信隣接および着信隣接に関連付けられたヘッダー * の一致に基づいて、ヘッダー プロファイルから SIP 183 暫定応答を廃棄する例を示します。

まず、ヘッダー * で一致してメッセージを廃棄するためにヘッダー プロファイル headprof1 を作成します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-hdr)# header *
Router(config-sbc-sbe-hdr-ele)# action drop-msg
Router(config-sbc-sbehdr-ele-act)# condition status-code eq 183

 

プロファイル headprof1 を、隣接のインバウンド側に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip adjacencyA
Router(config-sbc-sbe-adj-sip)# header-profile inbound headerprof1

 

プロファイル headprof1 を、別の隣接のインバウンド側およびアウトバウンド側に関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip adjacencyB
Router(config-sbc-sbe-adj-sip)# header-profile inbound headerprof1
 
Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip adjacencyB
Router(config-sbc-sbe-adj-sip)# header-profile outbound headerprof1

パラメータ プロファイルの例

次に、user=phone パラメータがヘッダーで指定されていなかった場合に、そのパラメータを To: ヘッダーに追加する例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip parameter-profile parmprof1
Router(config-sbc-sbe-sip-prm)# parameter user
Router(config-sbc-sbe-sip-prm-ele)# action add-not-present value phone

 

今度はヘッダー プロファイルに追加します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-sip-hdr)# header To
Router(config-sbc-sbe-sip-hdr-ele)# parameter-profile parmprof1

 

今度は隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1

 

インバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com>;tag=1234;
 

アウトバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com;user=phone>;tag=1234

 

次に、To: ヘッダーから「user」パラメータ(「user=phone」、「user=fax」...)を削除する例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip parameter-profile parmprof1
Router(config-sbc-sbe-sip-prm)# parameter user
Router(config-sbc-sbe-sip-prm-ele)# action strip

 

ヘッダー プロファイルに追加します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-sip-hdr)# header To
Router(config-sbc-sbe-sip-hdr-ele)# parameter-profile parmprof1

 

最後に、隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1

インバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com;user=phone;tag=1234;

アウトバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com>;tag=1234

 

次に、「user=phone」パラメータを user=fax に置換する、またはユーザ パラメータがヘッダー内にない場合に user=fax を追加する例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip parameter-profile parmprof1
Router(config-sbc-sbe-sip-prm)# parameter user
Router(config-sbc-sbe-sip-prm-ele)# action add-or-replace value fax

 

ヘッダー プロファイルに追加します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-sip-hdr)# header To
Router(config-sbc-sbe-sip-hdr-ele)# parameter-profile parmprof1

 

最後に、隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1

 

インバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com;user=phone;tag=1234;

アウトバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com;user=fax>;tag=1234

または:

インバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com;tag=1234;

アウトバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com;user=fax>;tag=1234

 

次に、「user=phone」パラメータがヘッダーにない場合にそのパラメータを追加する例を示します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip parameter-profile parmprof1
Router(config-sbc-sbe-sip-prm)# parameter user
Router(config-sbc-sbe-sip-prm-ele)# action add-not-present value phone

 

パラメータ プロファイルをヘッダー プロファイルに追加します。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# sip header-profile headprof1
Router(config-sbc-sbe-sip-hdr)# header To
Router(config-sbc-sbe-sip-hdr-ele)# parameter-profile parmprof1

 

最後に、隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-profile outbound headprof1

 

インバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com;user=fax;tag=1234;
 

アウトバウンド側:

No parameter added as a user parameter already exists
INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com>;tag=1234
 

または:

インバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com;tag=1234;

アウトバウンド側:

INVITE sip:1234567@cisco.com;user=phone SIP/2.0
...
To: "rob" <sip:1234567@cisco.com;user=phone>;tag=1234

ファイアウォール パラメータを SIP コンタクト ヘッダーに挿入する機能の例

次に、SIP パラメータ プロファイルを追加し、ファイアウォールと呼ばれるパラメータを削除または付加する例を示します。

Router(config-sbc-sbe)# sip parameter-profile proxy-param
Router(config-sbc-sbe-sip-prm)# parameter firewall
Router(config-sbc-sbe-sip-prm-ele)# action strip
Router(config-sbc-sbe-sip-prm-ele)# sip parameter-profile access-param
Router(config-sbc-sbe-sip-prm)# parameter firewall
Router(config-sbc-sbe-sip-prm-ele)# action add-or-replace value public-ip-address

 

次に、SIP ヘッダー プロファイルを追加し、パラメータ プロファイルをヘッダー プロファイルに関連付けする例を示します。

Router(config-sbc-sbe-sip-prm-ele)# sip header-profile proxy
Router(config-sbc-sbe-sip-hdr)# header contact entry 1
Router(config-sbc-sbe-sip-hdr-ele)# action as-profile
Router(config-sbc-sbe-sip-hdr-ele)# parameter-profile proxy-param
Router(config-sbc-sbe-sip-hdr-ele)# sip header-profile access
Router(config-sbc-sbe-sip-hdr)# header contact
Router(config-sbc-sbe-sip-hdr-ele)# entry 1 action as-profile
Router(config-sbc-sbe-sip-hdr-ele)# parameter-profile access-param

 

この例では、SIP ヘッダーを SIP 隣接に追加します。

adjacency sip sip-proxy
header-profile inbound proxy
header-profile outbound access
adjacency sip sip-user
header-profile inbound access
header-profile outbound proxy

エディタの使用による SIP メッセージの編集


) ここでは、本文、ヘッダー、メソッド、オプション、およびパラメータ エディタについて説明します。「スクリプトベースのエディタの使用による SDP の編集」では、SIP メッセージの SDP コンテンツを変更するスクリプトベースのエディタについて説明します。SBC では、SIP メッセージの編集に両方のタイプのエディタを任意の組み合わせで適用できます。


Release 2.4S では、SBC が条件付きで SIP メッセージを変更できるようにプロファイルが導入されました。このプロファイルを設定することにより、指定した一致基準を満たしている SIP メッセージの本文、ヘッダー、メソッド、オプション、またはパラメータを変更できました。このアプローチはフレキシブルでしたが、次の制限がありました。

メッセージの重要な部分が変更された場合、コール失敗の可能性があるため、メッセージの重要な部分に一致基準を設定できませんでした。

少数の例外を除き、これらの重要な部分の元のコンテンツはプロファイルが適用されたポイントで利用できなかったため、メッセージの重要な部分は変更できませんでした。

Release 3.3S 以降は、 エディタ の概念が導入されました。エディタは、SIP メッセージの条件付き編集に使用されるすべての種類の SBC 設定を参照します。以前のリリースで導入されたプロファイルは、エディタとしてリネームされます。たとえば、本文プロファイルは本文エディタ、ヘッダー プロファイルはヘッダー エディタなどと呼ばれます。

エディタは、実行時に指定されたシーケンスで適用されるように、隣接と関連付けたり、複数のエディタを互いにリンクさせたりできます。また、エディタをテスト メッセージ(SIP INVITE)に適用してテストすることもできます。このテストの出力を使用して、エディタが要件を満たしているかどうかを判断できます。

Cisco IOS XE Release 3.3S では、SIP メッセージの編集機能に次の追加拡張が導入されました。

To および From のマルチモード光ファイバ編集

Cisco IOS XE Release 3.3S よりも前のリリースでは、out-of-dialog メッセージと dialog-creating メッセージの To および From アウトバウンド ヘッダーだけが編集できました。dialog-creating メッセージ上で編集が実行されると、その編集はダイアログ上で送信されたすべての新しいメッセージに自動的に伝播されました。Cisco IOS XE Release 3.3S 以降では、To および From ヘッダーの編集は in-dialog メッセージ上でも実行できます。これらの編集は自動的に伝播されません。ダイアログ上で送信されたすべてのメッセージに対し、編集が一貫して実行されたことを確認する必要があります。

Resource-Priority ヘッダーの検査

Cisco IOS XE Release 3.3S よりも前のリリースでは、インバウンド MMF 編集が実行される前に Resource Priority ヘッダー検査機能を使用してメッセージを検証しました。Cisco IOS XE Release 3.3S 以降では、インバウンド編集が実行された後に Resource Priority ヘッダー検査機能を使用してメッセージを検証します。

100rel_required 一致条件変数

Cisco IOS XE Release 3.3S よりも前のリリースでは、 100rel_required 一致条件変数は、100rel サポートに関する新しい情報が各コール レッグから着信した場合に更新されるコール プロパティでした。Cisco IOS XE Release 3.3S 以降では、この変数は受信したメッセージが Required: 100rel としてマークされたかどうかを示します。

失敗応答

Cisco IOS XE Release 3.3S よりも前のリリースでは、メッセージの編集時に障害が発生した場合、SBC は未編集メッセージの拒否を送信しました。Cisco IOS XE Release 3.3S 以降では、応答に障害ポイントでのメッセージのステートが含まれます。たとえば、編集時に追加されたヘッダーは失敗応答に記載されます。

ここでは、本文、ヘッダー、メソッド、オプションおよびパラメータ エディタの使用による SIP メッセージ編集の実装について説明します。

「SIP メッセージ編集の制約事項」

「エディタの命名ガイドライン」

「エディタの設定」

「SIP メッセージ エディタの設定例」

SIP メッセージ編集の制約事項

SIP メッセージ編集機能は次のアクションをサポートしません。

To および From ヘッダー タグの編集

To および From ヘッダー タグでのパス アクションおよび削除アクションの適用

Via ヘッダーのアウトバウンド編集

INVITE、CANCEL、および ACK メッセージのメソッド タイプの変更

エディタの命名ガイドライン

エディタに名前を付ける際は、次のガイドラインを適用してください。

各エディタには一意の名前を付けます。すべてのエディタにこのガイドラインを適用してください。たとえば、ヘッダー エディタの名前がメソッド エディタの名前と同じにならないようにします。

エディタとプロファイルは、容易な移行パスを確保するために同じ名前を持つ必要があることに注意してください。

エディタの設定

このタスクでは、SBC 上でエディタを設定する方法について説明します。

手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. sip editor-type { editor | profile }

5. sip body-editor editor-name

6. exit

7. sip method-editor { editor-name | default }

8. exit

9. sip option-editor { editor-name | default }

10. exit

11. sip parameter-editor { editor-name | default }

12. exit

13. sip header-editor { editor-name | default }

14. exit

15. adjacency sip adjacency-name

16. editor-type { editor | profile }

17. header-editor { inbound | outbound } { editor-name | default }

18. method-editor { inbound | outbound } { editor-name | default }

19. option-editor [ ua | proxy ] { inbound | outbound } { editor-name | default }

20. body-editor { inbound | outbound } { editor-name }

21. editor-list { after-send | before-receive }

22. editor order-number editor-name [ condition [ body contains sdp ]]

23. end

24. show sbc sbc-name sbe editors

25. show sbc sbc-name sbe sip header-editor [ editor-name ]

26. show sbc sbc-name sbe sip body-editor [ editor-name ]

27. show sbc sbc-name sbe sip method-editor [ editor-name ]

28. show sbc sbc-name sbe sip option-editor [ editor-name ]

29. show sbc sbc-name sbe sip parameter-editor [ editor-name ]

手順の詳細

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービス モードを開始します。

sbc-name :SBC の名前。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBC の SBE コンフィギュレーション モードを開始します。

ステップ 4

sip editor-type { editor | profile }

 

Router(config-sbc-sbe)# sip editor-type editor

明示的に設定されていないすべての隣接に適用するエディタのデフォルト タイプを設定します。

editor :メソッド、ヘッダー、オプション、パラメータ、または本文エディタを使用するためのデフォルトを設定します。

profile :メソッド、ヘッダー、オプション、パラメータ、または本文エディタを使用するためのデフォルトを設定します。

ステップ 5

sip body-editor editor-name

 

Router(config-sbc-sbe)# sip body-editor BodyEditor1

本文エディタを作成し、着信および発信 SIP メッセージから非 SDP メッセージ本文をフィルタリングします。

editor-name :本文エディタの名前を指定します。

SIP 本文コンフィギュレーション モードを開始します。このモードでは、次のコマンドを使用して本文エディタを設定します。

body:このエディタに本文タイプを追加します。

description:このエディタの説明を設定します。

body コマンドを使用すると、SIP 本文エディタ エレメント コンフィギュレーション モードが開始されます。ここでは、次のコマンドが使用できます。

action :本文で実行されるアクションを指定します。

hunt-on-reject :トリガー ハンティングを指定します。

ステップ 6

exit

 

Router(config-sbc-sbe-mep-bdy)# exit

SIP 本文コンフィギュレーション モードを終了し、SBE コンフィギュレーション モードを開始します。

ステップ 7

sip method-editor { editor-name | default }

 

Router(config-sbc-sbe)# sip method-editor MethodEditor1

メソッド エディタを設定します。

editor-name :メソッド エディタの名前を指定します。

default :デフォルトのメソッド エディタを設定します。このエディタは、特定のエディタが設定されていないすべての隣接に使用されます。

SIP メソッド コンフィギュレーション モードを開始します。このモードでは、次のコマンドを使用してメソッド エディタを設定します。

blacklist :このエディタをブラック リストに設定します。

description :このエディタの説明を設定します。

method :このエディタにメソッドを追加します。

method コマンドを使用すると、SIP メソッド エディタ エレメント コンフィギュレーション モードが開始されます。ここでは、次のコマンドが使用できます。

action :メソッド上で実行されるアクションを指定します。

body-editor :メソッド上で動作する本文エディタを追加します。

header-editor :メソッド上で動作するヘッダー エディタを追加します。

map-status-code :メソッド用に受信した応答コードのマッピングを許可します。

ステップ 8

exit

 

Router(config-sbc-sbe-mep-mth)# exit

SIP メソッド コンフィギュレーション モードを終了し、SBE コンフィギュレーション モードを開始します。

ステップ 9

sip option-editor { editor-name | default }

 

Router(config-sbc-sbe)# sip option-editor OptionEditor1

オプション エディタを設定します。

editor-name :オプション エディタの名前を指定します。

default :デフォルトのオプション エディタを設定します。

SIP オプション コンフィギュレーション モードを開始します。このモードでは、次のコマンドを使用してオプション エディタを設定します。

blacklist :このエディタをブラック リストに設定します。

description :このエディタの説明を設定します。

option :このエディタにオプションを追加します。

ステップ 10

exit

 

Router(config-sbc-sbe-mep-opt)# exit

SIP オプション コンフィギュレーション モードを終了し、SBE コンフィギュレーション モードを開始します。

ステップ 11

sip parameter-editor editor-name

 

Router(config-sbc-sbe)# sip parameter-editor ParameterEditor1

パラメータ エディタを設定します。

editor-name :パラメータ エディタの名前を指定します。

SIP パラメータ コンフィギュレーション モードを開始します。このモードでは、次のコマンドを使用してパラメータ エディタを設定します。

blacklist :このエディタをブラック リストに設定します。

description :このエディタの説明を設定します。

parameter :このエディタにパラメータを追加します。

parameter コマンドを使用すると、SIP パラメータ エディタ エレメント コンフィギュレーション モードが開始されます。ここでは、 action コマンドを使用して、パラメータ エディタ内のエレメント タイプ上で実行されるアクションを設定できます。

ステップ 12

exit

 

Router(config-sbc-sbe-mep-prm)# exit

SIP パラメータ コンフィギュレーション モードを終了して、SBE コンフィギュレーション モードを開始します。

ステップ 13

sip header-editor { editor-name | default }

 

Router(config-sbc-sbe)# sip header-editor HeaderEditor1

ヘッダー エディタを設定します。

editor-name :ヘッダー エディタの名前を指定します。

default :デフォルトのヘッダー エディタを設定します。

SIP ヘッダー コンフィギュレーション モードを開始します。このモードでは、次のコマンドを使用してヘッダー エディタを設定します。

blacklist :このエディタをブラック リストに設定します。

description :このエディタの説明を設定します。

div-address :diverted-by 番号が取得されるヘッダーのプライオリティ リストを指定します(インバウンドのみ)。SIP ヘッダー エディタ Diversion ヘッダー コンフィギュレーション モードを開始します。ここでは、次のコマンドが使用できます。

header-prio :diverted-by アドレスを抽出するためのプライオリティ順序リストを指定します。

dst-address :着信側アドレスが取得されるヘッダーのプライオリティ リストを指定します(インバウンドのみ)。SIP ヘッダー エディタ宛先ヘッダー コンフィギュレーション モードを開始します。ここでは、次のコマンドが使用できます。

header-prio :宛先アドレスを抽出するためのプライオリティ順序リストを指定します。

header :このエディタにヘッダーを追加します。SIP ヘッダー エディタ ヘッダー コンフィギュレーション モードを開始します。ここでは、次のコマンドが使用できます。

action :アクションのタイプを指定します。SIP ヘッダー エディタ ヘッダー アクション モードを開始します。ここでは、 condition コマンドを使用して、アクションを有効にする 1 つまたは複数の条件を指定できます。また、 parameter-editor コマンドを使用してパラメータ エディタを指定できます。

parameter-editor :パラメータ エディタを指定します。

 

request-line :アクションに Request-Line の変更を許可します(アウトバウンド側のみ)。SIP ヘッダー エディタ ヘッダー コンフィギュレーション モードを開始します。ここでは、次のコマンドが使用できます。

action :アクションのタイプを指定します。SIP ヘッダー エディタ ヘッダー アクション モードを開始します。ここでは、 condition コマンドを使用して、アクションを有効にする 1 つまたは複数の条件を指定できます。また、 parameter-editor コマンドを使用してパラメータ エディタを指定できます。

parameter-editor :パラメータ エディタを指定します。

src-address :発信側アドレスが取得されるヘッダーのプライオリティ リストを指定します(インバウンドのみ)。SIP ヘッダー エディタ発信側コンフィギュレーション モードを開始します。ここでは、次のコマンドが使用できます。

header-prio :送信元アドレスを抽出するためのプライオリティ順序リストを指定します。

store-rule :ヘッダーから変数を取得するように store-rule を作成します。SIP ヘッダー エディタ ヘッダー アクション コンフィギュレーション モードを開始します。ここでは、次のコマンドが使用できます。

condition :アクションを有効にする 1 つまたは複数の条件を指定します。

description :このアクションの説明を設定します。

ステップ 14

exit

 

Router(config-sbc-sbe-mep-hdr)# exit

SIP ヘッダー コンフィギュレーション モードを終了し、SBE コンフィギュレーション モードを開始します。

ステップ 15

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip SIPP

SBE SIP 隣接コンフィギュレーション モードを開始します。

adjacency-name :サービスの名前です。

ステップ 16

editor-type { editor | profile }

 

Router(config-sbc-sbe-sip)# editor-type editor

SIP 隣接を適用できるようにエディタ タイプを指定します。

editor :メソッド、ヘッダー、オプション、パラメータ、または本文エディタを使用します。

profile :メソッド、ヘッダー、オプション、パラメータ、または本文プロファイルを使用します。

ステップ 17

header-editor { inbound | outbound } { editor-name | default }

 

Router(config-sbc-sbe-sip)# header-editor inbound HeaderEditor1

SBE SIP 隣接のインバウンドおよびアウトバウンド シグナリング用の指定ヘッダー エディタを設定します。

inbound :インバウンド SIP ヘッダー エディタを設定します。

outbound :アウトバウンド SIP ヘッダー エディタを設定します。

editor-name :隣接でのインバウンドまたはアウトバウンド シグナリング用に設定されるヘッダー エディタの名前です。

default :デフォルト設定にヘッダー エディタを設定します。

ステップ 18

method-editor { inbound | outbound } { editor-name | default }

 

Router(config-sbc-sbe-sip)# method-editor inbound HeaderEditor1

メソッド エディタを設定します。

inbound :インバウンド SIP メソッド エディタを設定します。

outbound :アウトバウンド SIP メソッド エディタを設定します。

editor-name :隣接でのインバウンドまたはアウトバウンド シグナリング用に設定されるメソッド エディタの名前です。

default :デフォルト設定にメソッド エディタを設定します。

ステップ 19

option-editor [ ua | proxy ] [ inbound | outbound ] [ editor-name | default ]

 

Router(config-sbc-sbe-adj-sip)# option-editor ua inbound OptionHeader1

ホワイトリストまたはブラックリスト オプションに指定エディタを使用するように隣接を設定します。

ua :SIP ua オプション エディタを設定します。

proxy :SIP プロキシ オプション エディタを設定します。

inbound :インバウンド SIP オプション エディタを設定します。

outbound :アウトバウンド SIP オプション エディタを設定します。

editor-name :使用するエディタの名前です。

default :デフォルト設定にメソッド エディタを設定します。

ステップ 20

body-editor { inbound | outbound } { editor-name }

 
Router(config-sbc-sbe-adj-sip)# body-editor inbound BodyEditor1

本文エディタが着信および発信 SIP メッセージで動作するように、SIP 隣接を本文エディタに関連付けます。

inbound :本文エディタが SIP 隣接のインバウンド メッセージで動作するように関連付けます。

outbound :本文エディタが SIP 隣接のアウトバウンド メッセージで動作するように関連付けます。

(注) メッセージが SBC を通過すると、本文エディタはメッセージをルーティングする隣接のインバウンド方向とアウトバウンド方向の両方に適用されます。

editor-name :本文エディタの名前を指定します。最大長は、30 文字です。

ステップ 21

editor-list { after-send | before-receive }

 

Router(config-sbc-sbe-adj-sip)# editor-list after-send

登録されたエディタのリストを設定します。

after-send :発信メッセージが隣接によって処理された後、および隣接から転送される直前に編集されるように指定します。

before-receive :着信メッセージが隣接で受信された直後、および隣接が処理を開始する前に編集されるように指定します。

SIP エディタ コンフィギュレーション モードを開始します。

ステップ 22

editor order-number editor-name [ condition [ body contains sdp ]]

 

Router(config-sbc-sbe-adj-sip-ed)# editor 1 bodyeditor1

エディタ リストのエディタを設定します。シーケンスに適用する各エディタに対し、このコマンドを実行してエディタ リスト内のエディタの順序を指定します。

(注) エディタ リスト内では、スクリプト ベースのエディタと、本文、ヘッダー、メソッド、オプション、およびパラメータ エディタとの任意の組み合わせを追加できます。

order-number :エディタが適用される順序です。範囲は 1 ~ 2147483647 です。

editor-name :隣接で処理されたメッセージに適用するエディタの名前を指定します。

condition :適用されるエディタに 1 つまたは複数の条件を指定します。

body contains sdp :メッセージ本文が SDP ベースのコンテンツとなるように指定します。エディタはこの条件が満たされた場合にだけ適用されます。スクリプト ベースのエディタのコマンドには body contains sdp が含まれます。

ステップ 23

end

 

Router(config-sbc-sbe-adj-sip)# end

SIP エディタ コンフィギュレーション モードを終了し、特権 EXEC モードを開始します。

ステップ 24

show sbc sbc-name sbe editors

 

Router# show sbc mysbc sbe editors

すべての設定済みエディタがリストされます。

ステップ 25

show sbc sbc-name sbe sip body-editor [ editor-name ]

 

Router# show sbc mysbc sbe sip body-editor BodyEditor1

すべての本文エディタの詳細、または指定された本文エディタに関する詳細を表示します。

sbc-name :SBC サービスの名前を指定します。

editor-name :エディタの名前を指定し、指定されたエディタの詳細を表示します。省略すると、すべての SIP 本文エディタに関する情報が表示されます。

ステップ 26

show sbc sbc-name sbe sip header-editor [ editor-name ]

 

Router# show sbc mysbc sbe sip header-editor HeaderEditor1

すべてのヘッダー エディタの詳細、または指定されたヘッダー エディタに関する詳細を表示します。

sbc-name :SBC サービスの名前を指定します。

editor-name :エディタの名前を指定し、指定されたエディタの詳細を表示します。省略すると、すべての SIP ヘッダー エディタに関する情報が表示されます。

ステップ 27

show sbc sbc-name sbe sip method-editor [ editor-name ]

 

Router# show sbc mysbc sbe sip method-editor MethodEditor1

すべてのメソッド エディタの詳細、または指定されたメソッド エディタに関する詳細を表示します。

sbc-name :SBC サービスの名前を指定します。

editor-name :エディタの名前を指定し、指定されたエディタの詳細を表示します。省略すると、すべての SIP メソッド エディタに関する情報が表示されます。

ステップ 28

show sbc sbc-name sbe sip option-editor [ editor-name ]

 

Router# show sbc mysbc sbe sip option-editor OptionEditor1

すべてのオプション エディタの詳細、または指定されたオプション エディタに関する詳細を表示します。

sbc-name :SBC サービスの名前を指定します。

editor-name :エディタの名前を指定し、指定されたエディタの詳細を表示します。省略すると、すべての SIP オプション エディタに関する情報が表示されます。

ステップ 29

show sbc sbc-name sbe sip parameter-editor [ editor-name ]

 

Router# show sbc mysbc sbe sip parameter-editor ParameterEditor1

すべてのパラメータ エディタの詳細、または指定されたパラメータ エディタに関する詳細を表示します。

sbc-name :SBC サービスの名前を指定します。

editor-name :エディタの名前を指定し、指定されたエディタの詳細を表示します。省略すると、すべての SIP パラメータ エディタに関する情報が表示されます。

メソッド エディタの例

次に、SBC2 SBC で test1 メソッド エディタおよび abcd メソッド タイプを設定する例を示します。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip method-editor test1
Router(config-sbc-sbe-mep-mth)# method abcd
Router(config-sbc-sbe-mep-mth)# blacklist

 

次に、 show sbc sbe sip method-editor コマンドを使用して、隣接に適用される前の meditor1 メソッド エディタおよび test1 メソッド エディタの詳細を表示する例を示します。

Router# show sbc SBC2 sbe sip method-editor meditor1
method-editor "meditor1"
Description:
Type: Whitelist
Methods:
INVITE
action as-editor
map-status-code
range 5XX value 500
range 6XX value 600
Not in use with any adjacencies
 
Router# show sbc SBC2 sbe sip method-editor test1
method-editor "test1"
Description:
Type: Blacklist
Methods:
abcd
action as-editor
Not in use with any adjacencies
 

次に、 show sbc sbe sip method-editor コマンドを使用して、設定されているすべてのメソッド エディタのリストを表示する例を示します。

Router# show sbc SBC2 sbe sip method-editor
method-editors for SBC service "SBC2"
Name In use
====================================
test1 No
meditor1 No
preset-acc-in-mth No
preset-std-in-mth No
preset-acc-out-mth No
preset-core-in-mth No
preset-std-out-mth No
preset-core-out-mth No
preset-ipsec-in-mth No
preset-ipsec-out-mth No
default No
preset-ibcf-ext-in-mth No
preset-ibcf-int-in-mth No
preset-ibcf-utr-in-mth No
preset-ibcf-ext-out-mth No
preset-ibcf-int-out-mth No
preset-ibcf-utr-out-mth No
preset-std-block-in-mth No
preset-std-block-out-mth No

 

例:メソッド エディタの適用

method-editor inbound test1 コマンドは、インバウンド方向の test1 メソッド エディタを適用します。したがって、すべての受信メッセージに対し、メソッド タイプ abcd がチェックされます。abcd メソッドが到着すると、ブラック リストに記載され、エラー コード 405 Method Not Allowed が生成されます。他のすべてのメソッドは許可されます。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip trans-uac
Router(config-sbc-sbe-adj-sip)# no attach
Router(config-sbc-sbe-adj-sip)# method-editor inbound test1
Router(config-sbc-sbe-adj-sip)# attach

 

次に、 show sbc sbe sip method-editor コマンドを使用して、隣接に適用された後の test1 メソッド エディタの詳細を表示する例を示します。

Router# show sbc SBC2 sbe sip method-editor
method-editors for SBC service "SBC2"
 
Name In use
====================================
test1 Yes
meditor1 No

 

Router# show sbc SBC2 sbe sip method-editor test1
method-editor "test1"
Description:
Type: Blacklist
Methods:
abcd
action as-editor
In use by adjacency:trans-uac (in)

例:ヘッダー エディタの設定および適用

次に、SBC2 SBC で EXAMPLE ヘッダー エディタおよび abcd ヘッダー タイプを設定する例を示します。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-editor EXAMPLE
Router(config-sbc-sbe-mep-hdr)# blacklist
Router(config-sbc-sbe-mep-hdr)# header abcd

 

次に、 show sbc sbe sip header-editor コマンドを使用して、EXAMPLE ヘッダー エディタの詳細を表示する例を示します。

Router# show sbc SBC2 sbe sip header-editor EXAMPLE
header-editor "EXAMPLE"
Description:
Type: Blacklist
store-rules:
No store-rule entries found.
request-line:
No request-line entries found.
headers:
abcd
entry 1
description:
action as-editor
Not in use with any adjacencies
Not in use with any method-editor

 

header-editor inbound EXAMPLE コマンドおよび header-editor outbound EXAMPLE コマンドを使用すると、EXAMPLE ヘッダー エディタがインバウンドおよびアウトバウンド方向に適用されます。したがって、すべての着信および発信メッセージに対して、ヘッダー タイプ abcd がチェックされます。abcd ヘッダーが到着または出発すると、ブラック リストに記載され、エラー コード 405 Method Not Allowed が生成されます。他のすべてのヘッダーが許可されます。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip trans-uac
Router(config-sbc-sbe-adj-sip)# no attach
Router(config-sbc-sbe-adj-sip)# header-editor inbound EXAMPLE
Router(config-sbc-sbe-adj-sip)# header-editor outbound EXAMPLE
Router(config-sbc-sbe-adj-sip)# attach

 

次に、 show sbc sbe sip header-editor コマンドを使用して、隣接に適用された後の EXAMPLE ヘッダー エディタの詳細を表示する例を示します。

Router# show sbc SBC2 sbe sip header-editor EXAMPLE

header-editor "EXAMPLE"
Description:
Type: Blacklist
store-rules:
No store-rule entries found.
request-line:
No request-line entries found.
headers:
abcd
entry 1
description:
action as-editor
In use by adjacency:trans-uac (in, out)
Not in use with any method-editor

 

例:ディレクトリ番号プレフィクスを使用したプライバシーの設定

次に、ディレクトリ番号プレフィクスを使用してプライバシーを設定する例を示します。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-editor headprof1
Router(config-sbc-sbe-sip-hdr)# store-rule entry 1
Router(config-sbc-sbe-sip-hdr-ele-act)# description “store the called party number from To”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition is-request eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name To is-tel-uri eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name To tel-uri-user store-as called-dn
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# store-rule entry 2
Router(config-sbc-sbe-sip-hdr-ele-act)# description “store the called party number from To”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition is-request eq true
 
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name To is-sip-uri eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name To sip-uri-user store-as called-dn
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# store-rule entry 3
Router(config-sbc-sbe-sip-hdr-ele-act)# description “set $privacy based on DN”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition variable privacy is-defined eq false
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and variable called_dn is-defined eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and variable called_dn regex-match “^184”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and “none” store-as privacy
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# store-rule entry 4
Router(config-sbc-sbe-sip-hdr-ele-act)# description “set $privacy based on DN”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition variable privacy is-defined eq false
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and variable called_dn is-defined eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and variable called_dn regex-match “^186”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and “user” store-as privacy
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# header Privacy entry 1
Router(config-sbc-sbe-sip-hdr-ele)# action strip
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr-ele)# exit
Router(config-sbc-sbe-sip-hdr)# header Privacy entry 2
Router(config-sbc-sbe-sip-hdr-ele)# action add-first-header value “${privacy}”
Router(config-sbc-sbe-sip-hdr-ele-act)# description “create a privacy header if we have privacy info”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition variable privacy is-defined eq true
 

着信隣接と関連付けます。

Router# configure terminal
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-editor inbound headprof1

 

例:Remote-Party-ID または P-Preferred-Identity の変換

次に、Remote-Party-ID または From into P-Preferred-Identity を変換する例を示します。メッセージが要求で、Remote-Party-ID が存在する場合は、ユーザ名がユーザ名の変数に保存されます。From ヘッダーに sip: URI または Tel: URI が含まれ、Remote-Part-ID が存在しなかった場合は、ユーザ名がユーザ名の変数に保存されます。すべての P-Preferred-Identity、Remote-Party-ID ヘッダー、および P-Preferred-Identity ヘッダーを除去し、保存されたユーザ名、および受信情報に基づく Privacy ヘッダーが含まれている単一の P-Preferred-Identity ヘッダーを挿入します。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc test
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-editor headprof1
Router(config-sbc-sbe-sip-hdr)# store-rule entry 1
Router(config-sbc-sbe-sip-hdr-ele-act)# description “store the RPID username in $username”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition is-request eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name Remote-Party-ID header-value extract user store-as username
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# store-rule entry 2
Router(config-sbc-sbe-sip-hdr-ele-act)# description “store the privacy parameter in $rpid-privacy”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition is-request eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name Remote-Party-ID header-value extract parameter privacy store-as rpid_privacy
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# store-rule entry 3
Router(config-sbc-sbe-sip-hdr-ele-act)# description “store the From sip uri in $username”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition is-request eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and variable username is-defined eq false
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name From header-uri is-sip-uri eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name From header-uri sip-uri-user store-as username
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# store-rule entry 4
Router(config-sbc-sbe-sip-hdr-ele-act)# description “store the From tel uri in $username”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition is-request eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and variable username is-defined eq false
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name From header-uri is-tel-uri eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and header-name From header-uri tel-uri-user store-as username
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# store-rule entry 5
Router(config-sbc-sbe-sip-hdr)# description “convert RPID param into Privacy header value”
Router(config-sbc-sbe-sip-hdr)# condition variable rpid_privacy is-defined eq true
Router(config-sbc-sbe-sip-hdr)# condition and variable rpid_privacy eq “off”
Router(config-sbc-sbe-sip-hdr)# condition and “none” store-as privacy
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# store-rule entry 6
Router(config-sbc-sbe-sip-hdr-ele-act)# description “convert RPID param into Privacy header value”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition variable rpid_privacy is-defined eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and variable rpid_privacy eq “id”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition and “user” store-as privacy
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr)# header P-Preferred-Identity entry 1
Router(config-sbc-sbe-sip-hdr-ele)# action strip
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr-ele)# exit
Router(config-sbc-sbe-sip-hdr)# header P-Preferred-Identity entry 2
Router(config-sbc-sbe-sip-hdr-ele)# action add-first-header value “<sip:${username}@mydomain.com;user=phone>”
Router(config-sbc-sbe-sip-hdr-ele-act)# description “create a P-Preferred-Identity header”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition variable username is-defined eq true
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr-ele)# exit
Router(config-sbc-sbe-sip-hdr)# header P-Asserted-Identity entry 1
Router(config-sbc-sbe-sip-hdr-ele)# action strip
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr-ele)# exit
Router(config-sbc-sbe-sip-hdr)# header Remote-Party-ID entry 1
Router(config-sbc-sbe-sip-hdr-ele)# action strip
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr-ele)# exit
Router(config-sbc-sbe-sip-hdr)# header Privacy entry 1
Router(config-sbc-sbe-sip-hdr-ele)# action strip
Router(config-sbc-sbe-sip-hdr-ele-act)# exit
Router(config-sbc-sbe-sip-hdr-ele)# exit
Router(config-sbc-sbe-sip-hdr)# header Privacy entry 2
Router(config-sbc-sbe-sip-hdr-ele)# action add-first-header value “${privacy}”
Router(config-sbc-sbe-sip-hdr-ele-act)# description “create a privacy header if we have privacy info”
Router(config-sbc-sbe-sip-hdr-ele-act)# condition variable privacy is-defined eq true
 

着信隣接と関連付けます。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc test
Router(config-sbc) sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-sip)# header-editor inbound headprof1

本文エディタの例

次に、SBC2 SBC で beditor1 本文エディタを設定する例を示します。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip body-editor beditor1
Router(config-sbc-sbe-mep-bdy)# body dtmf-relay/mixed
Router(config-sbc-sbe-mep-bdy-ele)# action reject

 

次に、 show sbc sbe sip body-editor コマンドを使用して、beditor1 本文エディタの詳細を表示する例を示します。

Router# show sbc SBC2 sbe sip body-editor beditor1

body-editor "beditor1"
Description:
Bodies:
dtmf-relay/mixed
action reject
hunt-on-reject false
Not in use with any adjacencies
Not in use with any method-editor

例:本文エディタの適用

body-editor inbound beditor1 コマンドおよび body-editor outbound beditor1 コマンドを使用すると、beditor1 本文エディタがインバウンドおよびアウトバウンド方向に適用されます。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip trans-uac
Router(config-sbc-sbe-adj-sip)# no attach
Router(config-sbc-sbe-adj-sip)# body-editor inbound beditor1
Router(config-sbc-sbe-adj-sip)# body-editor outbound beditor1
Router(config-sbc-sbe-adj-sip)# attach

 

次に、 show sbc sbe sip body-editor コマンドを使用して、隣接に適用された後の beditor1 本文エディタの詳細を表示する例を示します。

Router# show sbc SBC2 sbe sip body-editor
body-editors for SBC service "SBC2"
Name In use
====================================
be1 No
beditor1 Yes
default No

 

Router# show sbc SBC2 sbe sip body-editor beditor1
body-editor "beditor1"
Description:
Bodies:
dtmf-relay/mixed
action reject
hunt-on-reject false
In use by adjacency:trans-uac (in, out)
Not in use with any method-editor

 

オプション エディタの例

次に、SBC2 SBC で oeditor1 オプション エディタを設定する例を示します。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip option-editor oeditor1
Router(config-sbc-sbe)# option opt

例:オプション エディタの適用

option-editor inbound oeditor1 コマンドおよび option-editor outbound oeditor1 コマンドを使用すると、oeditor1 オプション エディタがインバウンドおよびアウトバウンド方向に適用されます。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip trans-uac
Router(config-sbc-sbe-adj-sip)# no attach
Router(config-sbc-sbe-adj-sip)# option-editor ua inbound oeditor1
Router(config-sbc-sbe-adj-sip)# option-editor ua outbound oeditor1
Router(config-sbc-sbe-adj-sip)# attach

 

次に、 show sbc sbe sip option-editor コマンドを使用して、oeditor1 オプション エディタの詳細を表示する例を示します。

Router# show sbc SBC2 sbe sip option-editor oeditor1
option-editor "oeditor1"
Description:
Type: Whitelist
Options:
opt

In use by adjacency:ASR-15 (in-ua)

Router# show sbc SBC2 sbe sip option-editor
option editors for SBC service "SBC2"
Name In use
====================================
opt No
oeditor1 Yes

 

パラメータ エディタの例

次に、SBC2 SBC で peditor1 パラメータ エディタを設定する例を示します。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip parameter-editor peditor
Router(config-sbc-sbe-mep-prm)# parameter param
Router(config-sbc-sbe-mep-prm-ele)# action strip

 

例:パラメータ エディタの適用

次に、SBC2 SBC で peditor パラメータ エディタを he1 ヘッダー エディタに適用する例を示します。

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# sbc SBC2
Router(config-sbc)# sbe
Router(config-sbc-sbe)# sip header-editor he1
Router(config-sbc-sbe-mep-hdr)# header Subject
Router(config-sbc-sbe-mep-hdr-ele)# parameter-editor peditor
 

次に、 show sbc sbe sip header-editor コマンドを使用して、he1 ヘッダー エディタの詳細を表示する例を示します。

 
Router# show sbc SBC2 sbe sip header-editor he1
header-editor "he1"
Description:
Type: Whitelist
store-rules:
No store-rule entries found.
request-line:
No request-line entries found.
headers:
subject
entry 1
description:
action as-profile
parameter-profile peditor
 

次に、 show sbc sbe sip parameter-editor コマンドを使用して、peditor パラメータ エディタの詳細を表示する例を示します。

Router# show sbc SBC2 sbe sip parameter-editor peditor
parameter-editor "peditor"
Description:
Parameters:
param
action strip
In use by header-editor:he1, header:subject, entry:1

スクリプトベースのエディタの使用による SDP の編集


) ここでは、SIP メッセージ内で SDP コンテンツを変更するスクリプトベースのエディタについて説明します。「エディタの使用による SIP メッセージの編集」では、SBC で直接設定する本文、ヘッダー、メソッド、オプション、およびパラメータ エディタについて説明します。スクリプトベースのエディタと直接設定されたエディタの任意の組み合わせを適用して SIP メッセージを編集できます。


Release 3.4S 以降では、Lua プログラム言語で記述されたスクリプトを使用して SIP メッセージ内の SDP コンテンツを変更できます。通常、Lua スクリプトは 1 つまたは複数の関連する関数のグループで構成されています。SIP メッセージの編集機能のコンテキストでは、SIP メッセージの編集のためにこれらの関数を書き込みます。Lua プログラミング言語の詳細については次の Lua Web サイトを参照してください。 http://www.lua.org/

SBC では、一連の Lua スクリプトを設定できます。一連のスクリプトは、SIP メッセージに適用される一連の編集アクションについて記述されています。スクリプト セットを設定する際は、スクリプトがスクリプト セットにロードされる順序を指定します。

メッセージ編集関数をエディタとしてスクリプトに登録できます。これらのエディタは、実行時に SBC によって呼び出され、SIP メッセージに適用されます。これらのエディタは、SBC に設定された本文、ヘッダー、メソッド、オプション、およびパラメータ エディタとともに使用できます。

スクリプト セットの設定後、スクリプト セット上でアイソレーション テストおよびライブ テストを実行し、正しく動作することを確認できます。

SBC では、一度に 1 つのスクリプト セットだけをアクティブにできます。ただし、複数のスクリプト セットの定義や、後で使用するための準備は可能です。スクリプト セットは、要件に従ってアクティブ状態から非アクティブ状態に(またはその逆に)切り替えることができます。

ここでは、Lua スクリプトの作成と、スクリプトベースの編集の設定について説明します。

「スクリプトベースの編集のための Lua スクリプトの作成」

「SBC 上でのスクリプトベースのエディタの設定」

「スクリプトベースのエディタの作成および設定:例」

スクリプトベースの編集のための Lua スクリプトの作成

ここでは、スクリプトベースの編集のための Lua スクリプトの作成中に使用できる情報について説明します。

「組み込み Lua クラス」

「組み込みアプリケーション変数」

「組み込みロガー関数」

「組み込み登録関数」

「ユーザ定義によるアプリケーション変数」

組み込み Lua クラス

Lua スクリプトは、SIP メッセージの SDP 本文内の各ノードを参照する XPath-compatible メソッドを使用します。次に、XML 形式のサンプル SDP 本文の例を示します。記述された Lua コード内では、各 XML タグが、そのパスによって一意に識別されます。構文ベースの関数(「MeBlock クラス」で説明されている MeBlock:select_by_syntax 関数など)は、その関数に渡されるパスに基づいたデータを受け入れて処理できます。パスはスラッシュで区切られた文字列です。たとえば、sdp/media[1]/line[3] パスは、1 番めの media タグの 3 行めを識別します。したがって、sdp/media[1]/line[3] パスは b=AS:64 を示します。

<sdp>
<line>v=0</line>
<line>o=user1 12345 12346 IN IP4 192.0.2.27</line>
<line>s=-</line>
<line>c=IN IP4 0.0.0.0</line>
<line>t=0 0</line>
<line>r=604800 3600 0 90000</line>
<line>r=7d 1h 0 25h</line>
<line>a=foo</line>
<media>
<line>m=audio 32768 RTP/AVP 0 101</line>
<line>c=IN IP4 0.0.0.0</line>
<line>b=AS:64</line>
<line>a=rtpmap:0 PCMU/8000</line>
<line>a=rtpmap:101 telephone-event/8000</line>
<line>a=ptime:20</line>
</media>
<media>
<line>m=video 32770 RTP/AVP 112</line>
<line>a=rtpmap:112 mpeg4-generic/48000</line>
</media>
</sdp>

SIP メッセージの SDP 本文を変更するスクリプトを記述している場合は、次の組み込み Lua クラスを使用できます。

MeMsg クラス

MeMsg クラスのオブジェクトには、すべての SIP メッセージを含む、メッセージの最上位の構造が含まれます。 表 6 では、このクラスの関数について説明します。

表 6 MeMsg クラスの関数

機能
説明

:get_sdp() or .sdp

SDP 本文を保持する MeBlock オブジェクトを返します。

:get_current_edit_point

現在の編集ポイント(before-receive または after-send)を返します。

:reject(error_code)

SIP 要求を失敗するか、応答を廃棄します。

:get_app_variables() or .app_variable

アプリケーション変数のテーブルを返します。

MeBlock クラス

MeBlock クラスのオブジェクトは、SDP ツリー内のノードを表します。ブロックはアクセス文字列に使用される SDP の連続サブセットです。 表 7 では、MeBlock クラスの関数について説明します。

表 7 MeBlock クラスの関数

機能
説明

.new(syntax)

構文を使用してブロックを構築します。

:get_type() or .type

MeBlock オブジェクトの構文タイプ(line、media、または sdp)を返します。

:get_parent() or .parent

この MeBlock オブジェクトの親(ルートの別の MeBlock オブジェクトまたは NIL)を返します。

:get_children() or .children

ブロックの子要素を含む MeSelection オブジェクトを返します。

:select_by_prefix(text_prefix)

指定されたプレフィクスを持つ MeBlock オブジェクトのすべての行を含む MeSelection オブジェクトを返します。

:select_by_syntax(syntax_path)

指定された構文パスに適合するサブブロックを含む MeSelection オブジェクトを返します。ここでは、構文はブロック タイプ(line、media など)を示します。

:insert_child_last(new_block)

すべての既存の子オブジェクトの後の、この MeBlock の下に MeBlock オブジェクトを挿入します。

:insert_child_before(new_block, sibling)

指定された既存の子オブジェクトの前の、この MeBlock の下に MeBlock オブジェクトを挿入します。

:insert_child_after(new_block, sibling)

指定された既存の子オブジェクトの後の、この MeBlock の下に MeBlock オブジェクトを挿入します。

:delete()

この MeBlock オブジェクトを削除します。

:delete_children()

この MeBlock オブジェクトのすべてのサブブロックを削除し、オブジェクトを空白のままにします。

MeSelection クラス

MeSelection クラスのオブジェクトは、MeBlock オブジェクトのリストです。MeSelection クラスのオブジェクトは、一連の行の処理に使用されます。また、親ブロック内の子ブロックの処理に使用できます。MeSelection オブジェクトは、メッセージ内に表示される順序で MeBlock オブジェクトを配列します。 表 8 では、MeSelection クラスの関数について説明します。

表 8 MeSelection クラスの関数

機能
説明

:empty()

この選択が空白の場合、 TRUE を返します。

:iter()

MeSelection オブジェクト内のすべてのオブジェクト上で指定されたアクションを実行する一般的な For イテレータを返します。各オブジェクトは MeBlock クラスの一部またはそのサブクラスです。

[] operator

MeSelection オブジェクト内で n 番めのブロックを取得するには、この 1 ベースのアレイ オペレータを使用します。ネガティブ アレイ インデックスもサポートされます。

MeTextBlock クラス

MeTextBlock クラスのオブジェクトは、テキストの割り当て、作成、または操作に使用されます。 表 9 では、このクラスの関数について説明します。

表 9 MeTextBlock クラスの関数

機能
説明

.new(type,text)

指定されたテキストを使用して特定のタイプ(line、media など)の新しいブロックを構築します。

:get_text() or .text

MeTextBlock オブジェクトのテキストを返します。

:set_text()

MeTextBlock オブジェクトのテキストを設定します。この関数が呼び出された場合、既存のテキストが置き換えられることに注意してください。

:find(args)

この MeTextBlock オブジェクトのテキスト上で、string.find(args) を呼び出します。

:match(args)

この MeTextBlock オブジェクトのテキスト上で、string.match(args) を呼び出します。

:replace(args)

この MeTextBlock オブジェクトのテキスト上で、string.gsub(args) を呼び出します。

MeSdp クラス

MeSdp クラスのオブジェクトは、SDP 本文の特定の部分を取得するために使用されます。 表 10 では、このクラスの関数について説明します。

表 10 MeSdp クラスの関数

機能
説明

:get_session_lines() or .session_lines

SDP 本文セッション行を含む MeSelection オブジェクトを返します。

:get_media_blocks() or .media_blocks

メディア ブロックを含む MeSelection オブジェクトを返します。

MeSdpMedia クラス

MeSdpMedia クラスのオブジェクトは、SDP メディア ブロックを作成または取得するために使用されます。 表 11 では、このクラスの関数について説明します。

表 11 MeSdpMedia クラスの関数

機能
説明

.new(text)

指定されたテキストを使用してメディア構文(またはブロック タイプ)のブロックを構築します。

:get_media_lines() or .media_lines

MeSdpMedia オブジェクトのメディア行を含む MeSelection オブジェクトを返します。

MeSdpLine クラス

MeSDPLine クラスのオブジェクトは、SDP メッセージ内の行を作成するために使用されます。 表 12 では、このクラスの関数について説明します。

表 12 MeSdpLine クラスの関数

機能
説明

.new(text)

指定されたテキストを使用する行構文(またはブロック タイプ)のブロックを構築します。

組み込みアプリケーション変数

ここでは、Lua スクリプトの書き込み時に使用できる組み込みアプリケーション変数について説明します。

組み込みアプリケーション変数(隣接およびトランスポート値の設定データなど)は、SBC によって初期化され、Lua スクリプトで使用できます。これらは読み取り専用で、文字列 msg. または adj. で開始します。これらのプレフィクスでは変数を作成できないため、予約されます。

表 13では、スクリプト内でアクセスできる組み込みアプリケーション変数について説明します。

表 13 組み込みアプリケーション変数

変数
説明

adj.account

隣接アカウント。

adj.dest_addr

隣接シグナリング ピア。

adj.dest_port

隣接シグナリング ピア ポート。

adj.group

隣接グループ。

adj.home_net_id

隣接ホーム ネットワーク ID。

adj.ip_realm

隣接レルム。

adj.lcl_addr

隣接シグナリング アドレス。

adj.lcl_port

隣接シグナリング ポート。

adj.lcl_id

隣接ローカル ID。

adj.listen_trans

隣接リッスン トランスポート。

adj.mandatory_trans

隣接必須トランスポート。

adj.med_loc

隣接メディア位置。

adj.name

隣接名。

adj.preferred_trans

隣接優先トランスポート。

adj.trust_level

隣接信頼レベル。

adj.target_reg_addr

隣接登録ターゲット アドレス。

adj.targrt_reg_port

隣接登録ターゲット ポート。

adj.visited_net_id

隣接訪問ネットワーク ID。

adj.vpn_id

隣接 VPN ID。

msg.status_code

応答のステータス コード。SIP 応答メッセージのステータス コードの文字列を返します。SIP 要求メッセージの空白の文字列を返します。

msg.header(" name ").value

メッセージ内にある name という名前の最初のヘッダーの値。nonvital ヘッダーだけが、この関数で使用できます。

msg.header(" name ").uri.tel_uri.number

name という名前の最初のヘッダー内にある TEL URI のディレクトリ番号。SIP URI で使用する場合、空白の文字列が返されます。To ヘッダーと From ヘッダーだけが、この関数で使用できます。

msg.header(" name ").uri.sip_uri.user

name という名前の最初のヘッダー内にある SIP URI または SIPS URI のユーザ名。TEL URI で使用する場合、空白の文字列が返されます。To ヘッダーと From ヘッダーだけが、この関数で使用できます。

msg.lcl_ip_addr

メッセージを受信したアドレス。

msg.lcl_port

メッセージを受信したポート。

msg.rmt_ip_addr

前のホップ IP アドレス。

msg.rmt_port

前のホップ ポート。

組み込みロガー関数

ログを作成するために、次のロガー関数を呼び出すことができます。

デバッグ レベル 30 で MeLogger.debug(text) ログ

詳細レベル 50 で MeLogger.detail(text) ログ

情報レベル 60 で MeLogger.info(text) ログ

コンフィグ レベル 63 で MeLogger.config(text) ログ

警告レベル 70 で MeLogger.warn(text) ログ

エラー レベル 80 で MeLogger.error(text) ログ

組み込み登録関数

SBC に関数をエディタとして登録するには、次の関数を使用します。

MeEditor.register(edit_point,editor_name,edit_func)

スクリプトにこの行を含めることにより、関数をエディタとして SBC に登録し、関数にエディタとしての名前を割り当て、SIP メッセージ上で関数がエディタとして適用されるポイントを指定できます。

次に、MeEditor.register 関数の引数を示します。

edit_point :次の値のいずれかを受け入れます。

AFTER_SEND :発信メッセージが隣接によって処理された後、および隣接から転送される直前に編集されるように指定します。

BEFORE_RECEIVE :着信メッセージが隣接で受信された直後、および隣接が処理を開始する前に編集されるように指定します。

editor_name :エディタに割り当てる名前を指定します。


) スクリプト セット内のエディタに割り当てる名前は一意である必要があります。ただし、異なるスクリプト セット内のエディタには同じ名前を付けることができます。


edit_func は、スクリプト内でエディタとして指定する関数の名前です。

次に、 hello_world Lua 関数をエディタとして登録する例を示します。

MeEditor.register(MeEditor.BEFORE_RECEIVE,
"hello_world_editor",
hello_world)

ユーザ定義によるアプリケーション変数

ユーザ定義によるアプリケーション変数は、Lua 編集関数間や、スクリプト ベースのエディタと SBC 上で直接設定された本文、ヘッダー、メソッド、オプション、およびパラメータ エディタとの間でユーザ情報を渡すために使用されます。

SBC 上でのスクリプトベースのエディタの設定

このタスクでは、SBC 上でスクリプトベースのエディタを設定する例を示します。


) このタスクを実行する前に、スクリプトをオフラインで作成し、SBC からアクセス可能な場所にスクリプト ファイルを置きます。Trivial File Transfer Protocol(TFTP)、ファイル転送プロトコル(FTP)、リモート コピー プロトコル(RCP)、セキュア コピー プロトコル(SCP)、または他のサポートされているアプリケーションを使用して、スクリプト ファイルを SBC にコピーします。


手順の概要

1. configure terminal

2. sbc sbc-name

3. sbe

4. script-set set-number lua

5. script script-name

6. load-order order-index-number

7. type { full | wrapped edit-point { before-receive | after-send | both }}

8. filename { bootflash: | flash: | fpd: | nvram: | obfl: | any-other-device }

9. exit

10. complete

11. end

12. test sbc message sip filename device-type:file-name script-set script-set-number { after-send | before-receive } editors { editor1-name [ editor2-name ] [ editor3-name ] ...[ editor8-name ]}

13. configure terminal

14. sbc sbc-name

15. sbe

16. adjacency sip adjacency-name

17. test script-set set-number

18. exit

19. active-script-set script-set-number

20. adjacency sip adjacency-name

21. editor-list { after-send | before-receive }

22. editor order-number editor-name [ condition [ body contains sdp ]]

23. end

24. show sbc sbc-name sbe script-set set-number [ script script-name [ line-numbers ] | program [ line-numbers ] | statistics ]

25. clear sbc sbc-name sbe script-set-stats set-number [ editors-stats editor-name ]

手順の詳細

コマンドまたはアクション
目的

ステップ 1

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービス モードを開始します。

sbc-name :SBC の名前。

ステップ 3

sbe

 

Router(config-sbc)# sbe

SBE コンフィギュレーション モードを開始します。

ステップ 4

script-set set-number lua

 

Router(config-sbc-sbe)# script-set 20 lua

Lua プログラム言語を使用して記述されたスクリプトで構成されるスクリプト セットを設定します。

set-number :スクリプト セットの番号。範囲は 1 ~ 2147483647 です。

スクリプトセット コンフィギュレーション モードを開始します。

ステップ 5

script script-name

 

Router(config-sbc-sbe-script-set)# script SBCScript

スクリプト セット内のスクリプトを設定します。スクリプト セット内で複数のスクリプトが設定できることに注意してください。

script-name :スクリプト名。

スクリプト コンフィギュレーション モードを開始します。

ステップ 6

load-order order-index-number

 

Router(config-sbc-sbe-scrpset-script)# load-order 2

スクリプトのロード順序を指定します。スクリプトは、順序インデックス番号の昇順でロードされます。たとえば、順序インデックス番号 4 を持つスクリプトは、順序インデックス番号 6 を持つスクリプトの前にロードされます。

order-index-number :順序インデックス番号をロードします。範囲は 1 ~ 4294967295 です。デフォルトの順序インデックス番号は 100 です。後から追加されるスクリプトで load-order コマンドが実行されていない場合、デフォルトの順序インデックス番号は 100 の倍数で設定されます(200、300、400 など)。

ステップ 7

type { full | wrapped edit-point { after-send | before-receive | both }}

 

Router(config-sbc-sbe-scrpset-script)# type full

スクリプト タイプを指定します。

full :自動生成なしのフル スクリプトを指定します。

wrapped edit-point :ファイルから自動生成されるスクリプトと、自動登録で使用される編集ポイントを指定します。次のいずれかの編集ポイントを指定できます。

after-send :発信メッセージが隣接によって処理された後、および隣接から転送される直前に編集されるように指定します。

before-receive :着信メッセージが隣接で受信された直後、および隣接が処理を開始する前に編集されるように指定します。

both :メッセージの編集を、SBC によって処理される前と後の両方ともイネーブルにします。

ステップ 8

filename { device-type:file-path-and-name }

 

Router(config-sbc-sbe-scrpset-script)# filename bootflash:lua1.lua

スクリプト ファイルのパスと名前を指定します。

device-type:ルータにインストールされている次のいずれか、または他のストレージ デバイスです。

bootflash:

flash:

fpd:

nvram:

obfl:

ファイル システムのデバイスのリストが動的に作成され、表示されます。ハード ディスクなどのように、プラットフォームで使用できるその他のデバイスも、このコマンドで使用できます。

file-path-and-name :指定されたストレージ デバイス上のスクリプト ファイルのフル パスおよび名前。

ステップ 9

exit

 

Router(config-sbc-sbe-scrpset-script)# exit

スクリプト コンフィギュレーション モードを終了し、スクリプトセット コンフィギュレーション モードを開始します。

ステップ 10

complete

 

Router(config-sbc-sbe-script-set)# complete

スクリプトを検証し、ロードします。

検証プロセス中に構文エラーが発生した場合は、エラー メッセージが表示されます。スクリプトが構文上正しい場合は、メモリにロードされ、エディタが Lua ランタイム環境に登録されます。必要に応じて、特権 EXEC モードに切り替え、 show sbc sbe editors コマンドを実行してエディタが正しく登録されていることを確認できます。

ステップ 11

end

 

Router(config-sbc-sbe-script-set)# end

スクリプトセット コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。

ステップ 12

test sbc message sip filename device-type:file-name script-set script-set-number {after-send | before-receive} editors { editor1-name [ editor2-name ] [ editor3-name ] . . . [ editor8-name ]}

 

Router# test sbc message sip filename bootflash:inv script-set 123 after-send editors sdp_add_after my-header-editor

スクリプトベースのエディタのアイソレーション テストを実行します。

(注) アイソレーション テストの実行は任意ですが、この手順を実行することを推奨します。手順の詳細については、「スクリプトベースのエディタのアイソレーション テスト:例」を参照してください。

device-type :エディタをテストする SIP メッセージを含むファイルを保存する、ストレージ デバイスのタイプ。コマンドライン インターフェイス(CLI)では、 test sbc message sip filename script-set editors コマンドの後に ? マークを入力すると、ルータにインストールされているすべてのストレージ デバイスのリストが表示されます。ルータにインストールされているデバイスは、次のいずれか、または他のストレージ デバイスです。

bootflash:

flash:

fpd:

nvram:

obfl:

ファイル システムのデバイスのリストが動的に作成され、表示されます。ハード ディスクなどのように、プラットフォームで使用できるその他のデバイスも、このコマンドで使用できます。

file-name :エディタをテストする SIP メッセージが含まれているファイルの名前。

script-set-number :テストするエディタが含まれるスクリプト セットの数。

after-send :発信メッセージが隣接によって処理された後、および隣接から転送される直前に編集されるように指定します。

before-receive :着信メッセージが隣接で受信された直後、および隣接が処理を開始する前に編集されるように指定します。

editor1-name ...editor8-name :エディタの名前。最大 8 のエディタを指定できます。少なくとも 1 つのエディタを指定する必要があります。

ステップ 13

configure terminal

 

Router# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 14

sbc sbc-name

 

Router(config)# sbc mysbc

SBC サービス モードを開始します。

sbc-name :SBC の名前。

ステップ 15

sbe

 

Router(config-sbc)# sbe

SBC の SBE コンフィギュレーション モードを開始します。

ステップ 16

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip adj1

SBE SIP 隣接コンフィギュレーション モードを開始します。

adjacency-name :隣接名。

ステップ 17

test script-set script-set-number

 

Router(config-sbc-sbe-adj-sip)# test script-set 123

スクリプト ベースのエディタのライブ テストを実行します。

(注) ライブ テストの実行は任意ですが、この手順を実行することを推奨します。詳細については、「スクリプトベースのエディタのライブ テスト:例」を参照してください。

script-set-number :スクリプト セットの番号。

ステップ 18

exit

 

Router(config-sbc-sbe-adj-sip)# exit

SIP 隣接コンフィギュレーション モードを終了します。

ステップ 19

active-script-set script-set-number

 

Router(config-sbc-sbe)# active-script-set 20

スクリプト セットをアクティブにします。

script-set-number :スクリプト セットの番号。

コマンドを実行して、非アクティブ状態のスクリプト セットをアクティブ状態に切り替えることができます。

ステップ 20

adjacency sip adjacency-name

 

Router(config-sbc-sbe)# adjacency sip adj1

SBE SIP 隣接コンフィギュレーション モードを開始します。

adjacency-name :隣接名。

ステップ 21

editor-list { after-send | before-receive }

 

Router(config-sbc-sbe-adj-sip)# editor-list after-send

エディタのリストを設定します。

after-send :発信メッセージが隣接によって処理された後、および隣接から転送される直前に編集されるように指定します。

before-receive :着信メッセージが隣接で受信された直後、および隣接が処理を開始する前に編集されるように指定します。

SIP エディタ コンフィギュレーション モードを開始します。

ステップ 22

editor order-number editor-name [ condition [ body contains sdp ]]

 

Router(config-sbc-sbe-adj-sip-ed)# editor 2 sdp_add_after condition body contains sdp

エディタ リストのエディタを設定します。シーケンスに適用する各エディタに対し、このコマンドを実行してエディタ リスト内のエディタの順序を指定します。

(注) エディタ リスト内では、スクリプト ベースのエディタと、本文、ヘッダー、メソッド、オプション、およびパラメータ エディタとの任意の組み合わせを追加できます。

order-number :エディタが適用される順序です。範囲は 1 ~ 2147483647 です。

editor-name :隣接で処理されたメッセージに適用するエディタの名前。

condition :適用されるエディタに 1 つまたは複数の条件を指定します。

body contains sdp :メッセージ本文が SDP ベースのコンテンツとなるように指定します。エディタはこの条件が満たされた場合にだけ適用されます。スクリプト ベースのエディタのコマンドには body contains sdp が含まれます。

ステップ 23

end

 

Router(config-sbc-sbe-adj-sip)# end

SIP エディタ コンフィギュレーション モードを終了し、特権 EXEC モードを開始します。

ステップ 24

show sbc sbc-name sbe script-set set-number [ script script-name [ line-numbers ] | program [ line-numbers ] | statistics ]

 

Router# show sbc mysbc sbe script-set 20 script SBCscript line-numbers

設定されたすべてのスクリプト セットに関する詳細の概要が表示されるか、または指定されたスクリプト セットの詳細が表示されます。

sbc-name :SBC の名前。

set-number :スクリプト セットの番号。範囲は 1 ~ 2147483647 です。

program :すべてのスクリプトが単一のプログラムとして表示されるように指定します。

line-numbers :スクリプトを表示する際に行番号が含まれるように指定します。

script :スクリプト セットから単一のスクリプトの詳細を表示するように指定します。

script-name :表示されるスクリプトの名前。

statistics :スクリプト セットの統計情報を表示するように指定します。

ステップ 25

clear sbc sbc-name sbe script-set-stats script-set-number [ editors-stats editor-name ]

 

Router# clear sbc mysbc sbe script-set-stats 1

以前に保存されたスクリプト セットに関連する統計情報をクリアします。

sbc-name :SBC の名前。

script-set-number :スクリプト セットの番号。範囲は 1 ~ 2147483647 です。

editor-stats :特定のエディタのスクリプト セットの統計情報をクリアするように指定します。

editor-name :エディタの名前。

次に、 show sbc sbe script-set コマンドを使用してスクリプト セットの概要を表示する例を示します。

Router# show sbc mySbc sbe script-set 1
name language complete active status
----------------------------------------------------
script-set 1 lua yes no ok
script order filename
------------------------------------------------------
edit_invite_1 1 bootflash:lua_1.lua
edit_invite_2 2 bootflash:lua_2.lua
edit_invite_3 3 bootflash:lua_3.lua
 

スクリプトベースのエディタの作成および設定:例

ここでは、スクリプトベースのエディタのサンプルを作成および設定する方法について説明します。

「Lua スクリプトの作成:例」

「スクリプトベースのエディタの設定:例」

「スクリプトベースのエディタのアイソレーション テスト:例」

「スクリプトベースのエディタのライブ テスト:例」

Lua スクリプトの作成:例

ここでは、サンプル Lua スクリプトのリスティングについて説明します。

「SDP 本文へのテキストの追加:例」

「SDP 本文からの行の削除:例」

「SDP 本文内のテキストの置き換え:例」

SDP 本文へのテキストの追加:例

次に、Lua スクリプトを使用して SDP 本文の最後に sdp_add_after added this line を追加する例を示します。

function append_text(msg)

msg.sdp:insert_child_last(MeSdpLine.new("sdp_add_after added this line"))

end

 

次に、上記の例の append_text Lua 関数をエディタとして登録する行の例を示します。この例では、エディタは sdp_add_after という名前です。

MeEditor.register(MeEditor.BEFORE_RECEIVE,"sdp_add_after",append_text)


) エディタは、エディタ コードのあるスクリプトを含むスクリプト セットが SBC 上に設定された場合に SBC に登録されます。


このスクリプトの完全なコード リストは次のとおりです。

function append_text(msg)

msg.sdp:insert_child_last(MeSdpLine.new("sdp_add_after added this line"))

end

MeEditor.register(MeEditor.BEFORE_RECEIVE,"sdp_add_after",append_text)

 

.lua ファイル内にこれらの行を保存し、SBC にファイルをコピーしてから、「SBC 上でのスクリプトベースのエディタの設定」で説明されている手順を実行してエディタを設定およびテストできます。

SDP 本文からの行の削除:例

次のスクリプトは、SIP メッセージの SDP 本文から a=deleteme で始まるすべての行を削除します。

function delete_lines(msg)

for line in msg.sdp:select_by_prefix("a=deleteme"):iter() do

line:delete()

end

end

MeEditor.register(MeEditor.BEFORE_RECEIVE,"Delete_a_Lines",delete_lines)

 

SDP 本文内のテキストの置き換え:例

次のスクリプトは、SDP 本文内の rtpmap を srtp_remap に置き換えます。

function replace_text(msg)

msg.sdp:replace("rtpmap","srtp_remap")

end

MeEditor.register(MeEditor.AFTER_SEND,"Switch_Protocol",replace_text)

 

スクリプトベースのエディタの設定:例

次に、上記の例で作成されたスクリプト セットを設定する例を示します。

Router# configure terminal
Router(config)# sbc mysbc
Router(config-sbc)# sbe
Router(config-sbc-sbe)# script-set 20 lua
Router(config-sbc-sbe-script-set)# script SBCScript
Router(config-sbc-sbe-scrpset-script)# load-order 2
Router(config-sbc-sbe-scrpset-script)# type full
Router(config-sbc-sbe-scrpset-script)# filename bootflash:lua1.lua
Router(config-sbc-sbe-scrpset-script)# exit
Router(config-sbc-sbe-script-set)# complete
Router(config-sbc-sbe-script-set)# end
Router# test sbc message sip filename bootflash:inv script-set 123 after-send editors sdp_add_after my-header-editor
Router# configure terminal
Router(config)# sbc mysbc
Router(config-sbc)# sbe
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-adj-sip)# test script-set 123
Router(config-sbc-sbe-adj-sip)# exit
Router(config-sbc-sbe)# active-script-set 20
Router(config-sbc-sbe)# adjacency sip adj1
Router(config-sbc-sbe-adj-sip)# editor-list after-send
Router(config-sbc-sbe-adj-sip-ed)# editor 2 sdp_add_after condition body contains sdp
Router(config-sbc-sbe-adj-sip)# end
Router# show sbc mysbc sbe script-set 20 script SBCscript line-numbers

スクリプトベースのエディタのアイソレーション テスト:例

スクリプトベースのエディタのアイソレーション テスト中に、SDP 編集設定が単独でテストされます。他の SBC 処理の形式は実行されません。アイソレーション テストでは、編集設定とその他の設定の間の相互作用(番号検証設定など)は表示されません。

test sbc message コマンドは、SIP メッセージでのアイソレーション テストの実行に使用されます。このコマンドは、有効なプロトコル メッセージを含むファイルをロードして、ユーザが指定したエディタのリストをメッセージに適用します。編集とルーティング決定の間の相互作用の詳細は表示されません。最大 8 のエディタをコマンド内に指定できます。エディタが指定される順序は、適用される順序と同じになります。コマンド内では特定のスクリプト セットの一部ではないプロファイル エディタも指定できることに注意してください。

次の例では、script-set 123 で sdp_add_after が定義され、 sip header-editor コマンドを使用して my_header_editor が設定される例を示します。sdp_add_after エディタは、上記の項の説明の中で例として挙げられています。太字で強調表示されている行は、エディタによって実行されるアクションを示します。

Router# test sbc message sip filename bootflash:inv script-set 123 after-send editors sdp_add_after my-header-editor
 
INVITE sip:john@example.com:55060 SIP/2.0
Via: SIP/2.0/UDP 192.0.2.195;branch=z9hG4bKff9b46fb055c0521cc24024da96cd290
Via: SIP/2.0/UDP 192.0.2.195:55061;branch=z9hG4bK291d90e31a47b225bd0ddff4353e9c
c0
From: <sip:192.0.2.195:55061;user=phone>;tag=GR52RWG346-34
To: "john@example.com" <sip:john@example.com:55060>
Call-ID: 12013223@192.0.2.195
CSeq: 1 INVITE
Contact: <sip:192.0.2.195:5060>
Content-Type: application/sdp
Content-Length: 229
 
v=0
o=Clarent 120386 120387 IN IP4 192.0.2.196
s=Clarent C5CM
c=IN IP4 192.0.2.196
t=0 0
m=audio 40376 RTP/AVP 8 18 4 0
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:4 G723/8000
a=rtpmap:0 PCMU/8000
a=SendRecv
 
%Test successful, edited message:
INVITE sip:john@example.com:55060 SIP/2.0
Via: SIP/2.0/UDP 192.0.2.195;branch=z9hG4bKff9b46fb055c0521cc24024da96cd290
Via: SIP/2.0/UDP 192.0.2.195:55061;branch=z9hG4bK291d90e31a47b225bd0ddff4353e9c
c0
From: <sip:192.0.2.195:55061;user=phone>;tag=GR52RWG346-34
To: "john@example.com" <sip:john@example.com:55060>
Call-ID: 12013223@192.0.2.195
CSeq: 1 INVITE
Contact: <sip:192.0.2.195:5060>
Content-Type: application/sdp
Content-Length: 258
name: cisco
 
v=0
o=Clarent 120386 120387 IN IP4 192.0.2.196
s=Clarent C5CM
c=IN IP4 192.0.2.196
t=0 0
m=audio 40376 RTP/AVP 8 18 4 0
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:4 G723/8000
a=rtpmap:0 PCMU/8000
a=SendRecv
sdp_add_after added this line
 

スクリプトベースのエディタのライブ テスト:例

スクリプトベースのエディタのライブ テスト中は、隣接はテスト隣接として設定されます。その隣接でのメッセージのインバウンド編集およびアウトバウンド編集は、現在アクティブなスクリプト セットの代わりに test script-set コマンドで指定されたスクリプト セットを使用して実行されます。次は、サンプル コマンドです。

Router(config-sbc-sbe-adj-sip)# test script-set 123

) アクティブなスクリプト セットは active-script-set コマンドによって指定されます。test script-set コマンドを実行するスクリプト セット上で、active-script-set コマンドが実行されていないことを確認する必要があります。


プロファイル エディタはスクリプト セットに関連付けられていないため、 test script-set コマンドをプロファイル エディタの確認に使用することはできません。テストにプロファイル エディタを含めるには、最初にテスト隣接で editor-list コマンドを使用してプロファイル エディタを設定します。