有人可以帮助我解决我的问题吗?
我尝试实现语音邮件,我了解有关我的问题的教程,它们在第一步构建语音邮件时非常有用。 我有呼入端点,在那里我用拨号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”
答案 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查询参数中检索客户端身份。
让我知道是否有帮助。