【问题标题】:How to put Twilio call on hold如何保持 Twilio 通话
【发布时间】:2015-08-26 17:43:15
【问题描述】:

我正在尝试在 Twilio 上实现以下功能,但不确定为什么我无法正确完成它。我已使用来自twilio.device.connect 的标准 Twilio 程序发起呼叫。发起呼叫后,我将呼叫更新到新的 url 以将其置于保留状态。

$client = new Services_Twilio($accountSid, $authToken); 
$call = $client->account->calls->get($call_sid); 
$call->update( 
    array( 
        "Url"    => "http://localhost/voice.xml",               
        "Method" => "POST",  
    )
);

现在这里不是让最终用户处于等待状态,它只是断开呼叫,并在我身边播放音乐。为什么会这样?

【问题讨论】:

  • 为什么不使用 TwiML?您是否也通过 JS 客户端发起呼叫?如果是这样,与此关联的 APP 应该指向包含一些 XML 的端点,您可以在其中执行保留功能。
  • 是的,这就是我正在做的,但它只是断开呼叫
  • 查看不是 TwiML 的代码,您正在使用 REST API。你的 TwiML 在哪里?

标签: php twilio-php


【解决方案1】:

Twilio 布道者在这里。

我建议检查 Twilio 是否记录了任何错误:

https://www.twilio.com/user/account/monitor/alerts

如果您尝试将 Twilio 重定向到“http://localhost”,那将无法正常工作,因为 Twilio 显然不知道如何访问在您自己的计算机上运行的 localhost。

如果您想通过公共 URL 将在您自己的本地计算机上运行的 Web 服务器公开到 Internet,请查看名为 ngrok 的出色工具。

【讨论】:

  • 不,我没有使用 localhost,它是公共 url,但是当我执行上面的代码时,它开始为我保存音乐,而不是最终用户,而对于最终用户,它只是在两者之间断开呼叫跨度>
【解决方案2】:

原因是在你的 <Play> 标签之后 “http://localhost/voice.xml”文件。没有进一步的 TwiML 被执行。

解决方案是将调用重定向回其原始状态

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2014-04-06
    相关资源
    最近更新 更多