当座席连接到等待队列的客户时如何获得回调?

Posted

技术标签:

【中文标题】当座席连接到等待队列的客户时如何获得回调?【英文标题】:How to get a callback when the agent is connected to the customer waiting the queue? 【发布时间】:2022-01-15 05:05:06 【问题描述】:

我有一个简单的设置,其中有 1 个队列和一些在 php 的帮助下由我管理的代理。

当客户打电话时,电话会像这样排队:

$response = new VoiceResponse();
$response->enqueue('support', ['waitUrl' => 'wait-music.xml','action' => 'queue-action.php']);
$call = $client->account->calls->create($agent_number, $queue_number, [
    "url" => 'queue.php',
]); 

echo $response;

queue-action.php,在这种情况下,只有在调用结束时才被调用。另外,我开始呼叫代理以将他连接到队列。

queue-action.php 内容:

$response = new VoiceResponse();
$dial = $response->dial('',[
        'action' => 'dial-callback.php',
    ]);
$dial->queue('support');

这里的dial-callback.php也是通话结束后触发的。

我的目标是在通话连接在一起时接收回拨,这样我就可以将某个通话标记为进行中并为其分配座席,以便稍后知道该座席正忙于线路。

感觉我需要在 $dial 上使用 statusCallbackEvent 和 statusCallback 属性,但它仅适用于 <Dial><Number><Dial><Sip><Dial><Client>

换句话说,我想在数据库中记录所有排队的呼叫,并根据呼叫状态更新相应地更新它们的状态(启动/响铃/应答/完成)并分配与代理的关系。

是否有可能使用回调以某种方式完成它,而不使用 TaskRouter?

谢谢

【问题讨论】:

【参考方案1】:

我现在可以使用它,不知道我在文档中是如何错过它的,但关键是要使用

$dial->queue('support', ['url' => 'queue-connect.php']);

url parameter on Queue 以防万一将来有人读到这篇文章。

【讨论】:

以上是关于当座席连接到等待队列的客户时如何获得回调?的主要内容,如果未能解决你的问题,请参考以下文章

GCD - 如何在主线程上等待在主队列上执行的异步回调

创建执行动画的等待队列

如何计算客户在队列中等待超过 5 分钟的概率?

图文结合!Redis延迟队列golang高效实践

C#如何强制等待连接到 WCF 服务

等待队列-30