Twilio呼叫转移来电
我没有从Twilio文档找到明确的答案。我正在尝试构建一个电话系统,可以在通话时和通过电话暂停对方。例如:有两名特工在现场陪我一起工作。我接到手机上的电话(远离计算机),发现其他座席需要与正在通话的人通话。我希望能够将某些东西压入电话中,直接将其他人转移到座席,或将他们放入队列中。然后,我可以打电话给其他代理人,他可以从队列中检索这个人。所有这些都需要从我们的手机中发生。Twilio呼叫转移来电
我发现了一些这方面的文档,但它似乎都需要我在一台计算机,这是不可能的。
这是甚至可能与Twilio?
Twilio福音传教士在这里。
这听起来像它可能是use some <Conference>
s的好地方。
让我们来定义场景中的参与者:Agent1,Agent2,Field。
可以说现场调用Agent1。您可以将<Dial>
字段直接连接到<Conference>
(我们称之为ConferenceA),然后使用REST API启动对Agent1的出站呼叫,而不是直接与<Dial>
连接。当他们回答<Dial>
他们到相同的<Conference>
。系统需要获取Agent1和Field的CallSid以及<Conference>
的Sid,并将它们保留在稍后使用的某种类型的存储中。
在这种情况下使用<Conference>
可让您更灵活地操纵呼叫的每一个独立于其他呼叫的路径,而不是使用<Dial>
连接Field和Agent1。
所以现在Agent2调用Field。 Agent2会经历相同的过程,恰恰相反。 Agent2将被拨入<Conference>
(让我们称它为ConferenceB),你的系统将使用REST API调用Field。当Field应答时,他们将<Dial>
编入与Agent2相同的会议中。同样,系统需要获取Agent2和Field的CallSid以及<Conference>
的Sid,然后将它们保留在稍后使用的某种类型的存储中。
现在,Field需要一种方法来告诉系统将Agent2与Agent1连接起来。要做到这一点,您可以在Twiio中使用TwiML中的<Dial>
的hangupOnStar属性,当您将Field拨入ConferenceB时。该<Dial>
动词看起来是这样的:
<Dial hangupOnStar="true" action="[process_hangup_url]">
<Conference>ConferenceB</Conference>
</Dial>
hangupOnStar告诉Twilio,断开谁,他们<Dial>
ED(会议),但仍使在<Dial>
动词动作属性定义的URL请求调用者(现场) 。这很重要,因为当Field需要告诉系统使用Agent1将Agent2重定向到ConferenceA时,并且对s action属性中的URL的请求使系统有机会提示Field以查看他是否想要执行此操作。所以,你可能有Twilio执行一些TwiML这样的:
<Response>
<Gather action=[gather_handler]>
<Say>Press 1 to connect this caller to another<Say>
</Gather>
</Response>
如果现场按下一个,系统(谁知道所有的CallSids所有这里涉及各方的,以及会议SIDS),可以使用REST API将Agent2从ConferenceB重定向到ConferenceA。
它使一个系统更复杂一点,但它应该为你工作。
希望帮助
Redirect an incoming call to new url:
<?php
// Get the PHP helper library from twilio.com/docs/php/install
require_once '/path/to/vendor/autoload.php'; // Loads the library
use Twilio\Rest\Client;
// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$token = "your_auth_token";
$client = new Client($sid, $token);
// Get an object from its sid. If you do not have a sid,
$call = $client
->calls("CAe1644a7eed5088b159577c5802d8be38")
->update(
array(
"url" => "your_url/test.xml",
"method" => "POST"
)
);
echo $call->to;
XML Code:
---------
<Response>
<Redirect method="POST">url goes here</Redirect>
</Response>
你能解释一下为什么这个代码工作,以帮助未来的读者? – WhatsThePoint