我正在尝试构建一个可以接听电话的机器人。呼叫者会说“ Press 1”之类的短语,而漫游器会播放数字1。
如果呼叫者说按了2,则漫游器会通过播放数字2进行响应,依此类推。
任何见解都会有所帮助。谢谢
Lu
答案 0 :(得分:0)
这里是Twilio开发人员的传播者。
欢迎使用StackOverflow!
此Node.js quickstart具有使用自动驾驶仪制作语音机器人所需的前几个步骤。
首先,您需要购买一个Twilio电话号码here。
然后,您将使用来自Twilio Autopilot机器人的URL配置该数字。该数字可以在自动驾驶机器人的Channels
下找到。
单击可编程语音,然后复制此URL ,然后将其粘贴到语音和传真下,以防来电出现在 webhook 旁边。 :
接下来,您可以为用户可以说的每个可能的短语制定任务。如果该短语是“按1”,则可以将其重定向到Twilio Function,该sendDigits
在呼叫被接听时使用{
"actions": [
{
"redirect": {
"uri": "https://YOUR-TWILIO-FUNCTION-URL.twil.io/actions",
"method": "POST"
}
}
]
}
播放DTMF音。 Twilio Autopilot任务可以包含以下JSON:
const VoiceResponse = require('twilio').twiml.VoiceResponse;
const response = new VoiceResponse();
const dial = response.dial();
dial.number({
sendDigits: 'wwww1928'
}, 'replace-with-number-to-dial');
console.log(response.toString());
那么您的功能代码可能是
exports.handler = function(context, event, callback) {
const VoiceResponse = require('twilio').twiml.VoiceResponse;
const response = new VoiceResponse();
const dial = response.dial();
let responseObject = {};
let memory = JSON.parse(event.Memory);
console.log(memory.twilio.collected_data);
let num = memory.twilio.collected_data.your_collect_function_name.answers.your_question_name.answer;
console.log(num); //collected data from memory
if(num == 0 || num == "zero") {
dial.number({
sendDigits: '0'
}, 'replace-with-number-to-dial');
console.log(response.toString());
}
};
或者,您可以执行一个自动驾驶任务,然后在Twilio函数中使用条件查询用户说的号码。那将包括类似于以下的代码:
listOf(agreement, oldAgreement)
.map { it.id }
.forEach { println("from listOf() id is $it")}
// program the mock to return a list like the statement above
whenever(checkinService.getStudentAgreements(agreement.sidTerm))
.thenReturn(listOf(agreement, oldAgreement))
checkinService.getStudentAgreements(agreement.sidTerm)
.map { it.id }
.forEach { println("from mock id is $it")}
让我知道这是否有帮助!