- https://wiki.freepbx.org/display/SBC/Theory+of+Operation
- Session // 實時交互的會話,語音,視頻,多媒體會話,協(xié)議會話
- Real time interactive communications
- Voice, Video, multimedia
- SIP or H323 Signaling
- Border // 邊界, IP邊界,SIP用戶邊界,公司網(wǎng)絡邊界
- IP to IP network border
- SIP trunks to service providers
- Remote worker access
- Internal Enterprise / External Enteprise
- Control // 安全控制,計費路由控制,協(xié)議標準控制
- Security & SLA assurance
- Revenue & cost optimization
- Compliance
這里,筆者不在對SBC的功能做太多介紹,僅針對SBC和SIP的區(qū)別做一個簡單說明,同時針對是否可以使用Kamailio做SBC做一點介紹。
首先我們通過兩張圖例說明一下什么是SBC,什么是SIP服務器。以下圖例是一個SBC的架構說明。這里,我們可以看到,在SBC的架構中,我們需要一個B2BUA來負責處理SIP和RTP的相關技術流程和業(yè)務流程。這里的B2BUA需要處理非常復雜的業(yè)務流程,例如,電話錄音,計費,編碼轉換等。


UAS和UAC

SBC具體的使用場景是這樣的:

以下是一個SIP服務器的架構,當然,這里的SIP 應用程序可以是Asterisk,F(xiàn)reeSWITCH或者其他第三方的SIP應用媒體服務器。這里的SIP模塊僅對SIP頭做處理,它并沒有涉及RTP的處理。

通過以上兩張簡單示例圖,我們可以看出關于SBC和SIP服務器的本質上的區(qū)別。如果讀者仍然不太清楚的話,需要惡補什么是proxy和B2BUA的基本知識。另外,筆者在以前的分享比較中有非常完整的介紹,用戶可以參考。因此,我們這里可以對SBC和SIP服務器簡單總結為以下幾點:
通常情況下,SBC需要B2BUA的功能來實現(xiàn)。B2BUA可以支持更多的SIP 防攻擊功能,拓撲隱藏功能,編碼轉換處理的功能。一般情況下,根據(jù)RFC的定義,SIP 服務器只能做注冊,定位,呼叫路由功能,逃生功能等SIP相關功能。
通常情況下,用戶部署SBC需要在DMZ中設置,需要WAN和LAN口配置。這樣的話,通過SBC和內網(wǎng)的SIP 媒體服務器對接就會隱藏了SIP應用服務器的網(wǎng)絡部署,起到了拓撲隱藏的功能。如果沒有SBC的支持的話,用戶則需要直接在DMZ網(wǎng)絡中配置SIP服務器,這樣會導致SIP網(wǎng)絡被暴露在公網(wǎng),安全性就會出現(xiàn)問題。所以,基于SIP服務器的這種部署方式對拓撲隱藏或者網(wǎng)絡隱藏基本上都很難實現(xiàn),會導致嚴重的安全問題。
Kamalio是一個SIP 服務器,Kamailio可以實現(xiàn)部分SBC功能。讀者需要注意,我們這里強調的部分功能。具體到實際部署環(huán)境時,用戶究竟需要SBC的什么功能,用戶需要自己判斷。筆者不想做過多的討論。根據(jù)上面的介紹中,我們可以得知,SIP服務器可以支持部分SBC的功能,但是不能完全實現(xiàn)SBC的市場上認可的SBC功能,例如,SBC多必須編碼轉換的功能,或者錄音等SBC必須的功能。當然,用戶可以通過kamailio 實現(xiàn)SBC的注冊,路由等簡單功能。
現(xiàn)在,我們開始討論第二個問題,Kamalio是否支持了SBC功能。其實,在上面的介紹中,我們已經(jīng)討論了這個問題。Kamailio可以實現(xiàn)部分SBC的簡單功能。在目前的發(fā)行版本中,kamailio也沒有計劃支持b2BUA的模式。因此,理論上來說,Kamailio不能支持真正意義上的SBC功能,也沒有支持B2BUA的模塊。當然,Kamailio可以通過其他方式,例如UAC模塊來實現(xiàn),這里不做討論。在2016年,官方在這個問題上就有很多的討論,根據(jù)官方討論的結果,我們匯總了以下幾點:
- B2BUA的模塊可以借助第三方來實現(xiàn)。
- 增加B2BUA模塊會增加kamailio 服務器的負載,影響Kamailio的執(zhí)行性能。
- 如果增加B2BUA功能的話,需要增加很多B2BUA的其他功能,會導致平臺發(fā)展問題。
- 因為時間和精力的原因,官方開發(fā)人員歡迎第三方開發(fā)人員提供B2BUA模塊的代碼支持。
通過以上簡單分析,我們可以看到,SBC具有非常豐富的對SIP管理的功能,而SIP服務器僅能實現(xiàn)部分SBC功能。Kamalio可以SBC的部分功能,不具備B2BUA功能,因此不能支持完整的SBC必要功能,并且,官方開發(fā)人員目前沒有開發(fā)計劃來支持SBC模塊。因為SBC,SIP在概念上存在很多重復的地方,因此,我們討論的空間也很大。但是,筆者認為,為了避免客戶被忽悠,我們還是要從目前的SBC使用場景和產(chǎn)品本身來討論問題,避免用戶對SBC產(chǎn)品選型上出現(xiàn)的各種誤解,幫助用戶獲得一個權威專業(yè)靠譜的解決方案。
鏈接:
為什么使用SBC,各種SBC的使用場景:
SBC http://freepbx.org.cn/wiki/index.php?title=SBC%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF
是否增加Kamalio 對SBC 的模塊支持,官方的郵件討論:
https://lists.kamailio.org/pipermail/sr-users/2016-March/thread.html#92075
https://blog.telcobridges.com/index.php/2018/10/26/sbc-vs-sip-server-what-is-the-difference/
https://likewise.am/2013/03/10/kamailio-as-an-sbc-session-border-controller/
什么是S,B,C:
https://wiki.freepbx.org/display/SBC/Theory+of+Operation


MRCP協(xié)議呼叫中心機器人客服開發(fā)學習分享,QQ群號:208136295
關注微信公眾號:asterisk-cn,獲得有價值的Asterisk行業(yè)分享
Asterisk freepbx 中文官方論壇:http://bbs.freepbx.cn/forum.php
Asterisk freepbx技術文檔: www.freepbx.org.cn
融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
Asterisk/FreePBX中國官方合作伙伴