【问题标题】:Twilio - Connecting an Enqueued call to an AgentTwilio - 将排队的呼叫连接到代理
【发布时间】:2015-11-06 20:18:17
【问题描述】:

我正在尝试创建一个电话系统,让呼叫者排队,理想情况下,系统将呼叫代理,然后代理接听并修改呼叫以桥接队列顶部。

到目前为止,我已经完成的是拨号循环,用户拨打电话,然后按顺序拨打座席,直到有人接听,或者让用户可以选择留言或在听到时保持在线它响了。还有一个带有等待音乐的简单队列。

我似乎无法弄清楚如何将这两个系统结合起来。

我找到的最接近的是this post,它很有帮助,但它掩盖了调用者入队后如何调用。

不幸的是,到目前为止,我发现的唯一 Twilio 文档告诉我如何拨入队列,这不是我想要从这个系统中得到的。我希望该系统将呼叫者置于等待音乐的队列中,然后系统拨打座席号码,直到座席接听。

非常感谢任何和所有帮助。

谢谢。

编辑:

解决方案

index.php

这是调用者最初点击的通用 IVR 树。

<Say>This hits your general IVR tree</Say>
<Say>As the last action, since the caller hasn't pressed anything and should be enqueued, redirect the caller to EnqueueCaller.php</Say>
<Redirect>./EnqueueCaller.php</Redirect>

因为 PHP 是一个预处理器,所以没有真正的方法可以让呼叫休眠或超时。 IVR 树中的重定向是必要的,因此当用户仍在 IVR 树中时不会拨打代理。

EnqueueCaller.php

一旦 IVR 树完成并且用户选择等待代理,呼叫者就会被重定向到这里。该调用实际上发生在 Enqueue 之前,因为 PHP 在读取 TwiML xml 之前首先加载(我认为?)。但是由于呼叫时存在固有的延迟,呼叫者总是会在代理接听之前排队(我希望如此)。

<Enqueue waitUrl="wait_file.xml">name_of_queue</Enqueue>
$call = $client->account->calls->create($from, $to, "http://example.com/DialQueueHandler.php", array( "StatusCallback" => "DialQueueEventHandler.php" );

DialQueueHandler.php

这只是将代理和队列顶部的任何人连接起来。

<Say>Connecting to caller now.</Say>
<Dial><Queue>name_of_queue</Queue></Dial>

DialQueueEventHandler.php

此脚本包含当拨号代理状态从 $_REQUEST['CallStatus'] 更改(已接听、已完成、已启动、正在响铃)时发生的逻辑。在我的例子中,我从入队脚本中拨打了一个代理,在这个脚本中,要么通过设置标志继续拨打下一个代理。

switch($_REQUEST['CallStatus'] {
    case 'answered':
    case 'completed':
        $next = false;
        break;
    default:
        $next = true;
        break;
}
if($next) { $call = $client->account->calls->create($from, $nextAgentNumber, "http://example.com/DialQueueHandler.php", array( "StatusCallback" => "DialQueueEventHandler.php?agentOffset=$num" ); } //same line from EnqueueCaller.php, and track where we are in agent array.

如果呼叫未接听或未完成,则拨打下一个座席。否则,当代理接听呼叫时,DialQueueHandler.php 文件会被命中并且呼叫会被桥接。

【问题讨论】:

    标签: twilio twilio-php


    【解决方案1】:

    杰夫,我是来自 Twilio 的梅根。

    您可以利用&lt;Enqueue&gt;workflowSid 属性配置一个任务,该任务使用TaskRouter 向可用代理发起呼叫流。在 PHP 中有一个 TaskRouter quickstart,我认为鉴于您到目前为止所获得的位置,您可以选择 third part

    如果您觉得这有帮助,请告诉我。

    【讨论】:

    • 嗨梅根!感谢您的链接和回复。在我一天中的大部分时间都把头撞在墙上之后,我发现只需使用 PHP API,然后将 account->calls->create after response->enqueue 完全像我需要的那样工作它到。它连接呼叫非常好。这是有效的,因为 create 调用不像 enqueue 那样使用 twiml,所以 enqueue 会发生,然后任何 PHP 都会像往常一样发生。下周完成并清理应用程序后,我将发布后续内容。再次欢呼和感谢。
    • 太好了,很高兴听到它!周末愉快。
    猜你喜欢
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多