使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫

如何通過WebRTC客戶端SIPML5實現Asterisk電話呼叫

在配置本環境之前,用戶必須已經安裝好了Asterisk和相關的WebRTC配置。然後,我們開始配置WebRTC客戶端-SIPML5,通過瀏覽器實現WebRTC/SIP/PSTN的呼叫。今天,我們重點介紹SIPML5的配置呼叫流程。其他配置方式和對接方式,我們將在後續文章中介紹。


使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫

WebRTC/SIP終端/網關/語音板卡的互聯互通


參考關於在Asterisk環境下配置WebRTC。

https://www.toutiao.com/i6719761759613223435/

http://toutiao.com/item/6801443511649436173/


總覽

此文檔演示一個Asterisk配合WebRTC工作基本功能。配置Asterisk後將會支持一個遠端的WebRTC客戶端,使用的客戶端是 sipml5 客戶端。此文檔的目的是配置Asterisk,通過瀏覽器實現Asterisk的呼入呼出流程。用戶必須使用最新的火狐瀏覽器或者Google瀏覽器。


使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫


當然,用戶可以通過其他的方式實現和SIP分機,PSTN接入進行通信。如果用戶需要對接運營商的呼入呼出業務的話,需要安裝語音板卡或者語音網關對接運營商的PSTN線路。

另外,通過WebRTC/瀏覽器呼叫,可以極大降低呼叫中心或者IPPBX的部署成本,終端部署幾乎為零,同時可以增加在瀏覽器終端的定製開發,因此WebRTC的使用場景是通信行業比較有競爭力的方式。但是,因為涉及了域名解析和瀏覽器兼容性等問題,因此部署時需要讀者能夠花費一定的時間多網絡環境和業務需求做充分調研。

如果讀者希望通過光盤安裝方式Asterisk界面管理系統的安裝的話,可以訪問:www.freepbx.org.cn獲得安裝詳情。

創建Asterisk服務器端測試場景

前面章節,我們已經介紹了關於配置Asterisk和WebRTC客戶端的內容,用戶可以閱讀前面的內容,瞭解一下主要的步驟。這裡,我們已經假設用戶熟悉了前面的配置環境,用戶的IPPBX主機可以通過 pbx.example.com 訪問,客戶端是全面配置的客戶端 webrtc_client。 注意:用戶需要開放ws 端口能夠訪問到其pbx域名。

配置Asterisk撥號規則

這裡,我們做一個簡單的測試撥號規則,客戶端sipml5 client可以呼入測試。撥打200後,應答,然後播放一段提示語音(demo-congrats),然後掛機。

<code>[default]
exten => 200,1,Answer()
same => n,Playback(demo-congrats)
same => n,Hangup()/<code>

配置撥號規則後,從asterisk CLI登錄,重新加載一次Asterisk-使用命令 "dialplan reload" 。

瀏覽器和WSS配置

當使用WSS傳輸時,默認情況下,Chrome和Firefox不會允許用戶使用WSS,通過自簽證書連接服務器端。因此,最好用戶安裝一個公有證書,公有證書的安裝可以參考其他網絡文檔來實現。證書提供商會提供完整的安裝說明,當然用戶也可以安裝lets encript這樣的免費證書。

或者,用戶配置瀏覽器來添加一個另外,這樣,瀏覽器將視此域名為安全可信任的域名。打開瀏覽器設置,增加一個Asterisk's HTTPs server's TLS port和WS 路徑,例如: https://pbx.example.com:8089/ws,然後手動添加另外設置。

配置SIPML5客戶端

SIPML5 是一款非常好的客戶端測試工具,可以用來測試Asterisk/WebRTC。很多用戶也在生產環境中使用其他的客戶端,用戶可以參考其他客戶端文檔進行配置。這裡,僅按照SIPML5來做示例測試。

訪問此官方網站 https://sipml5.org, 用戶瀏覽器可能跳轉到了另外一個新的網站

https://www.doubango.org/sipml5/

訪問到此界面以後,點擊 "Enjoy our live demo" 將會引導到一個sipml5 端。

然後開始註冊用戶客戶端,使用以下配置輸入配置信息,如果用戶的系統配置有不同的話,自己修改到相應的正確配置。注意,以下步驟需要一步步進行。


使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫

我們輸入相應的配置參數,對照pjsip的配置參數輸入:

  • Display Name
  • Private Identity, webrtc配置id,檢查pjsip的配置
  • Public Identity is in the format: sip : (name of our PJSIP aor object) @ (IP Address of the Asterisk system)
  • Password :在pjsip中設置的 PJSIP auth 密碼
  • Realm 是 "asterisk.org"

下一步,點擊 "Expert mode?" ,用戶會重新開啟一個瀏覽器 tab,在專家設置模式中,輸入以下類似相同的配置:


使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫

注意,這裡修改的設置:

  • 勾選了"Disable Video"
  • 輸入正確的 WebSocket Server URL地址,使用的格式為:wss : // (ip address of asterisk) : 8089 / ws
  • 勾選 "Disable 3GPP Early IMS"

點擊 "Save" ,然後返回其他演示的註冊的demo tab。

下一步,點擊 "Login" ,用戶應該可以看到 Connected 狀態顯示:


使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫


用戶登錄CLI窗口,打開log日誌:

<code># asterisk -vvvr/<code>

如果成功連接的話,用戶可以看到退出和登錄的信息log,類似於這樣的:

<code>== WebSocket connection from '192.168.147.245:49976' for protocol 'sip' accepted using version '13'
-- Added contact 'sips:[email protected]:49976;transport=ws;rtcweb-breaker=no' to AOR 'webrtc_client' with expiration of 200 seconds
== Endpoint webrtc_client is now Reachable/<code>

呼叫測試

在 sipml5 Call control欄中輸入200,然後按呼叫按鈕。用戶會看到一個下拉菜單,然後點擊語音呼叫:


使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫

選擇 "Audio" 繼續執行。完成流程時,瀏覽器會彈出一個對話提示框,要求允許瀏覽器使用電腦的麥克風資源。


使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫

點擊"Allow"按鈕。

下一步,Call control box 將會顯示呼叫正在處理中:


使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫

呼叫連接後,顯示一個 In Call 狀態:


使用WebRTC技術實現瀏覽器和其他電話終端之間的呼叫

這時,用戶可以聽到Asterisk系統的提示語音 "Congratulations, you have successfully installed and executed the Asterisk open source PBX..."

到這裡,用戶使用WebRTC客戶端呼叫Asterisk的第一步基本完成。

關於WebRTC客戶端配置需要注意到問題

使用自簽證書在內網測試的話,可能不會出現太多問題。如果用戶使用WebRTC通過外網訪問PBX域名的話,首先需要確認你的PBX域名能夠成功訪問,防火牆端口,路由器端口需要開啟ws端口。另外,使用公有證書的話,需要核實證書的安裝配置和有效性。還有,因為WebRTC環境中,瀏覽器的版本會影響呼叫的穩定性,用戶最好使用最新的google瀏覽器或者火狐瀏覽器測試。客戶端使用添加到客戶端。如果呼叫等待時間太久的話,可能需要關閉ICE或者修改一些協商代碼。


分享到:


相關文章: