Twilio 在表单提交时呼叫多个代理

问题描述

我有一个案例,当客户提交表单时,我希望我的系统呼叫多个座席,如果一个座席接电话,所有呼叫都应该挂断 我当前使用 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,并将客户连接到同一个会议,您可以锚定呼叫分支并允许更轻松地操作呼叫。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...