我正在用 Twilio 制作一个非常简单的应用程序。一位客户拨打 Twilio 号码,然后 twilio 拨通了此人<Enqueue>
。我将CallSid
标识符存储在数据库中以备后用。当客户致电时,twilio 会使用 twilio-php sdk 再次致电另一个人。此人可以拒绝或接听电话。
这运行良好。
我的问题是:如果该人接听电话,我如何连接(以便他们可以一起交谈)这 2 个电话?可以用<Dial>
动词和CallSid
?
Twilio 布道者在这里,
您可以使用<Dial>
和<Queue>
TwiML 动词来做到这一点。
当客户给您打电话时,您可能希望将他们与另一个人联系,我们将给代理打电话。因此,要将客户放入呼叫队列(听起来您已经开始工作了):
<Response>
<Enqueue>some-queue-name</Enqueue>
</Response>
值得在 上设置一个waitUrl
属性,<Enqueue>
以便您可以获得状态消息或为呼叫者保留音乐。当您的代理接听电话时,您所需要做的就是使用<Dial>
并将<Queue>
它们连接在一起:
<Response>
<Dial>
<Queue>some-queue-name</Queue>
</Dial>
</Response>
此时,客户正在与座席通话,通话已接通。
还值得补充的是,如果您保留REST API,CallSid
您还可以使用 REST API 来更改实时通话。实际上,您指示 Twilio 开始执行不同的 TwiML。在 PHP 中:
<?php
// Get the PHP helper library from twilio.com/docs/php/install
require_once('/path/to/twilio-php/Services/Twilio.php'); // Loads the library
// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "AC7957fb240ace4634d57f3888c4966461";
$token = "{{ auth_token }}";
$client = new Services_Twilio($sid, $token);
// Get an object from its sid. If you do not have a sid,
// check out the list resource examples on this page
$call = $client->account->calls->get("CAe1644a7eed5088b159577c5802d8be38");
$call->update(array(
"Url" => "http://demo.twilio.com/docs/voice.xml",
"Method" => "POST"));
echo $call->to;
希望有帮助!