TwiML - 我可以在同一个电话中录制用户并收集键盘输入吗?

时间:2015-06-10 18:02:39

标签: php xml twilio twiml

非常直接地记录和转录用户的电话,或者在用录音提示他们之后从用户的键盘收集输入。然而,我不清楚我应采取什么步骤来记录用户的描述'问题(在这种情况下)和收集用户输入,将帮助我路由他们的请求'在同一个调用中,这样TwiML就可以在一个请求中发布这些数据。

有没有人遇到过这种情况,如果有的话,你能指出我正确的方向吗?感谢。

1 个答案:

答案 0 :(得分:0)

如果有人在将来需要帮助,我会回答我自己的问题。

在我的特定场景中,我需要提示用户按一个键以便路由"请求"被安置。我还需要包含描述的请求,因此还需要记录用户的声音。

这并不像听起来那么复杂(我现在知道),你需要的是在收集按键时响应TwiML动作,使用另一个处理录音的XML文档。理论上,这个XML将使用"数字"从TwiML收到,在第二个XML(路由)中构建一个新的动作src。

第一个XML看起来像这样收集用户输入:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Gather action="hxxp://example.com/pick_dish" timeout="10" finishOnKey="*">
        <Say>Please press 1 for tacos, 2 for pancakes, 3 for pizza, etc.</Say>
    </Gather>
</Response>

然后当我们在hxxp://example.com/pick_dish收到$ _REQUEST(PHP)时,我们会使用发送的Digits参数替换&#34; dish_id&#34;在我们的响应XML中如此:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say>
        Please describe the dish you selected after the beep. 
        Press the star key when finished. 
    </Say>
    <Record
        action="hxxp://example.com/save_dish/<dish_id>/description"
        method="GET"
        maxLength="20"
        transcribe="true"
        finishOnKey="*"
        />
    <Say>I did not receive a recording</Say>

/ Description路径将保存所提供的dish_id的描述。