当前位置: 首页 > news >正文

手机打电话时由对方DTMF响应切换多级IVR语音菜单(完结)

手机打电话时由对方DTMF响应切换多级IVR语音菜单(完结)

--本地AI电话机器人

上一篇:手机打电话时由对方DTMF响应切换多级IVR语音菜单(话术脚本与实战)

下一篇:编写中


  • 一、前

经过前面几个篇章的详细阐述中,我们在手机上实现了“打电话时由对方DTMF响应切换多级IVR语音菜单”的功能。完全可以将个人SIM卡手机号用来当作企业400电话,进行通话IVR反馈和DTMF按键响应了。

但依照前文篇章中对【多级IVR菜单】功能的描述,我们仍然需要最后做一件事情:实现在多个手机设备之间同步IVR语料。实现在某一个手机上编辑和导入的IVR菜单和语音文件,能够同样完整的复用到多个自己的其它手机上。

在【蓝牙电话SDK的示例App】中,我们使用“用户名”这一个概念来对多级IVR菜单和语料进行区分。在阿里云上搭建的服务器中开辟一个临时存储的空间,供同一个用户名下所有的手机之间无阻碍的上传和拉取多级IVR菜单和IVR语音资料。

示例App中将用户名写在了代码中,默认的示例App的用户名都是“anonymous”。有需要的用户可以用最新的代码自己修改为自己注册的用户名,这样就不会跟别人的IVR菜单产生冲突。

体验和下载地址:

拨号器SDK示例app:http://120.78.211.195:8060/sdk/SdkDemo.apk

USB蓝牙配件购买路径(参考):https://item.taobao.com/item.htm?_u=pk10l4ccbcd&id=649368472986

  • 二、多级IVR菜单的序列化

由蓝牙电话SDK示例App界面的【多级IVR语音片段-编辑】区域的列表展示效果,我们很容易得知:编辑完成的多级IVR菜单,是一个典型的树形结构

示例App中使用Json格式,将该树形结构存储到手机本地的一个multIVR.json文件,并在IVR菜单的上传和下载操作中,率先对这个文件进行获取和操作。从而解析出当前用户有哪些IVR子菜单已经录制或导入了语音文件数据,在上传操作时将该语音文件也同步上传到阿里云服务器进行存储。

multIVR.json文件的解析内容大致如下图所示:

存储后的json文件也同样会上传到云服务器中进行存储。

  • 三、IVR菜单和语料的上传

用户可以使用【上传IVR】按钮,将本地手机已编辑好的多级IVR菜单及其语音数据,同步上传到阿里云服务器对应用户名的目录下存放。

这样当该用户的其它手机安装和使用示例App时,就可以使用“拉取”功能,下载并恢复多级IVR菜单到另外的手机上,并正常的进行IVR导航和使用了。

由于云服务器“中心化”的思想,同一个用户名在服务器上只会维持同一份数据。在不同手机都可以上传的情况下,示例App对上传操作进行了弹框确认,手机的上传行为会覆盖旧的上传的数据。界面效果如下图所示:

上传操作中,示例App会将多级IVR菜单的各个节点序列化到multIVR.json文件,并将该文件也一起上传到云服务器中。(所以此处上传的总数是14,但下面拉取的总数是13

上传操作完成后,进度框会自动消失,并于界面中弹出Toast文字提示上传完成。

  • 四、IVR菜单和语料的拉取

用户在新手机中安装了蓝牙电话SDK示例App后,可使用设置图标的弹出功能中【拉取多级IVR】的功能菜单来进行“IVR菜单和语料的拉取”。

示例App初次启动时,由于多级IVR菜单列表中内容为空,默认会自动拉取一次云服务器上已有的IVR菜单进行覆盖。

由于拉取操作会对手机当前已创建的IVR子菜单造成影响,在操作之前会弹出界面提示框,提醒用户是否继续拉取?界面的展示效果如下图所示:

点击【继续拉取】按钮后,将使用http://协议,快速的从阿里云服务器中逐个拉取数据。(受服务器下行速度的影响,拉取的速度非常快,进度对话框一闪就消失提示拉取成功了。)如下图所示:

另外,在多级IVR菜单的编辑功能中:用户删除IVR菜单,由于是级联删除的,一般会进行弹框提醒。再次确认后才真正开始做删除操作,界面提示内容如下图所示:

  • 五、总结

本文在上一篇的手机上实现了“打电话时由对方DTMF响应切换多级IVR语音菜单”功能的基础之上,锦上添花的增加了多级IVR菜单的上传和下载功能。

使同一用户的多个不同的手机设备,能够快捷的使用同样的IVR引导菜单统一对外提供业务和功能服务。这样有利于业务的快速部署并消除服务的体验差异。对业务起到一定程度的帮助。至此,“打电话时由对方DTMF响应切换多级IVR语音菜单”这一课题探索完毕。

http://www.xdnf.cn/news/588349.html

相关文章:

  • PyTorch中diag_embed和transpose函数使用详解
  • 小白的进阶之路系列之三----人工智能从初步到精通pytorch计算机视觉详解上
  • vue2使用pdfmake
  • Qt无边框界面添加鼠标事件
  • 吃透 Golang 基础:数据结构之切片
  • 实现了TCP的单向通信
  • 【数据库】-2 mysql基础语句(上)
  • 旋转编码器计次 红外对射传感器计次小实验及其相关库函数详解 (江协科技)
  • 第四章:YOLOv11 实战应用与开发指南
  • LeetCode 404.左叶子之和的迭代求解:栈结构与父节点定位的深度解析
  • 力扣.H指数力扣.字母异位词力扣.289生命游戏力扣452.用最小数量的箭引爆气球力扣.86分隔链表力扣.轮转数组
  • 高等数学-常微分方程
  • 国产三维CAD皇冠CAD(CrownCAD)建模教程:交流发电机
  • 推荐一个Excel与实体映射导入导出的C#开源库
  • 手写简单的tomcat
  • (泛函分析)线性算子连续必有界的证明
  • GraphRAG使用
  • 动态规划(七)——子数组系列(求和问题)
  • labview实现将百分制分数转换为等级制分数
  • Vue 3 官方 Hooks 的用法与实现原理
  • ai外呼平台:AnKo打造高效多模型服务体验!
  • labview实现LED流水灯的第二种方法
  • 每日算法刷题计划day13 5.22:leetcode不定长滑动窗口最短/最小1道题+求子数组个数越长越合法2道题,用时1h
  • 学习vue3:跨组件通信(provide+inject)
  • vscode include总是报错
  • Ubuntu24.04 LTS安装java8、mysql8.0
  • 【VScode】python初学者的有力工具
  • Labview使用报表工具
  • linux二进制安装mysql:
  • 遥控器处理器与光纤通信技术解析