通話自動化概觀
Azure 通訊服務 通話自動化可讓開發人員建置以伺服器為基礎的智慧型手機工作流程,以及語音和公用電話交換網(PSTN) 通道的通話錄製。 C#、Java、JavaScript 和 Python 中提供的 SDK 會使用動作事件模型來協助您建置個人化客戶互動。 您的通訊應用程式可以接聽即時呼叫事件並執行控制平面動作(例如接聽、傳輸、播放音訊、開始錄製等),根據商業規則引導和控制通話。
注意
通話自動化目前不支援 會議室 通話。
常見使用案例
您可以使用通話自動化建置的一些常見使用案例包括:
- 為交易式工作流程規劃 VoIP 或 PSTN 通話,例如隨選即用和約會提醒,以改善客戶服務。
- 使用播放(音訊 URL、文字到語音轉換和 SSML)和辨識(DTMF 和語音)動作,建置互動式互動工作流程給自助客戶,以取得訂單預約和更新等使用案例。
- 使用直接路由,將您的通訊應用程式與連絡中心和私人電話語音網路整合。
- 藉由建立數位遮罩服務,將買家與賣方或用戶連線到您平臺上的合作夥伴廠商,以保護客戶的身分識別。
- 藉由建立營銷和客戶服務的自動化客戶外展計劃來增加參與度。
- 在通話後程式中分析您的未分出音頻錄製,以達到質量保證的目的。
Azure 通訊服務 通話自動化可用來建置客戶服務案例的通話工作流程,如高階架構中所述。 您可以接聽來電或撥打撥出電話。 執行像是播放歡迎訊息、將客戶連線至 Azure 通訊服務 通話 SDK 用戶端應用程式上的即時代理程式,以回應來電要求等動作。 透過支援 Azure 通訊服務 PSTN 或直接路由,您接著可以將此工作流程連線回您的連絡中心。
功能
下列清單提供目前在 Azure 通訊服務呼叫自動化 SDK 中可用的功能集。
功能區域 | 功能 | .NET | Java | JavaScript | Python |
---|---|---|---|---|---|
預先呼叫案例 | 接聽一對一通話 | ✔️ | ✔️ | ✔️ | ✔️ |
接聽群組通話 | ✔️ | ✔️ | ✔️ | ✔️ | |
對一或多個端點進行新的輸出呼叫 | ✔️ | ✔️ | ✔️ | ✔️ | |
重新導向* (轉寄) 對一或多個端點的呼叫 | ✔️ | ✔️ | ✔️ | ✔️ | |
拒絕來電 | ✔️ | ✔️ | ✔️ | ✔️ | |
中電話案例 | 將一或多個端點新增至現有的呼叫 | ✔️ | ✔️ | ✔️ | ✔️ |
取消將端點新增至現有呼叫 | ✔️ | ✔️ | ✔️ | ✔️ | |
從音訊檔案播放音訊 | ✔️ | ✔️ | ✔️ | ✔️ | |
使用文字到語音播放音訊 | ✔️ | ✔️ | ✔️ | ✔️ | |
透過 DTMF 辨識用戶輸入 | ✔️ | ✔️ | ✔️ | ✔️ | |
辨識使用者語音輸入 | ✔️ | ✔️ | ✔️ | ✔️ | |
啟動連續 DTMF 辨識 | ✔️ | ✔️ | ✔️ | ✔️ | |
停止連續 DTMF 辨識 | ✔️ | ✔️ | ✔️ | ✔️ | |
Send DTMF | ✔️ | ✔️ | ✔️ | ✔️ | |
將參與者設為靜音 | ✔️ | ✔️ | ✔️ | ✔️ | |
從現有的呼叫中移除一或多個端點 | ✔️ | ✔️ | ✔️ | ✔️ | |
盲目傳輸* 另一個端點的 1:1 呼叫 | ✔️ | ✔️ | ✔️ | ✔️ | |
盲目轉移* 從群組呼叫到另一個端點的參與者 | ✔️ | ✔️ | ✔️ | ✔️ | |
掛斷電話(移除通話腿) | ✔️ | ✔️ | ✔️ | ✔️ | |
終止通話(移除所有參與者和結束通話) | ✔️ | ✔️ | ✔️ | ✔️ | |
取消媒體作業 | ✔️ | ✔️ | ✔️ | ✔️ | |
將自訂資訊新增至通話或將通話轉接至端點時,請與端點共用 自定義資訊 (透過 VOIP 或 SIP 標頭) | ✔️ | ✔️ | ✔️ | ✔️ | |
查詢案例 | 取得呼叫狀態 | ✔️ | ✔️ | ✔️ | ✔️ |
在通話中取得參與者 | ✔️ | ✔️ | ✔️ | ✔️ | |
列出通話中的所有參與者 | ✔️ | ✔️ | ✔️ | ✔️ | |
通話錄音 | 開始/暫停/繼續/停止錄製 | ✔️ | ✔️ | ✔️ | ✔️ |
*目前不支援將 VoIP 通話轉移或重新導向至電話號碼。
架構
呼叫自動化會使用 REST API 介面來接收要求,並提供對服務內所執行之所有動作的回應。 由於呼叫的異步本質,大部分動作都有在動作成功完成或失敗時觸發的對應事件。
Azure 通訊服務 使用事件方格來傳遞所有中呼叫動作回呼的 IncomingCall 事件和 HTTPS Webhook。
呼叫動作
預先呼叫動作
這些動作會在連線 IncomingCall 事件通知中列出的目的地端點之前執行。 Web 攔截回呼事件只會傳達「回應」預先呼叫動作,而不是拒絕或重新導向動作。
回應 使用來自事件方格和呼叫自動化 SDK 的 IncomingCall 事件,您的應用程式可以接聽通話。 此動作允許 IVR 案例,您的應用程式可以透過程式設計方式接聽輸入 PSTN 呼叫。 其他案例包括代表使用者接聽通話。
拒絕 拒絕呼叫表示您的應用程式可以接收 IncomingCall 事件,並防止呼叫連線到目的地端點。
重新 導向 使用事件方格中的 IncomingCall 事件,呼叫可以重新導向至一或多個建立單一或同時響鈴(sim-ring) 案例的端點。 重新導向動作不會接聽通話,只會重新導向或轉送至要接聽的另一個目的地端點。
建立通話 建立通話動作可用來撥打電話給電話號碼和其他通訊使用者。 使用案例包括您的應用程式發出輸出呼叫,以主動通知用戶中斷或通知訂單更新。
通話中動作
這些動作可以在使用通話自動化 SDK 接聽或放置的通話上執行。 每個中呼叫動作都有對應的成功或失敗 Web 攔截回呼事件。
新增/移除參與者 一 或多個參與者可以在單一要求中新增,每個參與者都是支援目的地端點的變化。 Web 攔截回呼會針對成功新增至呼叫的每個參與者傳送。
播放 當您的應用程式接聽通話或撥出通話時,您可以播放來電者的音訊提示。 視需要播放音樂等案例,可以迴圈播放此音訊。 若要深入瞭解,請檢視我們的 概念 和操作指南,以 自定義語音提示給具有播放動作的使用者。
辨識輸入 在應用程式播放音訊提示之後,您可以要求使用者輸入來驅動應用程式的商業規則和流覽。 若要深入瞭解,請檢視收集使用者輸入的概念和操作指南。
連續 DTMF 辨識 當您的應用程式必須能夠在呼叫的任何時間點接收 DTMF 音調,而不需要應用程式觸發特定的辨識動作。 這在代理程式正在呼叫且需要使用者以某種標識碼或追蹤號碼輸入的案例中很有用。 若要深入瞭解如何使用此檢視我們的 指南。
傳送 DTMF 當您的應用程式需要將 DTMF 音調傳送給外部參與者時,這可能是為了向外部代理程式撥出並提供擴充功能號碼,或像是流覽外部 IVR 功能表之類的用途。
靜音 您的應用程式可以根據商業規則將特定用戶靜音。 然後,如果使用者想要說話,則必須手動取消靜音。
傳輸 當您的應用程式接聽通話或將輸出呼叫放置至端點時,該呼叫可以轉移到另一個目的地端點。 傳輸 1:1 呼叫可移除應用程式使用呼叫自動化 SDK 來控制呼叫的能力。
記錄 您可以根據應用程式商業規則決定何時啟動/暫停/繼續/停止錄製,也可以將控制權授與使用者以觸發這些動作。 若要深入瞭解,請檢視我們的 概念 和 快速入門。
停止回應 應用程式接聽一對一通話時,停止響應動作會移除呼叫腿,並終止與其他端點的呼叫。 如果通話中有兩個以上的參與者(群組通話),則執行「掛斷」動作會從群組呼叫中移除應用程式的端點。
終止 您的應用程式是否已接聽一對一或群組通話,或撥打一或多個參與者的輸出通話,此動作會移除所有參與者並結束通話。 在 Hang-Up 呼叫動作中,將屬性設定 forEveryOne
為 true,以觸發此作業。
根據應用程式可能需要取消進行中和佇列媒體作業的商業規則來取消媒體 作業。 視媒體作業取消和佇列中的媒體作業而定,您會收到 Webhook 事件,指出動作已取消。
查詢案例
清單參與者 傳回通話中所有參與者的清單。 錄製和轉譯 Bot 會從這份清單中省略。
事件
下表概述 Azure 通訊服務 發出的目前事件。 下列兩個數據表將事件方格所發出的事件描述為 Webhook 事件,以及從呼叫自動化發出的事件。
事件方格的事件
事件方格傳送的大部分事件都是平台無關的,這表示無論 SDK(通話或通話自動化)為何,都會發出它們。 雖然您可以為任何事件建立訂用帳戶,但建議您針對您想要以程序設計方式控制呼叫的所有通話自動化使用案例使用 IncomingCall 事件。 使用其他事件進行報告/遙測。
活動 | 描述 |
---|---|
IncomingCall | 對通訊用戶或電話號碼的通話通知 |
CallStarted | 已建立通話(輸入或輸出) |
CallEnded | 呼叫已終止,並移除所有參與者 |
ParticipantAdded | 參與者已新增至通話 |
ParticipantRemoved | 已從通話中移除參與者 |
RecordingFileStatusUpdated | 錄製檔案可供使用 |
呼叫自動化 Webhook 事件
當您接聽或放置新的輸出呼叫時,呼叫自動化事件會傳送至指定的 Web 攔截回呼 URI。
若要瞭解針對不同動作發佈哪些事件,請參閱 本指南 ,提供各種呼叫控制流程的程式代碼範例和順序圖表。
確認回呼事件時,最佳做法是使用標準 HTTP 狀態代碼來回應,例如 200 OK。 詳細資訊是不必要的,更適合您的偵錯程式。
若要瞭解如何保護回呼事件傳遞,請參閱 本指南。
作業回呼 URI
這是某些中呼叫 API 中的選擇性參數,會使用事件作為其異步回應。 根據預設,當使用者建立呼叫時,所有事件都會傳送至 CreateCall / AnswerCall API 所設定的預設回呼 URI。 使用作業回呼 URI 時,此個別(僅限一次性)要求的對應事件將會傳送至新的 URI。
支援 API | 對應的事件 |
---|---|
AddParticipant | AddParticipantSucceed / AddParticipantFailed |
RemoveParticipant | RemoveParticipantSucceed / RemoveParticipantFailed |
TransferCall | CallTransferAccepted / CallTransferFailed |
CancelAddParticipant | CancelAddParticipantSucceeded / CancelAddParticipantFailed |
Play | PlayCompleted / PlayFailed / PlayCanceled |
PlayToAll | PlayCompleted / PlayFailed / PlayCanceled |
辨識 | RecognizeCompleted / RecognizeFailed / RecognizeCanceled |
StopContinuousDTMFRecognition | ContinuousDtmfRecognitionStopped |
SendDTMF | ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed |
下一步
以下是您感興趣的一些文章:
- 透過範例瞭解您的資源 如何針對各種呼叫使用案例 收費。
- 試用快速入門以 撥打撥出電話。
- 瞭解 呼叫自動化所發佈的使用量和作業記錄 。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應