概述
freeswitch 是一款好用的開(kāi)源軟交換平臺(tái)。
但是炸枣,fs不是專為SBC而開(kāi)發(fā)的虏等,所以需要做一些定制化的配置和開(kāi)發(fā)。
本文主要介紹如何利用fs的基本功能配置一個(gè)簡(jiǎn)單的SBC方案适肠,滿足一般化需求霍衫,如果有定制化的需求需要定制開(kāi)發(fā)。
環(huán)境
centos:CentOS? release 7.0 (Final)或以上版本
freeswitch:v1.8.7
GCC:4.8.5
SBC簡(jiǎn)介
會(huì)話邊界控制器(Session Border Controller侯养,簡(jiǎn)稱SBC)敦跌。
看完名稱定義,我就在想逛揩,什么是會(huì)話柠傍,什么樣的邊界,控制什么辩稽。
SBC最早作為IMS系統(tǒng)的重要網(wǎng)元惧笛,主要解決運(yùn)營(yíng)商語(yǔ)音業(yè)務(wù)中的安全問(wèn)題、NAT問(wèn)題逞泄、互通問(wèn)題患整。
安全問(wèn)題,包括IP對(duì)接名單喷众,非法攔截各谚,內(nèi)網(wǎng)拓?fù)淦帘蔚取_吔绾涂刂啤?/p>
NAT問(wèn)題到千,主要針對(duì)外網(wǎng)和內(nèi)網(wǎng)的隔離轉(zhuǎn)換昌渤。邊界。
互通問(wèn)題父阻,包括會(huì)話信令的適配互通和媒體流的互通愈涩。會(huì)話和控制望抽。
隨著企業(yè)級(jí)VOIP通信網(wǎng)絡(luò)的發(fā)展加矛,內(nèi)部組網(wǎng)結(jié)構(gòu)越來(lái)越復(fù)雜,在對(duì)外呼叫和跨域通信的場(chǎng)景下煤篙,SBC作為內(nèi)外互通斟览、會(huì)話控制和邊界控制的重要節(jié)點(diǎn),有其獨(dú)特的作用和地位辑奈。
fs配置sbc的方案
在fs的官方文檔中苛茂,對(duì)于sbc的介紹有以下幾種方式已烤。
一,利用mod_lcr和mod_easyroute模塊建立sbc妓羊,主要針對(duì)多個(gè)運(yùn)營(yíng)商線路的場(chǎng)景胯究。
二,python_sbc躁绸,使用python腳本監(jiān)控esl接口中的event事件并對(duì)事件響應(yīng)操作裕循,主要是利用302重定向消息,和通常意義中的sbc有區(qū)別净刮。
三剥哑,sbc_setup,利用fs和kamailio互相配合實(shí)現(xiàn)淹父,文檔和版本都非常老株婴,不適用新版本fs。
四暑认,SBC FreeSWITCH Configuration Example 2困介,通過(guò)dialplan撥號(hào)計(jì)劃實(shí)現(xiàn)基本的sbc功能。官方文檔見(jiàn)“https://freeswitch.org/confluence/display/FREESWITCH/SBC+FreeSWITCH+Configuration+Example+2”
第四種場(chǎng)景是我們?cè)谄髽I(yè)組網(wǎng)中經(jīng)常會(huì)用到的蘸际,適用性非常好逻翁,只需要簡(jiǎn)單的配置和測(cè)試就可以直接使用。
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>
例子比較簡(jiǎn)單八回,僅僅涉及了單個(gè)IP過(guò)濾、固定號(hào)碼格式匹配驾诈、distributor分發(fā)缠诅。
實(shí)際生產(chǎn)環(huán)境的sbc配置會(huì)涉及更多方面。
總結(jié)
本文對(duì)fs官方文檔中與sbc有關(guān)的介紹進(jìn)行了梳理乍迄,對(duì)四種sbc配置方案進(jìn)行了簡(jiǎn)單的介紹管引。
對(duì)于第四種sbc場(chǎng)景的配置方案僅僅列舉了一個(gè)簡(jiǎn)單的例子,后續(xù)會(huì)對(duì)該種sbc場(chǎng)景進(jìn)行生產(chǎn)環(huán)境的配置介紹闯两。
空空如常
求真得真