如何将 twiml 发送到正在进行的呼叫

how to send twiml to an in-progress call

我正在使用 twiml 进行语音回复。我有一个场景,用户可能会要求一个需要更长时间的任务,并要求用户 wait/hold 打开一秒钟,完成数据库调用并发送另一个 speech.e.g.

1) [用户]:明天给我预约。

2) [网络钩子]:

a) 让我检查一下时间表。 (将这个 twiml 发送到这个正在进行的呼叫)

b)(继续从数据库中收集数据)

c) 我已经为您预约了。 (现在,发送这个 twiml)

我查看了 Twilio 的 API EXPLORER,但没有找到任何 API 来将 twiml 发送到正在进行的调用。 我研究了 twiml 动词,但似乎无法弄清楚这一点。

当您发起拨出电话时,Twilio returns 一个呼叫 SID。使用调用 SID,您可以通过更新修改调用,传递一个 URL 来执行新的 TwiML。

你没有提到你的语言,但这里是你如何使用 Node.js 和 Twilio 的库。


const accountSid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const authToken = 'your_auth_token';
const client = require('twilio')(accountSid, authToken);

client.calls('CAe1644a7eed5088b159577c5802d8be38')
      .update({method: 'POST', url: 'http://demo.twilio.com/docs/voice.xml'})
      .then(call => console.log(call.to));

你可以看到

  • CAe1644a7eed5088b159577c5802d8be38是调用SID来识别调用
  • http://demo.twilio.com/docs/voice.xml 是 URL Twilio 将在其中找到新的 TwiML

有关更多信息,请查看这些文档:
(https://www.twilio.com/docs/voice/tutorials/how-to-modify-calls-in-progress)