1、引入
隨著通信IP化的發(fā)展,IP傳輸?shù)母邘挕⒌统杀镜葍?yōu)勢(shì)使得越來越多的企業(yè)、電信運(yùn)營(yíng)商加快建設(shè)基于IP的各種通信應(yīng)用。在通信協(xié)議IP化發(fā)展中,SIP協(xié)議毫無爭(zhēng)議地成為各大電信運(yùn)營(yíng)商構(gòu)建其未來網(wǎng)絡(luò)的基礎(chǔ)協(xié)議,越來越多的SIP軟件產(chǎn)品也不斷出現(xiàn)在行業(yè)應(yīng)用中。SIP協(xié)議的標(biāo)準(zhǔn)化,同時(shí)也造就了一大批優(yōu)秀的開源軟件產(chǎn)品,包括Asterisk、SipXecs、FreeSWITCH、OpenSIPS等SIP服務(wù)端軟件,也包括X-lite、LinPhone、eyeBeam等SIP客戶端軟件。本文介紹了國(guó)外成熟的SIPServer開源項(xiàng)目OpenSIPS,并結(jié)合其它通信方面的開源項(xiàng)目對(duì)其應(yīng)用情況進(jìn)行了一些介紹。
2、OpenSIPS介紹
OpenSIPS是一個(gè)成熟的開源SIP服務(wù)器,除了提供基本的SIP代理及SIP路由功能外,還提供了一些應(yīng)用級(jí)的功能。OpenSIPS的結(jié)構(gòu)非常靈活,其核心路由功能完全通過腳本來實(shí)現(xiàn),可靈活定制各種路由策略,可靈活應(yīng)用于語(yǔ)音、視頻通信、IM以及Presence等多種應(yīng)用。同時(shí)OpenSIPS性能上是目前最快的SIP服務(wù)器之一,可用于電信級(jí)產(chǎn)品構(gòu)建。
2.1、功能特點(diǎn)
憑借其可擴(kuò)展、模塊化的系統(tǒng)架構(gòu),OpenSIPS提供了一個(gè)高度靈活的、用戶可配置的路由引擎,可以為voice、video、IM和presence等服務(wù)提供強(qiáng)大高效的路由、鑒權(quán)、NAT、網(wǎng)關(guān)協(xié)議轉(zhuǎn)化等功能。由于其穩(wěn)定高效等特點(diǎn),OpenSIPS已經(jīng)被諸多電信運(yùn)營(yíng)商應(yīng)用在自己的網(wǎng)絡(luò)體系中。其主要功能如下:
SIP注冊(cè)服務(wù)器/代理服務(wù)器(lcr、dynamic routing、dialplan)/重定向服務(wù)器
SIP presence agent
SIP B2BUA
SIP IM Server
SIP to SMS/XMPP網(wǎng)關(guān)
SIP to XMPP網(wǎng)關(guān)
SIP 負(fù)載均衡
SIP NAT traversal
2.2、基本應(yīng)用配置
OpenSIPS不但提供了豐富的功能,還具有操作簡(jiǎn)單的特點(diǎn)。所有OpenSIPS的應(yīng)用功能都可以通過一個(gè)配置文件opensips.cfg來實(shí)現(xiàn)的。該配置文件主要分為三個(gè)部分,第一部分主要是全局變量的設(shè)置;第二部分主要是加載模塊,并設(shè)置模塊的相應(yīng)參數(shù);第三部分主要是路由的策略和功能應(yīng)用。為了更清晰的呈現(xiàn)opensips.cfg配置文件帶來的強(qiáng)大功能,接下來對(duì)這三個(gè)部分以簡(jiǎn)單的示例進(jìn)一步說明。
第一部分全局變量的設(shè)置,通過一條語(yǔ)句就能指定用于偵聽接收sip消息的端口和傳輸層協(xié)議。
第二部分負(fù)責(zé)模塊的加載和參數(shù)配置。以之前的OpenSIPS的負(fù)載均衡功能配置為例,需要加載load_balancer模塊,并進(jìn)行配置。
第三部分是sip消息的路由和功能應(yīng)用。還是以O(shè)penSIPS的負(fù)載均衡功能為例。
從以上應(yīng)用示例可以看到,通過在opensips.cfg中進(jìn)行簡(jiǎn)單的配置,就能實(shí)現(xiàn)強(qiáng)大的功能。