視覺化 (WebRTC)

本章節說明將視覺化設定為 WebRTC 參與者的配置。在SIP 參與者一章中,進一步說明參與者的整合。

重要提示:WebRTC 僅能透過 HTTPS 和有效憑證運作。否則將無法建立語音連線。

信號站

視覺化上的電話無法透過鈴聲接通。因此必須透過訊息或實體鐘聲分開傳送信號。之後,使用者可透過從視覺化撥打電話來建立與對方的語音連線。

為了接收信號,可以直接從對方端發送指令,若該端支援此功能,則可透過TCP/UDP-或HTTP介面。或者也可以使用Asterisk AMI介面或透過撥號計畫-事件來偵測傳入的電話。後者是最簡單的變體。

配置

電話不同,視覺化的位址配置會由伺服器自動建立。因此不需要設定 SIP 位址。

要在視覺化上使用電話,必須透過插件圖書館將其加入到頁面。當電話的配置完成且 Asterisk 電話交換機成功啟動後,視覺化右下角會顯示 FAB (Floating Action Button)。此按鈕可讓使用者建立連線。

電話語音的 VoIP 配置分為兩部分。視覺化伺服器的配置在網路介面遠端存取中進行。所有電話交換機的設定在基礎架構下的網路 電話中進行。設定看起來相似,因此必須注意在哪裡進行設定。通常也會使用相同的設定,如果伺服器位於相同網路中。預設情況下,電話的設定會分發到所有網路連線。

全球使用

為了讓視覺化能在全球建立語音連線,WebRTC-UDP 封包必須傳送至內部電話交換機。如果位於相同網路或透過 VPN 建立連線,則封包會直接傳送到伺服器並運作正常。若視覺化從其他網路呼叫時,情況就不同了。此時將無法再存取伺服器的 IP 位址。針對這種情況有兩個解決方案:

  • STUN 伺服器:此伺服器會解析每個 NAT-IP,並將這些位址提供給視覺化。然後視覺化會嘗試與所有這些 IP 位址建立連線。
  • TRUN 伺服器:語音連線直接透過 TURN 建立。也就是說,通訊會轉發到 TURN。

有關配置的所有資訊,請參閱STUN 和 TRUN 伺服器一章。

鍵盤

電話配置的右側標籤中,可以為視覺化設定一個鍵盤。以下是一般電話按鈕板的範例:

!1;!2;!3
!4;!5;!6
!7;!8;!9
[icon:material/emergency]:*;!0;!#

或者使用門鎖開啟器:

[icon:material/door_open] [txt:Open]:*1234#

每個數字透過分號分隔成一行。如果內容留空,則會跳過該鍵。每個鍵都可以包含個別文字。文字可直接在程式碼前面使用冒號寫入。也支援[icon:][txt:]的佔位符,用於翻譯。文字前面加上感嘆號會放大按鈕板的字體。如果僅使用程式碼,則不會傳輸此內容。若插入空行,則會開始新表格。

重要:每個程式碼都會以明文顯示在視覺化中,並可輕易讀取。

有效字元為0-9A-D*#。也可以透過逗號(,)插入暫停。若要較長的暫停,請重複多次使用逗號。

錯誤排除

為了檢查是否真的能建立外部連線,建議使用 Chrome 瀏覽器的主控台。可透過 URL chrome://webrtc-internals/呼叫此主控台。

ICE candidate grid下方可以顯示 IP 位址的需求等資訊。

已知問題

  • 較舊版本的 iOS 裝置在使用 Web 應用程式的全螢幕模式 (PWA) 時,無法建立連線。截至 2019 年 10 月 1 日 (iOS13.1)。
  • 在某些 iOS 裝置上,音量可能非常低。透過兩次按下麥克風(語音切換)可提高音量。
  • 無法建立非 HTTPS 的連線,因為大多數瀏覽器需要安全的語音連線。