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

TwiML - Can I record an user AND gather keypad inputs in the same call?

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

有没有人遇到过这种情况,如果遇到过,能指点一下正确的方向吗?谢谢。

我正在回答我自己的问题,以防将来有人需要帮助。

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

这并不像听起来那么复杂(我现在知道了),您需要的是在收集按键时响应 TwiML 操作,以及另一个处理语音记录的 XML 文档。这个 XML 理论上会使用从 TwiML 收到的 "digits" 在第二个 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 参数替换我们响应中的 "dish_id" 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 的描述。