将呼叫从一个队列移动到另一个队列后,Twilio呼叫挂断

时间:2014-03-11 14:40:37

标签: queue twilio

当我将呼叫从一个队列移动到另一个队列然后从代理连接到该队列时,呼叫会在连接几秒后挂断。

请告诉我可能出现的问题。

2 个答案:

答案 0 :(得分:2)

Twilio Evangelist在这里。这应该是完美的,所以我怀疑你可能想与你的Twilio帐户SID联系Twilio支持(help@twilio.com),他们可能会为你检查这个。

希望这有帮助!

答案 1 :(得分:0)

以下是重现我的问题的示例代码: 它使用Codeigniter框架实现。

<?php
class Test_queue extends CI_Controller {
    function test()
    {
        $action = site_url('test_queue/action');
        $wait = site_url('test_queue/wait');

        echo <<<XML
    <?xml version="1.0" encoding="UTF-8"?>
    <Response>
        <Enqueue method="GET" waitUrlMethod="GET" action="$action" waitUrl="$wait">Queue Demo</Enqueue>
    </Response>
    XML;
    }

    function wait()
    {
        echo <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say>
        You are about to leave queue Queue Demo
    </Say>
    <Leave />
</Response>
XML;
    }

    function action()
    {
        $action = site_url('test_queue/second_action');
        $wait = site_url('test_queue/second_wait');

        echo <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Enqueue method="GET" waitUrlMethod="GET" action="$action" waitUrl="$wait">Queue Demo1</Enqueue>
</Response>
XML;
    }

    function second_action()
    {
        echo <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Hangup/>
</Response>
XML;
    }

    function second_wait()
    {
        echo <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say>
        You are in queue Queue Demo1
    </Say>
</Response>
XML;
    }

    function dial()
    {
        $url = site_url('test_queue/agent_msg');
        echo <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial method="GET">
        <Queue>Queue Demo1</Queue>
    </Dial>
</Response>
XML;
    }

    function agent_msg()
    {
        echo <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say>You will now be connected to an agent.</Say>
</Response>
XML;
    }
}

基本上,当呼叫从第一个队列移动到第二个队列并且代理(Twilio.Device)通过dial()函数调用连接到该呼叫时,会出现问题。

如果我为twiML提供了url参数,那么在将呼叫者连接到座席之前,会回复一条消息,呼叫不会再挂起。

以下是dial()函数的工作响应:

$url = site_url('test_queue/agent_msg');
echo <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial method="GET">
        <Queue url="$url" method="GET">Queue Demo1</Queue>
    </Dial>
</Response>
XML;