2017-08-23 3 views
0

回帰テストコールセンターアプリケーションのIVRシステムへのコールフローを自動化しようとしています。私は電話をかけると、私はTwilioでプログラム可能な音声を収集する - 基礎となる電話通話イベントにアクセスする方法

console.log("Waiting for Server to respond"); 

console.log("Received response from Server"); 

私の理解では、コードの2行の間にかかる時間を理解しようとしていますexpected.Butとして応答を受け取ることができています

Twilioが私のNode.jsインスタンスからTwiML応答を受け取った後、それは処理し、電話信号を送受信します。

サーバーからの応答全体を受信した後で、/TC4_Step1_Validateで音声応答を受信して​​います。私は両方の行のタイムスタンプを記録し、その差を捕捉します。 20秒ほどかかります。しかし、実際には、アプリケーションは数秒以内に応答します。

私はTwilioが3秒間の無音を待ってダイアログ全体が完了するのを待って、そのオーディオストリームをテキストに変換してから私の機能に投稿すると信じています。それが私が20秒間見る理由です。

しかし、タイムアウトとスピーチからテキストへの変換時間でストリーム全体ではなく、テレフォニー応答を最初に受信するまでの時間を理解する必要があります。

短くて、私はコンタクトセンターアプリケーションが応答するのに要した時間を理解しようとしています。

私はコール

app.get('/TC4_Step1', function(req, res) { 
    res.setHeader('Content-Type', 'application/xml'); 
    const response = new VoiceResponse(); 
    const gather = response.gather({ 
    input: 'speech', 
    action: 'http://{PUBLIC_URL}/TC4_Step1_Validate', 
    timeout: 3, 
    }); 
    res.send(response.toString()); 
    console.log("Waiting for Server to respond"); 
    console.log(response.toString()); 
}); 
を置いたときに、私のコンタクトセンターアプリケーションからのステップ1の応答を収集するための呼び出し

app.get('/TC4', function(req, res) { 
    client.calls.create({ 
    url: 'http://{PUBLIC_URL}/TC4_Step1', 
    to: '{TO_NUMBER}', 
    from: '{TWILIO_NUMBER}', 
    method: 'GET', 
    Record: 'false', 
    }) 
    .then((call) => res.send(call.sid)); 
}); 

機能を配置する

機能以下の私のサンプルコードを見つけてください。

ステップ1の応答を検証する関数&ステップ2の応答を収集する

app.post('/TC4_Step1_Validate', function(req, res) {  
    const response = new VoiceResponse(); 
    console.log("Received response from Server"); 
    console.log(req.body.SpeechResult.toLowerCase()); 
    if(req.body.SpeechResult.toLowerCase().indexOf("{VERIFY_TEXT1}")!=-1 && req.body.SpeechResult.toLowerCase().indexOf("{VERIFY_TEXT2}")!=-1) { 
    response.pause({ 
     length: 2 
    }); 
    const gather = response.gather({ 
     input: 'speech', 
     action: 'http://{PUBLIC_URL}/TC4_Step2_Validate', 
     timeout: 3, 
    }); 
    } else { 
    console.log("Failed Step 1"); 
    response.hangup(); 
    } 
    res.setHeader('Content-Type', 'application/xml'); 
    res.send(response.toString()); 
    console.log("DTMF Input 2"); 
    console.log(response.toString()); 
}); 

答えて

0

Twilioの開発者のエバンジェリストです。

actionアトリビュートを設定すると、パス/TC4_Step1_Validateでここで行ったように、Twilioは現在のアクションが完了した後でのみコールを発信します。この場合、ユーザーが3秒間発言を停止するのを待っています。その後、オーディオストリームをテキストに変換してから、最後にactionというURLに電話をかけています。

Twilioは、音声入力や実際に多くのやりとりを聞く場合に、Twilioと通話の開始を具体的に表す他のイベントを利用できません。 <Dial>を使用しているときにコールイベントを取得できますが、コールイベントはサードパーティのコールを参照します。

Twilioがあなたが求めていることをすることができないとは思っていますが、あなたが全体的に達成しようとしていることを尋ねたいので、別の方法で問題を解決することができますか?

+0

ありがとうございました。私は、コンタクトセンターが応答を終わらせるのではなく、応答するのにかかる時間を見極めようとしています。パフォーマンスメトリクスの観点から。 –

+0

あなたは自分のアプリケーションのパフォーマンスメトリックを見ていますか? – philnash

+0

はい。私はTwilio番号からIVR応答で返答するTFNの時間を測定したいと考えています。 –

関連する問題