问题描述
我有一个案例,当客户提交表单时,我希望我的系统呼叫多个座席,如果一个座席接电话,所有呼叫都应该挂断 我当前使用 call 的代码在执行 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;
解决方法
您将无法通过这种方法使用 SimRing(Dial Verb 和多个嵌套的 Number 名词),因为第一个接听电话的人会导致所有其他电话线路都被取消.
您将需要使用 /Calls 资源发起呼叫,并返回 TwiML 要求被叫方按任意数字以连接到客户。然后您将取消 (status=canceled) 其他呼叫支路。正如您所看到的,SimRing 不是最好的方法,因为它往往会因不断响铃而使被叫方疲惫不堪,您需要防范的语音邮件问题以及默认的每秒呼叫数 (CPS) 为每秒 1,因此除非您让 Twilio Sales 增加出站 CPS。
一旦座席按下某个键,您就可以向客户发起拨号。如果您在呼叫建立后需要修改呼叫,您应该将代理连接到 conference,并将客户连接到同一个会议,您可以锚定呼叫分支并允许更轻松地操作呼叫。