从twilio文档和tutorial代理人不知道有人在队列中,所以这只有在队列中总有人和代理人坐在那里并整天拨打电话时才有效。 / p>
目的:
当有人打电话时,我想将呼叫连接到座席。如果代理不可用,请将调用方添加到队列中。如果第二个或第三个人打电话,请继续将它们添加到队列中。当座席完成第一次通话并挂断电话时,让下一个直接通话并实际响铃代理人的电话与座席通话。
我真的很喜欢twilio所以这个twiml很糟糕我已经知道这不起作用,但这是我到目前为止所做的:
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<Enqueue waitUrl="contactagent.php">myqueue</Enqueue>
</Response>
contactagent.php:
<?php
// Get the PHP helper library from twilio.com/docs/php/install
require_once('../callapp/Services/Twilio.php'); // Loads the library
$sid = "(MYID)";
$token = "(MyToken)";
$client = new Services_Twilio($sid, $token);
$call = $client->account->calls->create($_REQUEST['the caller that's in the queue'], "(the agent's phone number)", "connectagent.xml", array());
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<Response>
<Say>Your are number ".$_REQUEST['QueuePosition']." in line for a representative.</Say>
<Play>http://com.twilio.sounds.music.s3.amazonaws.com/MARKOVICHAMP-Borghestral.mp3</Play>
</Response>"
?>
connectAgent.xml
<?xml version='1.0' encoding='utf-8' ?>
<Response>
<Dial>myqueue</Dial>
</Response>
答案 0 :(得分:3)
我认为您应该将所有客户端调用放入队列(无论是否是第一个客户端)。使用Enqueue做它。那很好。
接下来,您需要启动对座席的呼叫。 您可以指示Twilio拨打座席的电话号码。在该指令中定义一个回调URL“dial_agent_callback”和一个状态回调url“dial_agent_status_callback”。 一旦发生“dial_agent_callback”回调(表明代理已经启动),您就会指示Twilio拨打您的队列:
<Response>
<Dial>
<Queue url="dial_queue_callback">
myqueue
</Queue>
</Dial>
<Response>
您可以知道座席何时在dial_queue_status_callback中与客户端通话(或者如果座席未被接听,或者是否发生任何问题)。回调状态将指示发生了什么。
最后,您需要确定何时触发对代理的调用。 我建议在发生客户端调用时触发事件。如果有,请致电您的下一个可用座席。如果客户端多于代理程序,则可以使用Twilio API检查队列大小。然后,您可以在新代理加入时或忙代理完成客户呼叫处理时触发对代理的新呼叫。
我希望有所帮助。