首先說明的是,目前,SBC沒有任何組織或者RFC標準來規(guī)定SBC必須具備什么樣的功能,很多SBC廠家根據(jù)大概的SBC的應用場景定義了很多不同的功能。一些廠家都聲稱一些所謂的功能,事實上也可能不完全是SBC的一般認可的功能。另外,因為技術(shù)積累的原因,一些廠家的SBC也只能實現(xiàn)比較基礎的功能,比較有實力的廠家則開發(fā)了很多高級功能。因此,筆者很難討論對某些功能做討論介紹。這里,筆者根據(jù)國外市場的調(diào)查,結(jié)合一些國際上認可的SBC品牌,同時結(jié)合SBC應用協(xié)議的規(guī)范,準備了20個SBC的常用功能來做介紹。
當然,SBC本身是一個比較新的產(chǎn)品,特別是基于互聯(lián)網(wǎng)技術(shù)的發(fā)展,未來可能會逐漸引入很多新的功能支持,筆者也不清楚,我們暫且不討論。
關于SBC的其他技術(shù)討論,讀者可以查閱本公眾號的歷史文檔或網(wǎng)絡資料來進行進一步的學習,F(xiàn)在,我們針對常用的20個SBC常用功能結(jié)合圖例來分別加以介紹說明。另外,筆者幾年前就發(fā)布過很多關于SBC的技術(shù)討論的文章,讀者可以查閱歷史文檔學習,包括:
- 邊界會話控制器部署協(xié)議RFC5853
- 全面剖析SBC產(chǎn)品和功能
- 免費SBC-FreeSBC,免費邊界會話控制器,支持軟硬件安裝部署方式,支持亞馬遜/阿里云安裝部署方式。免費下載測試。
- 使用開源Kamailio開發(fā)SBC的一些誤解
- 漫談VoIP網(wǎng)絡中的核心設備-SBC,讀者自行搜索:
01 SBC控制通信數(shù)據(jù)流量
邊界會話控制器-SBC,顧名思義,實際上就是對Session的控制。它僅對會話進行管理。因此,SBC不僅僅支持SIP,也可以支持H323和MGCP等協(xié)議。讀者可以根據(jù)字面意思就基本上了解了SBC的作用和功能:
- Session-會話支持。這里重復說明,SBC主要的作用是支持會話處理,不是指定的其他的IP處理。因此,一般的SBC廠家的價格都是根據(jù)支持會話多少來決定。會話處理包括:實時的通信交互,語音視頻其他多媒體處理,SIP/H323/MGCP協(xié)議的支持處理。
- Border-邊界支持。這里的邊界是指內(nèi)網(wǎng)和外網(wǎng)的邊界區(qū)域。類似于防火墻的部署一樣,部署在網(wǎng)絡的邊界區(qū)域就可以實現(xiàn)安全設置。
- Controller-控制器功能。這里的控制器可以控制的功能很多,例如控制數(shù)據(jù)流量,安全設置,編碼,呼叫路由處理,協(xié)議頭轉(zhuǎn)譯等功能。
02 SBC部署在網(wǎng)絡邊界
SBC部署在企業(yè)或運營商的網(wǎng)絡邊界處。因此,通常情況下,SBC會至少支持兩個網(wǎng)絡接口來對接WAN和LAN。WAN口對接外部網(wǎng)絡,LAN口和公司內(nèi)網(wǎng)其他通信設備進行通信,例如企業(yè)IPPBX。這里的邊界包括了多種形式的邊界管理,邊界包括:IP對IP網(wǎng)絡的邊界,SIP中繼對服務提供商的邊界,遠端外網(wǎng)用戶訪問的邊界和企業(yè)內(nèi)網(wǎng)/外網(wǎng)的邊界。
筆者在這里再討論一下關于邊界對接管理的應用示例。一般的SBC必須支持至少一個外網(wǎng)NIC口和一個內(nèi)網(wǎng)的NIC口。外網(wǎng)地址通過WAN口連接,內(nèi)網(wǎng)網(wǎng)卡連接其他的內(nèi)網(wǎng)交換機,負責和企業(yè)IPPBX或者UC進行通信。外網(wǎng)SIP協(xié)議數(shù)據(jù)通過SBC,然后再通過SBC連接到內(nèi)網(wǎng)的其他基于SIP的IPPBX。以下是一個IPPBX在數(shù)據(jù)中心,基于SBC的部署解決方案示例:
基于軟件SBC配合商業(yè)IPPBX,開源Asterisk或FreeSWITCH完成對整體解決方案示例(SBC+IPPBX部署在本地),通過此方案,企業(yè)IPPBX同時支持了PSTN呼叫/SIPrrunk呼叫,SBC功能等其他的應用。
03 SBC是一個B2BUA
SBC是一個B2BUA。這里用戶一定要注意,通常情況下,SBC執(zhí)行的是一個背靠背代理的角色,因此,它可以對外網(wǎng)進入到SIP信令進行處理。
此代理通過一個橋接的方式,對兩個會話分別進行處理,包括路由,頭的規(guī)范化重置等流程。簡單來說,B2BUA就是一個兩面派,需要執(zhí)行UAS功能時就是一個服務器的角色,例如響應;需要執(zhí)行客戶端是就是一個客戶端的角色,例如請求。
為了支持SBC的功能,B2BUA充當了很多角色和具體的功能:
通過SBC的處理,用戶內(nèi)網(wǎng)的消息可以重新設置為一個外網(wǎng)的地址再次呼叫外網(wǎng)用戶,這里的用戶內(nèi)網(wǎng)地址就會替換為外網(wǎng)的公網(wǎng)地址。
04 SBC執(zhí)行NAT處理流程
上面的邊界處理事實上也是一個NAT地址的功能實現(xiàn)。SBC可以實現(xiàn)網(wǎng)絡地址的轉(zhuǎn)換功能。不同網(wǎng)絡之間通過SBC實現(xiàn)網(wǎng)絡的通信。
如果是運營商級的SBC的話,可以支持不同IMS網(wǎng)絡的對接。IMS網(wǎng)絡中通過SBC來對接不同的IMS網(wǎng)絡:
05 SBC支持網(wǎng)絡拓撲隱藏
SBC支持了網(wǎng)絡拓撲隱藏功能。根據(jù)我們前面的介紹,SBC是一個邊界設備,企業(yè)通信的其他應用服務器都部署在內(nèi)網(wǎng)中,通過SBC和外網(wǎng)進行交互,對外的地址是SBC的地址,外網(wǎng)用戶不會看到內(nèi)網(wǎng)用戶的地址,因此實現(xiàn)了網(wǎng)絡拓撲隱藏功能,保證了內(nèi)網(wǎng)服務器的安全。
06 SBC支持信令和語音加密處理
因為SBC是一個B2BUA,因此SBC可以對會話進行修改處理,包括對數(shù)據(jù)進行加密等。SIP支持了TLS后,SBC發(fā)送到外網(wǎng)的消息就會進行加密處理,包括對信令加密和對媒體加密等功能。外網(wǎng)數(shù)據(jù)的安全得到了保證。
07 SBC支持SIP信令標準化處理
SBC可以支持SIP信令的標準化處理,當然也可以支持H323的標準化處理。很多情況下,一些對接的設備中其SIP消息不規(guī)范,這樣會導致不兼容的問題。在信令進入到媒體網(wǎng)關之前對其語法規(guī)范進行處理,防止下游設備出現(xiàn)其他的兼容性問題的問題。例如,在客戶端的消息中缺少了消息,SBC可以對其進行規(guī)范化處理,在發(fā)送到下游網(wǎng)關設備時進行規(guī)范處理,添加所需要的消息內(nèi)容。
經(jīng)過SBC的規(guī)范化處理以后,網(wǎng)關收到正確的消息內(nèi)容:
08 SBC支持協(xié)議轉(zhuǎn)換
SIP/SS7,SIP/H323,或者SIP/WebRTC等。很多SBC設備已經(jīng)支持了PRI/SS7協(xié)議棧,因此通過SIP轉(zhuǎn)換到PSTN也不會出現(xiàn)問題。但是,很多市場上的終端產(chǎn)品可能支持了H323或者WebRTC等。因此SBC需要支持協(xié)議轉(zhuǎn)換的功能。
SBC轉(zhuǎn)換SIP和WebRTC:
09 SBC處理IPv4或IPv6轉(zhuǎn)換
現(xiàn)在,IPv6變得越來越普及,外網(wǎng)用戶可能使用IPv6對內(nèi)網(wǎng)用戶進行呼叫。SBC需要對IP地址進行轉(zhuǎn)換處理。通過SBC的轉(zhuǎn)換,外網(wǎng)地址變成了內(nèi)網(wǎng)地址,然后再進行下一步的通信處理流程。
10 SBC支持防攻擊功能
因為SBC部署在網(wǎng)絡邊界區(qū)域,因此會經(jīng)常受到外網(wǎng)的攻擊,SBC需要對其進行防攻擊的處理。SBC通過不同的安全策略防火墻來阻止外網(wǎng)的垃圾數(shù)據(jù)進入到內(nèi)網(wǎng)的通信服務器,從而保證了內(nèi)網(wǎng)通信服務器的安全。以下是一個調(diào)查報告,說明目前使用的攻擊目標:
因此,為了保證實現(xiàn)外網(wǎng)的防范攻擊,企業(yè)用戶建議部署SBC。部署SBC前的圖例(無SBC),IPPBX是非安全狀態(tài):
部署SBC后:
當然,安全策略需要針對不同的業(yè)務端口進行設置,一般的端口設置包括UDP的安全威脅,RTP的安全威脅,SIP安全威脅,IP層的安全威脅,ICMP的安全威脅和TCP的安全威脅等攻擊方式。
11 SBC支持Authentication處理
SBC支持內(nèi)網(wǎng)用戶的認證處理。一般的企業(yè)IPPBX用戶,通過SIP注冊基本上可以完成注冊呼叫等功能。但是,如果用戶是外網(wǎng)用戶呼入到企業(yè)內(nèi)網(wǎng)的話,可能SIP用戶的安全設置不能完全保證其用戶的身份。SBC可以增加一個身份參數(shù)(P-Asserted-Identity)來對其外網(wǎng)用戶進行進一步的安全認證。SBC通過對下游服務器的身份查詢,獲得其用戶的身份以后,確認外網(wǎng)用戶的認證過程,允許用戶呼叫。
經(jīng)過對P-Asserted-Identity查詢,要求用戶重新認證,然后SBC通過其認證過程。
關于P-Asserted-Identity,讀者可以進一步閱讀RFC3325,這里不再做過多解讀。這里提醒讀者,P-Asserted-Identity一般使用在代理或服務器端,而且不能對這個頭進行加密處理。
12 SBC支持相關通信法律法規(guī)
SBC是運營商級的接入設備,所以必須符合當?shù)胤傻囊。在語音通信環(huán)境中,監(jiān)聽是一個必不可少的功能。SBC可監(jiān)聽呼叫,通過第三方設備或者接口實現(xiàn)電話錄音等功能。SBC可以監(jiān)控SDP的媒體數(shù)據(jù)消息,支持強制使用第三方的媒體服務器,對媒體進行監(jiān)聽功能。
通過指定第三方的媒體網(wǎng)關,監(jiān)聽終端可以對雙方通話進行監(jiān)聽。錄音文件可存儲在第三方的服務器中,通過其他的接口隨時調(diào)用。
13 SBC支持緊急呼叫功能
緊急呼叫是政府對企業(yè)通信環(huán)境必須支持的功能。SBC可設置緊急呼叫優(yōu)先路由(911或119等號碼),或者根據(jù)呼叫方的消息,通過其他的手段,支持呼叫方的地理地址,其他相關緊急處理機構(gòu)獲得了呼叫方具體的地理地址后能夠快速實現(xiàn)支持。緊急呼叫策略在呼出路由設置中始終默認為最高優(yōu)先級的呼叫。
目前比較少的SBC解決方案實現(xiàn)了地理位置的呼叫路由方式。筆者不清楚具體的實現(xiàn)方式,可能SBC通過其他的地理位置服務功能接口,結(jié)合SBC的呼叫策略,SBC應該支持基于地理位置的緊急呼叫。IPPBX用戶可以通過SBC呼叫911服務或其他的緊急服務號碼,SBC應該支持基于地理位置的911服務或其他的國內(nèi)119服務方式。
14 SBC支持語音質(zhì)量保障QoS服務
大部分情況下,企業(yè)網(wǎng)絡帶寬總是有限的。如果在帶寬有限的情況下,或者不能支持需要更多帶寬的編碼時,SBC可以修改編碼使用選項,它可以根據(jù)呼叫方提供的不同編碼,選擇占用帶寬較低的編碼來進行呼叫,這樣就保證了QoS服務和正常的語音質(zhì)量。在以下的示例中,呼叫方在SDP中提供了兩種編碼X和Y,SBC發(fā)現(xiàn)Y編碼占用帶寬資源比較低,同時,被呼叫方也可以支持Y編碼,那么,SBC就選擇Y編碼進行呼叫。這樣的話,呼叫的QoS就獲得了保障。
15 SBC支持呼叫控制處理機制
SBC支持了呼叫控制功能。其中一種比較常用的功能就是SBC通過對帶寬的監(jiān)控實現(xiàn)呼叫控制。SBC可以監(jiān)控不同的中繼使用的帶寬狀態(tài),確保不同中繼能夠正常工作,同時確保安全優(yōu)先級高的優(yōu)先呼叫。SBC增加了對呼叫上下游的帶寬監(jiān)控功能,如果呼叫所使用的編碼的帶寬不夠,SBC則拒絕此呼叫。通過帶寬的方式控制呼叫。
當然,我們這里所說的呼叫控制不僅僅是帶寬監(jiān)控一個方面,其他方式的監(jiān)控也可以通過SBC來實現(xiàn)。其他方面的呼叫控制包括:呼叫權(quán)限控制,呼叫時間控制,呼叫目的地控制,黑白名單控制等呼叫控制功能。
16 SBC支持NAT轉(zhuǎn)換媒體能力
我們在前面已經(jīng)介紹過,SBC可以支持NAT功能。但是,很多SBC同時支持了媒體能力,SBC可以實現(xiàn)媒體的轉(zhuǎn)換處理。SBC不僅僅控制信令,也可以實現(xiàn)媒體功能。外網(wǎng)用戶可以通過SBC可以直接呼叫內(nèi)網(wǎng)的用戶。
17 SBC可支持媒體編碼轉(zhuǎn)換
剛才我們介紹過,SBC可以作為一個媒體服務器來使用。因此,SBC也可以對媒體編碼進行轉(zhuǎn)換處理。因為基于瀏覽器的WebRTC,IMS網(wǎng)絡,SIPtrunk的接入,語音編碼的使用也越來越多。目前,使用比較多的編碼如G。729,AMR-NB,V8等。SBC需要對各種編碼進行轉(zhuǎn)換處理,使得企業(yè)IPPBX可以實現(xiàn)無縫對接,保證終端之間的正常呼叫。大部分的硬件SBC都支持了編碼DSP芯片,這些DSP可以支持多種商業(yè)編碼,并且取得了不錯的性能和處理能力。如果基于軟件的SBC,則相對支持的編碼處理能力相對比較低,編碼選項也支持的相對比較少。
瀏覽器用戶使用V8編碼,通過SBC可以實現(xiàn)內(nèi)網(wǎng)H264編碼終端實現(xiàn)視頻呼叫。同樣,外網(wǎng)SIPtrunk使用了G729的話,可以通過SBC實現(xiàn)內(nèi)網(wǎng)IPPBX所支持的711等編碼的通話。
另外,還有一些用戶使用編碼卡來進行基于DSP的編碼處理。通過開源軟交換平臺和PCI編碼卡來實現(xiàn),支持了多種語音編碼。
18 SBC可支持IVR功能
因為SBC可以支持媒體服務器,因此也可以支持DTMF生成,語音文件播放等功能。一些情況下,SBC可以支持簡單的IVR語音導航功能。如果IVR導航進入到相應的其他業(yè)務流程。在實際生產(chǎn)環(huán)境中,IPPBX就可以實現(xiàn)IVR功能,因此在SBC上使用IVR的可能不是太多。
19 SBC支持呼叫數(shù)據(jù)統(tǒng)計
因為SBC是通信節(jié)點,因此它可以非常方便地統(tǒng)計所有的呼叫狀態(tài)數(shù)據(jù),這些數(shù)據(jù)包括:平均呼叫量,失敗呼叫,呼叫時長,最長呼叫,最短呼叫等數(shù)據(jù)。
20 SBC支持CallStateful實現(xiàn)CDR功能
SBC可以支持狀態(tài)呼叫,系統(tǒng)保存了整個呼叫的所有流程的消息,因此,SBC可以獲得完整的呼叫流程記錄。例如,呼叫請求,拆線BYE消息等數(shù)據(jù)。SBC可以支持完整的CDR報表,此CDR報表為企業(yè)應用服務提供支持。
21 總結(jié)
在本文章中,筆者通過具體的圖例結(jié)合文字說明介紹了20個SBC的常用功能,這些功能基本上涵蓋了目前SBC的所有常用功能。在每一個功能中,筆者盡可能結(jié)合一些具體的示例來說明每個特定功能。讀者可以結(jié)合廠家的SBC解決方案來對應學習。另外,隨著技術(shù)的不斷發(fā)展,一些軟件SBC和基于云部署的SBC也逐漸發(fā)展起來,而且軟件架構(gòu)也慢慢向云平臺技術(shù)轉(zhuǎn)移。因此,當前的功能介紹還不能涵蓋所有的技術(shù)功能。讀者自己需要做進一步的跟蹤學習。
參考資料:
https://wiki.freepbx.org/display/SBC/SBC+Threat+Protection
https://www.itproportal.com/2016/08/10/how-to-interrogate-the-security-of-your-session-border-controller-sbc/
https://www.ietf.org/rfc/rfc3325.txt
https://www.sangoma.com/products/vega-enterprise-sbc-vmsoftware/
https://docs.telcobridges.com/tbwiki/FreeSBC#Cloud_computing