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



我有两个用户,我把他们都加入了一个<Conference>

我想让一个机器人加入<Conference>然后发布公告。

我正在考虑两种方法:

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

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

Twilio开发者布道者在这里。

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

要执行重定向,您需要浏览会议参与者列表,通过将他们的呼叫更新到新 URL 来重定向他们,并从播放声音的 URL 返回 TwiML 并重定向回您的原始会议 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>

另一方面,让机器人进入房间需要您创建对会议号码的呼叫,并提供指向 TwiML 的 URL 以播放消息,然后挂断。喜欢这个:

$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>

让我知道这是否有帮助。

最新更新