- https://wiki.freepbx.org/display/SBC/Theory+of+Operation
- Session // 實(shí)時(shí)交互的會(huì)話,語(yǔ)音,視頻,多媒體會(huì)話,協(xié)議會(huì)話
- Real time interactive communications
- Voice, Video, multimedia
- SIP or H323 Signaling
- Border // 邊界, IP邊界,SIP用戶邊界,公司網(wǎng)絡(luò)邊界
- IP to IP network border
- SIP trunks to service providers
- Remote worker access
- Internal Enterprise / External Enteprise
- Control // 安全控制,計(jì)費(fèi)路由控制,協(xié)議標(biāo)準(zhǔn)控制
- Security & SLA assurance
- Revenue & cost optimization
- Compliance
這里,筆者不在對(duì)SBC的功能做太多介紹,僅針對(duì)SBC和SIP的區(qū)別做一個(gè)簡(jiǎn)單說(shuō)明,同時(shí)針對(duì)是否可以使用Kamailio做SBC做一點(diǎn)介紹。
首先我們通過(guò)兩張圖例說(shuō)明一下什么是SBC,什么是SIP服務(wù)器。以下圖例是一個(gè)SBC的架構(gòu)說(shuō)明。這里,我們可以看到,在SBC的架構(gòu)中,我們需要一個(gè)B2BUA來(lái)負(fù)責(zé)處理SIP和RTP的相關(guān)技術(shù)流程和業(yè)務(wù)流程。這里的B2BUA需要處理非常復(fù)雜的業(yè)務(wù)流程,例如,電話錄音,計(jì)費(fèi),編碼轉(zhuǎn)換等。
UAS和UAC
SBC具體的使用場(chǎng)景是這樣的:
以下是一個(gè)SIP服務(wù)器的架構(gòu),當(dāng)然,這里的SIP 應(yīng)用程序可以是Asterisk,F(xiàn)reeSWITCH或者其他第三方的SIP應(yīng)用媒體服務(wù)器。這里的SIP模塊僅對(duì)SIP頭做處理,它并沒(méi)有涉及RTP的處理。
通過(guò)以上兩張簡(jiǎn)單示例圖,我們可以看出關(guān)于SBC和SIP服務(wù)器的本質(zhì)上的區(qū)別。如果讀者仍然不太清楚的話,需要惡補(bǔ)什么是proxy和B2BUA的基本知識(shí)。另外,筆者在以前的分享比較中有非常完整的介紹,用戶可以參考。因此,我們這里可以對(duì)SBC和SIP服務(wù)器簡(jiǎn)單總結(jié)為以下幾點(diǎn):
通常情況下,SBC需要B2BUA的功能來(lái)實(shí)現(xiàn)。B2BUA可以支持更多的SIP 防攻擊功能,拓?fù)潆[藏功能,編碼轉(zhuǎn)換處理的功能。一般情況下,根據(jù)RFC的定義,SIP 服務(wù)器只能做注冊(cè),定位,呼叫路由功能,逃生功能等SIP相關(guān)功能。
通常情況下,用戶部署SBC需要在DMZ中設(shè)置,需要WAN和LAN口配置。這樣的話,通過(guò)SBC和內(nèi)網(wǎng)的SIP 媒體服務(wù)器對(duì)接就會(huì)隱藏了SIP應(yīng)用服務(wù)器的網(wǎng)絡(luò)部署,起到了拓?fù)潆[藏的功能。如果沒(méi)有SBC的支持的話,用戶則需要直接在DMZ網(wǎng)絡(luò)中配置SIP服務(wù)器,這樣會(huì)導(dǎo)致SIP網(wǎng)絡(luò)被暴露在公網(wǎng),安全性就會(huì)出現(xiàn)問(wèn)題。所以,基于SIP服務(wù)器的這種部署方式對(duì)拓?fù)潆[藏或者網(wǎng)絡(luò)隱藏基本上都很難實(shí)現(xiàn),會(huì)導(dǎo)致嚴(yán)重的安全問(wèn)題。
Kamalio是一個(gè)SIP 服務(wù)器,Kamailio可以實(shí)現(xiàn)部分SBC功能。讀者需要注意,我們這里強(qiáng)調(diào)的部分功能。具體到實(shí)際部署環(huán)境時(shí),用戶究竟需要SBC的什么功能,用戶需要自己判斷。筆者不想做過(guò)多的討論。根據(jù)上面的介紹中,我們可以得知,SIP服務(wù)器可以支持部分SBC的功能,但是不能完全實(shí)現(xiàn)SBC的市場(chǎng)上認(rèn)可的SBC功能,例如,SBC多必須編碼轉(zhuǎn)換的功能,或者錄音等SBC必須的功能。當(dāng)然,用戶可以通過(guò)kamailio 實(shí)現(xiàn)SBC的注冊(cè),路由等簡(jiǎn)單功能。
現(xiàn)在,我們開始討論第二個(gè)問(wèn)題,Kamalio是否支持了SBC功能。其實(shí),在上面的介紹中,我們已經(jīng)討論了這個(gè)問(wèn)題。Kamailio可以實(shí)現(xiàn)部分SBC的簡(jiǎn)單功能。在目前的發(fā)行版本中,kamailio也沒(méi)有計(jì)劃支持b2BUA的模式。因此,理論上來(lái)說(shuō),Kamailio不能支持真正意義上的SBC功能,也沒(méi)有支持B2BUA的模塊。當(dāng)然,Kamailio可以通過(guò)其他方式,例如UAC模塊來(lái)實(shí)現(xiàn),這里不做討論。在2016年,官方在這個(gè)問(wèn)題上就有很多的討論,根據(jù)官方討論的結(jié)果,我們匯總了以下幾點(diǎn):
- B2BUA的模塊可以借助第三方來(lái)實(shí)現(xiàn)。
- 增加B2BUA模塊會(huì)增加kamailio 服務(wù)器的負(fù)載,影響Kamailio的執(zhí)行性能。
- 如果增加B2BUA功能的話,需要增加很多B2BUA的其他功能,會(huì)導(dǎo)致平臺(tái)發(fā)展問(wèn)題。
- 因?yàn)闀r(shí)間和精力的原因,官方開發(fā)人員歡迎第三方開發(fā)人員提供B2BUA模塊的代碼支持。
通過(guò)以上簡(jiǎn)單分析,我們可以看到,SBC具有非常豐富的對(duì)SIP管理的功能,而SIP服務(wù)器僅能實(shí)現(xiàn)部分SBC功能。Kamalio可以SBC的部分功能,不具備B2BUA功能,因此不能支持完整的SBC必要功能,并且,官方開發(fā)人員目前沒(méi)有開發(fā)計(jì)劃來(lái)支持SBC模塊。因?yàn)镾BC,SIP在概念上存在很多重復(fù)的地方,因此,我們討論的空間也很大。但是,筆者認(rèn)為,為了避免客戶被忽悠,我們還是要從目前的SBC使用場(chǎng)景和產(chǎn)品本身來(lái)討論問(wèn)題,避免用戶對(duì)SBC產(chǎn)品選型上出現(xiàn)的各種誤解,幫助用戶獲得一個(gè)權(quán)威專業(yè)靠譜的解決方案。
鏈接:
為什么使用SBC,各種SBC的使用場(chǎng)景:
SBC http://freepbx.org.cn/wiki/index.php?title=SBC%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF
是否增加Kamalio 對(duì)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é)議呼叫中心機(jī)器人客服開發(fā)學(xué)習(xí)分享,QQ群號(hào):208136295
關(guān)注微信公眾號(hào):asterisk-cn,獲得有價(jià)值的Asterisk行業(yè)分享
Asterisk freepbx 中文官方論壇:http://bbs.freepbx.cn/forum.php
Asterisk freepbx技術(shù)文檔: www.freepbx.org.cn
融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
Asterisk/FreePBX中國(guó)官方合作伙伴