首页 > 解决方案 > Twilio 在表单提交时呼叫多个代理

问题描述

我遇到这样一种情况,当客户端提交表单时,我希望我的系统调用多个代理,如果一个代理选择呼叫,所有呼叫都应该被丢弃我当前使用的代码调用在执行 twiml 后丢弃所有呼叫

   $data = $req->input();
        $action = $appUrl.'/wcc/gather-input?callId='.$data["callId"].'&visitorName='.$data["visitorName"].'&visitorMessage='.$data["visitorMessage"].'&visitorPhone='.$data["visitorPhone"];
        $dial = $response->dial('', ['callerId' => '+123123123', 'timeout' => 30, 'action' => $action,"method"=>"GET"]);
        $dial->number('+123123213');
        $dial->number('+12313123123');
        header('Content-Type: text/xml');
        echo $response;

标签: twiliotwilio-phptwilio-twimltwilio-taskrouter

解决方案


您将无法通过该方法使用 SimRing(带有多个嵌套号码名词的拨号动词),因为第一个接听呼叫的人会导致所有其他呼叫段被取消。

您将需要使用/Calls资源来发起呼叫,并返回TwiML要求被叫方按任意数字以连接到客户。然后,您将取消 (status=canceled) 其他呼叫分支。正如您所看到的,SimRing 并不是最好的方法,因为它往往会使拨号方因不断响铃而疲惫不堪,而且您需要防范的语音邮件问题以及默认的每秒呼叫数 (CPS) 是每秒 1 个,所以会有每次出站呼叫之间会有延迟,除非您让 Twilio Sales 增加出站 CPS。

一旦座席按下一个键,您就可以向客户发起一个拨号号码。如果您需要在呼叫建立后对其进行修改,您应该将座席连接到一个会议,并将客户连接到同一个会议,您可以锚定呼叫分支并允许更轻松地操作呼叫。


推荐阅读