Twilio:以编程方式加入会议并播放 <Say> 命令或 <Play> 声音文件?

Posted

技术标签:

【中文标题】Twilio:以编程方式加入会议并播放 <Say> 命令或 <Play> 声音文件?【英文标题】:Twilio: programmatically join conference and play <Say> command or <Play> sound file? 【发布时间】:2016-07-07 02:45:17 【问题描述】:

我有两个用户,我将他们都加入了&lt;Conference&gt;

我想让机器人加入&lt;Conference&gt;然后发布公告。

我正在考虑两种方法:

    将会议中的每个人都带到会议中,将他们重定向到播放声音的 TwiML,然后将他们移回会议中。

    创建一个以某种方式加入会议并播放 TwiML 的机器人,但我从文档中不清楚如何做到这一点。

【问题讨论】:

【参考方案1】:

这里是 Twilio 开发者宣传员。

这些方法中的任何一种都可以,但效果会略有不同。无论当时谁在发言,重定向都会中断会议,但加入的机器人可能会被发言。这取决于哪个更适合您的用例。

要进行重定向,您需要遍历 list of Conference participants,通过 updating their call to a new URL 重定向它们,然后将 TwiML 从该 URL 中的 plays the sound 和 redirects 返回到您的原始会议 URL。比如:

$sid = " account_sid "; 
$token = " auth_token "; 
$client = new Services_Twilio($sid, $token);

// Loop over the list of participants and redirect ($client->account->conferences->get(CONFERENCE_SID)->participants as $participant) 
    $call = $client->account->calls->get($participant->call_sid);
    $call->update(array(
        "Url" => "http://example.com/conference_message"
    ));

那么您的 /conference_message 端点将需要像这样的 TwiML:

<Response>
  <Play>http://example.com/message.mp3</Play>
  <Redirect>http://example.com/conference</Redirect>
</Response>

另一方面,让机器人进入房间需要您将create a call 发送到会议号码,并提供指向 TwiML 的 URL 到 play 消息,然后提供 hangup。像这样:

$sid = " account_sid "; 
$token = " auth_token "; 
$client = new Services_Twilio($sid, $token); 

$call = $client->account->calls->create(A_TWILIO_NUMBER, THE_CONFERENCE_NUMBER, "http://example.com/conference_message");

然后你的/conference_message 端点会像这样返回 TwiML:

<Response>
  <Play>http://example.com/message.mp3</Play>
  <Hangup/>
</Response>

让我知道这是否有帮助。

【讨论】:

谢谢,这很有帮助!我如何获得THE_CONFERENCE_NUMBER .. 是 ConferenceSid 吗?最初通过 动词、arbitrary internal id. 创建会议 啊,不,这只是一个号码,您可以拨打这个号码来参加您的会议。我以为人们只是拨入会议,而您的机器人也可以。 所以没有办法让机器人加入以编程方式创建的会议? 好吧,机器人加入的唯一方法是拨入会议,说是消息然后挂断。这就是我在上面试图解释的。 机器人如何拨入没有电话号码的会议(即以编程方式创建的会议)?

以上是关于Twilio:以编程方式加入会议并播放 <Say> 命令或 <Play> 声音文件?的主要内容,如果未能解决你的问题,请参考以下文章

Twilio 加入 Google Hangouts 电话会议

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

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

如何以编程方式播放默认电话铃声?

Twilio Conference - PHP - 未收到 statusCallback

twilio 电话会议收集数字功能缺失