如何使用Twilio SIP端点设置语音邮件
我试图在twiml中设置一个简单的语音邮件系统,作为我的向导 期望的行为: 当呼叫到达时,连接到SIP。 如果20秒后没有回答,请播放mp3,录制信息和电子邮件如何使用Twilio SIP端点设置语音邮件,twilio,sip,twilio-twiml,voicemail,Twilio,Sip,Twilio Twiml,Voicemail,我试图在twiml中设置一个简单的语音邮件系统,作为我的向导 期望的行为: 当呼叫到达时,连接到SIP。 如果20秒后没有回答,请播放mp3,录制信息和电子邮件 <Response> <Dial action="/voicemail" timeout="20"> <Sip> username@endpoint.sip.us1.twilio.com </Sip> </D
<Response>
<Dial action="/voicemail" timeout="20">
<Sip>
username@endpoint.sip.us1.twilio.com
</Sip>
</Dial>
</Response>
username@endpoint.sip.us1.twilio.com
使用语音信箱功能,如下所示
<Response>
<Play>https://www.example.com/voicemail.mp3</Play>
<Record transcribe="true" transcribeCallback="http://twimlets.com/voicemail?Email=somebody@somedomain.com" action="/hangup"/>
</Response>
https://www.example.com/voicemail.mp3
一切正常,除了来电者被转接到语音信箱,不管电话是否被接听
如果呼叫完成,我缺少什么可以提供挂断逻辑
既然没有条件逻辑运算符,那么这可以完全在twiml中完成吗
提前感谢您提供的任何帮助 这里是Twilio开发者福音传道者 纯TwiML无法实现这一点,正如您所说,TwiML(XML)中没有条件 您需要做的是在
/voicemail
端点内检查呼叫是“已完成”还是“已应答”。您可以通过检查。如果是这样,那么你可以挂断电话,否则你想继续语音信箱
您可以使用Node.js和类似的
如果有任何帮助,请告诉我。太好了!你能把答案标记为正确的吗?这样其他人就可以看到它也有帮助了?
exports.handler = function(context, event, callback) {
const twiml = new Twilio.twiml.VoiceResponse();
if (event.DialCallStatus === 'completed' || event.DialCallStatus === 'answered') {
twiml.hangup();
} else {
twiml.play("https://www.example.com/voicemail.mp3");
twiml.record({
transcribe: true,
transcribeCallback: "http://twimlets.com/voicemail?Email=somebody@somedomain.com",
action: "/hangup"
});
}
callback(null, twiml);
};