任何在 Voximplant 上进行开发的人都知道“应用程序”的概念,它将云脚本、电话号码、用户、规则和呼叫队列相互连接。 简而言之,应用程序是我们平台上开发的基石,是任何基于 Voximplant 的解决方案的入口点,因为这一切都始于应用程序的创建。
以前,应用程序既不“记住”脚本执行的操作,也不“记住”计算结果,因此开发人员被迫将值存储在第三方服务或其后端中。 如果您曾经在浏览器中使用过本地存储,那么我们的新功能与此非常相似,因为。 允许应用记住帐户中每个应用所特有的键值对。 新模块使存储操作成为可能
你需要
- Voximplant 帐户。 如果你没有的话
注册就在这里 ; - Voximplant 应用程序,以及脚本、规则和单个用户。 我们将在本教程中创建所有这些;
- 网络客户端拨打电话 - 使用我们的网络电话
电话.voximplant.com .
Voximplant 设置
首先登录您的帐户:
require(Modules.ApplicationStorage);
VoxEngine.addEventListener(AppEvents.CallAlerting, async (e) => {
let r = {value: -1};
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
} catch(e) {
Logger.write('Failure while getting totalCalls value');
}
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
} catch(e) {
Logger.write('Failure while updating totalCalls value');
}
e.call.answer();
e.call.say(`Приветствую. Количество прошлых звонков: ${r.value}. `, Language.RU_RUSSIAN_MALE);
e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);
});
第一行连接ApplicationStorage模块,其余逻辑放在事件处理程序中
首先,我们声明一个变量,以便我们可以将初始值与调用计数进行比较。 然后我们尝试从存储中获取totalCalls 键的值。 如果还没有这样的密钥,那么我们创建它:
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
}
接下来,您需要增加存储中密钥的值:
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
}
请注意
对于每个 Promise,您必须显式指定故障转移,如上面的列表所示 - 否则脚本将停止并且您将在日志中看到错误。 细节
这里 .
使用存储库后,该脚本会使用语音合成应答来电,并告诉您之前拨打过多少次电话。 在此消息之后,脚本将终止会话。
保存脚本后,转到应用程序的“路由”选项卡,然后单击“新建规则”。 将其命名为startCounting,指定countingCalls 脚本,并保留默认掩码(.*)。
最后一步是创建用户。 为此,请转到“用户”,单击“创建用户”,输入名称(例如 user1)和密码,然后单击“创建”。 我们需要此登录密码对在网络电话中进行身份验证。
检查
从链接打开网络电话
我们祝愿您在 Voximplant 取得巨大发展,敬请期待 - 我们还会有更多 😉
来源: habr.com