【发布时间】:2015-07-04 19:03:29
【问题描述】:
我已经成功设置了 Twilio 的 JS WebRTC 客户端和 PHP 端来进行调用。但是,我似乎无法弄清楚如何在通话进行后发送新的 TwiML 代码。
以下是我想做的事情:通话开始后,我想在我点击浏览器中的按钮时播放预先录制的消息。实现这一目标的最佳方法是什么?在通话已经进行后,我不知道如何发送新的。谢谢!
【问题讨论】:
标签: twilio twilio-twiml twilio-php
我已经成功设置了 Twilio 的 JS WebRTC 客户端和 PHP 端来进行调用。但是,我似乎无法弄清楚如何在通话进行后发送新的 TwiML 代码。
以下是我想做的事情:通话开始后,我想在我点击浏览器中的按钮时播放预先录制的消息。实现这一目标的最佳方法是什么?在通话已经进行后,我不知道如何发送新的。谢谢!
【问题讨论】:
标签: twilio twilio-twiml twilio-php
这里是 Twilio 开发者宣传员。
要向正在进行的调用发送更多 TwiML,您需要使用 REST API 来更新正在进行的调用。
为此,您需要调用 SID。您可以在呼叫被应答时从参数到原始 webhook 到您的服务器或通过 parameters attribute on the Twilio.Connection object 获取此信息。
获得调用 SID 后,您可以通过调用 REST API 使用新的 TwiML 更新调用,如下所示:
require_once('/path/to/twilio-php/Services/Twilio.php'); // Loads the library
// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "{{ account_sid }}";
$token = "{{ auth_token }}";
$client = new Services_Twilio($sid, $token);
$call = $client->account->calls->get("{{ call_sid }}");
$call->update(array(
"Url" => "{{ new_url_with_twiml }}"
));
这里有更多关于如何在飞行中更新呼叫的信息:https://www.twilio.com/docs/api/rest/change-call-state
【讨论】:
new_url_with_twiml 我只是指您的应用程序中的 URL,您希望将调用定向到的 TwiML 所在的位置。如果您想在飞行途中更改呼叫,那么这就是方法。 :)