国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Kamailio平臺搭建低成本VoIP呼叫系統(tǒng)的方法研究

2014-09-26 22:29:11何晨澤
數(shù)字技術(shù)與應(yīng)用 2014年5期

何晨澤

摘要:在VoIP技術(shù)中,SIP協(xié)議憑借其簡單、易于擴展、便于實現(xiàn)等諸多優(yōu)點越來越得到業(yè)界的認可,逐步成為下一代網(wǎng)絡(luò)演進的重要協(xié)議?;赟IP協(xié)議的開源服務(wù)器和終端產(chǎn)品也相繼推出。選擇使用合適的開源平臺搭建低成本VoIP呼叫系統(tǒng)可以有效降低中小企業(yè)通信成本。針對中小企業(yè)通信需求,提出了使用基于SIP協(xié)議的開源終端與服務(wù)器平臺搭建VoIP呼叫系統(tǒng)的方法。

關(guān)鍵詞:SIP VoIP Kamailio

中圖分類號:TN919.85 文獻標識碼:A 文章編號:1007-9416(2014)05-0051-02

1 引言

VoIP技術(shù)是依托于互聯(lián)網(wǎng)技術(shù),實現(xiàn)在局部區(qū)域替代PSTN傳統(tǒng)程控語音交換網(wǎng)絡(luò)的一項技術(shù)。與傳統(tǒng)的PSTN網(wǎng)絡(luò)的電路交換方式不同,VoIP技術(shù)采用分組交換方式。在實際運行中,VoIP技術(shù)具有接續(xù)時間較短、信息傳輸延遲較小、電路利用率高、易于部署等技術(shù)優(yōu)點,尤其適合于部署在具備IP網(wǎng)絡(luò)的企業(yè)環(huán)境中,用于實現(xiàn)內(nèi)部語音呼叫服務(wù)。

會話初始協(xié)議(Session Initiation Protocol,SIP)是由Internet工程任務(wù)組(IETF)定義的一種多媒體通信控制協(xié)議。這種基于文本的應(yīng)用層協(xié)議,由于其簡單易用、通用性好等特性,被認為是未來發(fā)展的主流協(xié)議,正逐漸成為Internet多媒體體系結(jié)構(gòu)中的核心控制協(xié)議,可用來創(chuàng)建、修改以及終結(jié)多個參與者參加的多媒體會話進程。

隨著應(yīng)用SIP協(xié)議實現(xiàn)的開源多媒體終端、開源服務(wù)器產(chǎn)品的相繼推出,搭建適用中小企業(yè)的VoIP呼叫系統(tǒng)變得越來越容易。使用合適的開源產(chǎn)品搭建的呼叫系統(tǒng)具有低成本、高可用性、產(chǎn)品升級容易等優(yōu)點。采用開源產(chǎn)品搭建企業(yè)呼叫系統(tǒng)可以有效降低企業(yè)運營成本,可以根據(jù)企業(yè)特點進行功能定制,并能很容易與企業(yè)現(xiàn)有應(yīng)用集成,構(gòu)建企業(yè)低成本統(tǒng)一通信平臺。

2 呼叫系統(tǒng)組成

2.1 系統(tǒng)基本組成

一個簡單的VoIP呼叫系統(tǒng)基本模型如(圖1)所示,其中SIP服務(wù)器包括了用戶位置管理功能、注冊鑒權(quán)功能、重定向功能、代理轉(zhuǎn)發(fā)等功能,為用戶終端提供呼叫服務(wù)控制;終端包括各類SIP終端,接入手段包括了有線與無線。

2.2 終端

系統(tǒng)中,終端包括了直接接入互聯(lián)網(wǎng)的SIP話機,運行于計算機、PAD、智能手機等上的軟終端,和通過語音網(wǎng)關(guān)接入的傳統(tǒng)模擬電話。原則上只要符合SIP規(guī)范的各類終端均可接入SIP呼叫控制服務(wù)器。

其中軟終端目前存在多種開源或者免費的產(chǎn)品,可運行于Windows、Linux、IOS、Android等操作系統(tǒng)上,選擇多樣化,例如X-Lite、Eyebeam、MyMonster、Linephone、Boghe等,可以根據(jù)需要進行選擇,并根據(jù)網(wǎng)絡(luò)進行本地IP地址與端口、服務(wù)器端口與地址、用戶名與密碼鑒權(quán)信息等的配置。

2.3 服務(wù)器端

本文重點在于描述如何進行服務(wù)器端的搭建。目前具備SIP協(xié)議呼叫控制的開源產(chǎn)品有很多,較為成熟穩(wěn)定的主要有Kamailio、openSips、Asterisk、FreeSwitch等,其中Kamailio、openSips等均基于SER(SipExpressRouter)發(fā)展而來,較為適用于大用戶量與大呼叫量情況,其功能完善、穩(wěn)定性高、可擴展性極強,操作設(shè)置簡單,非常適合作為企業(yè)低成本VoIP呼叫系統(tǒng)中的呼叫控制服務(wù)器。本文主要基于Kamailio產(chǎn)品進行應(yīng)用研究。

3 Kamailio應(yīng)用研究

3.1 Kamailio軟件介紹

Kamailio誕生于2005年,是由德國FhG FOKUS研究所主導的SIP Express Router項目中分離出來的一支(OpenSips是其另外一個分支),發(fā)展至今已經(jīng)成為一個非常成熟的基于GPL授權(quán)的開源SIP服務(wù)器項目,其目標是創(chuàng)建一個開放的開發(fā)環(huán)境,用于建立可定制可擴展的SIP服務(wù)器。除了提供基本的SIP代理功能外,還提供了一些應(yīng)用級的功能,其結(jié)構(gòu)靈活,核心SIP路由控制功能完全通過腳本配置實現(xiàn),可以根據(jù)不同應(yīng)用場景,靈活定制各種路由策略,用于語音、視頻、即時消息、呈現(xiàn)等各種SIP應(yīng)用,其運行速度極快,每秒可以處理上千路并發(fā)呼叫,可用于構(gòu)建電信級產(chǎn)品。

Kamailio的官方主頁為http://www.kamailio.org,源代碼托管于sip-router.org的GIT庫上。不同于Asterisk等開源PBX,它是一個純粹的SIP服務(wù)器,可以用于PROXY、注冊服務(wù)器、重定向服務(wù)器、呈現(xiàn)服務(wù)器等,也可以用于開發(fā)各類Application Server。

Kamailio軟件的基本功能架構(gòu)如(圖2)所示。

從圖中可以看出,其設(shè)計結(jié)構(gòu)簡單,主要針對SIP消息路由與用戶管理,可以掛載各類擴展應(yīng)用功能模塊,并且考慮了數(shù)據(jù)庫應(yīng)用與運行安全性。

3.2 Kamailio安裝與運行

Kamailio支持多種操作系統(tǒng)。本文以Linux平臺CentOS6.2為例進行說明。

安裝于編譯非常容易,在官方網(wǎng)站下載Kamailio的源代碼包kamailio-4.1.4_src.tar.gz,官方網(wǎng)站提供了多種方法,具體可參見網(wǎng)站描述。之后將源代碼包解壓至kamailio-4.1.4目錄,之后編輯modules.lst文件定義需要編譯的模塊,完成后就可以使用make all與make install命令進行編譯與安裝。

編譯成功后,在默認路徑“usr/local/sbin/”下會出現(xiàn)幾個可執(zhí)行文件與腳本,其中kamailio為服務(wù)器的啟動執(zhí)行文件,kamdbctl為創(chuàng)建于管理數(shù)據(jù)庫的默認腳本,kamctl為管理與控制服務(wù)器的腳本,sercmd為提供訪問服務(wù)器的命令行工具。

有效的啟動Kamailio的命令為如下形式:./kamailio +啟動參數(shù),具體的參數(shù)可以參考./kamailio —help或者使用文檔。當不帶參數(shù)運行時,kamailio按照默認方式讀取默認配置文件運行。

3.3 Kamailio配置

Kamailio的配置文件是服務(wù)器運行的核心,其定義了服務(wù)器的所有信令路由控制邏輯,因此基于Kamailio的開發(fā)主要指的是其配置文件的編寫。其配置文件默認路徑為“usr/local/etc/kamailio/”下的kamailio.cfg文件,當然也可以編寫不同的cfg文件,使用命令行參數(shù)指定其所在位置即可。

打開默認cfg文件可以看到,kamailio的配置文件主要做了如下工作。

(1)簡單注釋與編寫方法;

(2)用于配置文件參數(shù)配置區(qū)分的類宏定義,如#!define MULTIDOMAIN 0的意思為定義MULTIDOMAIN的值為0;

(3)系統(tǒng)運行參數(shù),如debug=4定義了信息輸出級別,enable_tls

=yes指明了需要TLS傳輸支持,listen=udp:192.168.231.128:5060指明了系統(tǒng)服務(wù)的監(jiān)聽端口,諸如此類;

(4)系統(tǒng)需要加載的模塊,使用loadmodule命令進行加載指示,需要加載的模塊主要是系統(tǒng)運行的必須模塊,與自己編寫開發(fā)的特殊應(yīng)用模塊,從這里也可以看出;

(5)所加載模塊所需的運行參數(shù),使用modparam命令指定某模塊所用的參數(shù)配置,如modparam("registrar","max_contacts", 10)的意思為給registrar模塊的max_contacts參數(shù)賦值為10;

(6)SIP路由控制邏輯,這部分使用流程控制方法指明了服務(wù)器如何處理收到的SIP信令的邏輯,是Kamailio服務(wù)器開發(fā)最重要的部分,我們需要根據(jù)實際情況,編寫該部分處理邏輯,具體的語法可以參考Kamailio文檔,這里不再贅述;

下面給出一個最簡單的配置文件示例,來說明其編寫方法。

上面這段配置文件定義了最簡單的一個場景:當服務(wù)器收到注冊消息時,存儲用戶位置,當收到其他消息后,查找被叫用戶位置并轉(zhuǎn)發(fā)到被叫。

需要注意的是,配置文件中路由邏輯部分使用的控制命令來自事先加載好的應(yīng)用模塊提供的類似API的開放命令,如lookup來自于usrloc模塊。

在實際使用中,路由邏輯部分的編寫是一個很繁雜的工作,其篇幅往往很大,Kamailio也提供了cfg配置文件的調(diào)試功能,具體可以參考用戶手冊中的相關(guān)部分。

3.4 業(yè)務(wù)管理

Kamailio提供了數(shù)據(jù)庫操作腳本,使用“usr/local/sbin/kamdbctl create”可以容易地創(chuàng)建服務(wù)器所需要的數(shù)據(jù)庫。

使用“kamctl add user passward”可以在數(shù)據(jù)庫中創(chuàng)建一個用戶記錄。

為了更好的配置與管理Kamailio服務(wù)器,可以使用另一個項目Siremis,Siremis是一個第三方Web管理工具,提供了系統(tǒng)管理與數(shù)據(jù)庫管理,可以進行系統(tǒng)配置管理、用戶賬號管理、呼叫與數(shù)據(jù)記錄管理、數(shù)據(jù)庫管理、離線消息管理等等,使用Siremis界面可以降低Kamailio使用難度,更好地發(fā)揮Kamailio服務(wù)器的優(yōu)勢。

4 結(jié)語

本文簡要分析了Kamailio的設(shè)計架構(gòu),介紹了如何使用Kamailio搭建一個簡單的VoIP呼叫系統(tǒng)的方法,介紹了其使用方法,與其他系統(tǒng)相比, Kamailio具有成本低、運行可靠、擴展性好等優(yōu)點。限于篇幅,文中分析與應(yīng)用均較為簡單,實際上該軟件能夠完成的工作遠不止上述內(nèi)容,Kamailio功能強大,操作簡便容易上手,可以完成目前各類基于SIP的VoIP呼叫系統(tǒng)中的絕大部分應(yīng)用,有興趣的讀者可以參考其官方網(wǎng)站提供的使用文檔進行試驗。

參考文獻

[1]彭揚,黃永峰.SER服務(wù)器的結(jié)構(gòu)分析[J].數(shù)據(jù)通信,2007.

[2]周文楷,白秀軒,倪玉林.基于SIP協(xié)議的校園網(wǎng)絡(luò)電話系統(tǒng)的實現(xiàn)[J].小型微型計算機系統(tǒng),2006.

[3]王海濱,盛惠興,張卓.一種新的基于SIP協(xié)議的VoIP系統(tǒng)[J].河海大學常州分校學報,2006.

有效的啟動Kamailio的命令為如下形式:./kamailio +啟動參數(shù),具體的參數(shù)可以參考./kamailio —help或者使用文檔。當不帶參數(shù)運行時,kamailio按照默認方式讀取默認配置文件運行。

3.3 Kamailio配置

Kamailio的配置文件是服務(wù)器運行的核心,其定義了服務(wù)器的所有信令路由控制邏輯,因此基于Kamailio的開發(fā)主要指的是其配置文件的編寫。其配置文件默認路徑為“usr/local/etc/kamailio/”下的kamailio.cfg文件,當然也可以編寫不同的cfg文件,使用命令行參數(shù)指定其所在位置即可。

打開默認cfg文件可以看到,kamailio的配置文件主要做了如下工作。

(1)簡單注釋與編寫方法;

(2)用于配置文件參數(shù)配置區(qū)分的類宏定義,如#!define MULTIDOMAIN 0的意思為定義MULTIDOMAIN的值為0;

(3)系統(tǒng)運行參數(shù),如debug=4定義了信息輸出級別,enable_tls

=yes指明了需要TLS傳輸支持,listen=udp:192.168.231.128:5060指明了系統(tǒng)服務(wù)的監(jiān)聽端口,諸如此類;

(4)系統(tǒng)需要加載的模塊,使用loadmodule命令進行加載指示,需要加載的模塊主要是系統(tǒng)運行的必須模塊,與自己編寫開發(fā)的特殊應(yīng)用模塊,從這里也可以看出;

(5)所加載模塊所需的運行參數(shù),使用modparam命令指定某模塊所用的參數(shù)配置,如modparam("registrar","max_contacts", 10)的意思為給registrar模塊的max_contacts參數(shù)賦值為10;

(6)SIP路由控制邏輯,這部分使用流程控制方法指明了服務(wù)器如何處理收到的SIP信令的邏輯,是Kamailio服務(wù)器開發(fā)最重要的部分,我們需要根據(jù)實際情況,編寫該部分處理邏輯,具體的語法可以參考Kamailio文檔,這里不再贅述;

下面給出一個最簡單的配置文件示例,來說明其編寫方法。

上面這段配置文件定義了最簡單的一個場景:當服務(wù)器收到注冊消息時,存儲用戶位置,當收到其他消息后,查找被叫用戶位置并轉(zhuǎn)發(fā)到被叫。

需要注意的是,配置文件中路由邏輯部分使用的控制命令來自事先加載好的應(yīng)用模塊提供的類似API的開放命令,如lookup來自于usrloc模塊。

在實際使用中,路由邏輯部分的編寫是一個很繁雜的工作,其篇幅往往很大,Kamailio也提供了cfg配置文件的調(diào)試功能,具體可以參考用戶手冊中的相關(guān)部分。

3.4 業(yè)務(wù)管理

Kamailio提供了數(shù)據(jù)庫操作腳本,使用“usr/local/sbin/kamdbctl create”可以容易地創(chuàng)建服務(wù)器所需要的數(shù)據(jù)庫。

使用“kamctl add user passward”可以在數(shù)據(jù)庫中創(chuàng)建一個用戶記錄。

為了更好的配置與管理Kamailio服務(wù)器,可以使用另一個項目Siremis,Siremis是一個第三方Web管理工具,提供了系統(tǒng)管理與數(shù)據(jù)庫管理,可以進行系統(tǒng)配置管理、用戶賬號管理、呼叫與數(shù)據(jù)記錄管理、數(shù)據(jù)庫管理、離線消息管理等等,使用Siremis界面可以降低Kamailio使用難度,更好地發(fā)揮Kamailio服務(wù)器的優(yōu)勢。

4 結(jié)語

本文簡要分析了Kamailio的設(shè)計架構(gòu),介紹了如何使用Kamailio搭建一個簡單的VoIP呼叫系統(tǒng)的方法,介紹了其使用方法,與其他系統(tǒng)相比, Kamailio具有成本低、運行可靠、擴展性好等優(yōu)點。限于篇幅,文中分析與應(yīng)用均較為簡單,實際上該軟件能夠完成的工作遠不止上述內(nèi)容,Kamailio功能強大,操作簡便容易上手,可以完成目前各類基于SIP的VoIP呼叫系統(tǒng)中的絕大部分應(yīng)用,有興趣的讀者可以參考其官方網(wǎng)站提供的使用文檔進行試驗。

參考文獻

[1]彭揚,黃永峰.SER服務(wù)器的結(jié)構(gòu)分析[J].數(shù)據(jù)通信,2007.

[2]周文楷,白秀軒,倪玉林.基于SIP協(xié)議的校園網(wǎng)絡(luò)電話系統(tǒng)的實現(xiàn)[J].小型微型計算機系統(tǒng),2006.

[3]王海濱,盛惠興,張卓.一種新的基于SIP協(xié)議的VoIP系統(tǒng)[J].河海大學常州分校學報,2006.

有效的啟動Kamailio的命令為如下形式:./kamailio +啟動參數(shù),具體的參數(shù)可以參考./kamailio —help或者使用文檔。當不帶參數(shù)運行時,kamailio按照默認方式讀取默認配置文件運行。

3.3 Kamailio配置

Kamailio的配置文件是服務(wù)器運行的核心,其定義了服務(wù)器的所有信令路由控制邏輯,因此基于Kamailio的開發(fā)主要指的是其配置文件的編寫。其配置文件默認路徑為“usr/local/etc/kamailio/”下的kamailio.cfg文件,當然也可以編寫不同的cfg文件,使用命令行參數(shù)指定其所在位置即可。

打開默認cfg文件可以看到,kamailio的配置文件主要做了如下工作。

(1)簡單注釋與編寫方法;

(2)用于配置文件參數(shù)配置區(qū)分的類宏定義,如#!define MULTIDOMAIN 0的意思為定義MULTIDOMAIN的值為0;

(3)系統(tǒng)運行參數(shù),如debug=4定義了信息輸出級別,enable_tls

=yes指明了需要TLS傳輸支持,listen=udp:192.168.231.128:5060指明了系統(tǒng)服務(wù)的監(jiān)聽端口,諸如此類;

(4)系統(tǒng)需要加載的模塊,使用loadmodule命令進行加載指示,需要加載的模塊主要是系統(tǒng)運行的必須模塊,與自己編寫開發(fā)的特殊應(yīng)用模塊,從這里也可以看出;

(5)所加載模塊所需的運行參數(shù),使用modparam命令指定某模塊所用的參數(shù)配置,如modparam("registrar","max_contacts", 10)的意思為給registrar模塊的max_contacts參數(shù)賦值為10;

(6)SIP路由控制邏輯,這部分使用流程控制方法指明了服務(wù)器如何處理收到的SIP信令的邏輯,是Kamailio服務(wù)器開發(fā)最重要的部分,我們需要根據(jù)實際情況,編寫該部分處理邏輯,具體的語法可以參考Kamailio文檔,這里不再贅述;

下面給出一個最簡單的配置文件示例,來說明其編寫方法。

上面這段配置文件定義了最簡單的一個場景:當服務(wù)器收到注冊消息時,存儲用戶位置,當收到其他消息后,查找被叫用戶位置并轉(zhuǎn)發(fā)到被叫。

需要注意的是,配置文件中路由邏輯部分使用的控制命令來自事先加載好的應(yīng)用模塊提供的類似API的開放命令,如lookup來自于usrloc模塊。

在實際使用中,路由邏輯部分的編寫是一個很繁雜的工作,其篇幅往往很大,Kamailio也提供了cfg配置文件的調(diào)試功能,具體可以參考用戶手冊中的相關(guān)部分。

3.4 業(yè)務(wù)管理

Kamailio提供了數(shù)據(jù)庫操作腳本,使用“usr/local/sbin/kamdbctl create”可以容易地創(chuàng)建服務(wù)器所需要的數(shù)據(jù)庫。

使用“kamctl add user passward”可以在數(shù)據(jù)庫中創(chuàng)建一個用戶記錄。

為了更好的配置與管理Kamailio服務(wù)器,可以使用另一個項目Siremis,Siremis是一個第三方Web管理工具,提供了系統(tǒng)管理與數(shù)據(jù)庫管理,可以進行系統(tǒng)配置管理、用戶賬號管理、呼叫與數(shù)據(jù)記錄管理、數(shù)據(jù)庫管理、離線消息管理等等,使用Siremis界面可以降低Kamailio使用難度,更好地發(fā)揮Kamailio服務(wù)器的優(yōu)勢。

4 結(jié)語

本文簡要分析了Kamailio的設(shè)計架構(gòu),介紹了如何使用Kamailio搭建一個簡單的VoIP呼叫系統(tǒng)的方法,介紹了其使用方法,與其他系統(tǒng)相比, Kamailio具有成本低、運行可靠、擴展性好等優(yōu)點。限于篇幅,文中分析與應(yīng)用均較為簡單,實際上該軟件能夠完成的工作遠不止上述內(nèi)容,Kamailio功能強大,操作簡便容易上手,可以完成目前各類基于SIP的VoIP呼叫系統(tǒng)中的絕大部分應(yīng)用,有興趣的讀者可以參考其官方網(wǎng)站提供的使用文檔進行試驗。

參考文獻

[1]彭揚,黃永峰.SER服務(wù)器的結(jié)構(gòu)分析[J].數(shù)據(jù)通信,2007.

[2]周文楷,白秀軒,倪玉林.基于SIP協(xié)議的校園網(wǎng)絡(luò)電話系統(tǒng)的實現(xiàn)[J].小型微型計算機系統(tǒng),2006.

[3]王海濱,盛惠興,張卓.一種新的基于SIP協(xié)議的VoIP系統(tǒng)[J].河海大學常州分校學報,2006.

武鸣县| 兰溪市| 武乡县| 公安县| 罗源县| 康平县| 土默特右旗| 五寨县| 庆阳市| 西吉县| 阳朔县| 晋江市| 建昌县| 浪卡子县| 丹阳市| 汕尾市| 泾川县| 克山县| 台前县| 咸阳市| 尖扎县| 武功县| 西青区| 哈尔滨市| 桑日县| 连州市| 古田县| 潍坊市| 宝山区| 鲜城| 柳州市| 龙海市| 建湖县| 巴彦淖尔市| 安图县| 鲜城| 分宜县| 申扎县| 南开区| 兴隆县| 盐城市|