Twilio并行拨号未接时如何触发twimlet语音信箱而非个人手机应答机
问题根本原因
你配置的被叫手机号的运营商语音信箱触发时间短于Twilio默认的拨号超时时间,运营商语音信箱先接入呼叫时,Twilio会判定呼叫已被正常接听,因此不会触发你配置的Twimlet失败回调逻辑。
解决方案
- 给
<Dial>标签添加timeout属性,将拨号超时时间设置为15-18秒,短于运营商语音信箱的默认触发时长(通常为20-25秒) - 给每个
<Number>子标签添加answerOnBridge="true"属性,仅当被叫方人工接听时才判定为呼叫接通,过滤掉运营商语音信箱、自动应答等系统接入的场景 - 修正你当前FailUrl中的参数编码错误,你现有配置中
Email%myemail缺少参数分隔符编码,正确写法应为Email%3Dmyemail%2540gmail.com - 可选配置:给
<Dial>标签添加ifMachine="Hangup"属性,检测到自动应答场景时直接挂断,强制走后续语音信箱逻辑
修正后的示例代码
<?xml version="1.0" encoding="UTF-8"?> <Response> <Dial action="https://twimlets.com/forward?FailUrl=https%3A%2F%2Ftwimlets.com%2Fvoicemail%3FEmail%3Dmyemail%2540gmail.com%26Message%3DSorry%2520we%2520are%2520unavailable%252C%2520please%2520leave%2520a%2520voicemail%2520here%2520and%2520let%2520us%2520know%2520what%2520you%2520need%2520and%2520we%2520will%2520get%2520back%2520to%2520you%2520shortly%252C%2520thank%2520you.%26Transcribe%3Dtrue&Dial=true" record="record-from-answer" callerId="+13151234567" timeout="18" answerOnBridge="true" ifMachine="Hangup"> <Number url="https://handler.twilio.com/twiml/EH8253d4550bfdaf385b2b2ac15e0a4392" answerOnBridge="true">3155554444</Number> <Number url="https://handler.twilio.com/twiml/EH8253d4550bfdaf385b2b2ac15e0a4392" answerOnBridge="true">7165554444</Number> </Dial> </Response>
内容的提问来源于stack exchange,提问作者user1193480
相关产品推荐
相关产品推荐

