twilio - 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;
解决方案
您将无法通过该方法使用 SimRing(带有多个嵌套号码名词的拨号动词),因为第一个接听呼叫的人会导致所有其他呼叫段被取消。
您将需要使用/Calls资源来发起呼叫,并返回TwiML要求被叫方按任意数字以连接到客户。然后,您将取消 (status=canceled) 其他呼叫分支。正如您所看到的,SimRing 并不是最好的方法,因为它往往会使拨号方因不断响铃而疲惫不堪,而且您需要防范的语音邮件问题以及默认的每秒呼叫数 (CPS) 是每秒 1 个,所以会有每次出站呼叫之间会有延迟,除非您让 Twilio Sales 增加出站 CPS。
一旦座席按下一个键,您就可以向客户发起一个拨号号码。如果您需要在呼叫建立后对其进行修改,您应该将座席连接到一个会议,并将客户连接到同一个会议,您可以锚定呼叫分支并允许更轻松地操作呼叫。
推荐阅读
- python - 将一系列条件应用于数据框。熊猫
- lua - LUA 命令在 WoW Classic 中将物品从包中移到银行
- java - Spring自动装配唯一的实现而不定义bean
- xml - XSL | 选择性地复制某些元素
- here-api - DomMarker 在下面阻止 Polyline 事件
- qt - 是否可以在不使用其他同步工具的情况下从 1 个小部件上的 2 个线程进行绘制?
- angular - iOS WKWebview 上的 Ionic 3 i18n 翻译
- c++ - C ++:将一行读为:'string string;int'
- formatjs - 如何将 format.js 与 node.js 一起使用
- excel - 如何使用 SUMPRODUCT 和 MAX 函数对多张工作表上的数据求和?