Scripting API リファレンス|TropoスクリプティングAPI

ask() method

   

askメソッドによってIVRを実装することができます。

 

音声案内によってユーザの入力を促します。 これは、合成音声でもオーディオファイルでも構いません。 ユーザーからの応答は、音声またはタッチトーンキーパッド(DTMF)で取得できます。

 

さらに詳しい例については、 質問をするをご覧ください。

 

パラメータ

text
データの種類:String型 デフォルト:なし 必須
音声合成エンジン(SSMLの場合もあります)か、音声ファイルがホストしてあるURLのいずれかを使って読み上げられたテキストまたは音声になります
 

名前付きパラメータ

 
allowSignals
データの種類:String型またはArray型 デフォルト:*(任意の信号) 任意
このパラメータを使用すると、この関数にシグナルを割り当てることができます。一致するシグナル名を持つTropo REST APIからのイベントは、この関数を中断します。 すでにこの関数が実行され完了していた場合、中断の要求は無視されます。 この関数がまだ実行されていない場合、中断の要求は実行されるまでジョブキューに並びます。 デフォルトでは、allowSignalsはどんなシグナルも有効なものとして認識します。 allowSignalsを定めなかった場合、その関数は「中断なし」として定義されます。 配列を使うこともできます。配列にある名前のいずれかに一致するシグナルを受信した際に、この関数を中断します。
attempts
データの種類:Integer型 デフォルト:1 任意
IVRに対して未入力やエラーが発生した際の試行回数を定義します。
bargein
データの種類:Boolean型 デフォルト:true 任意
IVRの音声を最後まで聞かせるかどうかを定義します。 trueであればガイダンスの途中でもDTMF入力を受け付け、falseであれば、ガイダンスを最後まで聞かせます。 Pythonを使用する場合には、trueとfalseではなく、必ずTrueとFalseを使用してください。
choices
データの種類:String型 デフォルト:なし 必須
choices フィールドには、ユーザーに入力を促すために実行可能なシンプルなグラマを定義することが多いです。 詳細については、質問をするシンプルグラマでの処理クイックスタート、 をご覧ください。 
interdigitTimeout
データの種類:Integer型 デフォルト:なし 任意
askと共に、interdigitTimeoutは、ユーザーが入力を中止したかどうかを判断するための、 キーを押す間の待機時間を、秒刻みで定義します。 ユーザーが入力ミスをした場合に、プロセスを再起動することができますし、 桁数を可変にする必要に迫られた場合(たとえば、4桁か5桁のPINコードを入力する)の、ユーザーの待機時間を削減こともできるので便利です。  interdigitTimeoutを目にした場合、これはonBadChoiceイベントのトリガーになります。
minConfidence
データの種類:Float型 デフォルト:0.3 任意
これは応答と選択を照合する前に、「recognizer」が持たなくてはならない信頼度の最低値です。 たとえば、お使いのグラマが選択肢をred、blue、greenと定義し、誰かが「rud」と言った場合、この信頼度によって、 「rud」が「red」とどれくらい似ているかを特定することを設定します。 これは、0と1の間の比率であるフロートで表されます。
mode
データの種類:String型 デフォルト:any 任意
発信者の回答の入力方式です。 これには「dtmf」(タッチトーン入力)、「speech」、「any」などがあります。
onBadChoice
データの種類:Function型 デフォルト:なし 任意
試行回数中にユーザーからの有効な応答が無く、時間を過ぎてしまった場合に実行するイベントハンドラを登録します。
onChoice
データの種類:Function型 デフォルト:なし 任意
ユーザーから有効な応答があった場合に実行するイベントハンドラを登録します。
onError
データの種類:Function型 デフォルト:なし 任意
入力中にシステムエラー(非ユーザーエラー)が起こった場合に実行する、イベントハンドラを登録します。 ユーザーエラーへの対処法についてはonBadChoiceonTimeoutご覧ください。
onEvent
データの種類:Function型 デフォルト:なし 任意
全てのイベントをキャッチして実行するイベントハンドラを登録します。 これは基本的にonEventが他の全てのイベントハンドラの後で実行されることを意味します。 従って、たとえばタイムアウトが発生した場合、onTimeoutがまず実行され、その後にonEventが実行されます。 それから元の状態に戻ります。 他のイベントハンドラが定義されていない場合、onEventが引き続き実行されます。
onHangup
データの種類:Function型 デフォルト:なし 任意
ユーザーが通信を切断するか電話を切ったときに実行するイベントハンドラを登録します。
onSignal
データの種類:Function型 デフォルト:なし 任意
シグナルが関数を中断させた場合に実行するコールバック関数を指定します。
onTimeout
データの種類:Function型 デフォルト:なし 任意
ユーザが指定された時間内にIVRに応答しない場合、このイベントが発生します。
sensitivity
データの種類:Float型 デフォルト:0.5 任意
この設定は、IVRへの回答を検出をする前に、どのくらいの大きさの音が必要かを定義します。 これは、0.01~1の間の小数で表され、値が大きいほど、感度が高くなります。
speechCompleteTimeout
データの種類:Float型 デフォルト:0.5 任意
このフィールドは入力の後、それが一致する前に何秒ウェイトを置くかを定義します。 これは変数入力で最も役に立つオプションです。たとえば、発信者に4桁か5桁の暗証番号を尋ね、 [4-5 DIGITS] グラマを使用する場合、たとえterminatorを定めていても、ユーザは4桁で返信し、その後に取りやめられます。 このフィールドによって、アプリケーションが発信者が応答を終了し、もう入力はないと判断する前に、 アプリケーションにどれくらいの時間待っていて欲しいか定義できます。
speechIncompleteTimeout
データの種類:Float型 デフォルト:0.5 任意
このフィールドは入力の後、それが一致しない場合に何秒ウェイトを置くかを定義します。 たとえば、リストから3つの選択肢を選ぶよう催促し、 発信者が1つだけ応答したあと通話をやめた場合、これによってアプリケーションが、 発信者は入力を終えたものとみなし、該当無しとするための時間を定めます。
terminator
データの種類:String型 デフォルト:なし 任意
これは、入力の終了を示すタッチトーンキー(DTMF)です。 一般的に使われているterminatorは♯(シャープ)キーです。たとえば「5桁の郵便番号を入力してから、 シャープキーを押してください」という風に使います。
timeout
データの種類:Float型 デフォルト:30.0 任意
指示メッセージを送信または再生した後に、Tropoはユーザーが応答を開始するのを待つ時間のことで、 秒単位で表わします。
  ask("五桁のピン番号を入力してください。終了したらシャープキーを押してください。", {
    choices:"[4-5 DIGITS]",
    terminator:"#",
    timeout:15.0,
    mode:"dtmf",
    interdigitTimeout: 5,
    onChoice: function(event) {
        say("成功しました。");
    },
    onBadChoice: function(event) {
        say("失敗しました");
    }
}); 
ask "五桁のピン番号を入力してください。終了したらシャープキーを押してください。", {
    :choices => "[4-5 DIGITS]",
    :terminator => '#',
    :timeout => 15.0,
    :mode => "dtmf",
    :interdigitTimeout => 5 ,
    :onChoice => lambda { |event|
        say "成功しました。"
    },
    :onBadChoice => lambda { |event|
        say "失敗しました"
    }
}
<?php
    ask("五桁のピン番号を入力してください。終了したらシャープキーを押してください。", array(
        "choices"=>"[4-5 DIGITS]",
        "terminator" => "#",
        "timeout" => 15.0,
        "mode" => "dtmf",
        "interdigitTimeout" => 5,
        "onChoice" => "choiceFCN",  
        "onBadChoice" => "badChoiceFCN"
        )
    );
    function choiceFCN($event) {
        say("成功しました。");
    }
    function badChoiceFCN($event) {
        say("失敗しました");
    }
?>
ask("五桁のピン番号を入力してください。終了したらシャープキーを押してください。", {
    "choices":"[4-5 DIGITS]",
    "terminator":"#",
    "timeout":15.0,
    "mode":"dtmf",
    "interdigitTimeout":5,
    "onChoice": lambda event : say("成功しました。"),
    "onBadChoice": lambda event : say("失敗しました")
})
ask("五桁のピン番号を入力してください。終了したらシャープキーを押してください。", [
    choices: "[4-5 DIGITS]",
    terminator: '#',
    timeout: 15.0,
    mode: "dtmf",
    interdigitTimeout: 5,
    onBadChoice: { event->
        say("失敗しました")
    },
    onChoice: { event->
        say("成功しました。")
    }
])
   
answer call