当前位置: 首页 > 知识库问答 >
问题:

如何让twilio调用代理将它们连接到队列中的调用者?

公孙宇
2023-03-14

从twilio文档和教程中,代理不知道有人在队列中,所以只有在队列中总是有人,而代理整天都坐在那里打外勤电话的情况下,这才有效。

目标:

当有人打来电话时,我想把电话接通代理。如果代理不可用,请将调用方添加到队列中。如果有第二或第三个人呼叫,则继续将其添加到队列中。当代理人打完第一个电话并挂断时,让下一个排队的人打电话,并实际拨打代理人的电话与代理人交谈。

我对twilio真的很陌生,所以这个Twill很糟糕,我已经知道这不起作用,但到目前为止我正在尝试的是:

<?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>"
?>

xml

<?xml version='1.0' encoding='utf-8' ?>
<Response>
   <Dial>myqueue</Dial>
</Response>

共有1个答案

濮丰
2023-03-14

我认为您应该将所有客户机调用都放到队列中(不管是不是第一个客户机)。使用enqueue进行。那就好了。

接下来,您需要启动对代理的呼叫。你可以指示Twilio打探员的电话号码。在指令中定义回调url“dial_agent_callback”和状态回调url“dial_agent_status_callback”。一旦发生了“dial_agent_callback”回调(指示agent已接听),则指示Twilio拨号队列:

<Response>
   <Dial>
      <Queue url="dial_queue_callback">
         myqueue
      </Queue>
   </Dial>
<Response>

您可以知道代理何时在dial_queue_status_callback中完成了与客户机的对话(或者代理是否没有接听,或者是否发生了任何问题)。回调状态将指示发生了什么。

最后,您需要确定何时触发对代理的调用。我建议在客户端调用发生时触发事件。打电话给你的下一个可用的代理,如果有的话。如果客户机多于代理,可以使用Twilio API检查队列大小。然后,当新代理加入时,或者当繁忙的代理完成处理客户端调用时,您可以触发对代理的新调用。

我希望这能有所帮助。

 类似资料:
  • 我试图将studio流的某些部分迁移到,但不是全部,但似乎当我试图重定向回studio流时,Twilio会出现错误400或挂断呼叫。 我希望它能继续成功分支的工作室流,但电话被挂断了。我还尝试省略,但也没有更好。 当我输入无效的(如)时,我会得到错误400。 你们知道我错过了什么吗?

  • 这是一个非常非常简单的情况,但我找不到解决办法。 请注意,我们没有台式手机,我们使用公司发行的iPhone,所以我们晚上不会把iPhone留在工作中。

  • 我有一个关于不和的问题。皮耶。我运行我的bot所在的两个独立服务器:测试服务器和主服务器。问题是,当我在测试服务器中发送消息时,bot会将其消息发送到主服务器,而不会将其发送回调用命令的服务器(仅在函数中)。 例如: 如果我在测试服务器中键入上述内容,我的bot将以“你好!”在测试服务器中。但是,如果我尝试将此代码放入函数并调用它: 通道ID显然设置为特定服务器。因此,假设我将ID“1234”作为

  • null 但我无法连接。我得到这样的错误消息“无法建立到队列管理器的连接-原因2538.(AMQ4059)"。我能做什么?

  • 作为任务的一部分,我一直在尝试将PendingEvent传递给Activity Recognition客户端,但似乎没有调用PendingEvent。 我正在使用谷歌的活动识别客户端(https://developers.google.com/android/reference/com/google/android/gms/location/ActivityRecognitionClient).