2017-08-23 88 views
0

我正在尝试使呼叫流程自动化为回归测试呼叫中心应用程序的IVR系统。Twilio收集可编程语音 - 如何访问底层电话呼叫事件

我能够拨打电话和接收响应,expected.But我想了解两行代码

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

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

我的理解是之间所花费的时间在Twilio从我的Node.js实例接收到TwiML响应后,它会处理并发送/接收电话信号。

只有当它从服务器收到整个响应后,我才收到/TC4_Step1_Validate中的语音响应。当我记录两条线的时间戳并捕获差异时。它大约需要20秒。但实际上,应用程序在几秒钟内响应。

我相信Twilio通过等待3秒钟的静音等待整个对话完成,将该音频流转换为文本,然后将其发布到我的功能。这就是我看到20秒的原因。

但我需要了解首次接收电话响应的时间,而不是超时和语音到文本转换时间的整个流。

总之,我想了解联络中心应用程序响应的时间。

请在下面找到

功能我的示例代码发出呼叫

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的反应,当我拨打电话

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的响应的函数&收集第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

感谢Philnash。我试图看到联络中心需要花费时间而不是进行端到端响应。从性能指标的角度来看。 –

+0

你的意思是你正在寻找你自己的应用程序的性能指标? – philnash

+0

是的。我期待测量从Twilio号码拨打的TFN拨打电话以回应IVR响应的时间。 –

相关问题