WebRTC專案如何通過freeswitch實現級聯配置?

語言: CN / TW / HK

在EasyRTC的部分專案中,客戶希望能夠開啟視訊級聯功能,即將A伺服器的視訊推送到B伺服器中。目前我們對這一功能進行了研究,基於freeswitch實現了EasyRTC的級聯功能,下面將和大家分享一下我們的實現方式。

基本用法如下: a使用者----A伺服器(192.168.99.162)------B伺服器(192.168.99.147)-----b使用者

a使用者訪問A伺服器,A伺服器將視訊轉發到B伺服器,b使用者訪問B伺服器的房間,可以看到a的視訊。

首先在 A 伺服器(192.168.99.162)的配置檔案 conf/dialplan/default.xml 中新增以下引數,最好放在檔案的前面,防止被覆蓋掉,大致如下:

<extension name="meeting">
        <condition field="destination_number" expression="^(.*)$">
             <action application="bridge" data="sofia/external/sip:[email protected]:15080" />
        </condition>
    </extension>

expression 代表所有的會議室,^1(.*)$ 就是以 1 開頭的會議室。

data 中 %1 代表會議室名稱。將所有的資料轉發到 192.168.99.147 中。 在B伺服器(192.168.99.147)配置檔案 conf/displan/public.xml 中修改 public_extensions 為如下內容,代表接收所有的會議室。

<extension name="public_extensions">
      <condition field="destination_number" expression="^(.*)$">
        <action application="transfer" data="$1 XML default"/>
      </condition>
    </extension>

在a中進入會議室,會將a的視訊轉發到伺服器B中,抓包顯示如下:

 

以上包資料代表,192.168.99.162通過sip+rtp協議將A的視訊轉發到192.168.99.147的伺服器中。

在147的服務其中能夠看到162的伺服器的視訊,至此該功能就已經完成。

 

目前,EasyRTC可以運用到多個專案當中,包括線上教育、企業辦公、線上醫療等。如果大家對我們開發的產品比較感興趣,歡迎關注我們瞭解更多。