【发布时间】:2019-09-22 00:58:32
【问题描述】:
我有一种情况,我希望 TwiML VoiceResponse 调用另一个返回 MessagingResponse 的端点。但是,我收到了 MessagingResponse 的 XML Validation warning,因为我怀疑入站类型(呼叫)和出站类型(短信)不匹配。
请注意,我不能按照此处https://support.twilio.com/hc/en-us/articles/360017437774-Combining-Voice-SMS-and-Fax-TwiML-in-the-Same-Response 的建议使用 Twilio 客户端。我想用纯 TwiML 来实现这一点。
我在我的 Twilio 电话号码上设置了一个呼叫 webhook,它访问了我的 NodeJS 服务器上的 POST /call 端点。端点以 TwiML 进行响应,该 TwiML 播放音调并调用重定向到我服务器上的另一个端点。
TwiML 返回:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Play digits="www9"/>
<Redirect method="POST">[url-omitted]/notify</Redirect>
</Response>
然后,在同一台服务器上,我有第二个POST /notify 端点,为了简单起见,它向特定号码发送短信。
从重定向端点返回的 TwiML:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Message to="+11234567890">Hello world!</Message>
</Response>
预期结果
预期的结果是,当我用手机拨打 Twilio 号码时,我听到“9”音,然后收到一条带有“Hello world!”的短信。
实际结果
我只听到“9”音,从来没有收到过短信。
当我查看 Twilio 控制台时,我可以看到对 POST /notify 端点的调用,它以预期的 TwiML 响应,但它有一个 12200 - Schema validation warning。
Msg "XML Validation warning"
line "2"
parserMessage " Invalid content was found starting with element 'Message'. One of '{Play"
ErrorCode "12200"
cols "32"
LogLevel "WARN"
url "https://handler.twilio.com/twiml/[id-omitted]"
如前所述,我怀疑上述错误消息是因为这一切都源于电话而不是短信。
【问题讨论】:
标签: twilio twilio-twiml