首先說(shuō)明的是,目前,SBC沒(méi)有任何組織或者RFC標準來(lái)規定SBC必須具備什么樣的功能,很多SBC廠(chǎng)家根據大概的SBC的應用場(chǎng)景定義了很多不同的功能。一些廠(chǎng)家都聲稱(chēng)一些所謂的功能,事實(shí)上也可能不完全是SBC的一般認可的功能。另外,因為技術(shù)積累的原因,一些廠(chǎng)家的SBC也只能實(shí)現比較基礎的功能,比較有實(shí)力的廠(chǎng)家則開(kāi)發(fā)了很多高級功能。因此,筆者很難討論對某些功能做討論介紹。這里,筆者根據國外市場(chǎng)的調查,結合一些國際上認可的SBC品牌,同時(shí)結合SBC應用協(xié)議的規范,準備了20個(gè)SBC的常用功能來(lái)做介紹。
當然,SBC本身是一個(gè)比較新的產(chǎn)品,特別是基于互聯(lián)網(wǎng)技術(shù)的發(fā)展,未來(lái)可能會(huì )逐漸引入很多新的功能支持,筆者也不清楚,我們暫且不討論。
關(guān)于SBC的其他技術(shù)討論,讀者可以查閱本公眾號的歷史文檔或網(wǎng)絡(luò )資料來(lái)進(jìn)行進(jìn)一步的學(xué)習。現在,我們針對常用的20個(gè)SBC常用功能結合圖例來(lái)分別加以介紹說(shuō)明。另外,筆者幾年前就發(fā)布過(guò)很多關(guān)于SBC的技術(shù)討論的文章,讀者可以查閱歷史文檔學(xué)習,包括:
- 邊界會(huì )話(huà)控制器部署協(xié)議RFC5853
- 全面剖析SBC產(chǎn)品和功能
- 免費SBC-FreeSBC,免費邊界會(huì )話(huà)控制器,支持軟硬件安裝部署方式,支持亞馬遜/阿里云安裝部署方式。免費下載測試。
- 使用開(kāi)源Kamailio開(kāi)發(fā)SBC的一些誤解
- 漫談VoIP網(wǎng)絡(luò )中的核心設備-SBC,讀者自行搜索:

01 SBC控制通信數據流量
邊界會(huì )話(huà)控制器-SBC,顧名思義,實(shí)際上就是對Session的控制。它僅對會(huì )話(huà)進(jìn)行管理。因此,SBC不僅僅支持SIP,也可以支持H323和MGCP等協(xié)議。讀者可以根據字面意思就基本上了解了SBC的作用和功能:
- Session-會(huì )話(huà)支持。這里重復說(shuō)明,SBC主要的作用是支持會(huì )話(huà)處理,不是指定的其他的IP處理。因此,一般的SBC廠(chǎng)家的價(jià)格都是根據支持會(huì )話(huà)多少來(lái)決定。會(huì )話(huà)處理包括:實(shí)時(shí)的通信交互,語(yǔ)音視頻其他多媒體處理,SIP/H323/MGCP協(xié)議的支持處理。
- Border-邊界支持。這里的邊界是指內網(wǎng)和外網(wǎng)的邊界區域。類(lèi)似于防火墻的部署一樣,部署在網(wǎng)絡(luò )的邊界區域就可以實(shí)現安全設置。
- Controller-控制器功能。這里的控制器可以控制的功能很多,例如控制數據流量,安全設置,編碼,呼叫路由處理,協(xié)議頭轉譯等功能。
02 SBC部署在網(wǎng)絡(luò )邊界
SBC部署在企業(yè)或運營(yíng)商的網(wǎng)絡(luò )邊界處。因此,通常情況下,SBC會(huì )至少支持兩個(gè)網(wǎng)絡(luò )接口來(lái)對接WAN和LAN。WAN口對接外部網(wǎng)絡(luò ),LAN口和公司內網(wǎng)其他通信設備進(jìn)行通信,例如企業(yè)IPPBX。這里的邊界包括了多種形式的邊界管理,邊界包括:IP對IP網(wǎng)絡(luò )的邊界,SIP中繼對服務(wù)提供商的邊界,遠端外網(wǎng)用戶(hù)訪(fǎng)問(wèn)的邊界和企業(yè)內網(wǎng)/外網(wǎng)的邊界。

筆者在這里再討論一下關(guān)于邊界對接管理的應用示例。一般的SBC必須支持至少一個(gè)外網(wǎng)NIC口和一個(gè)內網(wǎng)的NIC口。外網(wǎng)地址通過(guò)WAN口連接,內網(wǎng)網(wǎng)卡連接其他的內網(wǎng)交換機,負責和企業(yè)IPPBX或者UC進(jìn)行通信。外網(wǎng)SIP協(xié)議數據通過(guò)SBC,然后再通過(guò)SBC連接到內網(wǎng)的其他基于SIP的IPPBX。以下是一個(gè)IPPBX在數據中心,基于SBC的部署解決方案示例:


基于軟件SBC配合商業(yè)IPPBX,開(kāi)源Asterisk或FreeSWITCH完成對整體解決方案示例(SBC+IPPBX部署在本地),通過(guò)此方案,企業(yè)IPPBX同時(shí)支持了PSTN呼叫/SIPrrunk呼叫,SBC功能等其他的應用。

03 SBC是一個(gè)B2BUA
SBC是一個(gè)B2BUA。這里用戶(hù)一定要注意,通常情況下,SBC執行的是一個(gè)背靠背代理的角色,因此,它可以對外網(wǎng)進(jìn)入到SIP信令進(jìn)行處理。

此代理通過(guò)一個(gè)橋接的方式,對兩個(gè)會(huì )話(huà)分別進(jìn)行處理,包括路由,頭的規范化重置等流程。簡(jiǎn)單來(lái)說(shuō),B2BUA就是一個(gè)兩面派,需要執行UAS功能時(shí)就是一個(gè)服務(wù)器的角色,例如響應;需要執行客戶(hù)端是就是一個(gè)客戶(hù)端的角色,例如請求。

為了支持SBC的功能,B2BUA充當了很多角色和具體的功能:

通過(guò)SBC的處理,用戶(hù)內網(wǎng)的消息可以重新設置為一個(gè)外網(wǎng)的地址再次呼叫外網(wǎng)用戶(hù),這里的用戶(hù)內網(wǎng)地址就會(huì )替換為外網(wǎng)的公網(wǎng)地址。

04 SBC執行NAT處理流程
上面的邊界處理事實(shí)上也是一個(gè)NAT地址的功能實(shí)現。SBC可以實(shí)現網(wǎng)絡(luò )地址的轉換功能。不同網(wǎng)絡(luò )之間通過(guò)SBC實(shí)現網(wǎng)絡(luò )的通信。

如果是運營(yíng)商級的SBC的話(huà),可以支持不同IMS網(wǎng)絡(luò )的對接。IMS網(wǎng)絡(luò )中通過(guò)SBC來(lái)對接不同的IMS網(wǎng)絡(luò ):

05 SBC支持網(wǎng)絡(luò )拓撲隱藏
SBC支持了網(wǎng)絡(luò )拓撲隱藏功能。根據我們前面的介紹,SBC是一個(gè)邊界設備,企業(yè)通信的其他應用服務(wù)器都部署在內網(wǎng)中,通過(guò)SBC和外網(wǎng)進(jìn)行交互,對外的地址是SBC的地址,外網(wǎng)用戶(hù)不會(huì )看到內網(wǎng)用戶(hù)的地址,因此實(shí)現了網(wǎng)絡(luò )拓撲隱藏功能,保證了內網(wǎng)服務(wù)器的安全。

06 SBC支持信令和語(yǔ)音加密處理
因為SBC是一個(gè)B2BUA,因此SBC可以對會(huì )話(huà)進(jìn)行修改處理,包括對數據進(jìn)行加密等。SIP支持了TLS后,SBC發(fā)送到外網(wǎng)的消息就會(huì )進(jìn)行加密處理,包括對信令加密和對媒體加密等功能。外網(wǎng)數據的安全得到了保證。

07 SBC支持SIP信令標準化處理
SBC可以支持SIP信令的標準化處理,當然也可以支持H323的標準化處理。很多情況下,一些對接的設備中其SIP消息不規范,這樣會(huì )導致不兼容的問(wèn)題。在信令進(jìn)入到媒體網(wǎng)關(guān)之前對其語(yǔ)法規范進(jìn)行處理,防止下游設備出現其他的兼容性問(wèn)題的問(wèn)題。例如,在客戶(hù)端的消息中缺少了消息,SBC可以對其進(jìn)行規范化處理,在發(fā)送到下游網(wǎng)關(guān)設備時(shí)進(jìn)行規范處理,添加所需要的消息內容。

經(jīng)過(guò)SBC的規范化處理以后,網(wǎng)關(guān)收到正確的消息內容:

08 SBC支持協(xié)議轉換
SIP/SS7,SIP/H323,或者SIP/WebRTC等。很多SBC設備已經(jīng)支持了PRI/SS7協(xié)議棧,因此通過(guò)SIP轉換到PSTN也不會(huì )出現問(wèn)題。但是,很多市場(chǎng)上的終端產(chǎn)品可能支持了H323或者WebRTC等。因此SBC需要支持協(xié)議轉換的功能。

SBC轉換SIP和WebRTC:

09 SBC處理IPv4或IPv6轉換
現在,IPv6變得越來(lái)越普及,外網(wǎng)用戶(hù)可能使用IPv6對內網(wǎng)用戶(hù)進(jìn)行呼叫。SBC需要對IP地址進(jìn)行轉換處理。通過(guò)SBC的轉換,外網(wǎng)地址變成了內網(wǎng)地址,然后再進(jìn)行下一步的通信處理流程。

10 SBC支持防攻擊功能
因為SBC部署在網(wǎng)絡(luò )邊界區域,因此會(huì )經(jīng)常受到外網(wǎng)的攻擊,SBC需要對其進(jìn)行防攻擊的處理。SBC通過(guò)不同的安全策略防火墻來(lái)阻止外網(wǎng)的垃圾數據進(jìn)入到內網(wǎng)的通信服務(wù)器,從而保證了內網(wǎng)通信服務(wù)器的安全。以下是一個(gè)調查報告,說(shuō)明目前使用的攻擊目標:

因此,為了保證實(shí)現外網(wǎng)的防范攻擊,企業(yè)用戶(hù)建議部署SBC。部署SBC前的圖例(無(wú)SBC),IPPBX是非安全狀態(tài):

部署SBC后:

當然,安全策略需要針對不同的業(yè)務(wù)端口進(jìn)行設置,一般的端口設置包括UDP的安全威脅,RTP的安全威脅,SIP安全威脅,IP層的安全威脅,ICMP的安全威脅和TCP的安全威脅等攻擊方式。

11 SBC支持Authentication處理
SBC支持內網(wǎng)用戶(hù)的認證處理。一般的企業(yè)IPPBX用戶(hù),通過(guò)SIP注冊基本上可以完成注冊呼叫等功能。但是,如果用戶(hù)是外網(wǎng)用戶(hù)呼入到企業(yè)內網(wǎng)的話(huà),可能SIP用戶(hù)的安全設置不能完全保證其用戶(hù)的身份。SBC可以增加一個(gè)身份參數(P-Asserted-Identity)來(lái)對其外網(wǎng)用戶(hù)進(jìn)行進(jìn)一步的安全認證。SBC通過(guò)對下游服務(wù)器的身份查詢(xún),獲得其用戶(hù)的身份以后,確認外網(wǎng)用戶(hù)的認證過(guò)程,允許用戶(hù)呼叫。

經(jīng)過(guò)對P-Asserted-Identity查詢(xún),要求用戶(hù)重新認證,然后SBC通過(guò)其認證過(guò)程。

關(guān)于P-Asserted-Identity,讀者可以進(jìn)一步閱讀RFC3325,這里不再做過(guò)多解讀。這里提醒讀者,P-Asserted-Identity一般使用在代理或服務(wù)器端,而且不能對這個(gè)頭進(jìn)行加密處理。
12 SBC支持相關(guān)通信法律法規
SBC是運營(yíng)商級的接入設備,所以必須符合當地法律的要求。在語(yǔ)音通信環(huán)境中,監聽(tīng)是一個(gè)必不可少的功能。SBC可監聽(tīng)呼叫,通過(guò)第三方設備或者接口實(shí)現電話(huà)錄音等功能。SBC可以監控SDP的媒體數據消息,支持強制使用第三方的媒體服務(wù)器,對媒體進(jìn)行監聽(tīng)功能。

通過(guò)指定第三方的媒體網(wǎng)關(guān),監聽(tīng)終端可以對雙方通話(huà)進(jìn)行監聽(tīng)。錄音文件可存儲在第三方的服務(wù)器中,通過(guò)其他的接口隨時(shí)調用。

13 SBC支持緊急呼叫功能
緊急呼叫是政府對企業(yè)通信環(huán)境必須支持的功能。SBC可設置緊急呼叫優(yōu)先路由(911或119等號碼),或者根據呼叫方的消息,通過(guò)其他的手段,支持呼叫方的地理地址,其他相關(guān)緊急處理機構獲得了呼叫方具體的地理地址后能夠快速實(shí)現支持。緊急呼叫策略在呼出路由設置中始終默認為最高優(yōu)先級的呼叫。

目前比較少的SBC解決方案實(shí)現了地理位置的呼叫路由方式。筆者不清楚具體的實(shí)現方式,可能SBC通過(guò)其他的地理位置服務(wù)功能接口,結合SBC的呼叫策略,SBC應該支持基于地理位置的緊急呼叫。IPPBX用戶(hù)可以通過(guò)SBC呼叫911服務(wù)或其他的緊急服務(wù)號碼,SBC應該支持基于地理位置的911服務(wù)或其他的國內119服務(wù)方式。

14 SBC支持語(yǔ)音質(zhì)量保障QoS服務(wù)
大部分情況下,企業(yè)網(wǎng)絡(luò )帶寬總是有限的。如果在帶寬有限的情況下,或者不能支持需要更多帶寬的編碼時(shí),SBC可以修改編碼使用選項,它可以根據呼叫方提供的不同編碼,選擇占用帶寬較低的編碼來(lái)進(jìn)行呼叫,這樣就保證了QoS服務(wù)和正常的語(yǔ)音質(zhì)量。在以下的示例中,呼叫方在SDP中提供了兩種編碼X和Y,SBC發(fā)現Y編碼占用帶寬資源比較低,同時(shí),被呼叫方也可以支持Y編碼,那么,SBC就選擇Y編碼進(jìn)行呼叫。這樣的話(huà),呼叫的QoS就獲得了保障。

15 SBC支持呼叫控制處理機制
SBC支持了呼叫控制功能。其中一種比較常用的功能就是SBC通過(guò)對帶寬的監控實(shí)現呼叫控制。SBC可以監控不同的中繼使用的帶寬狀態(tài),確保不同中繼能夠正常工作,同時(shí)確保安全優(yōu)先級高的優(yōu)先呼叫。SBC增加了對呼叫上下游的帶寬監控功能,如果呼叫所使用的編碼的帶寬不夠,SBC則拒絕此呼叫。通過(guò)帶寬的方式控制呼叫。

當然,我們這里所說(shuō)的呼叫控制不僅僅是帶寬監控一個(gè)方面,其他方式的監控也可以通過(guò)SBC來(lái)實(shí)現。其他方面的呼叫控制包括:呼叫權限控制,呼叫時(shí)間控制,呼叫目的地控制,黑白名單控制等呼叫控制功能。
16 SBC支持NAT轉換媒體能力
我們在前面已經(jīng)介紹過(guò),SBC可以支持NAT功能。但是,很多SBC同時(shí)支持了媒體能力,SBC可以實(shí)現媒體的轉換處理。SBC不僅僅控制信令,也可以實(shí)現媒體功能。外網(wǎng)用戶(hù)可以通過(guò)SBC可以直接呼叫內網(wǎng)的用戶(hù)。

17 SBC可支持媒體編碼轉換
剛才我們介紹過(guò),SBC可以作為一個(gè)媒體服務(wù)器來(lái)使用。因此,SBC也可以對媒體編碼進(jìn)行轉換處理。因為基于瀏覽器的WebRTC,IMS網(wǎng)絡(luò ),SIPtrunk的接入,語(yǔ)音編碼的使用也越來(lái)越多。目前,使用比較多的編碼如G。729,AMR-NB,V8等。SBC需要對各種編碼進(jìn)行轉換處理,使得企業(yè)IPPBX可以實(shí)現無(wú)縫對接,保證終端之間的正常呼叫。大部分的硬件SBC都支持了編碼DSP芯片,這些DSP可以支持多種商業(yè)編碼,并且取得了不錯的性能和處理能力。如果基于軟件的SBC,則相對支持的編碼處理能力相對比較低,編碼選項也支持的相對比較少。

瀏覽器用戶(hù)使用V8編碼,通過(guò)SBC可以實(shí)現內網(wǎng)H264編碼終端實(shí)現視頻呼叫。同樣,外網(wǎng)SIPtrunk使用了G729的話(huà),可以通過(guò)SBC實(shí)現內網(wǎng)IPPBX所支持的711等編碼的通話(huà)。
另外,還有一些用戶(hù)使用編碼卡來(lái)進(jìn)行基于DSP的編碼處理。通過(guò)開(kāi)源軟交換平臺和PCI編碼卡來(lái)實(shí)現,支持了多種語(yǔ)音編碼。


18 SBC可支持IVR功能
因為SBC可以支持媒體服務(wù)器,因此也可以支持DTMF生成,語(yǔ)音文件播放等功能。一些情況下,SBC可以支持簡(jiǎn)單的IVR語(yǔ)音導航功能。如果IVR導航進(jìn)入到相應的其他業(yè)務(wù)流程。在實(shí)際生產(chǎn)環(huán)境中,IPPBX就可以實(shí)現IVR功能,因此在SBC上使用IVR的可能不是太多。

19 SBC支持呼叫數據統計
因為SBC是通信節點(diǎn),因此它可以非常方便地統計所有的呼叫狀態(tài)數據,這些數據包括:平均呼叫量,失敗呼叫,呼叫時(shí)長(cháng),最長(cháng)呼叫,最短呼叫等數據。

20 SBC支持CallStateful實(shí)現CDR功能
SBC可以支持狀態(tài)呼叫,系統保存了整個(gè)呼叫的所有流程的消息,因此,SBC可以獲得完整的呼叫流程記錄。例如,呼叫請求,拆線(xiàn)BYE消息等數據。SBC可以支持完整的CDR報表,此CDR報表為企業(yè)應用服務(wù)提供支持。

21 總結
在本文章中,筆者通過(guò)具體的圖例結合文字說(shuō)明介紹了20個(gè)SBC的常用功能,這些功能基本上涵蓋了目前SBC的所有常用功能。在每一個(gè)功能中,筆者盡可能結合一些具體的示例來(lái)說(shuō)明每個(gè)特定功能。讀者可以結合廠(chǎng)家的SBC解決方案來(lái)對應學(xué)習。另外,隨著(zhù)技術(shù)的不斷發(fā)展,一些軟件SBC和基于云部署的SBC也逐漸發(fā)展起來(lái),而且軟件架構也慢慢向云平臺技術(shù)轉移。因此,當前的功能介紹還不能涵蓋所有的技術(shù)功能。讀者自己需要做進(jìn)一步的跟蹤學(xué)習。
參考資料:
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