Twilio使用PHP使用TWIML Webhooks拒绝调用

时间:2016-12-28 19:41:56

标签: twilio twilio-php twiml

背景:使用webhooks将传入的语音呼叫定向到我们的应用程序处理程序,该处理程序将调用者连接到可用的代表手机。

应用程序的第一部分检查传入的来电者电话号码是否在内部黑名单上(忽略机器人拨号等) - 如果有匹配,我们的应用程序将拒绝接听电话,因此我们不会收取费用。拒绝TWIML动词的回应如下:

echo '<Response><Reject reason="rejected"/></Response>';
exit;

代码工作正常,发送xml响应并退出PHP脚本,但是,传入的调用者没有收到“忙”信号或“Not In Service”消息 - 而是只是静默挂起。

此外,Twilio webhooks处理程序每​​隔约2秒就会使用CallStatus = no-answer来关闭呼叫,直到呼叫者挂机为止。

知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

我确定问题在于xml响应的格式是echo out。事实证明,XML响应的格式化需要保留XML(???)的格式和空格等:

这不起作用(twilio将默默挂起,直到来电者挂断):

echo '<Response><Reject reason="rejected"/></Response>';
exit;

这确实有效(来电者会收到忙音):

echo '<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Reject reason="busy" />
</Response>';
exit;