我需要使用TwiML获得一个交互式菜单,并且有一些问题:
以上可能吗?关于我如何去做的任何迹象?
答案 0 :(得分:1)
Twilio开发者传道者在这里。
您无法使用静态TwiML生成交互式菜单,您需要能够对所做选择做出反应并需要服务器端组件的内容。
谢天谢地,你有一些选择。
正如Alex在评论中指出的那样,Twilio Studio是Twilio的可视化构建器,它允许您创建这样的流并将服务器端组件留给Twilio。有video tutorial和guide,它们向您展示如何使用Studio构建IVR。
另一方面,如果你很乐意编写代码来创建这类东西,但你不想托管它,那么Twilio Functions可能就是你要找的东西。 Twilio Functions是一个用于运行代码的无服务器环境。您可以使用TwiML Bin编写初始TwiML,因为它可以是静态TwiML,类似于以下内容,它使用<Gather>
来收集用户输入:
<Response>
<Gather action="FUNCTION_URL" numDigits="1">
<Say>Welcome to my menu, please press 1 for sales or 2 for support</Say>
</Gather>
</Response>
然后在函数中,您需要编写一些Node.js以响应用户输入后Digits
parameter将发送到action
URL的传入<Gather>
。您可以使用看起来像这样的函数来响应:
exports.handler = function(context, event, callback) {
const twiml = new Twilio.twiml.VoiceResponse();
if (event.Digits === '1') {
twiml.dial(SALES_NUMBER);
} else if (event.Digits === '2') {
twiml.dial(SUPPORT_NUMBER);
} else {
const gather = twiml.gather({ action: 'FUNCTION_URL', numDigits: '1' })
gather.say('That was not an option, please dial 1 for sales and 2 for support')
}
callback(null, twiml);
}
在taking user input using <Gather>
中还有一个更深入的指南。
让我知道这是否有帮助。