1、PBX簡單背景介紹
讓我們首先簡單說明關(guān)于PBX的一些背景知識,更多關(guān)于交換機的知識,讀者可以查閱網(wǎng)絡資料。PBX最早起源于程控電話交換機。讀者可以通過此視頻介紹電話系統(tǒng)的發(fā)展歷史:
因為通信技術(shù)本身的不斷發(fā)展,PBX技術(shù)也不斷更新迭代。其應用場景逐漸延伸到了公司電話系統(tǒng),商業(yè)公司的客戶聯(lián)系等環(huán)境中。
以前的PBX是龐然大物,隨著IP化演進,IPPBX已經(jīng)變得非常精致小巧,功能卻有很大不同。
隨著網(wǎng)絡的發(fā)展,傳統(tǒng)的基于PSTN的純PBX電話系統(tǒng)逐漸被淘汰出來市場。基于IP化的PBX在最近幾十年有了很大的發(fā)展,從功能到用戶場景。部署方式,甚至于運營方式都發(fā)生了很大變化,因為產(chǎn)品更新不夠及時,或者技術(shù)落伍,這些變化導致了很多企業(yè)通信公司的破產(chǎn)重組,一些非常大牌的世界級公司都從市場上消失了,一個個巨人都紛紛倒下。目前來看,基于SIP,純IP化或PSTN/IP的產(chǎn)品具有非常高的地位。
2、IPPBX發(fā)展歷史
這里,為了說明后續(xù)章節(jié)的內(nèi)容,筆者羅列幾個關(guān)于IP的主要的里程碑事件和相關(guān)技術(shù)。
1974年,IEEE發(fā)表了VINTON G. CERF 的研究論文:
A Protocol For Packet Network Intercommunication
此論文對網(wǎng)絡封包處理,錯誤處理,發(fā)送順序等提出了協(xié)議機制,為基于IP化的處理提供了非常權(quán)威的論述。這是當時通信界非常有影響力的論文。
1985年,NSFNET 骨干網(wǎng)建立。
1994年,發(fā)明了第一個VOIP 應用軟件-MTALK
1999年,兩個比較大的事件發(fā)生,SIP協(xié)議規(guī)范正式公布(rfc2543),同時Mark Spencer發(fā)布了世界上第一個開源IPPBX-Asterisk,支持了語音板卡,SIP協(xié)議,PRI協(xié)議。
2004年后,各種應用軟件和運營方式也不斷發(fā)生變化,產(chǎn)生了很多產(chǎn)品銷售模式。
3、Half-Call model的基本概念
Half-call模式的基本概念其實非常簡單,是一個比較抽象化的模式,不是一個具象功能。IPPBX分為兩個部分,一部分支持呼叫方的功能要求,另外一個部分則支持被呼叫方的功能要求。這里筆者說明,IPPBX的工作模式還有其他模式,例如,multi segment model 等等模式,這里僅討論Half-call 模式。
在half-call模式中,呼叫發(fā)起方和呼叫結(jié)束方根據(jù)都具有處理機制和角色切換功能:
- 用戶屬性,用戶屬性分別包括發(fā)起方功能和結(jié)束方功能。因為,任何一個終端用戶都可能發(fā)起呼叫或者作為下游終端來接受呼叫,因此,終端的角色可能會隨時切換。如果是呼叫發(fā)起方,則需要遵守發(fā)起方功能;如果是結(jié)束方則遵守結(jié)束方功能要求。
- 業(yè)務處理順序:首先處理發(fā)起方功能,按照IPPBX設置流程,處理發(fā)起方流程,然后再處理接收方功能。
- Half-call 模式和B2BUA的工作方式高度契合,同時滿足了UA轉(zhuǎn)換的要求,增加了IPPBX的功能處理的靈活性。
4、IPPBX的主要功能
因為基于IP化的IPPBX的功能不斷發(fā)展,IPPBX所支持的功能越來越多,廠家不同可能支持的功能數(shù)量有所不同。目前,IPPBX可能支持了大概500多個功能。但是,IPPBX大部分的主要常用功能包括幾個部分:
- 管理員功能:包括系統(tǒng)管理員對系統(tǒng)的全局設置功能,例如,語音,界面設置,系統(tǒng)用戶權(quán)限設置,網(wǎng)絡環(huán)境設置等。
- 業(yè)務功能:包括IPPBX的業(yè)務邏輯功能支持,例如,語音導航,隊列,振鈴組,會議管理等設置。
- 呼叫功能:包括針對具體呼叫進行的設置,例如,免打擾功能,實時呼叫錄音功能,電話轉(zhuǎn)接功能,軟電話終端支持等。
- 通信接口支持功能:包括支持的外部接入設備,板卡,語音網(wǎng)關(guān),中繼網(wǎng)關(guān),其他終端產(chǎn)品或者軟件類型的接口,SIP trunk/IMS,WebRTC等。
- 系統(tǒng)用戶側(cè)(UCP)功能:包括系統(tǒng)用戶的管理訪問界面,支持IPPBX用戶訪問系統(tǒng)界面來控制自己的功能屬性,例如呼叫記錄,呼叫錄音,個性化的傳真設置,分機隨行設置。
- 其他第三方附加功能:包括高可靠性設置,外部應用對接支持,ASR/TTS接口支持,CRM支持,第三方終端自動部署設置等功能。
5、Half-Call 模式具體處理流程
前面我們討論了半呼叫模式的基本概況。這里,我們重點針對半呼叫模式的四種呼叫模式結(jié)合具體的功能要求說明。筆者再次強調(diào)關(guān)于業(yè)務流程處理的邏輯順序:
- 首先處理呼叫方的用戶屬性所規(guī)定的功能要求
- 然后處理被呼叫方結(jié)束方功能要求
- 如果被呼叫方無任何用戶屬性所規(guī)定的功能要求,則進入到下游處理流程,呼出外部號碼
- 呼叫發(fā)起方是外部號碼呼入的話,首先執(zhí)行發(fā)起方用戶屬性規(guī)定的呼叫功能,沒有規(guī)定的功能要求,則呼入到下游被呼叫方,接入內(nèi)部分機
- 呼叫方被呼叫方都分別具有呼叫方屬性規(guī)定的功能和被呼叫方屬性規(guī)定的呼叫功能。
通過以上圖例可以基本了解半模式呼叫模型的構(gòu)成方式。以上圖例說明了四種呼叫場景:
- 內(nèi)部分機A呼叫內(nèi)部分機B,按照Case 1執(zhí)行,作為呼叫方,用戶A首先檢查自己的呼叫方功能要求(例如,執(zhí)行錄音功能),然后IPPBX再次INVITE到被呼叫方測,被呼叫方B檢查自己的被呼叫方用戶屬性,執(zhí)行支持的功能,例如內(nèi)部分機拒絕接聽。則對用戶A進行掛機處理,或者返回408等消息。當然,我們這里的功能設置都是假設,用戶屬性規(guī)定的功能要求根據(jù)不同廠家的設置可能有所不同。
- 內(nèi)部分機B呼叫內(nèi)部分機A,按照Case 2 執(zhí)行。這里,用戶B作為發(fā)起方對用戶A進行呼叫,用戶B首先檢查自己呼叫方用戶屬性所規(guī)定的功能要求,例如執(zhí)行呼叫錄音等。IPPBX再次INVITE用戶B到用戶A測,用戶A首先檢查自己的被呼叫方用戶屬性所規(guī)定的功能要求,按照功能設置的優(yōu)先級執(zhí)行處理,例如拒絕接聽,或者分機隨行等功能。
- 作為發(fā)起方的外部呼入,按照Case 4執(zhí)行。如果是外部呼入的呼叫,作為發(fā)起方檢查是否規(guī)定了用戶屬性中的功能處理,如果沒有,則通過IPPBX的INVITE進入到下游終端,用戶A的被叫方。用戶A檢查自己的被叫方的功能屬性要求,然后執(zhí)行功能流程。
- 內(nèi)部分機A呼出到外部號碼,按照Case 3執(zhí)行。用戶A首先執(zhí)行自己的呼叫方用戶屬性規(guī)定的功能,如果可以執(zhí)行的話(例如呼叫國際長途),則IPPBX再次INVITE到被呼叫方,如果被呼叫方?jīng)]有任何規(guī)定的用戶屬性,則進入到下游處理流程,呼出到外部電話或者國際長途等。
在以上這四種處理流程中,用戶屬性和呼叫角色是隨時切換的,切換以后的功能要求都必須遵守相應的身份來處理,同時需要按照功能要求的優(yōu)先級進行。因為,很多IPPBX都支持不同的設置流程,所以,用戶最好對應具體的產(chǎn)品做進一步的理解。大部分的IPPBX基本上都是按照撥號規(guī)則或dialplan來處理呼叫流程。當然,其復雜程度遠遠大于我們的示例,很多功能檢查也基本上都隱藏了起來,用戶甚至于感覺不到half-call模式的存在,都是基本上都是遵守這樣一個處理模式。讀者可以查閱Asterisk或者FreeSWITCH的撥號規(guī)則通過自己編寫撥號規(guī)則來理解呼叫流程的控制。
在以上IPPBX的處理過程中,IPPBX本身的業(yè)務處理扮演著非常重要的角色。基于SIP的IPPBX為IPPBX的功能處理增加了很大的靈活性,這樣,IPPBX就可以拓展出很多具體的,新的業(yè)務功能。筆者認為,IPPBX可以支持如此強大的功能,就在于IPPBX支持了SIP的B2BUA功能,IPPBX和B2BUA高度契合才能充分實現(xiàn)IPPBX的二次處理。
關(guān)于B2BUA的概念和其處理機制,讀者可以查閱筆者的歷史文檔:
- B2BUA/SBC/Proxy的SIP消息重構(gòu)和RFC7092詳解
- 在此文章中,筆者對其代理角色做了非常充分的說明。
- 半呼叫模式其實在早期的智能網(wǎng)發(fā)布時就已經(jīng)存在。同時早期的IMS網(wǎng)絡也使用了此模式。智能網(wǎng)(IN)的版本已經(jīng)發(fā)布了很多,讀者有興趣的話,可以查閱官方文檔來做進一步理解。
6、總結(jié)
在本文章中,我們通過漫談的方式對IPPBX的抽象處理方式half-call 模式做了全面的介紹。首先,我們介紹了IPPBX的一些相關(guān)背景知識,然后介紹了IPPBX發(fā)展歷史過程中幾個重要的里程碑事件。然后,我們介紹了Half-call model的基本原理,分別介紹了其用戶屬性功能和邏輯處理的流程,筆者重點針對四種呼叫處理方式做了介紹,通過示例說明了處理邏輯的優(yōu)先級。最后,特別針對half-call 模式和B2BUA的高度契合來說明IPPBX的功能靈活性。
最后,筆者說明,half-call模式僅是一種IPPBX呼叫流程的抽象處理機制,IPPBX廠家產(chǎn)品的具體實現(xiàn)方式可能有所不同,用戶也可能感覺不到此抽象模型的存在。但是,IPPBX的業(yè)務處理方式仍然沒有脫離此模式。SIP協(xié)議的使用結(jié)合IPPBX,實現(xiàn)了B2BUA和half-call模式的高度契合,通過這樣的組合方式,可以連接很多基于物聯(lián)網(wǎng),互聯(lián)網(wǎng),人工智能的接口。因此,IPPBX的處理方式可能更加靈活。
參考資料:
https://signallake.com/innovation/CerfKahnMay74.pdf
https://getvoip.com/blog/2014/01/27/history-of-voip-and-internet-telephones/
https://en.wikipedia.org/wiki/Mark_Spencer_(computer_engineer)
https://documentation.avaya.com/bundle/AdministeringCommunicationManagerServerOptions_r7.1.3/page/Half-call_model.html
關(guān)注微信公眾號:asterisk-cn,獲得有價值的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中國合作伙伴,官方qq技術(shù)分享群(3000千人):589995817
Asterisk freepbx 中文官方論壇:http://bbs.freepbx.cn/forum.php
Asterisk freepbx技術(shù)文檔: www.freepbx.org.cn
融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
Asterisk/FreePBX中國合作伙伴,官方qq技術(shù)分享群(3000千人):589995817