手機打電話時由對方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語音菜單”這一課題探索完畢。