手机打电话时由对方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语音菜单”这一课题探索完毕。