TwiML -我可以记录一个用户和收集键盘输入在同一呼叫


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

直接记录和转录用户的呼叫,或者在提示用户录音后从用户的键盘上收集输入。然而,我不清楚,我应该采取什么步骤来记录用户对问题的"描述"(在这种情况下)并收集用户输入,这将有助于我在同一呼叫中路由他们的"请求",以便TwiML可以在一个请求中发布此数据。

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

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

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

这并不像听起来那么复杂(我现在知道了),您需要的是在收集按键时响应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参数来替换响应XML中的"dish_id",如下所示:

<?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路径将保存所提供的disdish_id的描述。