这里是 Twilio 开发者布道者。
这两种方法都有效,但效果略有不同。无论当时谁在发言,重定向都会中断会议,但加入的机器人可能会被发言。这取决于哪个更适合您的用例。
要进行重定向,您需要运行会议参加者名单 https://www.twilio.com/docs/api/rest/participant,通过以下方式重定向它们将他们的调用更新为新 URL https://www.twilio.com/docs/api/rest/change-call-state并从该 URL 返回 TwiML播放声音 https://www.twilio.com/docs/api/twiml/play and 重定向 https://www.twilio.com/docs/api/twiml/redirect返回您原来的会议 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>
另一方面,让机器人进入房间需要你创建一个通话 https://www.twilio.com/docs/api/rest/making-calls会议号码并提供指向 TwiML 的 URLplay https://www.twilio.com/docs/api/twiml/play消息,然后hangup https://www.twilio.com/docs/api/twiml/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>
让我知道这是否有帮助。