概要
この資料に少数の基本的な例と Cisco Call Manager (CCM)でセッション開始プロトコル(SIP) 正規化スクリプトを使用する方法を記述されています。
前提条件
要件
次の項目に関する知識が推奨されます。
- Cisco Unified Communications Manager (CUCM)バージョン 8.x および それ 以降
- SIP プロトコル
- スクリプトを書くナレッジ
使用するコンポーネント
この資料に記載されている情報は CCM バージョン 11.5 に基づいています。
本書の情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。 対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。
設定
CUCM のトランクのスクリプトを加えて下さい
SIP トランクの場合には、スクリプトは SIP トランクで直接加えられる必要があります。 トランクの代りの SIP プロファイルのスクリプトの使用ははたらきません。
従う必要があるステップにここにあります:
- 設定 する デバイス > デバイスに > SIP 正規化スクリプト設定ナビゲートし、イメージに示すように新しいスクリプトを追加して下さい。

2. デバイス > トランクにナビゲートして下さい。
それの設定 ページのスクリプトを加えたいと思うトランクを選択します先に作成されるスクリプトを選択すれば。 有効トレース オプションを選択すればイメージに示すようにスクリプトによってあった Signal Distribution Layer (SDL)ログの変更を印刷します。 先行している構成を変更が実施されることができるように設定を保存して下さい、トランクのリセットに適用して下さい。

SIP Phone のスクリプトを加えて下さい
SIP 電話の場合には、電話の SIP プロファイルのスクリプトを使用しなければなりません。
従う必要があるステップにここにあります。
- 設定 する デバイス > デバイスに > SIP 正規化スクリプト ナビゲートし、新しいスクリプトを追加して下さい。
- 設定 する デバイス > デバイスに > SIP プロファイル ナビゲートして下さい。 スクリプトを加えたいと思うか、または標準 SIP プロファイルのコピーによって新しいものを作成する SIP プロファイルを選択して下さい。
- SIP プロファイルの設定 ページで、Apply Config に先行しているスクリプトを選択し、プロファイルをリセットして下さい。
- Device > Phone にナビゲートして下さい。 スクリプトを加えたいと思い、ものとそれの SIP プロファイルを作成し、それを保存することに先行している 1 を適用し、構成を変更を奪取 するためにリセットする電話を変更する電話を選択して下さい。
一般的なシナリオのためのスクリプトを開発して下さい
方法の詳細な手順における主要な出典は SIP 正規化スクリプトを開発するここにあります: SIP 透過性および正規化のための開発者ガイド。
このガイドは別の機能が含まれています SIP メッセージの操作をおよび Session Description Protocol (SDP)内容および他の高度 API して利用可能である。
ここに少数基本的な例スクリプトはです:
修正する ヘッダ
発信 SIP INVITE/REINVITE メッセージのヘッダからのからの匿名を取り替えます。
M = {}
function M.outbound_INVITE(msg)
-- Replacing the Anonymous from From Header
local from = msg:getHeader("From")
local newfrom = string.gsub(from, "anonymous" ,"1111")
msg:modifyHeader("From", newfrom)
end
return M
コード |
説明 |
M= {} |
メッセージの内容の初期化。 M は SIP メッセージのすべての内容をここに得ます |
機能 M.outbound_INVITE(msg) |
Lua 機能送信方向 INVITE/REINVITE メッセージの M (SIP メッセージ)に加えられる。 方向は CUCM の点ではそれに着信または発信であるかどうか、常に決定されます。 メッセージ型は異なる型誘います、183、200 のようなである場合もあります。 詳細については、SIP 正規化のための開発者ガイドの概観のセクションを参照して下さい。 |
ローカルからの = メッセージ: getHeader (「から」) |
ローカル変数形式でメッセージからのの内容を保存します |
getHeader |
CCM で正規化のために利用可能な機能の 1 つ変数のヘッダの内容を得るため |
string.gsub |
Lua 機能 ストリングからの特定の内容を取り替えるため |
modifyHeader |
再度、CCM で利用可能な機能 ヘッダの内容を修正するため |
ヘッダを削除して下さい
ここでは、着信 SIP INVITE/REINVITE メッセージから Cisco ガイド ヘッダを削除します:
M = {}
function M.inbound_INVITE(msg)
msg:removeHeader("Cisco-Guid")
end
return M
ヘッダを付加して下さい
ここでは、割り当てヘッダの内容の INFO を追加します。
これはカンマの後で割り当てのオリジナル内容に追加されます。
M = {}
function M.outbound_INVITE(msg)
msg:addHeader("Allow", "INFO")
end
return M
SDP 内容を処理して下さい
利用可能な API が SIP メッセージからの SDP 内容を修正するためにあります。 SDP を修正するために、それは SIP メッセージ オブジェクトによって提供される getSdp() API が付いている Lua SIP メッセージ オブジェクトからの SDP 内容本文を得る必要があります。 SDP を処理するために Cisco API が含まれているスクリプトはそれからストリング ライブラリを使用できます。 修正で、SDP は SIP メッセージ オブジェクトによって提供される setSdp(sdp) API が付いている SIP メッセージ オブジェクトに戻って書かれています。 これらの API に関するさらに詳しい情報については SIP メッセージ API を参照して下さい。
local sdp = msg:getSdp()
-- modification of the SDP happens at this point
-- Update the SDP associated with the SIP message
msg: etSdp(sdp)
注: コードはドットなしに G722 であるために G.722 コーデックのための a= 行を変更します。
M = {}
function M.inbound_INVITE(msg)
local sdp = msg:getSdp()
if sdp
then
local g722_line = sdp:getLine("a=","G.722")
if g722_line
then
--Replace G.722 with G722. The dot is special and must be escaped using % when using gsub.
g722_line = g722_line:gsub("G%.722", "G722")
sdp = sdp:modifyLine("a=", "G.722", g722_line)
msg:setSdp(sdp)
end
end
end
return M
確認
このセクションでは、設定が正常に機能していることを確認します。
スクリプトははたらくまたはない SDL から記録 したらかどうか確認するためにスクリプトを加えるときトレース オプションを有効に して下さい。
トラブルシューティング
このセクションでは、設定のトラブルシューティングに役立つ情報を提供します。
スクリプトが予想通りはたらかない場合少数のチェックはここにあります:
- スクリプトが(探される前に正規化/後 SDL ログの正規化)多分単独で実行されない場合、デバイスかシンタックスエラーで正しく加えられませんでした。
- 開発者ガイドからのおよび Lua のための CUCM 正規化 機能を、それを確認するために使用します利用可能なコンパイラーを確認して下さい。
- スクリプトが実行されればが、変更を行ないませんでしたり、方向、メッセージ型およびスクリプトで従うロジックがあるように確認します。
関連情報