概述
freeswitch 是一款好用的開源軟交換平台。
但是,fs不是專為SBC而開發的,所以需要做一些定製化的配置和開發。
本文主要介紹如何利用fs的基本功能配置一個簡單的SBC方案,滿足一般化需求,如果有定製化的需求需要定製開發。
環境
centos:CentOS release 7.0 (Final)或以上版本
freeswitch:v1.8.7
GCC:4.8.5
SBC簡介
會話邊界控制器(Session Border Controller,簡稱SBC)。
看完名稱定義,我就在想,什麼是會話,什麼樣的邊界,控制什麼。
SBC最早作為IMS系統的重要網元,主要解決運營商語音業務中的安全問題、NAT問題、互通問題。
安全問題,包括IP對接名單,非法攔截,內網拓撲屏蔽等。邊界和控制。
NAT問題,主要針對外網和內網的隔離轉換。邊界。
互通問題,包括會話信令的適配互通和媒體流的互通。會話和控制。
隨著企業級VOIP通信網絡的發展,內部組網結構越來越複雜,在對外呼叫和跨域通信的場景下,SBC作為內外互通、會話控制和邊界控制的重要節點,有其獨特的作用和地位。
fs配置sbc的方案
在fs的官方文檔中,對於sbc的介紹有以下幾種方式。
一,利用mod_lcr和mod_easyroute模塊建立sbc,主要針對多個運營商線路的場景。
二,python_sbc,使用python腳本監控esl接口中的event事件並對事件響應操作,主要是利用302重定向消息,和通常意義中的sbc有區別。
三,sbc_setup,利用fs和kamailio互相配合實現,文檔和版本都非常老,不適用新版本fs。
四,SBC FreeSWITCH Configuration Example 2,通過dialplan撥號計劃實現基本的sbc功能。官方文檔見「https://freeswitch.org/confluence/display/FREESWITCH/SBC+FreeSWITCH+Configuration+Example+2」
第四種場景是我們在企業組網中經常會用到的,適用性非常好,只需要簡單的配置和測試就可以直接使用。
SBC配置示例
「SBC FreeSWITCH Configuration Example 2」文檔中介紹的dialplan例子。
<include>
<extension name="customer_my_public_desk">
<condition field="${network_addr}" expression="pu.bl.ic.ip"/>
<condition field="destination_number" expression="^\+?1?(\d+)$">
<action application="set" data="hangup_after_bridge=true"/>
<action application="set" data="continue_on_fail=true"/>
<\!-- THIS WORKS FOR CALL DISTRIBUTION --\>
<\!-- <action application="bridge" data="sofia/external/${destination_number}@${distributor(dist_list)}"/> -->
<\!-- THIS WORKS FOR SINGLE PROXY --\>
<action application="bridge" data="sofia/external/${destination_number}@127.0.0.1:5062"/>
</condition>
</extension>
<extension name="customer_my_private_desk">
<condition field="${network_addr}" expression="pr.iv.ate.ip"/>
<condition field="destination_number" expression="^\+?1?(\d+)$">
<action application="set" data="hangup_after_bridge=true"/>
<action application="set" data="continue_on_fail=true"/>
<action application="bridge" data="sofia/internal/${destination_number}@127.0.0.1:5062"/>
</condition>
</extension>
</include>
例子比較簡單,僅僅涉及了單個IP過濾、固定號碼格式匹配、distributor分發。
實際生產環境的sbc配置會涉及更多方面。
總結
本文對fs官方文檔中與sbc有關的介紹進行了梳理,對四種sbc配置方案進行了簡單的介紹。
對於第四種sbc場景的配置方案僅僅列舉了一個簡單的例子,後續會對該種sbc場景進行生產環境的配置介紹。
空空如常
求真得真