本文以語音通知服務功能為例,為您介紹如何通過語音通知的功能,實現自身的系統、設備、服務器等相關的告警功能。
適用場景
適用于科技公司的各種語音告警需求。
當您的系統檢測到服務器出現異常,或者物聯網等設備出現異常時,可以通過語音通知功能,以語音電話的形式,給告警處理人撥打電話,電話將播報您預先申請的語音通知模板中的內容,在語音通知模板中,您也可以添加變量,從而在實際使用時替換為符合情況的實際告警內容。
前提條件
您需要首先開通語音服務。開通后,系統將會自動為您開通語音通知功能,您可以在語音服務控制臺的通用設置中查看自己的功能開通情況。
選擇告警號碼模式,公共模式與專屬模式的區別,請參見公共模式/專屬模式FAQ和國內語音服務定價。
操作步驟
申請
申請話術:您可以在語音服務控制臺上申請話術,具體的操作方式,請參考新增話術。
若您屬于公共模式,則請在業務模式選擇時,選擇公共模式。
若您屬于專屬模式,則請在業務模式選擇時,選擇專屬模式。
申請號碼:如果您有單獨購買號碼的需求,可以在語音服務控制臺上申請號碼。在申請號碼前,請您先通過詢單的形式,先確認當前是否存在您意向中的號碼資源。
說明公共模式不需要申請號碼。
申請模板:在模板申請前,請務必閱讀語音模板規范。示例如下,僅供參考:
您好,服務器節點${content}發生告警,請及時處理。
服務器告警,${msg}異常,請及時處理。
重要告警時,請不要填寫IP或者鏈接等內容,如果有IP地址的相關訴求,可以考慮將IP中的“.”替換“_”的形式,例如:127_0_0_1。
模板的審核時效在2個小時以內。在申請公共模式的模板前,請務必確認已存在申請通過的公共模式的資質和話術信息。
發起呼叫
您可以使用API調用SingleCallByTts,詳情請參考文檔SingleCallByTts。
在實際編寫程序時,推薦使用最新版本的SDK。
您也可以通過API在線調試工具填寫如下參數進行測試。API在線調試工具將自動為您生成示例代碼:
說明在CalledShowNumber中,如果是公共模式,則不需要填寫;如果是專屬模式,則需要填入自行購買的號碼。
在CalledNumber中填寫被呼叫的手機號碼。
在TtsCode中填入申請通過的語音模板ID,格式為TTS_XXXXXXXX。
在TtsParam中填寫模板中的參數與對應的值信息。
如果僅有1個變量,如變量為content,則填寫{"content":"abc"}
如果有多個變量,如變量為time、content,則填寫{"time":"2012-12-12","content":"abc"}
在OutId中可以填入自定義的ID,用于自己標識一通呼叫。
調用成功后,系統會返回一個CallId,建議將CallId信息記錄,便于后續的呼叫結果查詢或者接收呼叫的回執后進行業務邏輯處理。
查詢呼叫記錄
通過控制臺查詢
登錄語音服務控制臺。
單擊業務統計 > 語音記錄查詢,進入查詢頁面。您可以根據呼叫類型、呼叫時間、主叫號碼、被叫號碼進行查詢。
通過API查詢
主動獲取呼叫結果:通過 QueryCallDetailByCallId 接口,您就可以主動獲取到一通呼叫的呼叫結果。
在調用API時,請輸入呼叫時返回的CallId值進行查詢。
說明CallId為呼叫時返回的CallId,ProdId為語音通知的ProdId,QueryDate查詢指定時間點對應的24小時的記錄。例如您輸入2022.11.21 20:00:01,系統會查詢2022.11.21 20:00:01~2022.11.22 20:00:01時間段內指定CallId的呼叫記錄。
被動接收呼叫結果:在實際生產系統中,如果通過輪詢的方式主動查詢呼叫結果,其實并不是一個很好的選擇,因為這會產生很多不必要的系統請求。因此語音服務還可以通過消息回執的形式,為您主動推送呼叫結果。
說明需要注意的是,HTTP和MNS消息之間不沖突,可以同時開啟,且兩者的消息消費不沖突。消息一旦消費成功后,便無法在其他服務器上消費到該消息,多次消費失敗后,也不會再推送消息。具體請參見回執消息簡介與配置流程。
如果您有不同環境的監聽需求,可以參考以下方案:
方案1:在自身系統消費消息時,設置不同環境的消費方式。如測試環境使用HTTP回執,生產環境使用MNS回執。在消費時,對當前環境的消息進行過濾。
方案2(推薦):開通兩個阿里云賬號,分別對應測試賬號和生產賬號。同時保證了測試環境和生產環境的賬號隔離。