TCL IVR API Version 2.0 プログラミング ガイド
TCL IVR API のコマンド リファレンス
TCL IVR API のコマンド リファレンス
発行日;2012/01/11 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 2MB) | フィードバック

目次

TCL IVR API のコマンド リファレンス

TCL IVR スクリプトで使用される標準 TCL コマンド

HTTP コマンド

TCL IVR コマンド一覧

TCL IVR コマンド

aaa accounting

aaa accounting get status

aaa accounting probe

aaa accounting set status

aaa authenticate

aaa authorize

call close

call lookup

call register

call unregister

clock

command export

command terminate

connection create

connection destroy

fsm define

fsm setstate

handoff

handoff return

infotag get

infotag set

leg alert

leg callerid

leg collectdigits

leg connect

leg consult abandon

leg consult response

leg consult request

leg disconnect

leg disconnect_prog_ind

leg facility

leg proceeding

leg progress

leg senddigit

leg sendhookflash

leg setup

leg setup_continue

leg setupack

leg tonedetect

leg transferdone

leg vxmldialog

leg vxmlsend

log

media pause

media play

media record

media resume

media seek

media stop

modulespace

object create dial-peer

object create gtd

object destroy

object append gtd

object delete gtd

object replace gtd

object get gtd

object get dial-peer

param read

param register

phone assign

phone query

phone unassign

playtone

puts

requiredversion

sendmsg

service

set avsend

set callinfo

subscription open

subscription close

subscription notify_ack

timer left

timer start

timer stop

TCL IVR API のコマンド リファレンス

この章では、TCL IVR API コマンドについてアルファベット順に説明します。次の項で構成されます。

「TCL IVR スクリプトで使用される標準 TCL コマンド」

「TCL IVR コマンド一覧」

「TCL IVR コマンド」

各コマンドについて、次の説明が提供されます。

コマンドの目的や機能の説明

構文の説明

引数のリストと、それぞれの引数の説明

有効な戻り値のリストと、それぞれの戻り値の説明

コマンド終了時に受け取るイベントのリスト

コマンドの使用例

戻り値およびイベントについては、 第5章「イベントとステータス コード」 を参照してください。

TCL IVR スクリプトで使用される標準 TCL コマンド

TCL IVR 2.0 スクリプトでは、次の標準 TCL 8.3.4 コマンドを使用できます。

 

表3-1 Cisco IVR 2.0 でサポートされる標準 TCL コマンド

append

array

binary

break

case

catch

cd

clock

close

concat

continue

encoding

eof 1

error

eval

expr

fconfigure 1

file 2

fileevent

flush

for

foreach

format

gets 1

glob

global

history

if

incr

info

join

lappend

lindex

linsert

list

llength

lrange

lreplace

lsearch

lsort

namespace

open

package 3

proc

puts

pwd

read

regexp

regsub

rename

return

scan

seek

set

split

string

subst

switch

tcl_trace

time

unset

update

uplevel

upvar

variable

while

1.ChannelId は、TCL 標準チャネル(stdin、stdout、または stderr)などのオープン チャネルの識別子か、呼び出した open からの戻り値でなければなりません。

2.file readlink オプションはサポートされていません。file attributes については、グループ、オーナー、およびアクセス権のみがサポートされています。

3.package ifneeded オプションおよび package unknown オプションはサポートされていません。


puts コマンドについては、表示の文字サイズが 2K に制限されています。


HTTP コマンド

TCL 8.3.4 には http パッケージが含まれ、クライアント側の HTTP1.0 プロトコルが提供されます。 表3-2 では、TCL IVR 2.0 スクリプトで使用される HTTP コマンドと、Cisco IOS でサポートされていないコマンドとオプションを分類しています。

 

表3-2 HTTP コマンド

サポートされるコマンド
サポートされないコマンド
サポートされないオプション

config

 

-proxyhost ホスト名

-proxyport 番号

-proxyfilter コマンド

geturl

 

-channel 名前

-handler コールバック

-blocksize サイズ

-progress コールバック

-queryblocksize サイズ

-queryprogress コールバック

formatQuery

 

 

reset

 

 

 

wait

 

status

 

 

size

 

 

code

 

 

ncode

 

 

data

 

 

error

 

 

cleanup

 

 

 

register

 

 

unregister

 

TCL IVR コマンド一覧

標準 TCL コマンドのほかに、Cisco が作成した TCL IVR 2.0 拡張機能を使用できます。

また、既存の puts TCL コマンドが、特定のタスクを実行するように変更されています( 表3-3 )。

 

表3-3 TCL IVR コマンド

コマンド
説明

aaa accounting

アカウンティング レコードの開始または更新を送信します。

aaa accounting get status

レッグのアカウンティング ステータスを照会するか、方式リストのステータスを取得します。

aaa accounting probe

アカウンティング プローブ レコードを送信します。

aaa accounting set status

方式リストのステータスを変更します。

aaa authenticate

外部システム、通常はリモート アクセス ダイヤルイン ユーザ サービス(RADIUS) サーバへ、認証要求を送信します。

aaa authorize

外部システム、通常は RADIUS サーバへ、許可要求を送信します。

call close

呼の終了を示し、その呼に関連するリソースをすべて解放し、次の呼処理のために実行インスタンスを解放します。

call lookup

指定されたパラメータに一致する呼に登録されているアプリケーションのアプリケーション ハンドルを取得します。

call register

アプリケーションが、これ以降、指定された呼の条件に一致する着呼のすべてを受信することを示すために使用します。また、別のアプリケーションが、呼の条件と照合することでこのアプリケーションのインスタンス ハンドルを検索して取得できるようにします。

call unregister

指定された呼の条件に一致する呼登録エントリを削除します。

clock

時間を表す文字列または値の取得や処理を行う操作のいずれかを実行します。

command terminate

以前に発行されたコマンドを終了します。

connection create

2 つのコール レッグを接続します。

connection destroy

接続を破棄します。

command export

TCL スクリプトが TCL プロシージャを登録またはエクスポートし、ダイナミック リンク メカニズムによって C 言語のコードから呼び出させるようにします。

fsm define

TCL 配列とその開始状態によって指定されたステート マシンを登録します。

fsm setstate

現在の動作プロシージャを実行した後の FSM の次の状態を指定します。

handoff

アプリケーションの名前またはハンドルを受け渡します。

handoff return

コール レッグをアプリケーションへ戻します。

infotag get

コール レッグ、スクリプト、またはシステムから、情報を取得します。

infotag set

システムに情報を設定できます。

leg alert

指定されたレッグに警告メッセージを送信します。

leg callerid

転送後に更新された呼の番号と名前を送信します。

leg collectdigits

呼をディジット収集モードに移行し、ディジットを収集します。

leg connect

呼接続メッセージを着信コール レッグに送信します。

leg consult abandon

指定されたレッグに対してコール転送打診放棄要求を送信します。

leg consult response

指定されたレッグに対してコール転送打診 ID 応答を送信します。

leg consult request

指定されたレッグに対してコール転送打診 ID 要求を送信します。

leg disconnect

接続に関与しない 1 つ以上のコール レッグを切断します。

leg disconnect_prog_ind

切断メッセージを指定された経過インジケータ値と一緒に指定されたレッグに送信します。

leg facility

ファシリティ メッセージを発信します。

leg proceeding

呼処理メッセージを着信コール レッグに送信します。

leg progress

指定されたレッグに経過表示メッセージを送信します。

leg senddigit

指定されたコール レッグに対してディジットを送信します。

leg sendhookflash

指定されたコール レッグに対してフックフラッシュを送信します。

leg setup

宛先番号への呼の確立を開始します。

leg setup_continue

終端点アドレスへの確立を開始するか、またはイベントによる呼処理の中断後にシステムが操作を続行するようにします。

leg setupack

呼の確立通知を着信コール レッグに返信します。

leg tonedetect

呼の間、特定トーンの検出をイネーブルまたはディセーブルにします。

leg transferdone

コール レッグでのコール転送のステータスを示し、そのコール レッグを切断します。

leg vxmldialog

指定されたレッグで VoiceXML ダイアログを開始します。

leg vxmlsend

レッグで実行中の VoiceXML ダイアログにイベントをスローします。

log

syslog メッセージを発信します。

media pause

特定のコール レッグに対してプロンプトの再生を一時停止します。

media play

特定のコール レッグに対してプロンプトを再生します。

media record

指定されたコール レッグで受信した音声を録音し、URL で指定された場所に保存します。

media resume

特定のコール レッグに対してプロンプトの再生を再開します。

media seek

現在のプロンプト内を前方検索または後方検索します。

media stop

特定のコール レッグに対してプロンプトの再生を停止します。

modulespace

モジュール空間の作成、アクセス、および削除を可能にし、その中でモジュールがコードを実行できるようにします。

object create dial-peer

ダイヤル ピア ハンドルのリストを作成します。

object create gtd

新しい GTD 領域への GTD ハンドルを作成します。

object destroy

1 つ以上のダイヤル ピア項目を破棄します。

object append gtd

ハンドルに 1 つ以上の GTD 属性を付加します。

object delete gtd

1 つ以上の GTD 属性を削除します。

object replace gtd

1 つ以上の GTD 属性を置き換えます。

object get gtd

指定された GTD ハンドルに関連付けられた属性インスタンスの値、または属性のリストを取得します。

object get dial-peer

ダイヤル ピア項目または一連のダイヤル ピアのダイヤル ピア情報を戻します。

param read

呼に関連付けられた設定パラメータを、<variable-name> という名前の変数に読み込み、読み取り専用にします。

param register

パラメータを説明およびデフォルト値と一緒に登録し、CLI によって設定および検証できるようにします。

phone assign

特定のトーン、またはコール レッグに対して提供されるステータス コードに基づいたトーンを再生します。

phone query

特定のトーン、またはコール レッグに対して提供されるステータス コードに基づいたトーンを再生します。

phone unassign

特定のトーン、またはコール レッグに対して提供されるステータス コードに基づいたトーンを再生します。

playtone

特定のトーン、またはコール レッグに対して提供されるステータス コードに基づいたトーンを再生します。

puts

パラメータをコンソールに出力します。デバッグに使用します。

requiredversion

TCL IVR API の現在のバージョンを確認します。

sendmsg

別のアプリケーション インスタンスにメッセージを送信します。

service

サービスを登録または登録解除します。

set avsend

標準の AV ペアまたは VSA ペアを含む結合配列を設定します。

set callinfo

配列内に電話のかけ方を決定するパラメータを設定します。

subscription open

登録サーバに登録要求を送信します。

subscription close

既存の登録を削除します。

subscription notify_ack

通知イベントへの肯定応答または否定応答を送信します。

timer left

作動しているタイマーの残り時間を戻します。

timer start

特定のコール レッグの呼に対してタイマーを開始します。

timer stop

タイマーを終了します。

TCL IVR コマンド

ここでは、使用可能な TCL IVR コマンドをアルファベット順に説明します。

aaa accounting

aaa accounting コマンドは、アカウンティング レコードの開始または更新を送信します。


) 停止の動詞はありません。停止レコードは、データの利用可能性に応じて常に自動的に生成される必要があります。追加の AV を停止レコードに追加するには、update 動詞を使用します。


構文

aaa accounting start { legID | info-tag } [- a avlistSend ][- s server tag ][ -t acctTempName ]

aaa accounting update { legID | info-tag } [ -a avlistSend ]

引数

legID :コール レッグ ID(着信または発信)。

info-tag :1 つのレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

-s servertag:サーバ(またはサーバ グループ)の識別子。この値は、AAA 設定と同様に method-list-name を示します。

aaa accounting connection { default | method-list-name } group group-nam

デフォルト値は h323 です(下位互換)。

-t acctTempName:RADIUS サーバに送信する属性を定義するアカウンティング テンプレートを選択します。

-a avlistSend:アカウンティング バッファに付加する AV ペアのリストを指定します。このリストは、アカウンティング レコードの一部として送信されるか、リストの属性に r フラグが関連付けられていれば既存のリストを置き換えます。次の例を参考にしてください。

set avlistSend(h323-credit-amount, r) 50.

戻り値

なし

コマンド終了

即時

aaa accounting start leg_incoming -a avList -s $method -t $template
aaa accounting update leg_incoming -a avList
 

使用上の注意

開始パケットが発行されると、対応する停止パケットが、設定で抑制されているかどうかに関係なく発行されます。

debug voip aaa がイネーブルで、アカウンティング開始パケットがすでに発行されている場合、VoIP インフラストラクチャ(Cisco IOS 設定コマンドの gw-accounting aaa によってイネーブルにされる)か、またはスクリプトでこの TCL 動詞を実行することによって、開始要求は無視され、警告メッセージが発行されます。

debug voip aaa がイネーブルで、update 動詞が start の前に呼び出される場合、要求は無視され、警告メッセージが発行されます。

このオプションは当初、アカウンティング パケットに含まれる追加のアプリケーション レベルの属性(基盤となる VoIP インフラストラクチャではなくスクリプトだけが認識する)のために設けられましたが、アカウンティング要求に含めることができる AAA 属性のすべてを -a オプションを使用して送信できます。次のリストに挙げた属性だけが、この方法で -a オプションを使用できます。ただし、健全性チェックは行われません。

h323-ivr-out

h323-ivr-in

h323-credit-amount

h323-credit-time

h323-return-code

h323-prompt-id

h323-time-and-day

h323-redirect-number

h323-preferred-lang

h323-redirect-ip-addr

h323-billing-model

h323-currency

属性が 1 回しか要求に使用できない場合も、健全性チェックは行われません。その場合、スクリプト開発者が整合性を維持する必要があります。

aaa accounting get status

aaa accounting get status コマンドは、レッグのアカウンティング ステータスを照会するか、または方式リストのステータスを取得します。

構文

aaa accounting get status {-l <legID | info-tag> | -m method-list-name}

引数

-l legID:コール レッグ ID。

-l info-tag:1 つのレッグに直接マッピングされる情報。

-m method-list-name:サーバまたはサーバ グループの識別子。この値は、次の AAA 設定と同様に、method-list-name を示します。

aaa accounting connection {default | method-list-name} group group-name
 

戻り値

このコマンドを実行すると、次の値が戻されます。

unreachable:アカウンティング ステータスに到達できません。

reachable:アカウンティング ステータスは到達可能です。

unknown:アカウンティング ステータスは不明です。RADIUS サーバ接続のモニタリングがイネーブルではない場合、デフォルトのステータスは unknown です。

invalid:指定された方式リストまたは legID が無効です。

コマンド終了

即時

aaa accounting get status -l leg_incoming
aaa accounting get status -l [infotag get evt_leg]
set m1_1_status [aaa accounting get status -m m1_1]
 

使用上の注意

このコマンドで処理するレッグは、複数ではなく 1 つだけです。

-l と -m は、相反するオプションです。片方を指定したら、もう一方は指定しないでください。

aaa accounting probe

aaa accounting probe コマンドは、アカウンティング プローブ レコードを送信します。

構文

aaa accounting probe <-s servertag> [-a avlistSend] [-t recordType]

引数

-s servertag:サーバ(またはサーバ グループ)の識別子。この値は、次の AAA 設定と同様に method-list-name を示します。

aaa accounting connection {default | method-list-name} group group-name

-a avlistSend:アカウンティング バッファに付加する AV ペアのリストを指定し、アカウンティング レコードの一部として送信されるようにします。

-t recordType:start、stop、accounting-on のいずれかのアカウンティング レコードの種類を指定します。

戻り値

probe success:プローブが成功しました。

probe failed:プローブが失敗しました。

コマンド終了

即時

aaa accounting probe -s m1_1
 
set av_send(username) “1234567890”
aaa accounting probe -s m1_1 -a av_send -t stop
 

使用上の注意

このコマンドは、ダミー アカウンティング プローブ レコードを送信します。

aaa accounting set status

aaa accounting set status コマンドは、方式リストのステータスを変更します。

構文

aaa accounting set status method-list-status method-list-name

引数

method-list-status:サーバ ステータスを設定します。有効な値を以下に示します。

unreachable:サーバ ステータスに到達できません。

reachable:サーバ ステータスは到達可能です。

method-list-name:サーバまたはサーバ グループの識別子。この値は、次の AAA 設定と同様に、method-list-name を示します。

aaa accounting connection {default | method-list-name} group group-name
 

戻り値

invalid:指定された方式リストは無効です。

unknown:指定された方式リストは、ステータス モニタリング対象として登録されていません。

reachable:指定された方式リストが、到達可能状態に設定されました。

unreachable:指定された方式リストは到達不能状態に設定されました。

コマンド終了

即時

set m1_status “unreachable”
aaa accounting set status reachable m1_1
aaa accounting set status unreachable m1_2
 

使用上の注意

このコマンドは、指定された方式リストのステータスを設定します。

aaa authenticate

aaa authenticate コマンドは、課金番号とパスワードを適切なサーバに送信して認証を受けることで、ユーザの認証を確認します。このコマンドは、許可または拒否を戻します。RADIUS サーバが認証応答で戻した情報を取得する infotag get aaa-avpair avpair-name コマンドはサポートされていません。

構文

aaa authenticate account password [-a avlistSend][-s servertag][-l legID]

引数

account:ユーザの課金番号。

password:ユーザのパスワード(または PIN)。

-a avlistSend:この引数は、既存の省略可能な [av-send] 引数に代わるものです。下位互換性があります。

-s servertag:サーバ(またはサーバ グループ)の識別子。この値は、AAA 設定と同様に、 method-list-name を示します。

aaa authentication login { default | method-list-name } group group-name

デフォルト値は h323 です(下位互換)。


) 汎用の AAA サーバだけが現在サポートされています。


-l legID:アクセス要求用のコール レッグ。h323-conf-id など、コール レッグに関連付けられた Voice-Specific Attribute(VSA)が、アクセス要求に入力されます。

戻り値

なし

コマンド終了

コマンドが終了すると、スクリプトが ev_authenticate_done イベントを受け取ります。

aaa authenticate $account $password -a $avlistSend -s $method -l leg_incoming
 

使用上の注意

通常、認証には RADIUS サーバが使用されますが、AAA がサポートされる方法はすべて使用可能です。

IVR TCL コマンドのデバッグ機能が有効な場合(「スクリプトのテストとデバッグ」を参照)、課金番号とパスワードが表示されます。

課金番号と PIN は、E.164 最大長の 32 桁までで、それ以降は切り捨てられます。

aaa authentication login および radius-server コマンドを使用して、多数の RADIUS パラメータを設定することができます。詳細については、
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fsecur_c/index.htm にある『Cisco IOS Security Configuration Guide, Release 12.2』の「Authentication, Authorization, and Accounting(AAA)」を参照してください。

avSend を定義するには、「set avsend」を参照してください。

-l オプションが指定されないと、h323-conf-id 属性がアクセス要求に含まれない場合があります。

aaa authorize

aaa authorize コマンドは、RADIUS 認証または許可要求を送信し、TCL IVR スクリプトが RADIUS サーバからの応答に含まれている情報を取得できるようにします。このコマンドは、1 つの呼の間に複数回使用できます(たとえば、認証を実行し、続いて許可を実行する)。

このコマンドを aaa authenticate コマンドと組み合わせて使用すると、ユーザ認証に成功した後で、追加情報(宛先番号および発信者番号)を RADIUS サーバに提供できます。ユーザの認証と許可の両方に使用する場合、このコマンドのパラメータで使用される値は、それぞれの使用目的に対応するために変更されます。例示のように、パラメータをブランク(ヌル)のまま残すことができます。

構文

aaa authorize account password ani destination {legID | info-tag} [-a avlistSend] [-s servertag] [-g GUID]

引数

account:ユーザの課金番号。

password:ユーザのパスワード(または PIN)。

ani:発信者番号。

destination:宛先電話番号。

legID:着信コール レッグの ID。

info-tag:1 つのレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

-a avlistSend:この引数は、既存の省略可能な [av-send] 引数に代わるものです。下位互換性があります。

-s servertag:サーバ(またはサーバ グループ)の識別子。この値は、AAA 設定と同様に、 method-list-name を示します。

aaa authentication exec { default | method-list-name } group group-name

デフォルト値は h323 です(下位互換)。

-g GUID:許可操作で使用する GUID を指定します。

引数 account および password は、aaa authenticate コマンドの場合と同様に指定されます。引数 destination および ani は、追加情報を外部サーバに提供します。

戻り値

なし

コマンド終了

コマンドが終了すると、スクリプトが ev_authorize_done イベントを受け取ります。

aaa authorize $account $password $ani $destination $legid
aaa authorize $account "" $ani "" $legid
aaa authorize $ani "" $ani "" $legid
aaa authorize $account $pin $ani $destination $legid -a avList -s $method -t $template
 

使用上の注意

追加パラメータは、属性と値(AV)が対になって RADIUS サーバから戻されます。追加パラメータが戻されたかどうかを判別する場合は、aaa_avpair_exists 情報タグを使用します。続いてそのパラメータを読み取る場合は、aaa_avpair 情報タグを使用します。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

IVR TCL コマンドのデバッグ機能が有効な場合(「スクリプトのテストとデバッグ」を参照)、課金番号、パスワード、宛先が表示されます。

課金番号、PIN、および宛先番号は、E.164 最大長の 32 桁までで、それ以降は切り捨てられます。

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

aaa authentication login および radius-server コマンドを使用して、多数の RADIUS パラメータを設定することができます。詳細については、
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fsecur_c/index.htm にある『Cisco IOS Security Configuration Guide, Release 12.2』の「Authentication, Authorization, and Accounting(AAA)」を参照してください。

avSend を定義するには、「set avsend」を参照してください。

call close

call close コマンドは、呼が終了したことを示し、次の呼を処理するためにスクリプトの実行インスタンスを解放します。このコマンドを実行すると、終了した呼に関連するリソースが解放されます。会議レッグが存在する場合、その接続を破棄し、すべてのコール レッグを消去します。いずれかのコール レッグで leg collectdigits を実行中の場合、そのディジット収集プロセスが終了して呼が消去されます。

構文

call close [-r]

引数

-r:アプリケーションに関する登録を保持します。

戻り値

呼が引数 -r を使用して終了する場合、そのインスタンスで使用されていたリソースは解放されますが、subscribe コマンドで作成された登録は引き続き作動しており、通知によってセッションを開始できます。インスタンスが引数 -r を使用して終了した後、保持された登録の通知が着信すると、その通知を処理するために新しいインスタンスを生成できます。


) 新しいセッションが開始するのは、subscription open コマンドで送信された元の登録要求が、設定されたアプリケーションを notificationReceiver として指定した場合だけです。


コマンド終了

即時

proc act_Disconnected {} {
call close -r
}
set FSM(any_state,ev_disconnected) “act_Disconnected, CALL_CLOSED”
 
proc act_UnsubscribeDone {} {
call close
}
set fsm(any_state,ev_unsubscribe_done) "act_UnsubscribeDone SUBS_OVER"
 

使用上の注意

call close コマンドは、呼の終了、およびスクリプトの終了を示します。このコマンドを実行すると、システムがリソースを解放します。-r オプションを指定しないで call close コマンドを呼び出すと、実行中のインスタンスを終了する前にサーバから登録が削除されます。

call close -r コマンドを使用する場合には、必ず notificationReceiver、設定されたアプリケーション、またはアプリケーション ハンドルを指定してください。

call lookup

call lookup コマンドは、指定されたパラメータに一致する呼について登録されているアプリケーションのアプリケーション ハンドルを取得します。

構文

call lookup matchParam

引数

matchParam:このアプリケーションが登録されている呼を記述する呼パラメータを含む結合配列。次のパラメータがサポートされます。

calledNum:一致条件となる、着呼の送信先番号の値。

transferConsultID:一致条件となる、着呼のコール転送打診 ID の値。

戻り値

指定されたパラメータに一致する呼に別のアプリケーションが登録されている場合、アプリケーション ハンドルを戻します。指定されたパラメータに一致する呼にどのアプリケーションも登録されていない場合、ヌル ストリングを戻します。

コマンド終了

即時

set matchParam(calledNum) $calledDNIS
set matchParam(transferConsultID) $consultID
set handler [call lookup matchParam]
 

使用上の注意

呼の登録エントリが一致したと見なされるためには、指定されたすべての matchParam パラメータに一致する必要があります。アプリケーションで matchParam パラメータが指定されていない場合、スクリプトが終了してコンソールにエラーが出力され、呼は消去されます。

call register

call register コマンドは、アプリケーションが、これ以降、指定された呼の条件に一致する着呼のすべてを受信することを示すために使用されます。また、別のアプリケーションが、呼の条件と照合することでこのアプリケーションのインスタンス ハンドルを検索して取得できるようにします。詳細については、 call lookup コマンドを参照してください。

構文

call register matchParam [-i ]

引数

matchParam:このアプリケーションが登録されている呼を記述する呼パラメータを含む結合配列。次のパラメータがサポートされます。

calledNum:一致条件となる、着呼の送信先番号の値。

transferConsultID:一致条件となる、着呼のコール転送打診 ID の値。

-i:呼の自動ルーティングをディセーブルにします。このオプションを指定すると、アプリケーションは指定された呼パラメータに一致しても着呼を受信しません。これは、アプリケーションが、指定された呼パラメータに一致する呼の受け渡しを別のアプリケーションに実行させたい場合に便利です。

戻り値

0:登録が成功しました。

1:登録が失敗しました。エントリが重複しています。

コマンド終了

即時

set matchParam(calledNum) $calledDNIS
set matchParam(transferConsultID) $consultID
set registerStatus [call register matchParam -i]
 

使用上の注意

このコマンドは、同じ呼パラメータに一致する呼について別のアプリケーションがすでに登録されている場合は失敗します。

アプリケーションが call register コマンドの呼び出しに成功すると、それ以降、matchParam パラメータで指定されたパラメータすべてと一致する着呼が同一と見なされます。

デフォルトで、一致した着呼はただちに登録されたアプリケーションにルーティングされ、このアプリケーションは ev_setup_ind イベントを受け取ります。

call register コマンドで -i パラメータが指定されていると、このアプリケーションに呼が自動でルーティングされることはありません。代わりに、アプリケーションは別のアプリケーションから ev_handoff イベントを受け取れるようにしておく必要があります。詳細については、 call lookup コマンドの「使用上の注意」を参照してください。

アプリケーションで無効な引数が指定されている場合、スクリプトが終了してコンソールにエラーが出力され、呼は消去されます。

アプリケーションで matchParam パラメータが指定されていない場合、スクリプトが終了してコンソールにエラーが出力され、呼は消去されます。

call unregister

call unregister コマンドは、指定された呼の条件に一致する呼登録エントリを削除します。

構文

call unregister matchParam

引数

matchParam:このアプリケーションが登録されている呼を記述する呼パラメータを含む結合配列。次のパラメータがサポートされます。

calledNum:一致条件となる、着呼の送信先番号の値。

transferConsultID:一致条件となる、着呼のコール転送打診 ID の値。

戻り値

0:登録解除が成功しました。

1:登録解除が失敗しました。エントリがありません。

コマンド終了

即時

set matchParam(calledNum) $calledDNIS
set matchParam(transferConsultID) $consultID
set unregisterStatus [call unregister matchParam]
 

使用上の注意

このコマンドは、アプリケーションが以前登録されていた呼を受信する必要がなくなった場合に使用されます。このコマンドで登録解除するには、呼登録エントリが指定されたすべての matchParam パラメータと一致する必要があります。

アプリケーションで matchParam パラメータが指定されていない場合、スクリプトが終了してコンソールにエラーが出力され、呼は消去されます。

clock

このコマンドは、時間を表す文字列または値の取得や処理を行う操作のいずれかを実行します。

構文

clock option arg arg

引数

option:次のオプションが有効です。

clicks:高精度の時刻値をシステム依存の整数値として戻します。値の単位はシステムに依存しますが、CPU サイクル カウンタなど、システムで使用できる最も精度の高いクロックである必要があります。この値は、経過時間の相対的な測定だけに使用します。

format clockValue -format string -gmt boolean:整数の時刻値を(通常は clock seconds、clock scan、または file コマンドの atime、mtime、ctime のいずれかのオプションで戻される)、人間が読み取れる形式に変換します。引数 -format がある場合、その直後の引数は日時の形式を記述する文字列です。フィールド記述子として、% の後にフィールド記述子文字を続けます。それ以外の文字はすべて結果にコピーされます。次のフィールド記述子が有効です。

%% : % の挿入。

%a :曜日の略称(Mon、Tue など)。

%A:完全な曜日名(Monday、Tuesday など)。

%b:月の略称(Jan、Feb など)。

%B:完全な月の名前。

%c:ロケール固有の日付と時刻。

%d:日付(01 ~ 31)。

%H:24 時間形式の時間(00 ~ 23)。

%I:12 時間形式の時間(00 ~ 12)。

%j:年間の通し日付番号(001 ~ 366)。

%m:月番号(01 ~ 12)。

%M:分(00 ~ 59)。

%p:午前/午後インジケータ。

%S:秒(00 ~ 59)。

%U:年間の通し週番号(01 ~ 52)。日曜日が 1 週間の始まり。

%w:曜日番号(日曜日が 0)。

%W:年間の通し週番号(01 ~ 52)。月曜日が 1 週間の始まり。

%x:ロケール固有の日付形式。

%X:ロケール固有の時刻形式。

%y:西暦年の下 2 桁(00 ~ 99)。

%Y:西暦年(例:2002)。

%Z:時間帯名。

さらに、システムによっては次のフィールド記述子がサポートされる場合があります。たとえば、UNIX ではサポートされても、Microsoft Windows ではサポートされないことがあります。Cisco IOS ソフトウェアでは次のオプションをサポートしています。

%D:%m/%d/%y 形式の日付。

%e:先行ゼロなしの日付(1 ~ 31)。

%h:月の略称。

%n:改行文字の挿入。

%r:%I:%M:%S %p 形式の時刻。

%R:%H:%M 形式の時刻。

%t:タブの挿入。

%T:%H:%M:%S 形式の時刻。

引数 -format が指定されない場合、形式文字列「%a %b %d %H:%M:%S %Z %Y」が使用されます。引数 -gmt がある場合、その直後の引数はブールでなければなりません。true の場合は、時刻はグリニッジ標準時として形式設定されます。false の場合は、稼働環境の定義に従ってローカルの時間帯が使用されます。

scan dateString -base clockVal -gmt boolean:dateString を整数のクロック値に変換します(clock seconds を参照してください)。clock scan コマンドは、標準時間帯ニーモニックを含む、実質的にあらゆる標準日付や標準時刻の文字列を解析して変換します。時刻だけが指定された場合、現在の日付が想定されます。文字列に時間帯ニーモニックが含まれていない場合、引数 -gmt が true でない限りローカルの時間帯が想定されます。true の場合は、グリニッジ標準時に対する相対的な時刻としてクロック値が計算されます。

-base フラグが指定されている場合、その直後の引数に整数のクロック値が含まれている必要があります。この値にある時刻ではなく、日付だけが使用されます。これは、特定の日付の時刻を判別したり、その他の日付の相対変換を実行したりするときに便利です。

dateString には、次の形式の指定値が 0 個以上含まれます。

time:時刻。hh:mm:ss 子午線時間帯 または hhmm 子午線時間帯 のいずれかの形式を使用します。子午線が指定されていない場合、hh は 24 時間クロックに基づいて解釈されます。

date:特定の月日。任意で年を追加できます。許容される形式は、mm/dd/yy、monthname dd、yy、dd monthname yy and day、dd monthname yy です。デフォルトの年は現在の年です。年が 100 未満の場合、1900 が加算されます。

relative time :現在時刻に対する相対的な時刻を指定します。形式には数値の単位が使用されます。許容される単位は、year、fortnight、month、week、day、hour、minute(または min)、second(または sec)です。単位は、単数形式または複数形式で指定できます(3 weeks など)。tomorrow、yesterday、today、now、last、this、next、ago の修飾子も指定できます。

実際の日付は、次の手順に従って計算されます。

最初に、絶対日付または絶対時刻、あるいはその両方が処理され、変換されます。その時刻をベースとして使用し、曜日の指定が追加されます。

次に、相対的な指定が使用されます。日付または曜日が指定され、絶対時刻または相対時刻が指定されない場合、午前 0 時が使用されます。

最後に、夏時間の時差を考慮した後、時間が正しく計算されるように補正が行われます。

seconds:現在の日付と時刻をシステム依存の整数値として戻します。値の単位は秒であるため、相対時刻の計算に使用できます。この値は、通常「エポック」からの総経過時間として定義されます。エポックは想定しないでください。

戻り値

なし

コマンド終了

なし

set clock_seconds [clock seconds]
set time [clock format [clock seconds] -format "%H%M%S"]
set new_time [clock format [clock seconds] -format "%T"]
set time_hh [clock format [clock seconds] -format "%H"]
set date [clock format [clock seconds] -format "%Y%m%d"]
set new_date [clock format [clock seconds] -format "%D"]
set week [clock format [clock seconds] -format "%w"]
 

使用上の注意

なし

command export

command export コマンドは、TCL スクリプトが TCL プロシージャを登録またはエクスポートし、ダイナミック リンク メカニズムによって C 言語のコードから呼び出させるようにします。

構文

command export <command-string> <command-template>
 

引数

<command-string>:ネイティブの名前空間以外からプロシージャを呼び出すのに必要な名前空間情報を含む、拡張された名前。

<command-template>:TCL プロシージャが受け入れるパラメータ テンプレート。これにより、DLL システムで、この API を起動する C 言語のコードが、正しいタイプと個数のパラメータを呼び出せるようになります。この文字列の形式は x:x:x:x:x:x で、各 x は許可されるパラメータのタイプを示します。最初の x は、プロシージャの戻り値のタイプを示します。x の値を s にすると、string または char* パラメータを表すことができます。

戻り値

なし

コマンド終了

即時

command export ::Service::handle_event s
 

使用上の注意

なし

command terminate

command terminate コマンドは、以前に発行したコマンドを終了または停止します。

構文

command terminate [commandHandle]

引数

commandHandle:get last_command_handle 情報タグで取得されたハンドラに関連付けられたハンドラ ハンドル。leg setup コマンドは、この動詞を使用して終了できます。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

このコマンドは、次のいずれかの値を戻します。

0(保留中):コマンド終了が開始されました。

1(終了):コマンド終了が完了しました。

2(失敗):コマンド終了の動詞が無効です。コマンド引数が誤っているか、該当する保留中のコマンドがないか、またはそのコマンドの終了がすでに開始されています。

コマンド終了

call setup 動詞に適用されると、call setup ハンドラが終了するときに ev_setup_done イベントが戻されます。このイベントのステータス コードは ls_015(アプリケーション要求によって終了)です。

command terminate [$commandHandle]
 

使用上の注意

最後のコマンド ハンドルは、別のコマンドが発行される前に取得する必要があります。

connection create

connection create コマンドは、2 つのコール レッグを接続します。

構文

connection create {legID1 | info-tag1} {legID2 | info-tag2}

引数

legID1:接続する最初のコール レッグの ID。

info-tag1:1 つのコール レッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

legID2:接続する 2 つめのコール レッグの ID。

info-tag2:2 つめのレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

このコマンドを実行すると、次の値が戻されます。

connectionID:この接続に割り当てられた一意の ID。この ID は、connection destroy コマンドで必要です。

コマンド終了

このコマンドが終了すると、スクリプトが ev_create_done イベントを受け取ります。

set connID [connection create $legID1 $legID2]
 

使用上の注意

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

2 つの IP レッグ間の接続はサポートされていません。コマンドの実行が成功したように見えても、実際には機能しません。現在、スクリプト レベルでのエラーをキャプチャする手段がないため、これを行うと問題が発生するおそれがあります。したがって、このような接続を試みないことをお勧めします。

保留または音声の転送などの補足サービスが使用されている場合、コール レッグが破棄された後に、着信側で発信側からの再生中の音声やメディア プロンプトを聞くことができます。この問題を避けるため、デフォルトでイネーブルになっている voice-fastpath enable Cisco IOS コマンドをディセーブルにします。ディセーブルにするには、 no voice-fastpath enable グローバル設定コマンドを使用します。

connection destroy

connection destroy コマンドは、2 つのコール レッグ間の接続を破棄します。

構文

connection destroy {connectionID | info-tag}

引数

connectionID:connection create プロセスによってこの接続に割り当てられた一意の ID。

info-tag:1 つの接続 ID に直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

なし

コマンド終了

このコマンドが終了すると、スクリプトが ev_destroy_done イベントを受け取ります。

connection destroy $connID
 

使用上の注意

個々のコール レッグは切断されず、コール レッグ間の接続のみ破棄されます。

保留または音声の転送などの補足サービスが使用されている場合、コール レッグが破棄された後に、着信側で発信側からの再生中の音声やメディア プロンプトを聞くことができます。この問題を避けるため、デフォルトでイネーブルになっている voice-fastpath enable Cisco IOS コマンドをディセーブルにします。ディセーブルにするには、 no voice-fastpath enable グローバル設定コマンドを使用します。

fsm define

fsm define コマンドは、スクリプトにステート マシンを登録します。ステート マシンの指定には、該当する動作プロシージャに伴う状態イベントの移行をリストした TCL 配列を使用します。

構文

fsm define statemachine_array start_state

引数

statemachine_array:ステート マシンを定義した配列。配列は、現在の状態と現在のイベントで示します。各エントリの値は、実行する動作関数と、次に移行する状態です。配列エントリの形式は次のとおりです。

set statemachine_array(current_state,current_event) "actionFunction,next_state"


) 現在の状態およびイベントは、カッコで囲み、スペースを挿入せずにカンマで区切ります。結果の動作と次の状態は、引用符で囲み、カンマとスペースの両方またはいずれかで区切ります。


start_state:ステート マシンの開始状態。新しい呼が着信したときのスクリプトの状態です。

戻り値

なし

コマンド終了

即時

#----------------------------------
# State Machine
#----------------------------------
set FSM(CALL_INIT,ev_setup_indication) “act_Setup,DEST_COLLECT”
 
set FSM(DEST_COLLECT,ev_disconnect_done) “act_DCDone,CALL_SETTING”
set FSM(DEST_COLLECT,ev_disconnected) “act_DCDisc,CALL_DISCONNECTING”
 
set FSM(CALL_SETTING,ev_callsetup_done) “act_PCDone,CALL_ACTIVE”
set FSM(CALL_SETTING,ev_disconnected) “act_PCDisc,CALL_SETTING_WAIT”
 
fsm define FSM CALL_INIT

fsm setstate

fsm setstate コマンドを使用すると、動作プロシージャの終了後に FSM が移行する状態を指定できます。

構文

fsm setstate StateName

引数

StateName:動作プロシージャの実行が終了した後に FSM が移行する状態。この状態は、FSM テーブルの現在の状態の移行で指定されている次の状態に優先します。

戻り値

なし

コマンド終了

なし

#Check for DNIS, if there is DNIS you want to go to Call setup right away
set legID [infotag get evt_legs]
set destination [infotag get leg_dnis $legID]
if {destination != ““} {
callProceeding $legID
set callInfo(alertTime) 30
call setup $destination callInfo leg_incoming
#Moves to CALL_SETTING state
fsm setstate CALL_SETTING
} else {
leg setupack $legID
playtone $legID TN_DIAL
set DCInfo(dialPlan) true
# Assumption: As per the state machine moves to DIGIT_COLLECT}
leg collectdigits $legID DCInfo
}
 

使用上の注意

このコマンドを使用すると、FSM が移行する(FSM テーブルに指定されている状態と異なる)状態を動作プロシージャで指定することができます。

このコマンドを使用しない場合、状態の移行は FSM テーブルに定義されているステート マシンに従います。

handoff

アプリケーションの名前またはハンドルを受け渡します。

構文

handoff {appl | callappl} {legID | info-tag} [{legID2 | info-tag2} ...]{app-name | <handle>} [-s <argstring>]

引数

appl | callappl:使用する特定の handoff コマンド。 appl には戻り値がなく、callappl にはあるのが唯一の違いです。

legID | infotag:宛先に受け渡すコール レッグ ID。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

app-name | <handle>:アプリケーションの名前またはハンドル。

-s <argstring>:別のアプリケーション インスタンスに渡す情報。

戻り値

実行中でないインスタンスへの受け渡しの場合、「unavailable」メッセージが戻されます。

コマンド終了

即時

set iid newapp
set sid customer
set anum 123456
handoff appl leg_incoming $iid -s “Here is a call: service=$sid; account number=$anum”
 
set iid newapp
set sid customer
set anum 123456
handoff callappl leg_incoming $iid -s “Here is a call: service=$sid; account number=$anum”
 

使用上の注意

アプリケーション名は、call app voice <name> <url> 設定コマンドで設定された名前であり、アプリケーション ハンドルは mod_handle_service または evt_msg_source 情報タグによって戻されたハンドルです。

このコマンドは、名前を指定することにより新しいインスタンスを作成できます。または、ハンドルを指定することにより既存のインスタンスに受け渡しを試みることができます。ハンドルは特別な内部形式を持ち、システムがそれを解析してハンドルか名前かを判別できます。ハンドルが示すインスタンスが存在しない場合、handoff コマンドは「unavailable」を戻します。スクリプトは失敗せず、引き続きコール レッグの制御を維持します。

コール レッグを受信したアプリケーション インスタンスは、evt_handoff_argstring 情報タグを使用して引数文字列を取得できます。

ハンドルが示すインスタンスが存在しない場合、handoff コマンドは「unavailable」を戻します。スクリプトは失敗せず、引き続きコール レッグの制御を維持します。

handoff return

さまざまなセッションから受信した別々のコール レッグ、または会議レッグのセットを同じセッションに戻します。

構文

handoff return legID [-s <argstring>]

引数

legID:戻すコール レッグ(1 つまたは複数)。leg_incoming などの VAR_TAG を指定できます。

-s <argstring>:別のアプリケーション インスタンスに渡す情報。

戻り値

実行中でないインスタンスへの受け渡しの場合、「unavailable」メッセージが戻されます。

コマンド終了

即時

set leg2 leg_incoming
handoff return $leg2 -s “$sid; $anum”
 

使用上の注意

コール レッグを受信したアプリケーション インスタンスは、evt_handoff_argstring 情報タグを使用して引数文字列を取得できます。

さまざまなセッションから別々のコール レッグを受信する受け渡しの戻りでは、コール レッグごとに handoff return コマンドを別個に実行する必要があります。この場合には、handoff return leg_all コマンドは定義されていません。コール レッグ全体のセットが最初のレッグの戻り先に戻されますが、leg_all 情報タグでどのレッグが最初にリストされるかが定義されていません。

会議レッグ セットの受け渡しの戻りでは、両方のレッグを同じセッションに戻す必要があります。たとえば、セッションに session1 から leg1、session2 から leg2 が受け渡され、2 つのレッグで会議通信を行ったとします。この場合、次のコマンド

handoff return $leg2
 

は、会議通信を行った両方のレッグをセッション 2 に戻します。

infotag get

infotag get コマンドは、コール レッグ、コール、スクリプト、またはシステムから情報を取得します。取得する情報は、指定する情報タグに基づきます。

構文

infotag get info-tag [parameter-list]

引数

info-tag:取得する情報の種類を示す情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

parameter-list:(情報タグに基づいてオプションで指定)取得する情報をより詳細に定義したパラメータのリスト。

戻り値

要求した情報

コマンド終了

即時

set dnis [infotag get leg_dnis]
set language [infotag get med_language]
set leg_list2 [infotag get leg_legs]
 

使用上の注意

一部の情報タグは適用範囲を持ち、使用が限定されます。たとえば、ev_setup_done イベントの処理中に evt_dcdigits を呼び出すことはできません。つまり、leg setup コマンドの実行後、ev_setup_done イベントがまだ戻されないうちに infotag get evt_dcdigits コマンドを実行することはできません。実行した場合、スクリプトが終了してエラーが出力されます。詳細については、 第4章「情報タグ」 を参照してください。

infotag set

infotag set コマンドを使用すると、システムに情報を設定することができます。このコマンドでは、書き込み可能な情報タグのみ使用することができます。

構文

infotag set {info-tag [parameters]} value

引数

info-tag:設定する情報。設定可能な情報タグのリストは、 第4章「情報タグ」 に記載されており、「書き込み」と示されています。

parameters:このパラメータのリストは、使用する情報タグに基づきます。

value:設定する値。この値は、使用する情報タグに基づきます。

戻り値

なし

コマンド終了

即時

infotag set med_language prefix ch
infotag set med_location ch 0 tftp://www.cisco.com/mediafiles/Chinese
 

leg alert

指定されたレッグに警告メッセージを送信します。

構文

leg alert {legID | info-tag} [-p <prog_ind_value>] [-s <sig_ind_value>] [-g <GTDHandle>]

引数

legID | info-tag:経過表示メッセージの送信先となる着信レッグを示します。

-s <sig_ind_value>:呼の信号を示す値。この値はそのまま転送されます。

-p <prog_ind_value>:呼の経過を示す値。この値はそのまま転送されます。

-g <GTD handle>:以前に作成された GTD 領域へのハンドル。指定がない場合、デフォルトではリングバック信号が送信されます。

戻り値

なし

コマンド終了

即時

leg setupack leg_incoming
leg alert leg_incoming -s 1-g gtd_progress_handle
leg connect leg_incoming
 

使用上の注意

呼を終了するアプリケーションは、着信レッグに接続してスイッチが応答する前に leg alert を挿入できます。

leg alert コマンドを正常に実行するには、レッグが適切な状態でなければなりません。対象レッグに対して次の条件が確認されます。

leg setupack がすでに送信されている。

leg alert がまだ送信されていない。

指定したコール レッグがすでに接続状態の場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

leg callerid

leg callerid コマンドを使用すると、アプリケーションは、Cisco CallManager Express(CME)環境で動作する Cisco IP 電話、および必要な発信者番号機能を持つアナログ FXS 電話に発信者番号情報を指定できます。

構文

leg callerid {legID | infotag} param

引数

legID | infotag:宛先に受け渡すコール レッグ ID。

param:指定された呼の発信者番号情報を含む結合配列。name と number の 2 つのパラメータを使用できます。Number は必須で、name は省略可能です。

戻り値

なし

コマンド終了

即時

set param(name) “Xee”
set param(number) “4088531936”
leg callerid param legXto
 
set param(name) “Xto”
set param(number) “4088531645”
leg callerid param legXee
 
set param(name) “John Smith”
set param(number) “1234567890”
leg callerid leg_outgoing param
 

使用上の注意

指定されたコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが出力され、呼は消去されます。

パラメータ(number)が指定されない場合、スクリプトが終了してコンソールにエラーが出力され、呼は消去されます。

leg callerid コマンドが、コール ウェイティングのないテレフォニー コール レッグに使用されている場合(EFXS コール レッグは除く)、呼が接続すると発信者に電子音が聞こえることがあります。通常、この電子音はアナログ FXS 電話のコール ウェイティングを示すので、発信者を混乱させることがあります。この混乱を避けるため、 leg callerid コマンドは EFXS コール レッグだけに使用してください。

leg callerid コマンドを使用する前に、 leg_type 情報タグを使用してコール レッグの種類を確認してください。

leg collectdigits

leg collectdigits コマンドは、指定のコール レッグでダイヤル プランとパターン リストの両方またはいずれかと照合してディジットを収集するようにシステムに命令します。

構文

leg collectdigits {legID | info-tag} [param [match]]

引数

legID:ディジット収集をイネーブルにするコール レッグの ID。

info-tag:1 つ以上のレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

param:どのようにディジットを収集するかを定義したパラメータの配列。配列に定義できるパラメータは次のとおりです。

param(abortKey):ディジット収集を中止するためのキー。デフォルトは none です。

param(interDigitTimeout):ディジット間のタイムアウト値(秒)。デフォルトは 10 です。

param(initialDigitTimeout):最初のディジットのタイムアウト値(秒)。デフォルトは 10 です。

param(interruptPrompt):キーが押されたときにプロンプトを中断するかどうか。有効な値は true と false で、デフォルトは false です。

param(terminationKey):ディジット収集を終了するキー。デフォルトは none です。

param (consumeDigit) :アプリケーションによって、着信コール レッグと発信コール レッグがブリッジされた後に、ユーザのダイヤルしたディジットがリモートの終端点にリレーされないように阻止できます。

param(dialPlan):収集したディジットをダイヤル プラン(または、1 が指定されている場合はパターン)と照合するかどうか。有効な値は true と false で、デフォルトは false です。

param(dialPlanTerm):着信ディジットをダイヤル プランと照合し、照合に失敗した場合でも、終了キーが押されるかディジットのタイムアウトが発生するまで、ディジット収集を続けます。有効な値は true と false で、デフォルトは false です。

param(maxDigits):戻す前に収集する最大ディジット数。

param(enableReporting):戻すときにディジット レポートをイネーブルにするかどうか。有効な値は true と false で、デフォルトは false です。ディジット レポートをイネーブルにすると、キーが押されて放されるたびにスクリプトが ev_digit_end イベントを受け取ります。ディジット レポートがイネーブルになっていると、スクリプトが定期的に ev_digit_end イベントとディジット T を受け取ることもあります。これは、ディジット間タイムアウトを示すもので、通常スクリプトでは無視できます。

param(ignoreInitialTermKey):ディジット収集における最初のキーとして、終了キーをディセーブルにするか、または無視します。デフォルトは false です。

match:leg collectdigits コマンドで何を検索するかを指定したパターン リストを含む配列変数。パターン文字列内の %D 文字列は、対応するディジットをダイヤル プランと照合します。

戻り値

なし

コマンド終了

コマンドが終了すると、スクリプトが ev_collectdigits_done イベントを受け取ります。イベントには正常終了コードまたは異常終了コードと収集したディジットが含まれます。正常終了コードおよび異常終了コードの詳細については、「ステータス コード」を参照してください。

例 1:ディジットを収集してダイヤル プランと照合します。

set params(interruptPrompt) true
set params(dialPlan) true
leg collectdigits $legID params
 

例 2:ディジットを収集してパターンと照合します。

set pattern(1) "99.....9*"
set pattern(2) "88.....9*"
leg collectdigits $legID params pattern
 

例 3:ディジットを収集し、パターン プレフィックスを使用してダイヤル プランと照合します。

set pattern(1) "#43#%D"
leg collectdigits $legID params pattern
 

例 4: consumeDigit パラメータを使用して、ディジットがリモートの終端点にリレーされないようにする例です。TCL アプリケーションは、ダイヤルされたディジットごとに ev_digit_end イベントを受け取ります。これらのディジットが別のコール レッグにリレーされることはありません。

set param(enableReporting) true
set param(consumeDigit) true
leg collectdigits {legID|info-tag} param

使用上の注意

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

デフォルトでは、すべてのコール レッグに対してディジット レポートが無効になっているため、スクリプトはディジットを受け取りません。スクリプトが各ディジット イベントを受け取るようにするには、leg collect digits コマンドを使用して parm(enableReporting)に TRUE を設定することによって、ディジット レポートを有効にする必要があります。

enableReporting に TRUE を設定すると、コマンドの終了後もディジット レポートが有効になります(スクリプトは指定されたディジットを受け取ることができます)。ディジット レポートは、スクリプトでディジットを収集する場合や長い間押された#を検索する場合に便利です。

ディジット レポートを有効にするためだけに leg collectdigits コマンドを発行し、ディジットまたはパターンの収集を行わない場合、レポートを有効にするとすぐにコマンドが終了します。スクリプトは、ev_collectdigits_done イベント、およびステータス コード cd_009 を受け取ります。

ディジット収集の最初のタイムアウトは 10 秒で、ディジット間のタイムアウトも 10 秒です。ディジット収集がタイムアウトになると、タイムアウト ステータス コードと共に、これまで収集したディジットが戻されます。音声ポートのタイムアウト値を変更するには、timeouts initial および timeout interdigit コマンドを使用します。

consumeDigit パラメータは true または false(デフォルト)に設定できます。

consumeDigit パラメータを true または false に設定しても、コール レッグがブリッジされていない場合は、ディジット収集には影響がありません。

consumeDigit パラメータを true に設定しても、ネゴシエートされた DTMF リレーが rtp-nte、cisco-rtp、またはインバンド音声の場合は、ダイヤルされたディジットがリモートの終端点にリレーされるのを阻止することはありません。

leg collectdigits に複数の照合条件が指定された場合、照合の優先順位は maxDigits、dialPlan、パターンの順になります。

優先される maxDigits は特殊なパターンと見なされます。

この特殊なパターン照合が終了し、次のいずれかの状況になった場合、照合は成功したと見なされます。

ユーザが最大ディジット数をダイヤルする。

ユーザが終了キーを押す(設定されている場合)。

ユーザが数ディジットをダイヤルすると、タイムアウトが発生する。

この状況が発生すると、cd_005 ステータス コードがレポートされます。「ディジット収集ステータス」 を参照してください。

ディジットがパターン プレフィックスを使用して dialPlan と照合する場合、コマンドは一致したパターン、cd_005 ステータス コードを戻します。「ディジット収集ステータス」 を参照してください。

%D dialPlan パターン適合文字列は、パターンの最後でのみ使用できます。%D がパターンの別の位置に指定されている場合、スクリプトが終了してコンソールにエラーが送信され、呼は消去されます。

%D パターンが指定され、かつ dialPlan パラメータが TRUE に設定されている場合、コマンドは、ダイヤル プラン照合が成功すると、一致したダイヤル プラン、cd_004 ステータス コードを戻します。「ディジット収集ステータス」 を参照してください。

evt_dcpattern 情報タグと evt_dcdigits 情報タグを使用して、一致したパターンとディジットを取得できます。

leg connect

leg connect コマンドは、シグナリング レベルの CONNECT メッセージを着信コール レッグに送信します。

構文

leg connect {legID | info-tag }

引数

legID:接続シグナリング メッセージの送信先となる着信コール レッグの ID。

info-tag:1 つ以上の着信レッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

なし

コマンド終了

即時

leg connect leg_incoming
leg connect $legID
 

使用上の注意

指定したコール レッグが着信コール レッグでない場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

指定の情報タグが複数の着信コール レッグにマッピングされる場合、呼接続メッセージは、まだ呼接続メッセージを受け取っていないすべての着信コール レッグに送信されます。

指定したコール レッグの状態が原因でコール接続メッセージを受信できない(たとえば、レッグの状態が disconnecting である)場合、コマンドはエラーになります。

指定したコール レッグがすでに接続状態の場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。


) 着信 ISDN コール レッグの場合、接続メッセージの前に setupack、proceeding、または alert メッセージを送信する必要があります。送信しないと、スクリプトは ev_disconnected イベントを受け取り、着信レッグは切断されます。


leg consult abandon

このコマンドを使用して、指定されたレッグに対してコール転送打診放棄要求を送信します。基盤となるプロトコルに応じて、ゲートウェイが終端点にメッセージを送信する場合もあります。通常、終端点は状態を消去し、コール転送が失敗したことを示すエラー応答をローカルに生成します。

構文

leg consult abandon legID

引数

legID:転送先の終端点へのコール レッグの ID。

戻り値

このコマンドは、次のいずれかの値を戻します。

0(成功):コール レッグに対して放棄メッセージが正常に送信されました。

1(無効な状態で失敗):このコール レッグがこれまでに送信した打診要求メッセージはありません。打診要求メッセージを送信したことのないレッグに対して、打診放棄メッセージを送信すると無効になります。

2(プロトコル エラーで失敗):プロトコル エラーにより放棄メッセージを送信できませんでした。

leg consult abandon $targetleg
set retcode [leg consult abandon $consultLeg]
 

コマンド終了

即時

関連イベント

なし

leg consult response

このコマンドを使用して、指定されたレッグに対してコール転送打診 ID 応答を送信します。打診 ID は自動的に生成されます。基盤となるプロトコルに応じて、ゲートウェイは生成された打診 ID を含むメッセージを指定されたレッグに対して送信するか、このコマンドを無視します。

構文

leg consult response legID {[-i consultID][-t transferDestNum] | -c 'xxx'}

引数

legID:転送元の終端点へのコール レッグの ID。

-i consultID:打診 ID(省略可能)。

-t transferDestNum:転送先の番号。転送先がローカルで別の番号に転送される場合は、ここに迂回先の番号を使用することもできます。指定されない場合、legID に対応する着信コール レッグの calledNumber が使用されます。該当する発信コール レッグが存在しない場合、legID の calledNumber が使用されます(省略可能)。

-c 'xxx':'xxx' は打診エラー コードです(省略可能)。

001:打診エラー

002:打診拒否

戻り値

コマンドが終了すると、スクリプトが ev_consultation_done イベントを受け取ります。

leg consult response leg_incoming -i $tcl_consultid
leg consult response $xorCallLeg -t $newTargetNum
leg consult response leg_incoming -c 2
 

コマンド終了

即時

関連イベント

ev_consult_request

leg consult request

このコマンドを使用して、指定されたレッグに対してコール転送打診 ID 要求を送信します。基盤となるプロトコルに応じて、ゲートウェイが終端点にメッセージを送信するか、またはゲートウェイ自身が ID を生成します。

構文

leg consult request legID

引数

legID:転送先の終端点へのコール レッグの ID。

戻り値

なし

leg consult request $targetleg
 

コマンド終了

コマンドが終了すると、スクリプトが ev_consult_response イベントを受け取ります。

関連イベント

ev_consult_response

leg disconnect

leg disconnect コマンドは、接続に関与しない 1 つ以上のコール レッグを切断します。

構文

leg disconnect {legID | info-tag} [-c cause_code] [-g <gtd_handle>] [-i <iec>]

引数

legID:コール レッグの ID。

info-tag:1 つ以上のコール レッグにマッピングされるコール レッグ情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

cause_code:整数の ISDN 切断原因コード。形式は di-xxx または xxx のみで、xxxは ISDN 原因コードです。


) TCL IVR では cause_code を検証しません。非 DID の呼については、次の条件が両方とも当てはまる場合、オプションの cause_code パラメータは着信テレフォニー レッグに影響しません。

1. leg setupack コマンドがこのレッグに対して発行されている。
2. レッグがまだ接続状態に達していない。

この場合、cause_code パラメータは無視され、レッグは原因コード 0x10「Normal Call Clearing」を使用して切断されます。


-g <gtd_handle>:以前に作成された GTD 領域へのハンドル。

-i <iec>:切断の理由として記録する内部エラー コード(IEC)を指定します。有効な値については、「set iec」を参照してください。

戻り値

なし

コマンド終了

コマンドが終了すると、スクリプトが ev_disconnect_done イベントを受け取ります。

leg disconnect leg_incoming
leg disconnect leg_outgoing
leg disconnect leg_all
leg disconnect 25
leg disconnect $callId
leg disconnect [info-tag get evt_legs]
leg disconnect leg_incoming -i media_done_err
leg disconnect leg_incoming 47 -i accounting_conn_err
 

使用上の注意

指定したコール レッグが無効な場合や、指定したコール レッグのいずれかが接続に関与する(会議通信を行っている)場合、スクリプトが終了してエラーが出力され、呼はクローズします。

スクリプトは、ev_disconnected イベントを受け取ると、leg disconnect コマンドでレッグを消去するまで 15 秒間待ちます。15 秒後にタイマーが時間切れになると、スクリプトは終了し、コンソールにエラー メッセージが表示されます。このため、切断後にレッグが消去されていないという事態が避けられます。

leg disconnect -<iec> コマンドで IEC を指定して、さらに set iec 情報タグを使用すると、コール レッグに関連付けられる IEC が重複します。

leg disconnect_prog_ind

leg disconnect_prog_ind コマンドは、切断メッセージを指定された経過インジケータ値と一緒に指定されたレッグに送信します。

構文

leg disconnect_prog_ind {legID | info-tag} [-c <cause_code>][-p <prog_ind value>]

引数

legID:コール レッグの ID。

info-tag:1 つ以上のコール レッグにマッピングされるコール レッグ情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

-c<cause_code>:整数の ISDN 切断原因コード。形式は di-xxx または xxx のみで、xxxは ISDN 原因コードです。

-p <prog_ind value>:呼の経過を示す値。有効な値を以下に示します。

1:PROG_NOT_END_TO_END_ISDN

2:PROG_DEST_NON_ISDN

4:PROG_RETURN_TO_ISDN

8:PROG_INBAND

10:PROG_DELAY_AT_DEST

戻り値

なし

コマンド終了

即時

leg disconnect_prog_ind leg_incoming -c19 -p8
 

使用上の注意

呼を終了するアプリケーションは、着信レッグにアナウンスを再生する前に、
leg disconnect_prog_ind を挿入できます。

このコマンドは通常、接続状態に達する前の着信コール レッグで使用されます。発信コール レッグにこのコマンドを使用すると、エラーになるか、または PSTN スイッチが終了することにより予期しない動作が発生する可能性があります。すでに接続している着信コール レッグにこのコマンドを使用すると、エラーになるか、PSTN スイッチを発信することにより予期しない動作が発生する可能性があります。

leg facility

leg facility コマンドは、ファシリティ メッセージを発信します。

構文

leg facility {legID | info-tag} {-s ss_Info | -g gtd_handle | -c}

引数

legID:ファシリティ メッセージの送信先となるコール レッグ ID。

info-tag:1 つ以上のコール レッグにマッピングされるコール レッグ情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

-s ss_Info:ファシリティ メッセージを作成するためにスタックに渡されるパラメータを含む配列。

-g gtd_handle:指定された GTD ハンドルを使用して新しいファシリティを送信します。

-c:受信したファシリティ メッセージをそのまま転送します。受信したファシリティ メッセージを会議コール レッグに転送する場合に使用します。前のファシリティ メッセージに含まれている生メッセージが、新しいファシリティ メッセージにコピーされて更新されます。

戻り値

なし

コマンド終了

即時

set ssInfo (ssID) “ss_mcid”
leg facility leg_incoming -s ssInfo
 
object create gtd gtd_inr INR
object append gtd gtd_inr iri.1.inf 1
leg facility leg_incoming -g gtd_inr
 

使用上の注意

-s ss_info -g gtd_handle -c のいずれかのオプションを必ず指定してください。

-s ss_Info オプションを使用する場合、必須パラメータの ssID を設定してサービス タイプを指示する必要があります。迷惑呼の識別(MCID)メッセージを示す値は ss_mcid です。

leg proceeding

leg proceeding コマンドは、呼処理メッセージを着信コール レッグに送信します。ゲートウェイは、このメッセージを(コール レッグに基づいて)適切なプロトコル メッセージに変換して発信者に送信する役割を果たします。

構文

leg proceeding {legID | info-tag}

引数

legID:着信コール レッグの ID。

info-tag:1 つ以上のコール レッグにマッピングされるコール レッグ情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

なし

コマンド終了

即時

leg proceeding leg_incoming
 

使用上の注意

指定したコール レッグが着信コール レッグでない場合、このコマンドによって呼が消去されます。

leg_incoming が指定され、着信コール レッグが複数ある場合、まだ呼処理メッセージを受信していないすべての着信コール レッグに呼処理メッセージが送信されます。

指定したコール レッグの状態が原因で呼処理メッセージを受信できない(たとえば、コール レッグの状態が disconnecting である)場合、コマンドはエラーになります。

呼処理メッセージがすでに送信されている場合、このコマンドは無視されます。IVR のデバッグ機能が有効な場合(「スクリプトのテストとデバッグ」を参照)、コマンドが無視された旨が表示されます。

指定したコール レッグがすでに接続状態の場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

leg progress

指定されたレッグに経過表示メッセージを送信します。

構文

leg progress {legID | info-tag} [-p <prog_ind_value>] [-s <sig_ind_value>] [-g <GTDHandle>]

引数

legID | info-tag:経過表示メッセージの送信先となる着信レッグを示します。

-s <sig_ind_value>:呼の信号を示す値。この値はそのまま転送されます。

-p <prog_ind_value>:呼の経過を示す値。有効な値を以下に示します。

1(PROG_NOT_END_TO_END_ISDN)

2(PROG_DEST_NON_ISDN)

4(PROG_RETURN_TO_ISDN)

8(PROG_INBAND)

10(PROG_DELAY_AT_DEST)

-g <GTD handle>:以前に作成された GTD 領域へのハンドル。

戻り値

なし

コマンド終了

即時

leg progress leg_incoming -p 8 -g gtd_progress_handle
 

使用上の注意

呼を終了するアプリケーションは、着信レッグにアナウンスを再生する前に、leg progress を挿入できます。

指定したコール レッグがすでに接続状態の場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。


) 着信 ISDN コール レッグの場合、接続メッセージの前に setupack、proceeding、または alert メッセージを送信する必要があります。送信しないと、スクリプトは ev_disconnected イベントを受け取り、着信レッグは切断されます。


leg senddigit

指定されたコール レッグに対してディジットを送信します。

構文

leg senddigit {legID | info-tag} digit [-t duration]

引数

legID:ディジットを送信するコール レッグの ID。

info-tag :1 つ以上のレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

digit :1 つのディジット {0 ~ 9、A ~ D、*、#} を指定します。

-t duration :ディジットの持続時間をミリ秒で指定します。

戻り値

なし

例:

set digit 5
set duration 55
leg senddigit leg_outgoing $digit
or
leg senddigit leg_outgoing $digit -t $duration
 

使用上の注意

leg senddigit 動詞に指定できるのは、1 ディジットだけです。複数ディジットが指定されていると、構文エラーが生成されます。スクリプトが終了してコンソールにエラー メッセージが表示され、呼は消去されます。

指定するディジットは、0 ~ 9、A ~ D、*、# のいずれかである必要があります。これ以外が指定されると、ディジットは送信されず、デバッグ メッセージが出力されます。

デフォルトのディジット持続時間は 100 ミリ秒です。ディジット持続時間が指定されない場合は、デフォルト値が使用されます。

最小のディジット持続時間は 40 ミリ秒、最大のディジット持続時間は 4 秒です。最大持続時間は、長い間押された#に必要な持続時間の約 2 倍の長さです。指定された持続時間が 40 ミリ秒未満か、4 秒を超える場合、ディジット持続時間はデフォルト値にリセットされ、デバッグ メッセージが出力されます。

DTMF リレー H245 英数字モードの転送では、ディジット持続期間は転送されません。ディジット持続期間が TCL 動詞で指定されていて、ネゴシエートされた DTMF リレー モードの転送が H245 英数字の場合、ディジット持続期間は使用されません。

leg senddigit 動詞が実行され、ネゴシエートされた DTMF リレーが rtp-nte または cisco-rtp の場合、ディジット送信は失敗します。

ディジットのインバンド送信はサポートされていません。 leg senddigit が実行され、DTMF リレーがネゴシエートされていない場合、ディジット送信は失敗します。

leg sendhookflash

指定されたコール レッグに対してフックフラッシュを送信します。

構文

leg setupack {legID | info-tag}

引数

legID:フックフラッシュが生成されるコール レッグの ID。

info-tag :1 つ以上のレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

なし

使用上の注意

フックフラッシュは、シグナリング タイプとプラットフォームでサポートされていれば、IP コール レッグ、FXO ポート、および T1 CAS トランクに生成できます。

制約事項:

DTMF リレーがネゴシエートされていない場合、またはネゴシエートされた DTMF リレーが rtp-nte または cisco-rtp の場合、フックフラッシュ送信は失敗します。

フックフラッシュのインバンド送信はサポートされていません。

leg setup

leg setup コマンドは、指定した宛先番号へ電話をかけるようにシステムに要求します。

構文

leg setup {destination | array-of-destinations} callinfo [legID | info-tag] [-g <GTDHandle>] [-d <dialpeerHandle>]

引数

destination:宛先電話番号。

array-of-destinations:複数の宛先電話番号を含む配列。

callinfo:どのように電話をかけるかを指定したパラメータを含む配列。有効な値については、 set callinfo コマンドを参照してください。

legID:呼の確立に成功した場合に会議通信するコール レッグ ID。コール転送の場合、これは通常、ev_transfer_request イベントを受信したレッグと会議通信をしていたコール レッグです。このレッグは、どの会議通信にも参加していないレッグである必要があります。

info-tag:1 つの着信レッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

-g <GTD handle>:以前に作成された GTD 領域へのハンドル。

-d <dialpeerHandle>:確立に使用するダイヤル ピア ハンドルを指定します。

戻り値

なし

コマンド終了

コマンドが終了すると、スクリプトが ev_setup_done イベントを受け取ります。

set callInfo(alertTime) 25
leg setup 9857625 callInfo leg_incoming
set destinations(1) 9787659
set destinations(2) 2621336
leg setup destinations callInfo leg_incoming
 
set dest leg_outgoing
set dialpeer_handle new_handle
leg setup $dest callInfo -d $dialpeer_handle
 
set setupSignal(Subject) “Hotel Reservation”
set setupSignal(Priority) “urgent”
set setupSignal(X-ReferenceNumber) “1234567890”
set callInfo(protoHeaders) setupSignal
set destination “4085551234”
leg setup destination callInfo leg_incoming

使用上の注意

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

1 つの宛先番号が指定されている場合、leg setup コマンドはその宛先番号に電話をかけます。宛先の電話が鳴ると、着信コール レッグが(適宜、インバンドまたはアウトバンドで)呼び出されます。宛先の電話に誰かが出ると呼が接続され、leg setup コマンドが ev_setup_done イベントを戻します。ダイヤル ピア経由で呼が宛先まで到達できない場合、leg setup は次々と、その宛先に適合するダイヤル ピアをすべて試みます(これを「ロータリー ハンティング」といいます)。この時点で、leg setup コマンドはエラーになり、エラー コードが出力されます(呼び出しタイムアウトのステータス コードと共に ev_setup_done イベントが戻されます)。エラー コードの詳細については、「ステータス コード」を参照してください。

宛先番号が複数指定されている場合、leg setup コマンドは指定したすべての番号に同時に電話をかけます(すべての宛先の電話が同時に鳴ります)。最初の宛先の電話に誰かが出ると、その呼が接続され、残りの呼は切断されます(これを「ブラスト コーリング」 といいます)。このため、ev_setup_done イベントを受け取ったとき、infotag get evt_legs 情報タグ コマンドを発行すると、着信レッグが戻されます。

スクリプトでは、それぞれ異なるコール レッグ ID で複数の leg setup コマンドを起動することができます。特定のコール レッグ ID で呼の確立メッセージが発行されると、最初のコマンドが終了するまで、このコール レッグ ID で別の leg setup コマンドを発行することはできません。

呼の確立を実行したときに、そのコール レッグに対してプロンプトが再生中の場合、leg setup が起動して宛先の電話が鳴ります。ただし、プロンプトの再生が終了するまで、発信者にはリング トーンが聞こえません。プロンプトの再生中に宛先の電話に誰かが出ると、プロンプトが終了して呼も終了します。

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

leg setup コマンドで使用するレッグ ID では、会議通信を行わないでください。会議通信を行った場合、コマンドがエラーになり、スクリプトが終了します。

コマンドが正常終了すると、次の ID が戻されます。

legID:接続に関与する 2 つのレッグに割り当てられた一意の ID。着信レッグの ID は、着信レッグとして渡したものでないことがあります。この場合、渡した着信レッグは消去され、新しい着信レッグで会議通信が行われた可能性があります。これは例外のケースで、補足サービス処理や H.450 サービスが原因で発生します。

connectionID:この接続に割り当てられた一意の ID。この ID は、connection destroy コマンドで必要です。

上記の情報は、evt_legs および evt_connections 情報タグによって取得することができます。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

このコマンドがエラーになると、何も戻さないか、または 1 つのレッグ ID を戻します。着信レッグ ID が戻される場合は、渡された着信レッグが切断された可能性があります。これは例外のケースで、補足サービス処理や H.450 サービスが原因で発生します。

スクリプトで command terminate 動詞を発行して、保留中の呼の確立を終了することができます。詳細については、command terminate のセクションを参照してください。

leg setup は、[legID | info-tag] パラメータでダイアログが実行されているレッグを使用できません。

[legID | info-tag] は省略可能なパラメータです。TCL IVR アプリケーションでは、着信レッグを参照することなくレッグの確立を開始できます。これは、コールバック アプリケーションなどのアプリケーションでは便利な機能です。レッグの確立が正常に終了したら、アプリケーションは connection create 動詞を使用して新しいレッグを既存のレッグに接続できます。

destinationNum がない場合、<destination> が、発信ダイヤル ピアの選択に使用されます。destinationNum と <destination> の両方がある場合、<destination> が発信ダイヤル ピアの選択に使用されますが、destinationNum はシグナリング フィールドへの入力に使用されます。

destinationNum や originationNum に URL が含まれている場合、アプリケーションは URL に E.164 が含まれていれば抽出し、calledNumber および callingNumber フィールドにそれぞれ直接保存します。上記以外の場合、これらは通常どおりに動作します。これらのフィールドで使用できるのは、E.164 または sip:/tel: の URL だけです。別の URL 形式が使用された場合、アプリケーションは Unsupported Format エラーをスローします。

SIP メッセージ本文は、渡したり、アクセスしたりできません。

複数の SIP ヘッダーを TCL に設定する方法の例として次のようなものがあります。

set <array_name_xxx>(<header name>) <“header value”>
set <array_name_xxx>(<another header name>) <"header value">
...
set callinfo(protoHeaders) <array_name_xxx>
 

たとえば、次のヘッダーを設定して呼を確立するときに送信するとします。

From = abc@xyz.com
To = joe@big.com
Subject = "Hello"
 

TCL スクリプトではこれを次のように行うことができます。

# The array name “headers” can be any name you want
set headers (From) "blah@xyz.com"
set headers (To) "joe@big.com"
set headers (Subject) "Hello"
# Here, we set the array “headers” in the callInfo array, mimicking a two-dimensional array
set callInfo(headers) headers
 

続いて、これを呼の確立で次のように送信します。

leg setup $dest callinfo leg_incoming

leg setup_continue

leg setup_continue コマンドを使用すると、確立中にアプリケーションがシステムと対話できます。このコマンドを使用して、終端点アドレスへの確立を開始するか、イベントによる呼処理の中断後にシステムが操作を続行するように指示します。通常、アプリケーションは、アドレス解決の結果または呼信号を受け取った後にこの動詞を使用します。


) アプリケーションは、「handler terminate」動詞を使用して呼の確立を停止できます。


構文

leg setup_continue <command handle> [-a <endpointAddress | next>] [-d <dialpeerHandle>]
[-g <GTDHandle>] [-c <callInfo>]

引数

command handle :get evt_last_event_handle 情報タグから受け取ったコマンド ハンドラ。

-a <endpointAddress|next>:システムに、特定の終端点アドレスまたは次の終端点アドレスを使用して確立を開始するように指示します。初期アドレスは通常 1 次終端点のアドレスです。アプリケーションで、アドレス解決の結果を受け取った後に「next」を指定した場合、最初の(1 次)終端点のアドレスが使用されます。

-d <dialpeerHandle>:確立に使用するダイヤル ピア ハンドルを指定します。

-g <GTD handle>:以前に作成された GTD 領域へのハンドル。

-c <callInfo>:この省略可能なパラメータが使用された場合、アプリケーションは終端点確立に使用するために callInfo 配列を渡します。次のパラメータを終端点の確立ごとに更新できます。

originationNum

originationNumToN

originationNumPI

originationNumSI

詳細については、「set callinfo」を参照してください。

戻り値

なし

コマンド終了

このコマンドを使用して終端点アドレスへの確立を開始した場合、終了時にスクリプトは、確立が成功すれば ev_setup_done イベント、失敗すれば ev_disconnect イベントを受け取ります。

コマンドを使用し、イベントによる呼処理の中断後にシステムが操作を続行するように指示した場合、コマンドはただちに終了します。

leg setup_continue $commandHandle -a next -g gtd_alert_handle
 

使用上の注意

レッグの確立に関連付けられたコマンド ハンドルを取得するために、アプリケーションで get evt_last_event_handle 情報タグを使用できます。

アドレス解決が ar_000 以外のステータス コードで失敗した場合、leg setup_continue を使用しないでください。この場合、アプリケーションが別のダイヤル ピアを使用して新しい leg setup コマンドを発行する可能性があります。

callInfo 構造の別のフィールドが設定されていても、無視されます。

新しい callInfo パラメータ値は、変更されるまで後続の終端点の確立に引き続き使用されます。

ev_address_resolved イベントを代行受信した後に呼の確立を続けるには、-a <endpointAddress | next> を指定する必要があります。leg setup_continue にコマンド ハンドルだけが指定されている場合、システムでは、逆方向シグナリング イベントの代行受信後に、呼の確立が継続されているものと想定されます。

leg setupack

leg setupack コマンドは、指定した着信コール レッグに対して確立通知メッセージを送信します。


) 実際は、ISDN ステート マシンが確立通知を受け取ると着呼を接続します。


構文

leg setupack {legID | info-tag}

引数

legID:受け渡されるコール レッグの ID。

info-tag:1 つ以上の着信レッグにマッピングされるコール レッグ情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

なし

コマンド終了

即時

leg setupack leg_incoming
 

使用上の注意

TCL IVR アプリケーションで leg setupack コマンドを使用できるのは 1 回だけです。このコマンドを複数回使用したアプリケーションは中止されます。

指定したコール レッグが着信コール レッグでない場合、このコマンドによってコールが消去されます。

leg_incoming が指定され、着信コール レッグが複数ある場合、まだ通知されていないすべてのコール レッグに確立通知が送信されます。

leg setupack コマンドが着信 ISDN コール レッグに適用されると、基盤となる ISDN プロトコル スタックが proceeding メッセージ、続いて connect メッセージを発信側の ISDN スイッチに送信します。これは、音声アプリケーションがディジットを収集できるように音声パスを確立するために行われます。

指定されたコール レッグは、初期呼状態でなければなりません。setupack、proceeding、progress、alerting、connect のいずれかのメッセージが指定されたコール レッグに対してすでに送信されている場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

leg tonedetect

leg tonedetect コマンドは、呼の間、特定トーンの検出をイネーブルまたはディセーブルにします。

トーン検出がイネーブルになっていて、トーンが検出された場合、an ev_tone_detected イベントが生成されます。このイベントは、<Number Cycles> から算出された最小必要時間が経過した場合にだけ生成されます。要求されたトーン タイプごとに生成されるイベントは最大でも 1 つです。検出済みのトーン タイプに対して enable コマンドが再度発行されると、そのトーン タイプは再びイネーブルにされます。

構文

leg tonedetect {legID | info-tag} enable {tonetype} [<Number Cycles>]
leg tonedetect {legID | info-tag} disable <{tonetype}> <{ignoremintime}>
 

引数

legID:コール レッグの ID。

info-tag:1 つ以上の着信レッグにマッピングされるコール レッグ情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

tonetype:検出対象のトーン タイプ。

有効な値:cng(一連の CNG トーン)。

Number Cycles:ここに指定した回数のシングル トーン サイクルが連続すると ev_tone_detected が生成されます。この引数が指定されない場合、デフォルト値は 1 サイクルです。

ignoremintime:トーン検出に許可されている時間が十分ではないと警告するメッセージを抑制します。

戻り値

イネーブルの場合:

トーン検出とイベント生成に必要な期間(秒単位)を示す文字列か、エラーを示す文字列。最小必要時間は、その特定トーンに必要な最小時間に Number Cycles を乗算して計算されます。

ディセーブルの場合:

Tcl_OK または Tcl_ERROR。必要最小時間が経過する前にこのコマンドが呼び出され、かつ ignoremintime が指定されていない場合は、エラーになります。たとえば、必要最小時間が 7 秒であるのに、3 秒経過したところでこのコマンド呼び出された場合、ignoremintime が指定されていれば、トーン検出をディセーブルにできます。

set MIN_CNG_DETECTION_TIME [leg tonedetect leg_incoming enable cng]
leg tonedetect leg_incoming disable cng ignoremintime
 

コマンド終了

なし

使用上の注意

なし

leg transferdone

このコマンドは、コール レッグでのコール転送のステータスを示します。ステータスに基づいて、そのコール レッグに切断メッセージまたはファシリティ メッセージを送信します。

構文

leg transferdone {legID | info-tag} transferStatusCode

引数

legID:コール レッグの ID。

transferStatusCode:成功/失敗。有効な値のリストについては、「転送ステータス」を参照してください。

戻り値

このコマンドは、次のいずれかの値を戻します。

0(成功):成功

1(失敗、サポート対象外):指定されたレッグに関連付けられたシグナリング プロトコルでは、この情報を送信できません。これによってスクリプト エラーがトリガーされることはありません。

leg transferdone leg_incoming ts_011
set retcode [leg transferdone leg_incoming ts_000]
 

コマンド終了

戻り値が「成功」の場合、コマンドは ev_disconnected をスクリプトに送信して終了します。

使用上の注意

指定されたコール レッグがこの操作には無効な場合、スクリプトはエラーを出力して終了し、呼はクローズします。

leg vxmldialog

leg vxmldialog コマンドは、指定されたレッグで VoiceXML ダイアログを開始します。ダイアログをレッグに送るためのマークアップは、URI または 文字列パラメータでの実際のマークアップで指定されます。スクリプトでは、変数のリストをパラメータとして渡すこともできます。これらの変数のコピーを、VoiceXML ダイアログ セッションで使用できます。

VoiceXML ダイアログをレッグで実行中、command terminate および leg vxmlsend コマンドを除き、そのレッグでそのほかの操作やコマンドは許可されません。VoiceXML ダイアログが終了すると、正常終了と異常終了のどちらの場合でも、ev_vxmldialog_done イベントがスクリプトで受信され、終了の理由を示す該当ステータス コードを evt_status 情報タグを使用して取得できます。

-u および -v オプションの両方が指定されている場合、インライン VoiceXML ダイアログが -v オプションで実行され、-u URI をデフォルトのベース URI としてインライン コードがそこからダウンロードされたかのように使用します。VoiceXML ダイアログは、leg vxmldialog コマンドによってレッグで開始された VoiceXML セッション全体を参照します。これは、最初のインライン ドキュメントまたは URI から始まり、対話の流れの中で複数のドキュメントに及ぶこともあります。

TCL アプリケーション内から個々のコール レッグで VoiceXML ダイアログ セグメントを開始することをハイブリッド スクリプトといいます。ハイブリッド スクリプトは、アプリケーションの受け渡しの概念(コール レッグを終了して別のアプリケーションに受け渡し、レッグの制御を失う)とは異なります。呼の受け渡しの詳細については、「TCL での呼の受け渡し」を参照してください。ハイブリッド スクリプトの詳細については、「TCL/VoiceXML ハイブリッド アプリケーション」を参照してください。

構文

leg vxmldialog <legID> -u <dialog-uri> [-p <param-array>] [-v <dialog-markup-string>]

引数

legID:受け渡されるコール レッグの ID。

dialog-uri:ダイアログ マークアップの取得元となる URI、または -v オプションと一緒に使用される場合にベース URI として使用される URI。

param-array:ダイアログ マークアップに渡されるパラメータのリストを含む TCL 配列
VoiceXML セッションは、これらのパラメータに com.cisco.params.xxxxxx(xxxxxx は TCL 配列の指数)の形式のセッション変数を使用してアクセスできます。TCL 配列変数の値は、VoiceXML アプリケーションでテキスト文字列として使用できます。唯一の例外は、TCL 配列変数に、メモリ内の音声クリップを示すメモリ ram://URI が含まれる場合です。この場合、音声クリップは VoiceXML ドキュメントで音声クリップ オブジェクトとして使用できます。

dialog-markup-string:レッグで開始するダイアログを指定する VoiceXML マークアップを含む文字列。

戻り値

なし

コマンド終了

ev_vxmldialog_done

leg vxmldialog leg_incoming
 

使用上の注意

VoiceXML ダイアログは、 command terminate コマンドを使用して終了できます。

ダイアログ コマンドがレッグで実行中、medial play、leg collectdigits、leg setup など、別の TCL IVR コマンド操作は許可されません。これらのコマンドが実行されると、アプリケーションはエラーを出力し、TCL IVR スクリプト エラーで終了します。VoiceXML ダイアログも終了します。

<transfer> タグは、VoiceXML がダイアログ モードで実行される場合はサポートされません。VoiceXML ダイアログが <transfer> タグを実行すると、error.unsupported.transfer イベントが VoiceXML インタプリタにスローされます。

VoiceXML ダイアログから、com.cisco.ivr.script.sendevent オブジェクトを使用して TCL にイベントを送信できます。sendevent オブジェクトの詳細については、「SendEvent オブジェクト」を参照してください。

leg vxmlsend

leg vxmlsend コマンドは、レッグで実行中の VoiceXML ダイアログでイベントをスローします。イベントは、 <event-name> の形式で VoiceXML ダイアログにスローされます。イベントには、 <param-array> で指定したパラメータを付属させることができます。TCL 結合配列には、イベントと一緒にダイアログに送信するパラメータのリストが含まれています。配列の指数は VoiceXML ダイアログからアクセスできるパラメータの名前で、値は VoiceXML ダイアログからアクセスできるパラメータの値です。

これらのパラメータは、variable_message によって VoiceXML スクリプトから使用できます。また、TCL 配列の指数すべてをメッセージ オブジェクトのサブ要素として含むオブジェクトでもあります。レッグで実行中の VoiceXML ダイアログがない場合、このコマンドはそのまま正常に終了し、無視されます。

構文

leg vxmlsend <legID> <event-name> [-p <param-array>]

引数

legID:受け渡されるコール レッグの ID。

event-name:VoiceXML ダイアログにスローされるイベントの名前。

param-array:実行中の VoiceXML ダイアログに渡すパラメータのリストを含む TCL 配列。VoiceXML セッションは、スローされた VoiceXML イベントがキャッチ ハンドラによってキャッチされると、これらのパラメータにアクセスできます。パラメータには、_message.params.xxxxxx 変数を使用してアクセスできます。この変数はキャッチ ハンドラに適用範囲が設定されているため、キャッチ ハンドラ内で使用できます。VoiceXML アプリケーションでは、TCL 配列変数の値をテキスト文字列として使用できます。唯一の例外は、TCL 配列変数にメモリ内の音声クリップを示すメモリ ram://URI が含まれる場合です。この場合、音声クリップは VoiceXML ドキュメントで音声クリップ オブジェクトとして使用できます。

戻り値

なし

コマンド終了

即時

leg vxmlsend leg_incoming $event-name
 

使用上の注意

なし

log

log コマンドは、syslog メッセージを発信します。

構文

log -s <CRIT | ERR | WARN | INFO> <message text>

引数

-s <CRIT | ERR | WARN | INFO>:メッセージのシビラティ。

CRIT:致命的

ERR:エラー メッセージ(デフォルト)

WARN:警告メッセージ

INFO:情報メッセージ

message text:メッセージの本文。スペースまたは特殊文字を含むテキストは二重引用符または波カッコで囲みます。

戻り値

なし

コマンド終了

即時

set msgStr “MCID request succeeded”
append msgStr [clock format [clock seconds]]
log $msgStr
 

使用上の注意

log コマンドは、Cisco IOS メッセージ ファシリティを使用してメッセージを送信します。致命的メッセージを除き、IVR アプリケーション ログ メッセージの送出には、ランク制限が適用されます。同じメッセージの最小送出間隔は次のようになります。

ERR:1 秒

WARN:5 秒

INFO:30 秒

アプリケーションが同じシビラティの log コマンドを発行すると、メッセージは同じものと見なされます。

ランク制限を実行する場合、Cisco IOS メッセージ ファシリティでは、すべての IVR アプリケーションによる送出が検討されます。メッセージにランク制限を適用しない場合は、CRIT シビラティ レベルを使用してください。

メッセージ テキストは、できるだけ明快で正確なものにする必要があります。オペレータがメッセージから実施すべき処理を判断できなければなりません。

システムによってメッセージの後に改行文字が付加されるため、改行文字を使用する必要はありません。

エラーのレポートには、log メッセージ ファシリティを使用します。デバッグ目的には、puts コマンドを使用します。

ログ メッセージは、バッファ、別の TTY、または別のシステムのログ収集サーバに送信できます。設定オプションについては、Cisco IOS Troubleshooting and Fault Management logging command を参照してください。

コンソールに大量のログ メッセージを送信すると、システム パフォーマンスが大幅に低下するおそれがあります。コンソールに送信されるログ メッセージは、logging console <level> CLI コマンドを使用して抑制することもできます。または、logging rate-limit console CLI コマンドを使用してコンソール出力をランク制限できます。コンソールへのロギングをまとめてディセーブルにするには、ロギングがすでにバッファまたは syslog サーバに送られている場合は特に、no logging console コマンドを使用します。

media pause

media pause コマンドは、指定のコール レッグに対して現在再生中のプロンプトを一時停止します。

構文

media pause {legID | info-tag}

引数

legID:プロンプトの再生を一時停止するコール レッグの ID。

info-tag:1 つ以上のレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

なし

コマンド終了

このコマンドは即時終了します。ただし、スクリプトは、コマンドが失敗した場合に ev_media_done イベントを受け取れるようにしておく必要があります。ev_media_done イベントは、このコマンドが成功した場合は生成されません。

media pause $legID
 

使用上の注意

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

media play

media play コマンドは、指定のコール レッグに対して指定のプロンプトを再生します。

構文

media play {legID | info-tag} {<url> | <token>}+

引数

legID:プロンプトを再生するコール レッグの ID。

info-tag:1 つのレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

url:再生するプロンプトの URL。url-list の値は、各プロンプトの URL のリストまたは文字列のリストで、それぞれ URL の集合です。URL によって、フラッシュ メモリ、FTP サーバ、TFTP サーバからのプロンプトや、RTSP プロンプトを示すことができます。文字列にはダイナミック プロンプトを指定し、この場合、再生するプロンプトおよび言語を指定するための特別な表記法に従ってダイナミック プロンプトを記述します。下記の「使用上の注意」を参照してください。

token:HTTP コマンド、geturl、または media record コマンドから戻されます。token は、RAM から直接再生される録音を示します。token がそのほかの録音 URL を示している場合、URL は音声を取得するために使用されます。


) 録音の再生から作成されたメディア コンテンツはキャッシュに格納されません。


geturl から戻された token を使用するには、コンテンツ タイプが「audio/*」でなければなりません。トークンに関連付けられている statearray にコーデック要素が定義されている場合、本文は指定されたコーデックの未加工またはヘッダーのない音声として扱われます。コーデック要素が定義されてない場合、本文は .au または .wav ファイルに適合するように解析されます。.au または .wav ヘッダーが含まれていない場合、メディアの再生は失敗します。

@C<string>:英数字を 1 つずつ再生します。たとえば、@Ccsco は「C」、「S」、「C」、「O」と再生されます。入力がサポートされるのは、印刷可能な ASCII 文字セットです。

%Wday_of_week:曜日プロンプトを再生します。たとえば、%w1 は「Monday」と再生されます。1 ~ 7 の値が、月曜日から日曜日を表します。

%Ttime_of_day:ISO 標準時刻形式を受け入れて、時刻を再生します。たとえば、%T131501 は「one」、「fifteen」、「pm」、「one」、「second」と再生されます。サポートされる形式は、hhmmss、hhmm、および hh です。hh は時、mm は分、ss は秒を表します。時は 24 時間形式です。

%Ddate:ISO 標準日付形式を受け入れて、日付を再生します。サポートされる形式は、
CCYYMMDD、CCYYMM、CCYY、--MMDD、--MM、または ---DD です。CC は世紀、YY は年、MM は月、DD は日を表します。たとえば、%D20000914 は「year」、「two」、「thousand」、「september」、「fourteenth」、%D199910 は、「year」、「nineteen」、「ninety」、「nine」、「october」、%D2001 は「year」、「two」、「thousand」「one」、%D--0102 は「January」、「second」、%D--12 は「december」、%D---31 は「thirty」、「first」と再生されます。

戻り値

なし

コマンド終了

media play コマンドが終了すると、スクリプトは ev_media_done イベントではなく、ev_synthesizer イベントを受け取ります。下位互換性のために、ゲートウェイでは引き続き ev_media_done イベントがサポートされますが、今後、再生終了の検出には ev_synthesizer を使用することをお勧めします。

media play leg_incoming @C$alpha
media play leg_incoming @C$ascii
media play leg_incoming @C\ !\"#\$%&'()*+,-./0123456789:\;<=>?@\[\\]^_`{|}~
media play leg_incoming %D2001
media play leg_incoming %D201211
media play leg_incoming %D20300830
media play leg_incoming %D---01 %D---02 %D---03 %D---04 %D---05 %D---06 %D---07 %D---08 %D---09 %D---10 %D---11 %D---12 %D---13 %D---14 %D---15 %D---16 %D---17 %D---18 %D---19 %D---20 %D---30
media play leg_incoming %D---21 %D---22 %D---23 %D---24 %D---25 %D---26 %D---27 %D---28 %D---29 %D---31
media play leg_incoming %T01 %T02 %T03 %T04 %T05 %T06 %T07 %T08 %T09 %T10 %T11 %T12 %T13 %T14 %T15 %T16 %T17 %T18 %T19 %T20 %T21 %T22 %T23 %T00
media play leg_incoming %T24
media play leg_incoming %W1 %W2 %W3 %W4 %W5 %W6 %W7
 
set audio_file http://prompt-server1/prompts/en_welcome.au
media play leg_incoming $audio_file

使用上の注意

media play コマンドを発行するときにプロンプトがすでに再生中の場合、最初のプロンプトが終了して 2 つめのプロンプトが再生されます。

media play コマンドは、URL またはプロンプトのリストに従ってプロンプトを順番に再生し、1 つのプロンプトを構成します。プロンプトの各構成要素は、完全 URL にするか、TTS(Text-to-Speech)表記にすることができます。プロンプトの有効な構成要素は次のとおりです。

URL--音声ファイルの格納場所。URL にはコロンが含まれていることが必要です。コロンが含まれていない場合、そのコードはファイル名として扱われ、.au が付加されます。

name.au:音声ファイル名。現在使用されている言語と音声ファイル格納場所の値が、name.au に追加されます。ファイル名にはコロンを含むことができません。コロンを含む場合、URL として扱われます。

%anum:通貨合計(米セント)。123 を指定した場合の値は $1.23 です。最大値は 99999999 で、$999,999.99 を示します。

%tnum:時間(秒)。最大値は 999999999 で、277,777 時間 46 分 39 秒を示します。

%dday_time:曜日と時刻。形式は DHHMM です。この場合、D は曜日を表し、1=月曜日、7=日曜日です。たとえば、%d52147 は「Friday, 9:47 PM.」と再生します。

%stime:無音を再生する時間(ミリ秒)。

%pnum:電話番号を再生します。最大桁数は 64 桁です。「the number is」などのテキストは挿入されませんが、数桁おきにポーズが挿入されます。何桁おきかは、共通のナンバリング プランを前提とします。たとえば、18059613641 は 1 805 961 3641 として読み取ります。数桁おきに挿入されるポーズは 500 ミリ秒です。

%nnum:ポーズを挿入しないでディジットの文字列を再生します。

%iid:アナウンスを再生します。id は、2 桁であることが必要です。ピリオド(.)を除くすべての文字を使用できます。アナウンスの URL は、_announce_<id>.au に言語と音声ファイル格納場所の各フィールドが付加されたものになります。

%clanguage-index--プロンプトの残りで使用する言語。現在の media play コマンドにおける、プロンプトの残り部分の言語を変更します。次の media play コマンドの言語や、使用中の言語は変更しません。

TTS 表記法に引数が指定されない場合、その表記法は IVR によって無視され、エラーはレポートされません。

%c にヌル引数を指定した media play では、有効なプロンプトがあり、%c にヌル文字列が指定された場合、プロンプトの再生にはデフォルトの言語が使用されます。以前は、スクリプトは中止されていました。

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

情報タグで指定されたコール レッグが複数のレッグにマッピングされる場合は、スクリプトが終了してコンソールにエラー メッセージが送信され、呼は消去されます。leg_all の使用は、複数レッグにマッピングされる可能性が高くなるためお勧めしません。

media play コマンドは、接続に関与するレッグには適用できません。会議レッグに対して実行されると、スクリプトは「Leg is in Conferenced state」のメッセージを表示して中止されます。接続を破棄してから、media play を実行して再び接続を確立してください。

@Ccharacters、%Wday_of_week、%Ttime_of_day、%Ddate という、新しく定義されたダイナミック プロンプトを使用するには、TCL ベースの言語スクリプトを使用した複数言語のサポートをイネーブルにする必要があります。『 Enhanced Multi-Language Support for Cisco IOS Interactive Voice Response 』マニュアルの call language voice コマンドを参照してください。この新しいダイナミック プロンプトでは、英語版だけがサポートされています。

media record

media record コマンドは、指定されたコール レッグで受信した音声を録音し、URL で指定された場所に保存します。

構文

media record {legID | info-tag} [-p <recordInfo>] [<url>]

引数

legID:音声が録音されるコール レッグの ID。

info-tag:1 つのレッグだけに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

-p <recordInfo>:次のいずれかを含む TCL 配列。

codec:録音中に使用するコーデックを指定するための整数値。有効な値は次のとおりです。

2:voipCodecG726r16

3:voipCodecG726r24

4:voipCodecG726r32

5:voipCodecG711ulaw

6:voipCodecG711Alaw

7:voipCodecG728

8:voipCodecG723r63

9:voipCodecG723r53

10:voipCodecGSM

11:voipCodecGSMefr

12:voipCodecG729b

13:voipCodecG729ab

14:voipCodecG723ar63

15:voipCodecG723ar53

16:voipCodecG729IETF

finalSilence:最後の無音をミリ秒で指定します。0 は最後の無音がないことを示します。

範囲:0 ~ MAXINT

デフォルト:0

dtmfTerm:DTMF キーで録音を終了します。

enable:DTMF キーによる録音の終了をイネーブルにします。

disable:DTMF キーによる録音の終了をディセーブルにします。

デフォルト:enable

maxDuration:録音できる最大持続時間をミリ秒で指定します。0 は設定された上限に達したら録音が終了することを示します。

範囲:0 ~ MAXINT

デフォルト:0

maxMemory:録音できる最大メモリをバイトで指定します。0 は設定されたセッションの上限に達したら録音が終了することを示します。

範囲:0 ~ MAXINT

デフォルト:0

fileFormat:許容されるファイル形式。有効な値を以下に示します。

au:Sun ファイル形式

wav:wav ファイル形式

none:未加工の音声(ファイル ヘッダーが追加されない)

デフォルト:au

beep:録音する前に電子音を再生します。有効な値を以下に示します。

nobeep:録音する前に電子音を再生しない

beep:録音する前に電子音を再生する

デフォルト:nobeep


) これらの値のいずれかが有効でない場合、media record 動詞はエラーになります。


url:音声の録音先となる対象ファイルの場所。有効な値は次のとおりです。

rtsp:rtsp サーバが録音をサポートしている場合、rtsp サーバに音声を録音します。

tftp:tftp サーバに録音します。

flash:フラッシュに録音します。

http:http サーバに録音します。

ram:メモリに録音します。

URL が指定されていない場合は、RAM への録音が想定されます。戻されたトークンが録音を表します。このトークンを使用して録音を再生したり、録音に関する情報を取得したりできます。

戻り値

録音で作成されたメディア コンテンツを記述するトークン。録音に関する情報を取得するための TCL 配列として使用できます。次の構成を使用して、使いやすい配列変数を作成できます。

upvar #0 $token myrecording
 

次の配列の要素が戻されます。

url:録音の URL が含まれます。

duration:録音の長さ(ミリ秒単位)が保存されます。

totalsize:録音のサイズ(バイト単位)が含まれます。

type:音声ファイルのコンテンツ タイプが含まれます。有効な値を以下に示します。

audio/basic

audio/wav

body:実際の音声データへのポインタ。

コマンド終了

指定した持続時間が経過してアプリケーションが media stop コマンドを発行した後、または DTMF によって録音が終了した場合、スクリプトは ev_recorder イベントを受け取ります。録音が leg disconnect コマンドによって終了した場合、スクリプトが ev_media_done イベントを受け取ることはなく、レッグの ev_disconnected イベントだけを受け取ります。録音が正常に終了すると、URL に指定された場所でアクセスできます。

録音のステータスには、ev_media_done イベントを受け取った後に、infotag get evt_status を使用してアクセスできます。

media seek と media pause は、メディア録音に影響しません。

有効な値を以下に示します。

ms_101:録音に失敗しました。

ms_103:URL が無効です。

ms_105:dtmfKey での終了により録音が停止しました。

ms_106:最大許容時間に達したため録音が停止しました。

ms_107:最大許容メモリに達したため録音が停止しました。

ms_109:無音タイムアウトにより録音が停止しました。

set recordInfo(codec) g711ulaw
set recordInfo(finalSilence) 0
set recordInfo(dtmfTerm) enable
set recordInfo(maxDuration) 5000
set recordInfo(fileFormat) au
set recordInfo(beep) nobeep
set url ram
media record leg_incoming $recordInfo $url
 

使用上の注意

指定したコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

情報タグで指定されたコール レッグが複数のレッグにマッピングされる場合は、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。leg_all の使用は、複数レッグにマッピングされる可能性が高くなるためお勧めしません。

指定されたコール レッグがすでに録音中の場合、スクリプトは、media record が重複して呼び出されたことによるエラーを示す ev_media_done イベントを受け取ります。最初の録音が終了すると、スクリプトはもう 1 回 ev_media_done イベントを受け取ります。

指定されたコール レッグが会議通信を行っている状態にあっても問題ありません。この場合、指定されたレッグから受信した音声だけが録音されます。

1 つのコール レッグで再生と録音を同時に行うことはできません。同時に試行すると、予期しない動作または望ましくない動作が発生する可能性があります。

media resume

media resume コマンドは、指定のコール レッグに対して現在一時停止されているプロンプトの再生を再開します。

構文

media resume {legID | info-tag}

引数

legID:プロンプトの再生を再開するコール レッグの ID。

info-tag:1 つ以上のレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

なし

コマンド終了

このコマンドは即時終了します。ただし、スクリプトは、コマンドが失敗した場合に ev_media_done イベントを受け取れるようにしておく必要があります。ev_media_done イベントは、このコマンドが成功した場合は生成されません。

media resume $legID
 

使用上の注意

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

media seek

media seek コマンドは、現在再生中のプロンプトに対して相対検索を行います。このコマンドによって、指定の秒数先までプロンプトのメッセージが前送りされます。

構文

media seek {legID | info-tag} time-in-seconds

引数

legID:コール レッグの ID。

info-tag:1 つ以上のレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

time-in-seconds:前方検索する秒数。負の数を指定すると、プロンプトのメッセージが後戻しされます。

戻り値

なし

コマンド終了

このコマンドは即時終了します。ただし、スクリプトは、コマンドが失敗した場合に ev_media_done イベントを受け取れるようにしておく必要があります。ev_media_done イベントは、このコマンドが成功した場合は生成されません。

media seek $legID +25
media seek $legID -10
 

使用上の注意

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

このコマンドは、RTSP プロンプトに対してのみ有効です。現在再生中のプロンプト リストに RTSP ベースでないプロンプトがある場合、このコマンドは無効になります。

プロンプトの残り時間を超える秒数を指定した場合、プロンプトの最後まで検索が行われ、スクリプトが ev_media_done イベントを受け取ります。

media stop

media stop コマンドは、指定のコール レッグに対して現在再生中のプロンプトを停止します。

構文

media stop {legID | info-tag}

引数

legID:プロンプトを停止するコール レッグの ID。

info-tag:1 つ以上のレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

戻り値

なし

コマンド終了

即時。ただし、停止する前にプロンプトが終了した場合、スクリプトは ev_media_done イベントを受け取ります。

media stop $legID
 

使用上の注意

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

modulespace

modulespace コマンドを使用すると、モジュール空間の作成、アクセス、および削除を可能にし、その中でモジュールがコードを実行できます。

構文

modulespace new arg
modulespace terminate arg
modulespace listen arg
modulespace unlisten arg
modulespace return final arg
modulespace return interim arg
modulespace event intercept arg
modulespace event consume arg
modulespace children module-handle
modulespace code script
modulespace current
modulespace eval module-handle arg arg
modulespace exists module-handle
modulespace inscope module-handle arg arg
modulespace parent
 

引数

modulespace new <context-string>:モジュール空間を作成して、新しいサブモジュールを作成およびインストールし、その中でサブモジュールを実行できるようにします。新しいモジュール空間は、親モジュール空間の下に作成されます。このモジュール空間では、既存の fsm define コマンドによって初期化されるサブ ステート マシンを実行できます。modulespace new コマンドは、module-handle を新しく作成されたモジュール空間に戻します。モジュール空間を作成すると、関連するインタプリタに変数の名前空間も作成されます。この変数の名前空間は、モジュール空間の作動中は常に作動します。

モジュール空間とその名前空間は、定義された modulespace コマンドを使用して起動されます。これらの modulespace コマンドは、対応する namespace コマンドによく似ており、それぞれのセクションで説明されているように制限があります。context-string の値は、ev_module_event や ev_module_done イベントなど、このモジュールで生成されるすべてのイベントで使用できます。このコンテキスト文字列は、このモジュールに関連するコンテキスト情報(データ構造の名前やハンドル、またはこのようなイベントで呼び出すコールバック関数など)を提供するために使用できます。この情報には、evt_module_context 情報タグを使用してモジュール イベントを処理するときに、親モジュール空間でアクセスできます。

modulespace terminate <module-handle>:このコマンドは、作動しているモジュール空間の終了を開始します。モジュール空間が終了すると、そのリスナーは ev_module_done イベントを受け取ります。

modulespace listen <leg-id | connection-id>:このコマンドは、モジュール空間のリッスン リストにレッグまたは接続オブジェクトを追加します。つまり、レッグまたはコンテキストに関連付けられているイベントはすべて、このモジュールで確認されてから親モジュールで確認されます。そのため、このモジュールは機能を実装する処理を実行できるだけでなく、親モジュールにこのイベントを確認させるか、またはイベントを消費するのか、親からフィルタ処理するのかを決定できます。このようなモジュールをインストールしてオブジェクトをリッスンする場合、モジュールは特定の順番で追加されます。また、システムがそのオブジェクトに関するイベントを受け取ったとき、イベントは、検査のためにオブジェクトのリッスン リストにあるモジュール に 1 つずつ送信されます。現在のモジュールによってすでにリッスン中のレッグでリッスンを行っても問題はなく、何の操作も行われません。

modulespace unlisten <leg-id | connection-id>:このコマンドは、modulespace listen コマンドと逆の操作を実行します。指定されたオブジェクトのリッスン リストからモジュールを削除します。このコマンドの実行後、オブジェクトに関連付けられたイベントすべてがこのモジュールに送信されなくなります。現在のモジュールによってリッスンされていないレッグでリッスンの解除を行っても問題はなく、何の操作も行われません。

modulespace return final <param-array>:このコマンドを実行すると、モジュールの実行が終了し、ev_module_done イベントがコマンドを起動した親モジュールに送られます。この処理では、モジュールは現在リッスン中のすべてのオブジェクトから削除され、オブジェクトの戻りリストに追加されます。親モジュールは、ev_module_done イベントを受け取ると、このリストにアクセスできます。これらのオブジェクトには、親モジュールから evt_legs および evt_connections 情報タグを使用してアクセスできます。

このコマンドはまた、TCL の <param-array> 変数またはオブジェクトを現在のモジュール空間から定義解除または削除し、親モジュールに ev_module_done イベントと一緒に渡します。<param-array> 内の情報は、ev_module_done イベントを処理するときに evt_params 情報タグを使用して親モジュール空間でアクセスできます。この情報タグは、<param-array> 情報のエイリアスを親モジュール空間内に作成し、親モジュールからアクセスできるようにします。ev_module_done イベントを受け取ったモジュールは、このイベントを生成したモジュール ハンドルに evt_module_handle 情報タグを使用してアクセスできるようになります。


) modulespace return final コマンドは、終了中のモジュールのモジュール空間から実行する必要があります。モジュール自身がクリーンアップを実行するのは孤立した場合だけです。モジュールは、別のオブジェクトやモジュールを一切リッスンしておらず、AAA、タイマー、media コマンド、HTTP 要求など、未処理のイベントがない場合に孤立と分類されます。レッグが disconnect イベントを受け取り、一定時間内にアプリケーションによって切断されなかった場合、安全タイマーがクリーンアップ イベントを開始し、切られた呼とそれに関連付けられたモジュール、オブジェクト、リソースのすべてを消去します。


modulespace return interim <module-sub-event-name> <param-array>:このコマンドを実行すると、中間の ev_module_event イベントが発生します。このイベントは、コマンドが実行されたモジュールによって生成され、現在のモジュールを起動した親モジュールによって受け取られます。 ev_module_event イベントを受け取ったモジュールは、このイベントを生成したモジュール ハンドルに evt_module_handle 情報タグを使用してアクセスできるようになります。また、evt_module_subevent 情報タグを使用して、特定のモジュール サブイベント名にもアクセスできます。

親モジュールが ev_module_event イベントを処理するとき、<param-array> 内の情報にもアクセスできます。親モジュールは、この情報に evt_params 情報タグを使用してアクセスできます。この情報タグには、<param-array> 情報のエイリアスを作成して、親モジュール空間内でアクセスできるようにします。


) このコマンドは、中間イベントを生成するモジュールのモジュール空間から実行する必要があります。


modulespace event intercept:このコマンドを実行すると、イベントは親モジュール空間の代わりに現在のモジュール空間によって代行受信されます。このモジュールによって処理されている現在のイベントは、現在のモジュールがこのイベントに属するオブジェクトをリッスンしていなくても、現在のモジュールの親に送信されます。このコマンドを実行しないと、イベントはこのオブジェクトをリッスンしているすべてのモジュールにリッスンしている順番で送信されます。


) このコマンドは、現在のイベントを処理しているモジュールのモジュール空間内から実行する必要があり、別のモジュール空間から実行すると失敗します。指定がない場合、デフォルトで処理が続行されます。


modulespace event consume:このコマンドを実行すると、イベントが現在のモジュールによって消費されます。処理中の現在のイベントは終了して解放され、このイベントが属するオブジェクトをリッスンしていても別のモジュールには送信されません。このコマンドを実行しないと、イベントはこのオブジェクトをリッスンしているオブジェクトすべてに、リッスンしている順番で送信されます。


) このコマンドは、現在のイベントを処理しているモジュールのモジュール空間内から実行する必要があり、別のモジュール空間から実行すると失敗します。指定がない場合、デフォルトで処理が続行されます。


modulespace children module-handle:モジュール空間 module-handle に属するすべての子モジュール空間のハンドルのリストを戻します。module-handle が指定されないと、現在のモジュール空間の子が戻されます。

modulespace code script:現在のモジュール空間コンテキストを、後のスクリプトの実行のためにキャプチャします。新しいスクリプトが戻されますが、その中で script は modulespace code コマンド内にラップされています。新しいスクリプトには 2 つの重要なプロパティがあります。まず、スクリプトはどのモジュール空間内でも評価が可能で、script が現在のモジュール空間(modulespace code コマンドが起動された場所)で評価されます。次に、生成されたスクリプトに追加の引数を付加し、script に追加の引数として渡すことができます。たとえば、set script [modulespace code {foo bar}] コマンドがモジュール空間 module-x で起動されたとします。すると、script の値が正しく渡されたと想定され、どのモジュール空間でも eval "$script x y" を実行でき、modulespace eval module-x {foo bar x y} コマンドと同じ結果が得られます。適用範囲が設定されたコマンドが、コマンドとそのモジュール空間コンテキストを後で正しく実行できるような方法でキャプチャします。

modulespace current:現在のモジュール空間のモジュール ハンドルを戻します。

modulespace eval module-handle arg arg...:module-handle から参照されるモジュール空間を作動させて、そのコンテキストのコードを評価します。複数の arg 引数が指定された場合、eval コマンドの場合と同様に、各引数は間にスペース 1 文字をはさんで連結され、その結果が評価されます。

modulespace exists module-handle:module-handle が現在のコンテキストで有効なモジュール空間である場合は 1 を戻し、それ以外の場合は 0 を戻します。

modulespace inscope module-handle arg arg ...:特定のモジュール空間のコンテキストでスクリプトを実行します。このコマンドは、直接使用しないでください。このコマンドの呼び出しは、アプリケーションが modulespace code コマンドを使用してコールバック スクリプトを作成し、コンテキスト サブモジュールとして提供する場合に暗黙的に生成されます。

modulespace inscope コマンドは、lappend セマンティックがあり、モジュール空間がすでに存在しなければならないという点を除いて、modulespace eval コマンドによく似ています。最初の引数をリストとして扱い、2 つめ以降の引数があれば、最後に適切なリスト要素として追加します。modulespace inscope module-handle a x y z コマンドは、modulespace eval module-handle [concat a [list x y z]] に相当します。多くのコールバック スクリプトは実際にはプレフィックスであるため、この lappend セマンティックは重要です。

modulespace parent:現在のモジュール空間の親モジュール空間のモジュール ハンドルを戻します。

戻り値

なし

コマンド終了

即時

modulespace new leg_incoming
modulespace terminate leg_incoming
modulespace listen leg_incoming
modulespace unlisten leg_incoming
modulespace return final PARAMgood|PARAMnull
modulespace return interim an-event PARAMgood|PARAMnull
modulespace event intercept leg_incoming
modulespace event consume leg_incoming
modulespace children $modHandle
 
set script [modulespace code {foo bar}]
modulespace code $script
 
modulespace current
modulespace eval module-x {foo bar x y}
modulespace exists $modHandle
modulespace inscope $modHandle $modScript
modulespace parent
 

使用上の注意

なし

object create dial-peer

<peer_handle_spec> をハンドル名のプレフィックスとして使用し、ダイヤル ピア ハンドルのリストを作成します。

構文

object create dial-peer <peer_handle_spec> <destination_number>

引数

peer_handle_spec:ダイヤル ピア ハンドルを表すために作成された TCL 変数の名前を指定します。peer_handle_spec の形式は、<handle_prefix>:<from_index> です。システムでは、プレフィックスに <from_index> から始まるシーケンス番号を連結し、ダイヤル ピア ハンドル名を作成します。

destination_number:宛先電話番号。

戻り値

作成されたダイヤル ピア ハンドルの番号を戻します。

コマンド終了

即時

object create dial-peer dp_handle:0 $dest
 

使用上の注意

システムがハンドル名を生成する方法の例として、2 つのダイヤル ピアが同じ宛先に適合する場合を考えてみます。この場合、戻り値は 2 で、作成されるハンドル名は dp_handle0 および dp_handle1 になります。

指定した名前のハンドルがすでに存在する場合は、タイプに関係なくそのハンドルは削除され、新しいハンドルが作成されます。

object create gtd

新しい GTD 領域への GTD ハンドルを新しく作成するために使用されます。システムが、関連した基盤となるデータ構造を作成し、アプリケーションがそこに GTD パラメータを挿入(付加)できるように準備します。

構文

object create gtd <GTDHandle> {<message-id>|<reference-handle>}

引数

GTDHandle:アプリケーションが作成し、その後の GTD メッセージの操作で使用するハンドルの名前。

message-id:アプリケーションが作成するメッセージの名前。次の値がサポートされています。

IAM

CPG

ACM

ANM

REL

INF

INR

reference-handle:既存の GTD ハンドルを示します。形式は &<handle_name> です。

戻り値

数値を戻します。ハンドルを作成できる場合は 1、それ以外は 0 です。

コマンド終了

即時

set gtd_creation_cnt [object create gtd gtd_setup_ind IAM]
set gtd_creation_cnt [object create gtd gtd_setup_ind2 &gtd_setup_ind]
 

使用上の注意

このオプションは、アプリケーションがまったく新しく GTD 領域を作成する場合に使用します。ハンドルを作成したら、通常、アプリケーションは 1 つ以上の GTD 属性を付加します。

「:」文字は object destroy コマンドで特別な意味を持つため、ハンドル名に含めないでください。

指定した名前のハンドルがすでに存在する場合は、(タイプに関係なく)そのハンドルは削除され、新しいハンドルが作成されます。

そのほかの場合と同様、アプリケーションはハンドルを使用する前に戻り値をチェックする必要があります。

GTD ハンドルを別のアプリケーションに受け渡すことはできません。

object destroy

handle 、または handle_spec で指定されたすべてのハンドルに関連付けられた特定のダイヤル ピア項目を破棄します。

構文

object destroy [<handle> | <handle_spec>]

引数

handle:破棄するダイヤル ピアのハンドル。

handle_spec:削除するダイヤル ピア ハンドルの範囲を指定します。handle_spec の形式は、<handle_prefix>:<from_index>:<to_index> です。システムでプレフィックスに指数を連結し、ハンドルの削除に使用します。

戻り値

破棄したオブジェクトの数を戻します。

コマンド終了

即時

object destroy dp_handle2
object destroy dp_handle:0:2

上の 2 つめの例では、システムは dp_handle0、dp_handle1、および dp_handle2 を破棄しようとします。

使用上の注意

ダイヤル ピア項目または一連のダイヤル ピアが破棄されると、関連付けられているダイヤル ピア データも破棄されます。

object append gtd

ハンドルに 1 つ以上の GTD 属性を付加します。

構文

object append gtd <GTDHandle> <GTDSpec>

引数

GTDHandle:アプリケーションが変更を適用する GTD 領域へのハンドル。<GTDHandle> には、以前の infotag get evt_gtd で作成および割り当てられたハンドルと、object create gtd コマンドを使用してまったく新しく作成したハンドルのどちらでも指定できます。

GTDSpec:変更する GTD 属性。

戻り値

なし

コマンド終了

即時

object append gtd gtdhandleA &gtdhandleB.pci.-1
object append gtd gtdhandleA &gtdhandleB.pci.2
object append gtd gtdhandleA pci.1.dat "F4021234 " &gtdhandleB.fdc.-1
object append gtd gtdhandleA &gtdhandleB.fdc.-1 pci.1.dat "F4021234 "
 

使用上の注意

GTD 属性インスタンスを GTD メッセージに付加する場合、GTD 構造のすべてのフィールドを指定する必要があります。

TCL パーサーの制限を超えない限り、1 回の GTD 変更で必要なだけの属性をアプリケーションで指定できます。長いコマンドを複数行に分けるには、改行シーケンスを使用します。

1 つの属性フィールドが 1 つのコマンドで複数回指定されている場合、最後に処理された属性フィールドの値が使用されます。

この append コマンドでは、<gtd_spec> として <instance_ref> を持つことができます。

<instance_ref> の <attr_instance> には、フィールド名が含まれません。つまり、<instance_ref> に関与する操作では常に属性全体が参照されます。

1 つの属性に複数の操作が適用されると、最後の操作の結果で前の結果が上書きされることがあります。これは、複数のコマンドを次々と実行するのに似ています。

構文チェック中にエラーが発見されると、コマンドは中止されます。

object delete gtd

1 つ以上の GTD 属性を削除します。

構文

object delete gtd <GTDHandle> <GTD spec>

引数

GTDHandle:アプリケーションが変更を適用する GTD 領域へのハンドル。<GTDHandle> には、以前の infotag get evt_gtd で作成および割り当てられたハンドルと、object create gtd コマンドを使用してまったく新しく作成したハンドルのどちらでも指定できます。

GTDSpec:変更する GTD 属性。

戻り値

なし

コマンド終了

即時

object delete gtd gtdhandleA pci.1
object delete gtd gtdhandleA pci.-1
 

使用上の注意

TCL パーサーの制限を超えない限り、1 回の GTD 変更で必要なだけの属性をアプリケーションで指定できます。長いコマンドを複数行に分けるには、改行シーケンスを使用します。

1 つの属性フィールドが 1 つのコマンドで複数回指定されている場合、最後に処理された属性フィールドの値が使用されます。

この delete コマンドの <attr_instance> にはフィールド名を指定できません。

この delete コマンドでは <attr_value> は使用できません。

この delete コマンドは、<instance_ref> を <attribute_spec> として使用しません。

1 つの属性に複数の操作が適用されると、最後の操作で前の結果が上書きされることがあります。

構文チェック中にエラーが発見されると、コマンドは中止されます。

複数インスタンス形式(-1)を使用して削除しても、削除するインスタンスが見つからない場合は、スクリプトが失敗することはありません。そのため、スクリプトは、属性を削除する前に属性が存在するかどうかをチェックすることなく、処理を円滑かつ迅速に行うことができます。

object replace gtd

1 つ以上の GTD 属性を置き換えます。

構文

object replace gtd <GTDHandle> <GTD spec>

引数

GTDHandle:アプリケーションが変更を適用する GTD 領域へのハンドル。<GTDHandle> には、以前の infotag get evt_gtd で作成および割り当てられたハンドルと、object create gtd コマンドを使用してまったく新しく作成したハンドルのどちらでも指定できます。

GTDSpec:変更する GTD 属性。

戻り値

なし

コマンド終了

即時

object replace gtd gtdhandleA pci.1 &gtdhandleB.pci.5
object replace gtd gtdhandleA pci.-1 &gtdhandleB.pci.-1
object replace gtd gtdhandleA pci.-1 &gtdhandleB.pci.3
object replace gtd gtdhandleA pci.1 &gtdhandleB.pci.5 fdc.1.dat F4021234
object replace gtd gtdhandleA fdc.1.dat " F4021234" pci.1 &gtdhandleB.pci.5
 

使用上の注意

TCL パーサーの制限を超えない限り、1 回の GTD 変更で必要なだけの属性をアプリケーションで指定できます。長いコマンドを複数行に分けるには、改行シーケンスを使用します。

1 つの属性フィールドが 1 つのコマンドで複数回指定されている場合、最後に処理された属性フィールドの値が使用されます。

<instance_ref> の <attr_instance> には、フィールド名が含まれません。つまり、<instance_ref> に関与する操作では常に属性全体が参照されます。

1 つの属性に複数の操作が適用されると、最後の操作の結果で前の結果が上書きされることがあります。これは、複数のコマンドを次々と実行するのに似ています。

構文チェック中にエラーが発見されると、コマンドは中止されます。

<attr_instance> の直後に <instance_ref> が続く場合、その値は指定された <attr_instance> の更新に使用されます。

参照ハンドルが使用される場合、参照ハンドルが -1 をインスタンス番号として使用していれば、スクリプトはエラーになりません。

object get gtd

指定された GTD ハンドルに関連付けられた属性インスタンスの値、または属性のリストを取得します。

構文

object get gtd <GTDHandle> <attr_instance>

引数

GTDHandle:アプリケーションが変更を適用する GTD 領域へのハンドル。<GTDHandle> には、以前の infotag get evt_gtd で作成および割り当てられたハンドルと、object create gtd コマンドを使用してまったく新しく作成したハンドルのどちらでも指定できます。

attr_instance:属性インスタンス。形式は <attr_name>,<field_instance>,<field_name> です。

戻り値

なし

コマンド終了

即時

object get gtd setup_gtd_handle pci.1.dat
object get gtd setup_gtd_handle fdc.-1.dat
 

使用上の注意

アプリケーションで、属性のフィールドの全インスタンスの値を取得する必要がある場合、<field_instance> の内容を「-1」に設定します。複数のインスタンスが使用できる場合は、それぞれの値がスペース 1 文字で区切られます。属性が複数のインスタンスを持っているかどうかは関係ありません。「-1」は常に「すべてのインスタンスを取得する」と解釈されます。

object get dial-peer

ダイヤル ピア項目または一連のダイヤル ピアのダイヤル ピア情報を戻します。

構文

object get dial-peer { <handle> | <handle_spec> } <attribute_name>

引数

handle:データ取得の対象となるダイヤル ピアへのハンドル。

handle_spec:ダイヤル ピア ハンドルの範囲を <handle_prefix>:<from_index>:<to_index> の形式で指定します。一定範囲のダイヤル ピア ハンドルから属性情報を取得するには、この形式を使用します。

attribute_name:次のいずれかの値を指定できます。

encapType

voicePeerTag

matchTarget

matchDigitsE164

sessionProtocol

戻り値

要求されたダイヤル ピア情報を含む文字列。コマンド引数に応じて、一連のダイヤル ピア ハンドルか、特定のダイヤル ピア ハンドルの情報が戻されます。複数のダイヤル ピアの情報が戻された場合、それぞれの値はスペースで区切られます。

コマンド終了

即時

object get dial-peer dp_handle3 matchTarget
object get dial-peer dp_handle:0:2 matchTarget
 

使用上の注意

指定されたダイヤル ピア項目が存在しないか、ダイヤル ピアが含まれていない場合は、何も戻されません。

encapType の値は次のいずれかになります。

Telephony

VoIP

Other(上記以外)

voicePeerTag の値はピア項目を表す番号です。

matchTarget の値は、設定されている宛先仕様を含む文字列です。たとえば、RAS セッションの宛先の matchTarget の値は、session target ras です。

matchDigitsE164 の値は、ダイヤル ピアに一致する数値文字列です。

sessionProtocol の値は次のいずれかになります。

H323

SIP

Other(上記以外)

param read

param read コマンドは、呼に関連付けられた設定パラメータを、<variable-name> という名前の変数に読み込み、読み取り専用にします。

構文

param read <variable-name> [<package name>]

引数

package name:package provide コマンドを実行するパッケージの名前を指定します。パッケージ名が指定されない場合、このコマンドがサービスによって実行されていることが暗黙に示されます。

戻り値

なし

コマンド終了

即時

param read userid
 

使用上の注意

なし

param register

param register コマンドは、パラメータを説明およびデフォルト値と一緒に登録し、CLI によって設定および検証できるようにします。これらのコマンドが実行されるのは、サービスまたはパッケージが設定され、さらに、設定されたモジュールとそれに関連付けられたスクリプトの機能を登録する package provide などのコマンドと一緒にロードされた場合です。

設定されたモジュールとそのスクリプトは、スレーブ インタプリタにロードされ実行されて提供するパッケージを認識し、別のサービスまたはパッケージがこのパッケージを参照したときに使用できるようにします。param register コマンドは、モジュールが登録してサポートするパラメータを認識するためにも実行されます。

構文

param register <param-name> [<param-description>] [<param-default>] [<param-type>]
 

引数

param-name:登録されるパラメータの名前。

param-description:パラメータの説明。

param-type:現在、3 つの予約タイプ(文字列、整数、ブール)に制限されています。タイプを指定するための構文は、"s" | "I" | "b" で、"s"、"I"、"b" はそれぞれ文字列(string)、整数(integer)、ブール(boolean)を示します。

param-default:パラメータのデフォルト値。

戻り値

なし

コマンド終了

即時

param register uid-len “The user ID length” “7” “i”
 

使用上の注意

なし

phone assign

phone assign コマンドは、MAC アドレスを発信者の電話から既存の ephone テンプレートにバインドします。このコマンドは内線割り当て機能と一緒に使用します。

構文

phone assign { legID | info-tag } tag

引数

legID :コール レッグの ID で、このコール レッグから MAC アドレスが取得され、ephone タグに割り当てられます。

info-tag :1 つのレッグに直接マッピングされる情報タグ。

tag :ephone タグ。

戻り値

1:割り当てが成功しました。

2:割り当てが失敗しました。

コマンド終了

即時

set result [phone assign leg_incoming 20]
if {$result = "2"} puts "Assignment of 20 failed.\n"
 

使用上の注意

このコマンドが処理するレッグは 1 つだけです。

phone query

phone query コマンドは、ephone タグに MAC アドレスが割り当てられているかどうかを確認します。このコマンドは内線割り当て機能と一緒に使用します。

構文

phone query { legID | info-tag } -t tag

引数

legID :着信コール レッグの ID。これは現在の発信者および電話の識別に使用されるため、詳細な割り当て戻り値を提供できます。

info-tag :1 つのレッグに直接マッピングされる情報タグ。

-t tag :ephone タグ。

戻り値

-1:エラー。

0:タグ番号が無効です。

1:割り当てられていません。

2:発信者の電話に割り当てられています。

3:別の電話に割り当てられ、電話が登録されていません。

4:別の電話に割り当てられ、電話はアイドル状態です。

5:別の電話に割り当てられ、電話が使用中です。

コマンド終了

即時

set result [phone query leg_incoming -t 20]
if {$result = "1"} puts "ephone 20 is available.\n"
 

使用上の注意

このコマンドが処理するレッグは 1 つだけです。

phone unassign

phone unassign コマンドは ephone タグから MAC アドレスを削除します。このコマンドは内線割り当て機能と一緒に使用します。

構文

phone unassign { legID | info-tag } tag

引数

legID :コール レッグの ID。

info-tag :1 つのレッグに直接マッピングされる情報タグ。

tag :ephone タグ。

戻り値

1:割り当ての解除が成功しました。

2:割り当ての解除が失敗しました。

コマンド終了

即時

set result [phone unassign leg_incoming 20]
if {$result = "2"} puts "Unassignment of ephone 20 failed.\n"
 

使用上の注意

このコマンドが処理するレッグは 1 つだけです。

playtone

playtone コマンドは、指定のコール レッグに対してトーンを再生します。会議通信が行われている場合、トーンを再生する間、デジタル シグナリング プロセッサ(DSP)がリモート エンドへのデータ送信を停止します。このコマンドは、通常、スクリプトでディジット収集が必要な場合、発信者にダイヤル トーンを発するために使用します。

構文

playtone {legID | info-tag} {Tone | StatusCode}

引数

legID:受け渡されるコール レッグの ID。

info-tag:1 つ以上のレッグに直接マッピングされる情報タグ。情報タグの詳細については、 第4章「情報タグ」 を参照してください。

Tone:次のいずれかです。

tn_none--現在再生中のトーンを停止します。

tn_dial--ダイヤル トーンを再生します。

tn_busy--ビジー トーンを再生します。

tn_addrack--アドレス通知トーンを再生します。

tn_disconnect--切断トーンを再生します。

tn_oos--アウト オブ サービス トーンを再生します。

tn_offhooknotice--オフフック通知トーンを再生します。

tn_offhookalert--オフフック警告トーンを再生します。

StatusCode:evt_status 情報タグによって戻されるステータス コード。ステータス コードを指定する場合、playtone コマンドによってそのステータス コードと関連したトーンが再生されます。

戻り値

なし

コマンド終了

即時

playtone leg_incoming [getInfo evt_status]
playtone leg_all tn_oos
 

使用上の注意

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

playtone コマンドは、テレフォニー コール レッグにのみ有効であり、VoIP レッグに使用した場合は何の処理もされずに無視されます。

puts

puts コマンドは、IVR 状態デバッグ フラグが(debug voip ivr script コマンドによって)設定されている場合、デバッグ文字列をコンソールに出力します。

構文

puts string

引数

string:出力する文字列。

戻り値

なし

コマンド終了

なし

例:

puts “Hello $name”

requiredversion

requiredversion コマンドは、スクリプトが正しいバージョンの TCL IVR API を実行していることを確認します。

構文

requiredversion majorversion.minorversion

引数

majorversion:基盤となる Cisco IOS コードがサポートする TCL IVR API のメジャー バージョンを示します。

minorversion:基盤となる Cisco IOS コードがサポートする TCL IVR API のマイナー バージョンにおける最小レベルを示します。

戻り値

なし

コマンド終了

なし

requiredversion 2.5
 

使用上の注意

スクリプトのバージョンが、指定したメジャー バージョンと一致しない場合や、指定したマイナー バージョンと異なるかそれ以降である場合、スクリプトが終了してコンソールにエラーが表示されます。

sendmsg

別のアプリケーション インスタンスにメッセージを送信します。

構文

sendmsg {<app-name> | <handle>} -p <parameter_array>

引数

<app-name> :このアプリケーション名を使用して新しいインスタンスを作成します。

<handle>:既存のアプリケーション インスタンスのハンドル。

-p <parameter_array>:渡されるパラメータのリストを含む TCL 配列。

戻り値

「unavailable」または「success」が戻されます。

コマンド終了

即時

set iid newapp
set fruit_message(text) “Request for Fruit”
set fruit_message(fruit) “Bananas”
set rval [sendmsg $iid -p fruit_message]
if $rval == “unavailable” {
call close}
 

使用上の注意

インスタンスがゲートウェイで実行中でない場合、戻り値「unavailable」を戻します。

アプリケーション名が指定されると、そのアプリケーションの新しいインスタンスが生成されます。新しいインスタンスに作動中のレッグはありませんが、ev_msg_indication イベントを受け取ります。

メッセージでアプリケーションの新しいインスタンスを生成することを想定していたにもかかわらず、ゲートウェイ リソースの設定で新しいインスタンスが許可されていない場合、sendmsg コマンドは失敗し、処理中のすべてのコール レッグを破棄します。『Call Admission Control (CAC)』マニュアルの call treatment コマンドおよび call threshold コマンドを参照してください。

このメッセージを受信するインスタンスは、生成済みか実行中かに関係なく、ev_msg_indication イベントを受け取ります。インスタンスは、ev_msg and ev_msg_source 情報タグを使用して詳細な情報を取得できるようになります。

メッセージは別のゲートウェイやサービスに送信できません。

service

サービスを登録または登録解除します。

構文

service {register | unregister} <service-name>

引数

<service-name> :サービスの名前。

戻り値

service register <service-name> は、「service already registered」または「registered」を戻します。

service unregister <service-name> は、「service not registered」または「unregistered」を戻します。

セッションが別のセッションによって登録されたサービス名の登録または登録解除を試みると、戻り値「service registered by another session」を受け取ります。

コマンド終了

即時

set ret [service register cisco]
if {$ret=”registered”} puts “Service successfully registered”
 
set ret [service unregister cisco]
if {$ret=”unregistered”} puts “Service successfully unregistered”
 

使用上の注意

このコマンドは、現在実行中のハンドルをサービス テーブルに置きます。

別の呼が同じサービスを登録しようとすると、「service already registered」が戻されます。

セッションが終了すると、サービスの登録は解除されます。

1 つのセッションで複数の service-name を使用して登録できます。別のセッションが同じ service-name で登録しようとすると、「service already registered」が戻されます。

登録が成功すると「registered」が戻されます。

登録されたサービスのリストは、show call application CLI コマンドを使用して表示できます。

TCL スクリプトでは、mod_handle_services 情報タグを使用して登録されたサービスを検索できます。

set avsend

標準の AV ペアまたは VSA ペアを含む結合配列を設定します。

構文

set avSend (attrName [, index] value


) Cisco IOS リリース 12.1(2) から、avSend 引数が導入されました。


引数

attrName:IVR 固有の属性は、h323-ivr-out と h323-credit-amount の 2 種類がサポートされています。これらの種類の詳細については、「AV ペアの名前」を参照してください。

index:省略可能な整数の指数で、0 を開始値とし、1 つの属性に対して複数の値を区別する場合に使用します。

戻り値

なし

コマンド終了

即時

set avsend(h323-credit-amount) 25.0
 
set avsend(h323-ivr-out,0) "payphone:true"
set avsend(h323-ivr-out,1) "creditTime:3400"
 

使用上の注意

指定のコール レッグが無効な場合、スクリプトが終了してコンソールにエラーが表示され、呼は消去されます。

set callinfo

配列内に電話のかけ方を決定するパラメータを設定します。これにより、 leg setup コマンドを使用して電話をかけることができます。

構文

set callinfo (tagName [,index]) value

引数

tagName:電話のかけ方を決定するパラメータ。配列に定義できるパラメータは次のとおりです。

destinationNum :着信または宛先番号。mode では、この引数は transfer-target または
forwarded-to の番号として使用されます。このパラメータには、URL 文字列を指定できます。このパラメータには、指数付けはできません。

originationNum :発信者番号。mode では、この引数は transfer-by または forwarded-by の番号として使用されます。このパラメータには、URL 文字列を指定できます。このパラメータには、指数付けはできません。

originationNumPI:発信者番号のプレゼンテーションを示す値。

有効な値を以下に示します。
presentation_allowed
presentation_restricted
number_lost_due_to_interworking
reserved_value

このパラメータには、指数付けはできません。

originationNumSI:発信者番号のスクリーニングを示す値。

有効な値を以下に示します。
usr_provided_unscreened
usr_provided_screening_passed
usr_provided_screening_failed
network_provided

このパラメータには、指数付けはできません。

accountNum:発信者の課金番号。このパラメータには、指数付けはできません。

redirectNum :リダイレクト番号。当初は、エンドツーエンドの ISDN リダイレクト IE のフィールドを変更するために追加されました。コール転送を要求する番号の指定にも使用されます。通常、ev_transfer_request イベントを受け取るレッグの発信者番号です。デフォルト値は、null です。このパラメータには、指数付けはできません。

redirectNumPI:リダイレクト番号のプレゼンテーションを示す値。

有効な値を以下に示します。
presentation_allowed
presentation_restricted
number_lost_due_to_interworking
reserved_value

このパラメータには、指数付けはできません。

redirectNumSI:リダイレクト番号のスクリーニングを示す値。

有効な値を以下に示します。
usr_provided_unscreened
usr_provided_screening_passed
usr_provided_screening_failed
network_provided

このパラメータには、指数付けはできません。

redirectCount<count>:リダイレクト番号のスクリーニングを示す値を設定する場合に使用します。有効な値の範囲は 0 ~ 7 です。このカウントは、宛先から転送要求が来るたびに自動的に増えます。どのカウントに達したら転送を停止するのかは、スクリプトが決定します。このパラメータには、指数付けはできません。

redirectReason<value>:リダイレクト番号の理由の値を設定する場合に使用します。このパラメータには、指数付けはできません。

有効な値を以下に示します。
rr_no_reason
rr_cfb
rr_cfnr
rr_rsvd1
rr_rsvd2
rr_rsvd3
rr_rsvd4
rr_rsvd5
rr_rsvd6
rr_rsvd7
rr_rsvd8
rr_rsvd9
rr_rsvd10
rr_ct
rr_cp
rr_not_present

mode を併用して、次の値でコール転送開始時のタイプを指定します。

rr_cfu
rr_cfb
rr_cfnr
rr_cd

redirectCfnrInd<value>:CFNR インジケータの設定に使用します。

有効な値を以下に示します。
cfnr_true
cfnr_false(デフォルト)

このパラメータには、指数付けはできません。

alertTimer:何秒間電話を鳴らしてから呼を中止するかを指定します。デフォルトは infinite です。このパラメータには、指数付けはできません。

usrDstAddr:このタグは、H.323-Setup メッセージのユーザ間情報に含まれる
destinationAddress に直接マッピングされます。タグでは、このフィールドを e164 形式または h323-id 文字列形式で設定できます。このタグでは最大 10 インスタンスが許容されます。このパラメータには、指数付けはできません。

usrSrcAddr:このタグは、H.323-Setup メッセージのユーザ間情報に含まれる sourceAddress に直接マッピングされます。タグでは、このフィールドを e164 形式または h323-id 文字列形式で設定できます。このタグでは最大 10 インスタンスが許容されます。このパラメータには、指数付けはできません。

addrResSrcInfo:このタグは、ゲートキーパーへの ARQ RAS メッセージの srcInfo に直接マッピングされます。タグでは、このフィールドを e164 形式または h323-id 文字列形式で設定できます。このタグでは最大 10 インスタンスが許容されます。このパラメータには、指数付けはできません。

addrResDstInfo:このタグは、ゲートキーパーへの ARQ RAS メッセージの dstInfo に直接マッピングされます。タグでは、このフィールドを e164 形式または h323-id 文字列形式で設定できます。このタグでは最大 10 インスタンスが許容されます。このパラメータには、指数付けはできません。

displayInfo:このタグは、H323-Setup メッセージの displayInfo に直接マッピングされます。このパラメータには、指数付けはできません。

mode:有効な値は、 rotary / redirect / redirect_rotary です。指定がない場合、デフォルト値は rotary です。このパラメータには、指数付けはできません。

  • rotary:呼の確立では、通常の呼の確立(rotary)ルーチンを使用することで、宛先と legID の間に呼を確立し、レッグの会議通信を行おうとします。
  • redirect:呼の確立では、legID 終端点を宛先電話番号に転送することで、宛先と legID の間に呼を確立しようとします。プロトコル固有の転送要求が、転送を開始するために legID に送られます。転送の試行が失敗すると、コマンドは中止されます。転送が成功すると、legID は最終的に終端点から切断され、その影響でアプリケーションはレッグの制御を放棄します。
  • redirect_rotary:呼の確立では、まず legID 終端点を宛先電話番号に転送することで、宛先と legID の間に呼を確立しようとします。転送の試行が、コール レッグのタイプをチェックして内部的に失敗するか、転送メッセージのラウンドトリップ後に失敗すると、コマンドは通常の呼の確立(rotary)方式を使用して宛先に到達し、レッグの会議通信を行おうとします。アプリケーションでは、legID と新しいレッグの制御を保持します。転送が成功すると、legID は最終的に終端点から切断され、その影響でアプリケーションはレッグの制御を放棄します。

rerouteMode:有効な値は none / rotary / redirect / redirect_rotary です。指定がない場合、値は mode と同じになります。この引数と mode のどちらも指定されない場合、デフォルト値は rotary になります。 このパラメータには、指数付けはできません。

  • none:ロータリーの呼の確立を試行中に宛先終端点がリダイレクト要求を発行した場合、呼の確立は中止され、ev_setup_done イベントがリダイレクト先の番号と共にスクリプトに送信されます。リダイレクトの理由は、evt_redirect_info 情報タグで指定されます。
  • rotary:ロータリーの呼の確立を試行中に宛先終端点がリダイレクト要求を発行した場合、リダイレクト先番号に対して通常のロータリーの呼の確立が行われます。
  • redirect:ロータリーの呼の確立を試行中に宛先終端点がリダイレクト要求を発行した場合、要求を legID に伝達しようと試みられます。legID がまだ接続されていない場合は、コール転送要求が送信されます。legID が接続されている場合、コール転送要求が送信されます。legID がリダイレクト メカニズムをサポートしていない場合、ev_setup_done イベントが該当するエラー コードと共にスクリプトに送信されます。
  • redirect_rotary:legID がリダイレクト メカニズムをサポートしていない場合に通常のロータリーの呼の確立がリダイレクト先番号に対して行われるという点を除いて、redirect と似ています。

transferConsultID:打診のコール転送で使用されるトークン。通常は、ev_transfer_request イベントから抽出されます。デフォルト値は、null です。このパラメータには、指数付けはできません。

notifyEvents:イベント名からなる文字列。ロータリーの呼の確立中およびリダイレクトの呼の確立中に、このパラメータにリストされたシグナリング メッセージを通知します。内部的には、呼の確立はイベントをスクリプトにレポートした後も続行されます。デフォルト値は、null です。このパラメータには、指数付けはできません。

originationNumTON:ccCallInfo 構造に含まれる発信者番号のオクテット 3 TON フィールドを設定します。このパラメータには、指数付けはできません。

有効な値を以下に示します。
ton_unknown
ton_international
ton_national
ton_network_specific
ton_subscriber
ton_reserved1
ton_abbreviated
ton_reserved2
ton_not_present

destinationNumTon:ccCallInfo 構造に含まれる送信先番号のオクテット 3 TON フィールドを設定します。このパラメータには、指数付けはできません。

有効な値を以下に示します。
ton_unknown
ton_international
ton_national
ton_network_specific
ton_subscriber
ton_reserved1
ton_abbreviated
ton_reserved2
ton_not_present

originationNumNPI:既存の ccCallInfo 構造に含まれる発信者番号のオクテット 3 NPI フィールドを設定します。このパラメータには、指数付けはできません。

有効な値を以下に示します。
npi_unknown
npi_isdn_telephony_e164
npi_reserved1
npi_data_x121
npi_telex_f69
npi_reserved2
npi_reserved3
npi_reserved4
npi_national_std
npi_private
npi_reserved5
npi_reserved6
npi_reserved7
npi_reserved8
npi_reserved9
npi_reserved10
npi_not_present

destinationNumNPI:既存の ccCallInfo 構造に含まれる送信先番号のオクテット 3 NPI フィールドを設定します。このパラメータには、指数付けはできません。

有効な値を以下に示します。
npi_unknown
npi_isdn_telephony_e164
npi_reserved1
npi_data_x121
npi_telex_f69
npi_reserved2
npi_reserved3
npi_reserved4
npi_national_std
npi_private
npi_reserved5
npi_reserved6
npi_reserved7
npi_reserved8
npi_reserved9
npi_reserved10
npi_not_present

guid:発信コール レッグの GUID。このパラメータには、指数付けはできません。

incomingGuid:発信コール レッグの incoming GUID フィールド。このパラメータには、指数付けはできません。

originalDest:元の送信先番号。このパラメータには、指数付けはできません。

protoHeaders:呼の確立で送信するヘッダーの AV ペアを含む配列。

newguid:true に設定すると、新しい GUID を生成して発呼の確立に使用することが指定されます。デフォルトでは、発呼に新しい GUID は生成されません。

index:省略可能な整数で、0 を開始値とし、1 つのタグの複数インスタンスを区別する場合に使用します。

value:設定する値。

戻り値

なし

コマンド終了

即時

set callInfo(usrDstAddr,0) “e164=488539663”
set callInfo(addrResSrcInf,1) “h323Id=09193926573”
set callInfo(displayInfo) “hi there”
set callInfo(mode) “REDIRECT_ROTARY”
set callInfo(rotaryRedirectMode) “ROTARY”
set callInfo(notifyEvents) “ev_transfer_status ev_alert”
set callInfo(transferConsultID) $targetConsultID
 
set setupSignal(Subject) “Hotel Reservation”
set setupSignal(Priority) “urgent”
set setupSignal(X-ReferenceNumber) “1234567890”
set callInfo(protoHeaders) setupSignal
 

使用上の注意

TCL スクリプトでは、leg setup コマンドに名前 callInfo を使用する規定ですが、この名前が Cisco IOS ソフトウェアによって強制されるわけではありません。別な名前を使用できます。次の例を参考にしてください。

set dest “5550100”
set myInfoForCallSetup(mode) "REDIRECT_ROTARY"
leg setup $dest myInfoForCallSetup
 

leg setup コマンドが実行されるまでコードは呼の確立を開始しないため、TCL の set コマンドでは、呼の確立の引数をチェックしません。次の例を参考にしてください。

set callInfo(redirectCount) BadValue

ここではエラーは発生せず、呼も失敗しません。呼は、leg setup コマンドがこの後に実行されたとき失敗します。

subscription open

登録サーバに登録要求を送信します。

構文

subscription open {URL} subscriptionInfoArray -s subscription_id

引数

URL:登録要求の送信先となるサーバの URL。SIP URL だけがサポートされます。

subscriptionInfoArray:登録に関する属性を含む配列。有効な値は次のとおりです。

event:登録するイベントの名前。

expirationTime:登録が期限切れになった後の時間(秒単位)。

protoHeaders:登録要求で送信するヘッダーを含む配列。

subscriptionContext:登録のコンテキストの AV ペアを含む配列。この引数では、登録側のシステムが AV ペアのリストをコンテキスト情報として指定し、通知を受け取るモジュールやアプリケーションで役立てることができます。配列に定義できるパラメータは次のとおりです。

content_type:プレーンまたは XML などコンテンツのタイプ。サポートされるのはテキストのコンテンツだけです。

content:アプリケーションにだけ意味を持つ文字列。コンテンツには、AV ペア形式、または content_type で指定されたそのほかの形式の情報を指定できます。コンテンツはプロトコル メッセージ本文で送信されます。サポートされるのはテキストのコンテンツだけです。

notificationReceiver:この引数は、appName 属性または moduleHandle 属性を取ります。アプリケーションの名前が指定され、アプリケーションが設定されている場合、そのアプリケーションが通知を受け取るために生成されます。moduleHandle 属性では、モジュールまたはセッションの実行中のインスタンスが指定されます。moduleHandle は、infotag get mod_handle コマンドを使用して取得できます。このハンドルは、アプリケーションの実行中のインスタンスを表します。

-s subscription_id:登録の ID。この引数は、パラメータとして登録 ID を取り込み、すでに登録されている場合は再登録に使用されます。

戻り値

subscriptionID:登録に割り当てられた一意の ID。

コマンド終了

このコマンドが終了すると、スクリプトが ev_subscribe_done イベントを受け取ります。

set subcriptionInfoArray (notificationReceiver) notifyApp
set mySubID [subscription open sip:my_id@cisco.com subscriptionInfoArray]
 

次の例では、イベント パッケージ「msg:」について、登録要求をサーバに送信します。

-----------------------------------------------------------
set url sip:foo@xyz.com
# set the event-package
set subinfo(event) msg
 
#set the expiration time for the subscription in seconds
set subinfo(expirationTime) 500
 
# specify a header
set headers(Subject) "Hi There"
set subinfo(protoHeaders) headers
 
# specify the content
set subinfo(protoContentTypes) "text/plain"
set subinfo(protoContents) "This is from client"
 
#set context information for subscription
set context(actNum) 1234
set context(pinNum) 5678
set subinfo(subscriptionContext) context
 
# send the request
subscription open $url subinfo
-----------------------------------------------------------
 

使用上の注意

TCL IVR 2.0 では、ハンドラあたりの登録数が 18 に制限されています。スクリプト インスタンスはそれぞれがハンドラであるため、アプリケーション インスタンスが同時に処理できる登録数は最大 18 です。

ユーザは、サーバから受信する通知の処理方法として次のいずれかの方法を指定できます。

登録を実行中の現在のスクリプト インスタンスが通知を処理できる。この方法で処理する場合は、引数にアプリケーション名(appName)と moduleHandle のどちらも指定しないでください。

同じまたは別のアプリケーション内に新しいアプリケーション インスタンスを作成して通知を処理できる。この方法で処理する場合は、引数にアプリケーション名(appName)を指定してください。

別の実行中のアプリケーション インスタンスが通知を処理できる。この方法で処理する場合は、引数に moduleHandle を指定してください。

登録を行うアプリケーションが制御を行うアプリケーションになります。たとえば、通知を処理して登録を削除します。

別のアプリケーションがアプリケーションの制御を引き継ぐようにするには、登録を行ったアプリケーションを終了する必要があります。たとえば、アプリケーション A が登録を行って「notificationReceiver」がアプリケーション B となるように指定します。アプリケーション A が「call close」を呼び出して終了しない限り、通知はアプリケーション B に送信されません。A が moduleHandle を指定する場合も同じです。

スクリプトは、レッグに関連付けられた legID を実行中の登録要求に渡すことができます。そのため、レッグに基づいたデバッグが可能になります。

event と expirationTime は必須の引数であり、スクリプトで必ず指定する必要があります。

コンテキスト情報はサーバには送信されず、登録情報と一緒に保持されます。たとえば、accountNumber や pinNumber など、ユーザに固有の情報は登録内に保持されます。コンテキスト情報は、登録が削除されると常に削除されます。

subscription close

既存の登録を削除します。

構文

subscription close subscription_id

引数

subscription_id:終了する登録の ID。

戻り値

なし

コマンド終了

このコマンドが終了すると、スクリプトが ev_unsubscribe_done イベントを受け取ります。

set mySubID openSub
subscription close mySubID
 

使用上の注意

なし

subscription notify_ack

通知イベントへの肯定応答または否定応答を送信します。

構文

subscription notify_ack <subscription_id> [-i notifyAckInfo]

引数

subscription_id:登録の ID。

-i notifyAckInfo:次の値を含むことができる結合配列。

protoHeaders:ヘッダー情報。

protoContents:コンテンツ情報。

protoContentTypes:コンテンツ タイプ情報。

respCode:有効な値は、ack または nak です。指定されない場合、デフォルト値の ack が想定されます。ack の場合は通知への肯定応答が送信され、nak の場合は通知が拒否されます。アプリケーションが通知を拒否する場合、「Warning」などのヘッダーを挿入して、該当する理由がサーバに送信されるようにします。

戻り値

なし

コマンド終了

即時

set mySubID [infotag get evt_subscription_id]
set headers(Hello) “Hello, this is ACK header”
set ackinfo(protoHeaders) headers
set ackinfo(respCode) “ack”
subscription notify_ack $mySubID -i ackinfo
 

使用上の注意

なし

timer left

timer left は、名前に関連付けられたタイマーの残り秒数を戻します。

構文

timer left type [name]

引数

type:タイマーの種類(named_timer など)。

name:アソシエーションのキーとしてこのタイマーに関連付けられた文字列の名前。

戻り値

タイマーの残り秒数。

コマンド終了

なし

timer left named_timer timer_1
timer left named_timer 1
 

使用上の注意

なし

timer start

timer start コマンドは、指定した秒数のタイマーを開始します。各タイマーはキーとしての名前に関連付けられており、スクリプトごとに複数の named_timers を指定できます。

構文

timer start type time [name]

引数

type:タイマーの種類(named_timer など)。

time:タイマーが作動する時間(秒)。

name:アソシエーションのキーとしてこのタイマーに関連付けられた文字列の名前。

戻り値

なし

コマンド終了

タイマーが時間切れになると、スクリプトが ev_named_timer イベントを受け取ります。この named_timer に関連付けられた名前は、evt_timer_name 情報タグを使用して取得できます。

timer start named_timer 60 timer_1
timer start named_timer 100 1
 

使用上の注意

別のタイマーがまだ実行中の場合、このコマンドは前のタイマーを停止し、指定されたタイマーを開始します。

timer stop

timer stop コマンドは名前に関連付けられたタイマーを停止します。

構文

timer stop type [name]

引数

type:タイマーの種類(named_timer など)。

name:アソシエーションのキーとしてこのタイマーに関連付けられた文字列の名前。

戻り値

なし

コマンド終了

なし

timer stop named_timer timer_1
timer stop named_timer 1
 

使用上の注意

なし