夏 雷,汪少敏,鐘青峰
(中國電信股份有限公司上海研究院 上海200122)
隨著VoIP和NGN的快速發展,開源VoIP平臺解決方案已成為業界不可忽視的重要力量。開源平臺技術以其獨特的低成本性、高可用性、靈活性和開放性等優勢獲得越來越多企業的青睞,眾多公司都采用開源技術部署自己的VoIP平臺。目前,業界處于領先地位的開源VoIP平臺包 括 Asterisk、sipX、PBX4Linux、YATE。 其 中 ,Asterisk 和sipX表現最為出色。Asterisk是最早的開源VoIP平臺,目前在開源VoIP平臺的市場份額占有率最高,占絕對的主導地位,其技術也最為成熟。sipX是業界第一個采用分布式純 SIP(session initiation protocol,會話發起協議)構架的企業級IP PBX(private branch exchange,用戶級交換機)系統,在SIP的支持完善性和與其他SIP設備的互通性方面廣受業界好評。
電信運營商具有眾多的業務平臺,僅中國電信集團公司(以下簡稱中國電信)的各種業務平臺不下上百個,并且隨著新業務的拓展,有不斷增加的趨勢。這造成了電信運營商硬件、軟件投資和維護升級成本居高不下,在一定程度上制約了電信增值業務的運營和投入。另外,新業務的開發和功能升級完全依賴于商用軟件的提供商,系統開放性差,開發流程長,制約了新業務的開發和部署。因此,在NGN中部署經濟、靈活的業務平臺,是運營商關注的一項重要課題。開源VoIP平臺低成本性、高可用性、開放性的特點,為運營商在NGN中部署業務平臺提供了一個非常有優勢的方向。
本文在全面分析開源VoIP平臺解決方案的基礎上,結合電信運營商業務平臺的現狀,深入研究了開源技術在電信運營商業務平臺建設中的應用,提出了利用開源VoIP技術構建NGN業務平臺的架構,給出了一個實現范例,評估了利用開源VoIP技術構建NGN業務平臺的可用性和優勢。
Asterisk和sipX是目前業界最為流行的兩大開源解決方案。相比商業軟件,開源VoIP平臺解決方案對于電信運營商有如下優勢。
(1)建設成本低
開源VoIP平臺解決方案采用 “開源軟件”+“x86服務器”的方式實現,這樣避免了傳統部署方式中的軟件成本,同時也避免了業務發展過程中的軟件升級成本。所以,電信運營商采用開源VoIP解決方案,大大減少了業務平臺部署的成本。
(2)可復制性高
由于運營商業務平臺繁多,為了縮小部署周期和部署成本,業務平臺應滿足可復制的需求。然而,傳統業務平臺不具備開放接口,可復制性差。開源VoIP平臺接口開放,不僅能快速接入網絡,還能靈活地部署各種業務組件,能很好地滿足可復制性需求。
(3)業務部署快速
NGN的一大特點是便于新業務的快速開發部署。目前電信運營商新業務的開發部署一方面依賴于提供商,周期無法有效控制;另一方面提供商的平臺千差萬別,對接聯調工作量大,也增加了部署周期。開源VoIP平臺能很好地解決此問題,開源平臺不依賴于提供商部署,開發周期可控,另外,開源軟件的接口開放,業務組件靈活,能快速接入網絡。所以,采用開源VoIP平臺解決方案,能實現電信業務的快速部署。
(4)功能齊全
目前,業務流行的開源VoIP平臺功能相當齊全,例如,Asterisk支持 SIP、H.323、MGCP 等多種協議,能實現的業務功能有電話會議、IVR(interactive voice response,交互話音應答)、ACD (automatic call distributor,自動呼叫分配)、CDR(call detail record,呼叫詳細記錄)、三方通話、電話轉接等[1]。另外,開源技術源代碼的開放性將其軟件的缺陷和不足暴露無遺,開源社區成千上萬的開發者不僅能及時修補bug以保證系統的穩定性,而且積極追蹤業務最新的技術和業務,在短時間內實現相關功能,這保證了開源VoIP平臺的功能最優。
Asterisk是一款由Digium公司開發的開源VoIP平臺軟件,它運行在Linux操作系統上,具有多協議、多種媒體通信、多種業務功能、可編程接口豐富的特點,是目前最為成熟的開源VoIP平臺。其最大優勢在于功能齊全和開放性好。Asterisk不僅支持VoIP,也支持傳統的模擬電話線路和數字電話線路,還支持更為前沿的視頻通信。Asterisk有很好的開放性。不同于大多數的通信設備,它擔任的是一個中間件的功能,提供豐富靈活的API(application programming interface,應用程序編程接口),連接底層的通信技術和上層的業務應用。目前,Asterisk有近200個應用,90個 AMI (Asterisk management interface,Asterisk管理接口),48 個 AGI (Asterisk gateway interface,Asterisk 網關接口)命令[2],并不斷更新優化。這意味著任何用戶不用軟件成本,只需要x86架構的服務器,即可根據需要快速開發出業務功能,從而部署一個專業的VoIP話音平臺。
Asterisk具有清晰的組織架構和模塊化設計,由6個內部核心模塊和4個外圍可加載API模塊組成,如圖1所示。6個內部核心模塊為:編解碼轉換模塊、調度和I/O管理模塊、應用調用模塊、CDR模塊、PBX交換核心模塊、動態模塊加載器。4個API模塊包括:Asterisk通道API,它處理呼叫的連接類型和低層的連接類型等細節;編解碼轉換模塊,它支持不同的音視頻編解碼格式,使得Asterisk內核可以處理各種編碼的話音;文件格式 API,它處理讀寫文件系統存儲的不同文件格式,使得Asterisk可以讀取不同格式的話音文件;Asterisk應用API,它允許調用任務模塊以實現不同的業務功能,允許第三方開發應用程序[3]。4組API使得Asterisk具有很強的韌性,對新增通道、文件格式和編解碼非常方便。通過這些接口,開發人員可以在通信呼叫的任意階段與Asterisk進行交互,并可以編寫全新的通信應用程序。
Asterisk的發展始于1999年,是目前最早的VoIP開源項目,也是業界最為流行的VoIP平臺開源解決方案,市場占有率遠遠高于其他開源方案。其技術細節、功能需求、模塊能力、架構設計等方面都相當成熟,在技術和市場方面都具有很大優勢。

sipX是由Pingtel公司開發的一款IP PBX開源軟件。它的前身是該公司的商業產品sipXchange。2004年,在看到VoIP開源市場的潛力和Asterisk所取得的影響力后,創建了SIPfoundry開發社區,將核心代碼開源化形成了sipX。sipX的特點在于純SIP的架構和分布式模塊。呼叫控制協議方面,sipX只支持SIP,這與Asterisk支持多協議有很大不同。sipX采用完全的分布式架構,部署在一組集群服務器上,每個服務器為一個獨立的軟件進程,運行在Linux環境下。這保證了整個系統的處理能力和高可靠性。sipX開源平臺解決方案包括3種服務器:配置服務器、通信服務器和特征服務器。配置服務器負責Web方面的配置管理和業務操作,采用即插即用方式配置管理其他服務器模塊、外圍網關和電話終端。通信服務器通過SIP與其他服務器或外圍設備進行交互,負責呼叫控制和通信處理。特征服務器在通信服務器控制下,實現特定的業務邏輯。
sipX雖然進入開源社區比較晚,參與人數也遠不如Asterisk,但由于Pingtel公司投入大量人力保持其與商業產品sipXchange內核一致,發展規模也很快,慢慢縮小了與Asterisk的差距。然而,無論在應用規模還是研究人數方面,sipX都遠遠不及Asterisk。
NGN是一個基于IP的全新通信網絡,提供了一個開放式的體系架構,便于新業務的快速開發和部署。不斷增長的用戶需求,要求運營商在NGN業務平臺上可以快速、方便、靈活、經濟有效地生成和實現各種新業務,從而快速響應市場,提升業務競爭能力。目前,話音業務平臺的建設大多采用DSP或者服務器+購置軟件的方式實現,這種方式需要電信運營商向商業提供商購買成套的硬件和軟件設備或者僅購買軟件部分。這種方式存在以下幾點不足。
(1)建設和維護成本較高
運營商需要向提供商購買硬件和軟件,在后續過程中,還有相應的License成本和軟件升級成本。電信運營商業務系統繁多,業務平臺數目大,以中國電信為例,全國范圍內的業務平臺不下上百個。所以,業務平臺的建設和維護成本一直居高不下。
(2)新業務部署周期較長
由于現有的建設方式主要依賴于提供商,平臺不一定能滿足靈活、開放的要求,很多業務平臺并不具有對外開放的可編程接口。所以,若要在業務平臺上部署新業務,要依賴于廠商的開發,這往往造成了新業務部署周期較長的問題。
(3)平臺可復制性不高
現有建設方式中,每個業務平臺根據具體的業務需求,具有不同的功能,可復制性不高。另外,運營商為了不和某一個提供商形成強依賴關系,也盡量避免全網使用同一個提供商的產品,造成了業務平臺建設中難以復制、接入網絡時聯調對接工作量大的問題。
綜上所述,現有NGN業務平臺的建設方式存在建設維護成本較高、新業務部署周期較長、可復制性不高的問題。這些不足之處恰恰與NGN快速、方便、靈活、經濟有效地部署新業務的要求相違背,一定程度上制約了運營商的業務發展和競爭能力。為此,有必要認真考慮利用開源技術構建NGN業務平臺的可能性和實用性,因為這將是一種更加節省成本、更加高效的、新的建設方式。
業界流行的開源VoIP軟件功能齊全、接口開放、部署靈活,提供詳細的通話話單(CDR),這使得它能很好地和網絡中的運營支撐系統對接融合,從而成為NGN的業務平臺。利用開源技術構建NGN業務平臺,成本低廉、可復制性高、業務部署快速、功能齊全,能很好地解決傳統建設方式的不足,是建設NGN業務平臺一個很好的發展趨勢。本節將深入探討利用開源技術構建NGN業務平臺的架構,提供了一個具體實例,并通過性能分析來驗證利用開源技術建設NGN業務平臺的有效性和通用性。
NGN分為傳統的軟交換網絡以及演進后的IMS網絡。這兩種網絡在功能實體和接口的標準化程度上有所區別。
利用開源技術構建軟交換網絡中的業務平臺的架構如圖2所示。開源VoIP軟件部署在x86服務器上,構成NGN業務平臺,圖中展示了開源服務器在整個網絡中的位置以及它和軟交換網絡其他網元是如何連接的。開源服務器在整個軟交換網絡中處于應用層,充當業務平臺的角色,通過和軟交換設備互通接入網絡,根據業務需要,開源服務器可能需要和網絡中的運營支撐系統互通,如計費、IT、短信網關等。另外,主流開源VoIP軟件都帶有圖形化的維護管理系統,可以遠程維護管理。開源服務器和軟交換通過SIP互通;和運營支撐系統通過專用IP網絡連接,具體互通是通過運營支撐系統的對外接口,由于開源軟件本身的靈活性,對外部接口的支持較容易。遠程的維護管理終端可以是一臺普通PC,通過Web登錄的方式連接開源服務器進行維護管理。

IMS網絡是軟交換網絡的演進,有更好的標準接口,這使得在IMS網絡中部署基于開源VoIP技術的業務平臺更加容易,可復制性更高。利用開源VoIP技術構建的IMS網絡中業務平臺的架構如圖3所示。圖3中IMS核心網部分是通用的標準結構,開源服務器在應用層充當業務服務器。開源服務器和核心網中的CSCF(call session control function,呼叫會話控制功能)、HSS(home subscriber server,歸屬位置寄存器)和計費功能實體相連接。由于IMS網絡中各功能實體間用標準的接口互通,所以作為業務平臺,開源服務器通過標準的Rf/Ro(應用服務器與計費采集功能/在線計費系統之間的接口)、Sh(應用服務器與CSCF之間的接口)和SIP分別與計費功能實體、HSS和CSCF互通。
本節將介紹利用開源VoIP技術在軟交換網絡部署一個簡單放音平臺的例子。實現撥打某接入碼后,聽到一段放音的功能,例子中利用Asterisk部署此業務平臺。部署此業務平臺主要有兩部分的工作:將開源服務器接入軟交換核心網;實現業務邏輯。根據上述利用開源技術構建軟交換網絡中業務平臺的架構,開源服務器通過SIP中繼和軟交換設備互通實現核心網絡接入。通過編寫撥號計劃實現業務邏輯,撥號計劃可以用Asterisk特有的語法編寫,也可以通過AGI調用外部腳本,外部腳本可以使用PHP、Python、Perl、Java等語言編寫。Asterisk有 40多個配置文件,開發人員通過修改Asterisk的配置文件實現Asterisk的功能、網絡接入等,配置SIP中繼主要是修改sip.conf配置文件,撥號計劃的編寫主要是修改extensions.conf配置文件。

4.2.1 配置SIP中繼
要使Asterisk服務器和軟交換設備互通,需要分別在Asterisk和軟交換設備上配置SIP中繼。
Asterisk的所有SIP配置都在sip.conf文件中,用Asterisk特有的語法寫成。所以,需要在Asterisk服務器上的sip.conf文件中增加如下3部分內容。
(1)注冊信息
如 :register=12345678@xx.xx.xx.xx,12345678@xx.xx.xx.xx為Asterisk服務器注冊到軟交換的名稱,12345678為平臺的接入碼,xx.xx.xx.xx為軟交換的IP地址。
(2)SIP 中繼信息
包括中繼名稱、軟交換的IP地址、接入類型、用戶上下文名稱、支持的編解碼方式等配置。示例如下:
[SoftX]
host=xx.xx.xx.xx
type=friend
context=from-trunk
allow=alaw
allow=GSM
insecure=port,invite
canreinvite=yes
dtmfmode=rfc2833
(3)用戶上下文信息
包括用戶上下文名稱、接入類型、支持的編解碼方式等配置。示例如下:
[from-trunk]
type=friend
context=from-trunk
allow=alaw
allow=GSM
insecure=port,invite
canreinvite=yes
dtmfmode=rfc2833
在軟交換設備側,需要為Asterisk平臺配置接入碼,相關配置和配置其他接入碼相同,不再贅述。
SIP中繼配置完成后,保證了Asterisk服務器接入了軟交換網絡,承擔話音業務平臺的功能。撥打接入碼的所有呼叫將路由至Asterisk服務器,從而實現后續的業務功能。
4.2.2 撥號方案
SIP中繼的配置僅完成了呼叫的接入,后續的業務功能需要在Asterisk服務器上配置撥號計劃。撥號計劃在extensions.conf配置文件中。撥號方案由4部分組成:用戶上下文、擴展、優先級和應用。撥號方案按用戶上下文分成不同的段,每個用戶上下文有成組的擴展。擴展相當于Asterisk要遵循的執行腳本,由一個具體的呼叫觸發。一個完整的擴展有3個要素:擴展名、優先級、應用。格式為:exten=>擴展名,優先級,應用。例如:exten=>123,1,Answer()。為了實現該例子中的放音平臺功能,需要編寫名為from-trunk的用戶上下文。上下文中包含3條擴展:exten=>s,1,Answer();exten=>s,2,Playback(custom/notice);exten=>s,3,Hangup()。擴展名s表示所有來電都執行該條擴展。custom/notice為放音文件,默認路徑為:var/lib/asterisk/sound/。該撥號方案實現的業務流程如圖4所示。

開源VoIP軟件可以部署在任何x86架構的服務器上,但考慮到作為業務平臺的可靠性和穩定性,對服務器的性能有一定要求,具體要求和平臺要支持的并發路數和服務器要實現的功能相關。其中,編解碼轉換、編解碼方式是比較占服務器資源的功能。所以,為了達到既保證平臺的可靠性和穩定性,又降低對服務器性能要求的目的,可以采用服務器集群的方式。將平臺功能分布到幾個服務器上,一個或多個核心單元專門負責呼叫處理;另一個或幾個冗余的服務器管理外圍設備,如數據庫、話音信箱、會議、管理、Web界面、防火墻等。

表1 傳統業務平臺和開源VoIP平臺的區別
利用開源VoIP技術建設NGN業務平臺,是采用開源純軟件的方式替代了傳統的DSP或者服務器加定制軟件的方式,和傳統提供商部署的業務平臺有很多區別,具體區別見表1。
從表1中可以看出,利用開源VoIP技術建設NGN業務平臺可用性和可復制性高,相對于傳統業務平臺有明顯優勢,可節省部署成本和升級成本,開放性好,功能齊全。
目前NGN業務平臺的建設存在建設維護成本較高、新業務部署周期較長、可復制性不高的問題。開源VoIP解決方案具有價格低廉、開放性好、部署靈活、功能齊全的特點,通過利用開源VoIP技術建設NGN業務平臺可以很好地解決傳統建設方式不足。本文分析了開源VoIP平臺解決方案,結合電信運營商NGN業務平臺的現狀,深入研究了開源VoIP技術在電信運營商業務平臺建設中的應用,驗證了利用開源VoIP技術建設NGN業務平臺的可用性和有利優勢。
1 湯秀娟.Asterisk系統及其應用分析.中國科技論文在線精品論文,2008,1(12)
2 蘆偉,曾文華.開源交換機Asterisk的應用.計算機應用,2007(2)
3 Meggelen J V,Smith J,Madsen L.Asterisk:the Future of Telephony.USA:O'Reilly Media,2005