您可能聽說過或讀到 Google 在美國為其 Pixel 手機推出的呼叫篩選功能。這個想法很棒——當你接到來電時,虛擬助理開始交流,而你以聊天的形式看到這個對話,並且你可以隨時開始代替助手說話。這在當今幾乎是非常有用的
架構
我建議您不要浪費時間解釋 Voximplant 和 Dialogflow 的工作原理;如果您願意,您可以輕鬆地在互聯網上找到資訊。那麼讓我們來熟悉一下呼叫篩選的概念。
假設您已經擁有一個每天使用的特定電話號碼,並透過該號碼接聽重要電話。在這種情況下,我們將需要第二個號碼,該號碼將在任何地方顯示 - 在郵件中、名片上、填寫線上表格時等。該號碼將連接到自然語言處理系統(在我們的例子中為 Dialogflow),並且僅在您需要時才會將通話轉接至您的主號碼。以圖表形式來看,它看起來像這樣(圖片可點擊):
了解了架構,我們就可以進行實施,但有一個警告:我們不會這樣做 移動的 應用程式來顯示 Dialogflow 和來電者之間的對話,我們將創建一個簡單的 捲筒紙- 具有對話渲染器的應用程序,可清楚顯示呼叫篩選的工作原理。該應用程式將有一個乾預按鈕,按下該按鈕,Voximplant 會將呼入用戶與撥打的用戶連接起來(如果後者決定自己通話)。
履行
登入
打開
接下來,前往篩選應用程式的「號碼」部分的「可用」標籤。在這裡您將看到您剛剛購買的號碼。使用“附加”按鈕將其連結到應用程式 - 在出現的視窗中,保留所有預設值並按一下“附加”。
進入應用程式後,請前往「腳本」標籤並建立腳本 myscreening - 在其中我們使用文章中的程式碼
注意:您需要將伺服器變數的值變更為您的 ngrok 伺服器的名稱(有關 ngrok 的詳細資訊將在下面介紹)。也要替換第 31 行中您的數值,其中您的電話號碼是您的主號碼(例如您的個人手機),voximplant 號碼是您最近購買的號碼。
outbound_call = VoxEngine.callPSTN(“YOUR PHONE NUMBER”, “VOXIMPLANT NUMBER”)
當您決定中斷對話並親自與撥入用戶通話時,將會發生 callPSTN 通話。
儲存腳本後,您需要將其連結到購買的號碼。為此,請在應用程式內部,轉到“路由”標籤以建立新規則 - 右上角的“新規則”按鈕。提供名稱(例如 allcalls),保留預設遮罩(.* - 這意味著所有傳入呼叫將由為此規則選擇的腳本處理)並指定 myscreening 腳本。
保存規則。
從現在開始,電話號碼將連結到腳本。您需要做的最後一件事是將機器人連結到應用程式。為此,請前往「Dialogflow 連接器」選項卡,點擊右上角的「新增 Dialogflow 代理程式」按鈕,然後上傳 Dialogflow 代理程式的 JSON 檔案。
如果您需要代理進行範例/測試,您可以透過以下連結取得我們的代理:
NodeJS 上的簡單後端
讓我們在節點上部署一個簡單的後端,例如,如下所示:
這是一個簡單的應用程序,只需要運行兩個命令:
npm install
node index.js
伺服器將在您電腦的連接埠 3000 上運行,因此為了將其連接到 Voximplant 雲,我們使用 ngrok 實用程式。當你安裝時
ngrok http 3000
您將看到 ngrok 為您的本地伺服器產生的網域 - 將其複製並貼上到伺服器變數中。
顧客
客戶端應用程式看起來像一個簡單的聊天,您可以
只需將所有檔案複製到網頁伺服器上的某個目錄即可。在 script.js 檔案中,將 server 變數替換為 ngrok 域名,將 callee 變數替換為您購買的號碼。儲存檔案並在瀏覽器中啟動應用程式。如果一切正常,您將在開發者面板中看到 WebSocket 連線。
演示
您可以在此影片中看到該應用程式的實際運作情況:
P.S. 如果您單擊“幹預”按鈕,呼叫者將被定向到我的電話號碼,如果您單擊“斷開連接”,則會...?沒錯,通話就會被掛斷。
來源: www.habr.com