如何在呼叫任何人之前创建 Twilio 会议?

Posted

技术标签:

【中文标题】如何在呼叫任何人之前创建 Twilio 会议?【英文标题】:How to Create Twilio Conference Before Calling Anyone? 【发布时间】:2021-04-17 16:09:08 【问题描述】:

我正在寻找一种在将任何人添加到会议之前在 Twilio 系统中生成会议资源的方法。

official recommended way 开始会议是通过返回 TwilXML 来响应 Twilio 回调。这可以通过响应某人拨打 Twilio 号码来完成,或者以某种间接的方式,通过making a call and returning TwilXML 来完成,一旦他们接听电话,就会将该人连接到会议。所有修改会议的 API 都使用ConferenceSID 作为句柄来决定要更改的会议。这两种方法的问题在于,在您收到回调之前,它们不会给您ConferenceSID

不幸的是回调do not contain any identifying information about who generated them。他们确实有一个ConferenceSID(标识会议)和一个CallSID(唯一标识将呼叫者连接到会议的呼叫)。当您收到第一个回调时,似乎无法匹配其中任何一个标识符。如果你启动多个会议,得到两个不同的ConferenceSIDs和不同的CallSIDs的回调,不方便分辨哪个会议在生成哪个回调。

这就是为什么创建会议资源然后使用通用的add participant 呼叫最简单的原因。这将简化使用会议的整个后端流程,从 ConferenceSID 开始并从那里开始。

附:为了阻止其他建议 - 有办法解决这个问题。您可以为不同的会议指定不同的回调 URL。您可以为可以在后端匹配的不同参与者指定不同的friendlyNames。完全可以使用它,但我想要更干净的东西,这需要在任何人被调用之前召开会议。

【问题讨论】:

【参考方案1】:

这里是 Twilio 开发者宣传员。

无法从 API 创建conference resource。您只能通过使用<Dial><Conference> TwiML 将呼叫者定向到那里来做到这一点。


此外,当您说“当您收到第一个回调时,似乎无法匹配其中任何一个标识符”时,我不太明白。你想匹配什么?您可以使用CallSid 查找加入会议的呼叫者的From 号码。您还会在回调中收到 FriendlyName,这是您在 TwiML <Conference>Friendly Name</Conference> 中设置的名称,您可以选择它来帮助确定哪个会议是哪个会议。

这有帮助吗?

【讨论】:

嗨菲尔,感谢您确认我的印象。当然,一旦您收到回调,您可以使用额外的 API 调用来准确识别谁在调用。如果回调具有其他 twilio 请求所做的基本信息(如呼叫者的电话号码),那将很方便。我在帖子中提到了friendlyName,事实上,这就是我将使用的。如果您可以向 Twilio 提供反馈,请在使用会议资源拨打电话之前转达对创建会议资源的兴趣。 另一种选择是在初始 webhook 请求中存储呼叫者的号码和呼叫 SID,然后当您收到带有呼叫 SID 的会议回调事件时,您可以在自己的系统中查找它们。 我同意菲尔的第二个选项。我们正在做同样的事情,而且效果很好。

以上是关于如何在呼叫任何人之前创建 Twilio 会议?的主要内容,如果未能解决你的问题,请参考以下文章

Twilio:我可以进行 OUTBOUND 电话会议吗?

执行 python 程序以从 twilio 服务器获取呼叫者参加电话会议时出错

如何在呼叫状态更改为响铃时自动取消 Twilio 出站呼叫

Twilio - 如何通过在 NodeJs 中提供呼叫 SID 来检索语音呼叫记录媒体文件

Twilio 可编程语音呼叫立即完成

Twilio,如何将正在进行的呼叫转移到另一个号码