Twilio呼叫状态回调返回空白参数

时间:2019-11-14 23:22:36

标签: twilio

有人可以帮助我解决我的问题吗?

我尝试实现语音邮件,我了解有关我的问题的教程,它们在第一步构建语音邮件时非常有用。 我有呼入端点,在那里我用拨号TwiML创建响应,以便将SDK的呼入绑定到呼叫接收者。在下面,我将向您展示一个TwiML示例。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial action="{{HOST}}/api/v1/voice_mails/start_recording" callerId="client:[client identity]" timeout="15">
        <Client>[Client identity]</Client>
    </Dial>
</Response>

发生呼叫,但是如果您等待15秒+(twillio增加了5秒)而没有应答,则会收到录制语音邮件和呼叫状态回叫的请求,没有“ To”和“ Called”参数,它们为空。 下面是action="{{HOST}}/api/v1/voice_mails/start_recording"请求参数的示例

ApplicationSid  "My Application Sid"
ApiVersion  "2010-04-01"
Called  ""
Caller  "client:[identity]"
DialCallSid "DialCallSid"
CallStatus  "in-progress"
CallSid "Call Sid"
To  ""
From    "client:[identity]"
DialCallStatus  "no-answer"
Direction   "inbound"
AccountSid  [My AccountSid]

可能有用:我的客户身份格式是不带“ +”的数字 如果电话号码是“ +1234567890”,则身份将是“ 1234567890”

1 个答案:

答案 0 :(得分:0)

这里是Twilio开发人员的传播者。

嗯,这很有趣。我认为发生这种情况的原因是,当您从客户端生成呼叫时,呼叫的初始分支并没有To的概念。而是从您的TwiML应用程序请求TwiML。在这种情况下,它会得到一个<Dial>,但这不是必须的,因此初始调用本身没有固有的To号。

不过,我们可以解决此问题。可以不用将Webhook上的常规To字段用作记录操作,而可以将其自己作为URL参数添加到URL中。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial action="{{HOST}}/api/v1/voice_mails/start_recording?clientID=[client identity]" callerId="client:[client identity]" timeout="15">
        <Client>[Client identity]</Client>
    </Dial>
</Response>

然后您可以在下一个操作中从URL查询参数中检索客户端身份。

让我知道是否有帮助。