Twilio – 将已排队的呼叫连接到代理
我正在尝试创建一个呼叫者入队的电话系统,理想情况下,系统将呼叫代理,然后代理将接听并修改呼叫以桥接队列的顶部.
什么我迄今完成的是拨号循环,其中一个用户呼叫,并拨打顺序剂,直到有人拿起,或为用户提供选项,以留言或留下就行了,同时听到响铃.还有一个简单的入场音乐. 我似乎无法弄清楚如何将这两个系统结合起来. 我发现的最接近的是this post,它很有帮助,但是一旦呼叫者入队,它就会掩盖如何召唤出来. 不幸的是,到目前为止我发现的唯一的Twilio文档告诉我如何拨入队列,这不是我想要的系统.我希望这个系统将呼叫者放在一个带有保持音乐的队列中,然后系统拨打座席号码,直到座席接听为止. 任何和所有的帮助非常感谢. 谢谢. 编辑: 解 的index.php 这是呼叫者最初命中的一般IVR树. <Say>This hits your general IVR tree</Say> <Say>As the last action,since the caller hasn't pressed anything and should be enqueued,redirect the caller to EnqueueCaller.php</Say> <Redirect>./EnqueueCaller.php</Redirect> 由于PHP是一个预处理器,因此没有真正的方法可以暂停或超时拨打电话. IVR树中的重定向是必需的,因此当用户仍在IVR树中时不会拨打代理. EnqueueCaller.php 这是在IVR树完成并且用户选择等待代理后,调用者被重定向的地方.调用实际上发生在Enqueue之前,因为PHP在读取TwiML xml之前首先加载(我认为?).但是,由于呼叫时存在固有的延迟,因此呼叫者将始终在代理人可以接听之前入队(我希望). <Enqueue waitUrl="wait_file.xml">name_of_queue</Enqueue> $call = $client->account->calls->create($from,$to,"http://example.com/DialQueueHandler.php",array( "StatusCallback" => "DialQueueEventHandler.php" ); DialQueueHandler.php 这简单地将代理和管理程序桥接在队列的顶部. <Say>Connecting to caller now.</Say> <Dial><Queue>name_of_queue</Queue></Dial> DialQueueEventHandler.php 此脚本包含当拨号代理状态从$_REQUEST [‘CallStatus’]更改(应答,完成,启动,响铃)时发生的情况的逻辑.在我的例子中,我从enqueue脚本中拨打了一个代理,并在此脚本中,通过设置标志继续拨打下一个代理. switch($_REQUEST['CallStatus'] { case 'answered': case 'completed': $next = false; break; default: $next = true; break; } if($next) { $call = $client->account->calls->create($from,$nextAgentNumber,array( "StatusCallback" => "DialQueueEventHandler.php?agentOffset=$num" ); } //same line from EnqueueCaller.php,and track where we are in agent array. 如果未接听或完成呼叫,则拨打下一个座席.否则,当代理接听到呼叫时,DialQueueHandler.php文件将被命中,呼叫将被桥接. 解决方法
杰夫,我是来自Twilio的Megan.
您可以使用< Enqueue>的workflowSid属性.配置任务,使用TaskRouter启动到可用代理的呼叫流. PHP中有一个TaskRouter quickstart,我认为到目前为止,你可以在third part上找到它. 如果您觉得这有用,请告诉我. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |