如何使用 Twiml Bins 设置语音信箱?
How to set voicemail using Twiml Bins?
我正在使用 Twiml Bins 进行快速 POC,我正在尝试连接 2 个电话,如果电话未被收件人接听,则应转到他们的语音信箱。
用例:
- 用户A给我的twilio打了电话
- Twilio 将 A 置于等待状态并尝试呼叫 B。
- 如果 B 接听电话,则要求 B 接听或拒绝来电。按 1 或 2(或挂断)。
- 如果接受,通话接通,A 和 B 通话。
- 如果被拒绝,A 可以在他的手机上给 B 留言。
- 如果 B 没有接听电话,A 可以在他的手机上给 B 留言。
我卡在 5 点和 6 点。如果电话被拒接或无人接听,则无法向 B 发送语音邮件。 Twiml 标签的嵌套让我有点困惑。到目前为止,这是我尝试过的:
PutAOnholdAndCallB:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>Thank you for calling please wait while I connect you.</Say>
<Dial timeout="15" action="Callhangup">
<Number url="AcceptorDeny">UserBPhoneNo
</Number>
</Dial>
</Response>
接受者拒绝:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Gather numDigits="1" timeout="20" action="DoNothing">
<Say>You have a call, press 1 to answer or hang-up for it to go to voicemail.</Say><Pause length="3"/><Say>Connecting</Say>
</Gather>
<Hangup/>
</Response>
挂断电话:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>
You have reached the voicemail.
Please leave a message at the beep.
Press the star key when finished.
</Say>
<Record action="DoNothing"
method="GET"
maxLength="20"
finishOnKey="*"
/>
<Hangup />
</Response>
什么都不做:
<?xml version="1.0" encoding="UTF-8"?>
<Response />
您面临的挑战是 TwiML Bin 不提供分析 Dial action URL you define. You need to evaluate the value of DialCallStatus 结果所需的条件逻辑级别,无法正确引导 未应答 调用(或拨打方未按号码接听电话的电话)。
在那些未应答 的情况下,您希望将呼叫发送到您的 TwiML Bin 语音邮件逻辑,Callhangup
,您检查 DialCallStatus(的拨号操作 URL) = no-answer
否则你 Hangup 或 return 不再有 TwiML(因为被叫方按下了一个键来接听电话,所以不需要出示语音信箱给来电者)。
此 Twilio 函数中记录了逻辑,Implement voicemail。
我建议 Twilio Studio 来处理这个问题,但是 Studio 目前不支持 Number URL 您用于向被叫方耳语选项接受呼叫的选项的功能。
如果您确实使用了 Studio,则需要查看 TwiML Redirect Widget to add that whisper functionality into your Studio Flow. I saw a blog doing what I wrote above using Studio (without whisper) last week here, Using Twilio To Make A Call Forwarding And Voice Messaging System。
我正在使用 Twiml Bins 进行快速 POC,我正在尝试连接 2 个电话,如果电话未被收件人接听,则应转到他们的语音信箱。
用例:
- 用户A给我的twilio打了电话
- Twilio 将 A 置于等待状态并尝试呼叫 B。
- 如果 B 接听电话,则要求 B 接听或拒绝来电。按 1 或 2(或挂断)。
- 如果接受,通话接通,A 和 B 通话。
- 如果被拒绝,A 可以在他的手机上给 B 留言。
- 如果 B 没有接听电话,A 可以在他的手机上给 B 留言。
我卡在 5 点和 6 点。如果电话被拒接或无人接听,则无法向 B 发送语音邮件。 Twiml 标签的嵌套让我有点困惑。到目前为止,这是我尝试过的: PutAOnholdAndCallB:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>Thank you for calling please wait while I connect you.</Say>
<Dial timeout="15" action="Callhangup">
<Number url="AcceptorDeny">UserBPhoneNo
</Number>
</Dial>
</Response>
接受者拒绝:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Gather numDigits="1" timeout="20" action="DoNothing">
<Say>You have a call, press 1 to answer or hang-up for it to go to voicemail.</Say><Pause length="3"/><Say>Connecting</Say>
</Gather>
<Hangup/>
</Response>
挂断电话:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>
You have reached the voicemail.
Please leave a message at the beep.
Press the star key when finished.
</Say>
<Record action="DoNothing"
method="GET"
maxLength="20"
finishOnKey="*"
/>
<Hangup />
</Response>
什么都不做:
<?xml version="1.0" encoding="UTF-8"?>
<Response />
您面临的挑战是 TwiML Bin 不提供分析 Dial action URL you define. You need to evaluate the value of DialCallStatus 结果所需的条件逻辑级别,无法正确引导 未应答 调用(或拨打方未按号码接听电话的电话)。
在那些未应答 的情况下,您希望将呼叫发送到您的 TwiML Bin 语音邮件逻辑,Callhangup
,您检查 DialCallStatus(的拨号操作 URL) = no-answer
否则你 Hangup 或 return 不再有 TwiML(因为被叫方按下了一个键来接听电话,所以不需要出示语音信箱给来电者)。
此 Twilio 函数中记录了逻辑,Implement voicemail。
我建议 Twilio Studio 来处理这个问题,但是 Studio 目前不支持 Number URL 您用于向被叫方耳语选项接受呼叫的选项的功能。
如果您确实使用了 Studio,则需要查看 TwiML Redirect Widget to add that whisper functionality into your Studio Flow. I saw a blog doing what I wrote above using Studio (without whisper) last week here, Using Twilio To Make A Call Forwarding And Voice Messaging System。