首頁(yè)>>>技術(shù)>>>VoIP

基于A(yíng)sterisk的VoIP開(kāi)發(fā)指南——(1)實(shí)現基本呼叫功能

2008/06/12

說(shuō)明:
  1. 本文檔探討基于A(yíng)sterisk如何實(shí)現VoIP的一些基本功能,包括基本呼叫功能的方案選取、主叫號碼透傳、如何編寫(xiě)Asterisk AGI程序、Radius認證計費模塊等。

  2. 本文檔VoIP軟終端使用X-Lite,其它終端均可以接入測試。

  3. 文章內容僅供參考,轉載請注明出處。
1 VoIP系統相關(guān)協(xié)議和標準

  由于I P電話(huà)技術(shù)標準的開(kāi)發(fā)涉及多個(gè)領(lǐng)域,因此,VOIP系統要想實(shí)現這些IP電話(huà)之間的通信,則必須提供支持這些協(xié)議的實(shí)現。目前主要涉及的協(xié)議如圖1-1所示,其中除了HTTP是與WWW相關(guān)的協(xié)議外,其它的都是VOIP相關(guān)協(xié)議。

圖1-1 所有基于IP協(xié)議的協(xié)議族

  由圖1 -1可以看出,與VOIP相關(guān)的協(xié)議共分五層,每一層又由許多協(xié)議組成。目前有關(guān)IP電話(huà)制定的標準體現在應用層。而應用層又可分為信令控制協(xié)議、網(wǎng)關(guān)控制協(xié)議、媒體編碼和傳輸協(xié)議和QOS協(xié)議等。

  1. 信令控制協(xié)議,目前被廣泛接受的IP電話(huà)控制信令體系主要有ITU-T的H.323系列和IETF的會(huì )話(huà)初始化協(xié)議(SIP)。


  2. 網(wǎng)關(guān)控制協(xié)議,網(wǎng)關(guān)控制協(xié)議主要有媒體網(wǎng)關(guān)控制協(xié)議(MGCP)。該協(xié)議是為了解決目前IP電話(huà)負擔過(guò)重,不能滿(mǎn)足未來(lái)容量和業(yè)務(wù)擴展的要求而設計的。


  3. 媒體編碼,媒體編碼主要有兩類(lèi)——視頻編碼和音頻編碼。視頻編碼主要有H.261和H.263。音頻編碼主要有G. 7xx系列。


  4. 實(shí)時(shí)傳輸協(xié),實(shí)時(shí)傳輸協(xié)議有包括了實(shí)時(shí)傳輸協(xié)議(RTP)、實(shí)時(shí)傳輸控制協(xié)議(RTCP)、實(shí)時(shí)流協(xié)議(RTSP)和資源預留協(xié)議(RSVP)。相關(guān)的協(xié)議標準可以參考相應的網(wǎng)上資料,在這不細述。
2 Asterisk簡(jiǎn)介

  Asterisk是一個(gè)開(kāi)源的軟件包,它可以運行PBX的所有功能,通常運行在Linux操作系統平臺上。它不僅包含了PBX的功能,同時(shí)還有其它一些附加特性。Asterisk可以用三種協(xié)議來(lái)實(shí)現VoIP,同時(shí)可以與目前電話(huà)使用的標準硬件進(jìn)行交互通信。

  Asterisk提供了附加的語(yǔ)音郵件服務(wù)、電話(huà)會(huì )議、交互語(yǔ)音應答、呼叫排隊等基本電話(huà)服務(wù)。它還提供了多方呼叫、顯示呼叫者ID(顯示主叫號碼)等服務(wù)

  Asterisk在實(shí)現VoIP時(shí),不需要任何附加硬件,DDD 軟交換所采用的也是這種使用方式。但是,如果企業(yè)沒(méi)有與VoIP語(yǔ)音網(wǎng)關(guān)運營(yíng)商建立合作關(guān)系,想要自己構建這樣的一個(gè)平臺,那么要和數字電話(huà)設備與模擬電話(huà)設備進(jìn)行交互通信,Asterisk需要一個(gè)PCI硬件的支持,這個(gè)硬件生產(chǎn)商中最著(zhù)名的是Digium平臺提供的。

  Asterisk 的結構基本上是十分簡(jiǎn)單,但是它不同于大多數的電話(huà)產(chǎn)品。基本上,Asterisk擔任的是一個(gè)中間件的功能,它連接了底層的電話(huà)技術(shù)和上層的電話(huà)應用。Asterisk為布局混合的電話(huà)環(huán)境提供了一致性。Asterisk是開(kāi)源PBX (Private Branch eXchange)和IVR (Interactive Voice Response)系統。使用兼容的PCI硬件,Asterisk支持傳統的電話(huà)線(xiàn)路,包括:TDM(Time Division Multiplexing), TI/El PRI/PRA&RBS (Robbed Bit Signal)模式、模擬電話(huà)線(xiàn)/模擬電話(huà)(POTS),ISDN(Integrated Services Digital Network)和BRI(Basic Rate)與PRI(Primary Rate)。

  Asterisk可以透明的橋接VoIP之間的一些協(xié)議,包括:會(huì )話(huà)初始協(xié)議(SIP-Session Initiation Protocol), H.323(國際電信工業(yè)會(huì )的一種標準)、IAX(Inter-Asterisk eXchange)媒體網(wǎng)關(guān)控制協(xié)(MGCP-Media Gateway Control Protocol)等其它一些協(xié)議。Asterisk 具有很大的柔韌性,特殊的API接口都圍繞著(zhù)PBX核心系統。這個(gè)核心處理著(zhù)PBX內部之間的相互聯(lián)系。每一部分都是清晰來(lái)自于協(xié)議、編碼或內部電話(huà)使用的硬件接口的抽象。這些抽象的接口使Asterisk可以與任何的硬件和技術(shù)以及將來(lái)的硬件和軟件技術(shù)完美的結合。從圖2-5可以看出,Asterisk由內部核心和外圍動(dòng)態(tài)可加載模塊組成。內部核心由以下六個(gè)部分組成:PBX交換核心模塊(PBX Switching Core)、調度和I/O管理模塊(Scheduler and I/O Manager)、應用調用模塊(Application Launcher)、編解碼轉換模塊(Codec Translator)、動(dòng)態(tài)模塊加載器模塊(Dynamic Module Loader)和CDR生成模塊(CDR Core)。

圖3-1 VOIP通信系統功能模塊圖

  Asterisk提供了很多的基本撥號語(yǔ)法及應用的撥號函數,它共有40多個(gè)配置文件,通過(guò)Asterisk特有的語(yǔ)法修改特有的配置文件,才能實(shí)現通話(huà)的基本功能,同時(shí)可以實(shí)現針對不同的用戶(hù)實(shí)現不同的通信功能。它的配置文件的源文件采用的是C語(yǔ)言編寫(xiě)。但是基于A(yíng)sterisk的Application API編程接口,如AGI,對外部的應用程序可以使用PHP,Python,Perl,Java等語(yǔ)言編寫(xiě)。Asterisk運行操作系統平臺的Linux內核要求大于等于2. 4. x的版本。

3 VoIP通信系統基本功能概述

  如果是基于純軟件的實(shí)現方案,Asterisk是構建VoIP項目的核心,系統中所有與用戶(hù)呼叫有關(guān)的功能和管理都通過(guò)它來(lái)實(shí)現,包括VoIP各種協(xié)議的互通和配置,以及各種呼叫設備的配置文件。本文檔所討論的VoIP通信系統基本功能如圖3-2所示,一般的Asterisk的任務(wù)包括了兩方面,一是與呼叫有關(guān)的,包括基本呼叫處理、主叫號碼透傳、呼叫紀錄和日志生成等,二是與呼叫控制有關(guān),即終端用戶(hù)的認證計費功能。

圖3-1 VOIP通信系統功能模塊圖

4 基于A(yíng)sterisk實(shí)現VOIP通信系統基本功能

  PBX是專(zhuān)用交換機,俗話(huà)叫集團電話(huà)。廣泛地運用在企業(yè)辦公機構中,極大地提高了企業(yè)的辦事效率。但傳統的PBX存在缺點(diǎn)有:

  1. 它對新興的CTI(計算機與電話(huà)集成)和VoIP支持不夠。

  2. 傳統的PBX都采用的是專(zhuān)用技術(shù),缺乏開(kāi)放性和標準性,并且價(jià)格昂貴。解決它的缺點(diǎn)的措施是IP PBX技術(shù)。
4.1 VoIP通信系統方案選擇

方案1:模擬電話(huà)+語(yǔ)音網(wǎng)關(guān)+網(wǎng)守+PBX+模擬電話(huà)

  語(yǔ)音網(wǎng)關(guān)型的應用是將VoIP語(yǔ)音網(wǎng)關(guān)的FXO/FXS接口同總部或分支機構的PBX(小交換機或集團電話(huà))直接相連,當需要打長(cháng)途電話(huà)時(shí),將話(huà)音轉到VoIP網(wǎng)關(guān)上,通過(guò)因特網(wǎng)傳輸。用戶(hù)在使用時(shí)只需在分機上先撥IP電話(huà)特服號(如可設為"8"),便可直接撥打IP電話(huà)。

  在這個(gè)方案中,若要像普通電話(huà)那樣的數字號碼撥號,就得經(jīng)過(guò)網(wǎng)守的路由管理,但對于中小企業(yè)這種設備太昂貴。網(wǎng)守處于高層,提供對端點(diǎn)的呼叫管理功能,是IP電話(huà)網(wǎng)絡(luò )系統中的重要管理實(shí)體。網(wǎng)守的主要功能有:地址解析、接入控制、帶寬管理、區域管理等四項基本功能;此外,還能提供呼叫控制信令、呼叫管理等其他功能。要構建一個(gè)穩定可靠的、實(shí)用的VoIP網(wǎng),離不開(kāi)GK的管理。

  基于VoIP語(yǔ)音網(wǎng)關(guān)的復雜性與成本昂貴,本文檔不使用這種方案。

方案2:VoIP電話(huà)/IP電話(huà)+商業(yè)IP-PBX設備+PBX+模擬電話(huà)

  IP-PBX是一種基于IP的電話(huà)交換系統,它具有傳統PBX交換機的所有功能,它的目標是取代企業(yè)內部原先的PBX。這個(gè)系統可以完全將話(huà)音通信集成到公司的數據網(wǎng)絡(luò )中,從而建立能夠連接分布在全球各地辦公地點(diǎn)和員工的統一話(huà)音數據網(wǎng)絡(luò )。IP-PBX最顯著(zhù)的特征是一個(gè)集成通信系統,因此,通過(guò)互聯(lián)網(wǎng),僅需要單一設備即可為用戶(hù)提供語(yǔ)音、傳真、數據和視頻等多種通信方式,建立中、小型的呼叫中心。由于VoIP技術(shù)是將語(yǔ)音以數據包的形式在IP網(wǎng)絡(luò )中進(jìn)行傳送,因此采用VoIP技術(shù)構建的通信平臺,用戶(hù)具有可移動(dòng)的特性,形象的說(shuō)就是同一個(gè)用戶(hù)在A(yíng)地用的是011的號碼,到了B地還是011的號碼,號碼隨著(zhù)人走,VoIP還支持語(yǔ)音信箱、多方會(huì )議、視頻會(huì )議等傳統PBX沒(méi)有的功能。有助于移動(dòng)辦公和異地協(xié)同辦公。

  雖然說(shuō)商業(yè)的VoIP設備或者軟件,如華為SoftCo 5816 IP語(yǔ)音交換機、貝爾阿爾卡特A5020,他們能夠更容易、方便提供豐富的IP-PBX業(yè)務(wù)類(lèi)型,也提供了數字中繼接口與PSTN網(wǎng)絡(luò )方便連接,并且只需要手動(dòng)配置參數就可以投入到使用,不需要大量地編程,但是這種方案需要的成本跟方案1差不多,比較昂貴,并且靈活性不夠,所以不使用。

方案3:IP電話(huà)/模擬電話(huà)+Linux PC機+開(kāi)源IP-PBX+媒體網(wǎng)關(guān)+PBX+模擬電話(huà)

  基于PC服務(wù)器+ Asterisk呼叫管理軟件的IP-PBX系統,Asterisk作為IP電話(huà)網(wǎng)絡(luò )的控制中心(PC型PBX),該控制中心以軟件方式工作,安裝在一臺服務(wù)器內。數字中繼網(wǎng)關(guān)與原有傳統PBX的E1中繼接口相聯(lián)(在這里媒體網(wǎng)關(guān)特指單獨的VoIP落地網(wǎng)關(guān)運營(yíng)商的語(yǔ)音網(wǎng)關(guān)設備,本文檔讓Asterisk與之對接實(shí)現IP與PSTN的完美轉換),VoIP媒體網(wǎng)關(guān)提供的多路數字設置為中繼模式,一端連接PSTN專(zhuān)網(wǎng),一端對接Asterisk軟交換IP側。在控制中心的服務(wù)器上對IP電話(huà)號碼進(jìn)行分配。通過(guò)適當調整控制中心軟件的參數以及添加、修改某些模塊代碼,即可完成本文檔最終完成的IP電話(huà)系統的建設。如果使用專(zhuān)用、商業(yè)的IP-PBX系統,可能會(huì )花費不菲,所以本文檔使用方案3。

  本節的目標就是基于開(kāi)源IP-PBX Asterisk設計VoIP電話(huà)系統的基本呼叫功能模塊、認證計費功能模塊、AGI功能模塊等。

4.2 VOIP系統的基本組件

一般VOIP系統基本組件組成如圖4-1所示。

圖 4-1 VOIP系統的基本組成

  IP- PBX主要功能組件如圖4-1所示,下面討論這些基本功能組件。

1. 呼叫控制器
  IP電話(huà)系統的智能部分,它負責提供一切傳統PBX系統的中心-PBX交換機所能提供的服務(wù)。負責控制所有的呼叫建立和呼叫管理,能輕易提供大部分基本服務(wù)(如呼叫保持、呼叫轉移、呼叫等待等),以及配置電話(huà)的分機號碼(Extension Number)、功能按鈕、通話(huà)管理和路由決策功能。此外,它還控制所有的PC虛擬電話(huà)功能,如語(yǔ)音郵件、統一消息、自動(dòng)話(huà)務(wù)員、交互式語(yǔ)音響應(IVR)和自動(dòng)呼叫分配等。


2. 媒體網(wǎng)關(guān)
  在IP-PBX系統中,媒體網(wǎng)關(guān)用來(lái)實(shí)現IP網(wǎng)絡(luò )和傳統電路交換網(wǎng)的通信,負責把呼叫轉接到PSTN網(wǎng),完成異種網(wǎng)絡(luò )的電話(huà)呼入和呼出。它除了具有接通被叫的功能外,還可以把來(lái)自PSTN的呼叫連接到IP電話(huà)系統。媒體網(wǎng)關(guān)在整個(gè)VoIP系統中起著(zhù)非常關(guān)鍵的作用。它不僅使VoIP系統能夠連接PSTN用戶(hù),而且能夠增加整個(gè)系統的可靠性,使系統具有處理緊急呼叫的能力。媒體網(wǎng)關(guān)還需要完成語(yǔ)音編碼轉換,通信協(xié)議轉換以及LAN/WAN-PSTN之間的呼叫建立拆除等功能。

3. 局域網(wǎng)接入模塊
  提供IP-PBX系統各組件之間的連接。在局域網(wǎng)的環(huán)境中,該模塊可以使用局域網(wǎng)交換機來(lái)代替。

4. 控制中心
  包括資源管理系統、計費系統、網(wǎng)管系統、語(yǔ)音信箱等。

5. 信令網(wǎng)關(guān)
  提供和其它信令網(wǎng)絡(luò )的互通功能,可以支持H.323,IAX,SIP,MGCP等的全部或者部分功能。

6. 應用服務(wù)器
  為IP-PBX系統提供增值應用。

7. I P話(huà)機終端

  包括終端部分軟件PC Phone,I P-Phone等。

8. 模擬終端普通電話(huà),傳真機等傳統模擬設備。

本文檔IP-PBX系統的基本組件

1.VoIP軟終端X-Lite,對應圖4-1的PC PHONE:PC用戶(hù)使用SIP軟終端(目前只使SIP協(xié)議作為輸入信令)訪(fǎng)問(wèn)IP-PBX服務(wù)器軟交換后臺,對普通座機或手機發(fā)起呼叫,實(shí)現PC2Phone的通訊。

2.IP-PBX(VoIP 軟交換),對應圖4-1的呼叫控制器:基于開(kāi)源軟交換平臺Asterisk,接受VoIP軟終端(或其它能發(fā)起SIP/H323請求的硬件終端)發(fā)起的呼叫信令、解析被叫號碼、構建VoIP語(yǔ)音數據包發(fā)送到IP網(wǎng)絡(luò )中。

3.語(yǔ)音網(wǎng)關(guān),對應圖4-1的媒體網(wǎng)關(guān)、信令網(wǎng)關(guān),因為實(shí)際使用中大部分的媒體網(wǎng)關(guān)設備都集成了信令網(wǎng)關(guān)功能:提供模擬語(yǔ)音信號和VoIP信令的轉換,即從IP網(wǎng)絡(luò )進(jìn)入的VOIP數據包被轉換成模擬語(yǔ)音,通過(guò)與PBX相連的數字中繼線(xiàn)路進(jìn)入到PBX(數字程控交換機)。
4.數字程控交換機(PBX):用于電話(huà)交換網(wǎng)的交換設備,它以計算機程序控制電話(huà)的接續,從語(yǔ)音網(wǎng)關(guān)的E1數字中繼線(xiàn)路送出來(lái)的7號信令或1號信令或PRI信令以及模擬語(yǔ)音數據包進(jìn)入到數字程控交換機。

4.3 VOIP系統的軟硬件平臺

  第1節已經(jīng)簡(jiǎn)單介紹過(guò)Asterisk,它是一個(gè)非常靈活的軟件,可以輕松的安裝在任何Linux平臺上。Asterisk的資源需求與其它的嵌入式、實(shí)時(shí)的應用系統很類(lèi)似,都是通過(guò)優(yōu)先級的方式來(lái)訪(fǎng)問(wèn)CPU和總線(xiàn),并規定系統上的任何函數都不能直接調用比Asterisk優(yōu)先的進(jìn)程。對于非專(zhuān)業(yè)的系統而言,這也許不是很重要,如果目標是商用系統,這種優(yōu)先級方式帶來(lái)的性能上的缺陷會(huì )引起通話(huà)質(zhì)量的問(wèn)題。比如,經(jīng)常出現回聲、噪音等等。這種情況在手機超出服務(wù)區外的時(shí)候常常出現。由于對于Linux的內核代碼和優(yōu)化技巧不是很了解,選擇一個(gè)高的配置,而不是重新對內核進(jìn)行編程,是一個(gè)比較好的主意。

硬件平臺

表4-1可以對系統的硬件配置有一個(gè)大概的認識

表4-1 VOIP 系統的硬件配置

系統 并發(fā)通話(huà)數量 最小要求
非專(zhuān)業(yè)系統 <5
400M CPU 256M內存
SOHO系統 5-10 1G CPU 512M內存
小型商用系統 10-15 3G CPU 1G 內存
中等商用系統 >15 雙處理器,在分布式構架里采用多個(gè)服務(wù)器集群

  對于要安裝Asterisk的計算機,如果在預算有限的情況下,下面是一些建議:系統的穩定性及質(zhì)量取決于所選擇主板的結構設計,考慮使用服務(wù)器主板是一個(gè)很好的主意。比如服務(wù)器主板提供的PCI插槽有3.5V和5.0V,服務(wù)器主板可以給主板提供更穩定的電壓和電流。而且,語(yǔ)音卡常常會(huì )造成每秒100個(gè)以上的中斷請求,所以對于主板來(lái)說(shuō),一定要仔細考察芯片組是否能供支持。

  安裝PCI顯卡,而不是AGP顯卡,因為AGP通道會(huì )造成內存的高占用率和CPU中斷占用。如果采用工控機/服務(wù)器構架,根本沒(méi)有安裝顯卡,而是使用Console來(lái)管理系統。對于CPU而言,由于A(yíng)sterisk使用CPU進(jìn)行信號的模數轉換(也就是說(shuō)CPU具有DSP的作用),所以浮點(diǎn)運算能力是非常重要的,同時(shí)CPU的L2Cache也應該盡量的大。

1. 專(zhuān)有板卡的準備

  如果準備連接Asterisk系統到任何電信設備上去,必須需要一個(gè)專(zhuān)有硬件的支持。板卡的主要功能是連接PSTN和LAN/WAN。為了橋接電路交換的電信網(wǎng)絡(luò )和包交換的數據網(wǎng)絡(luò ),最流行和最經(jīng)濟的連接PSTN的方法是使用接口卡,接口卡有好幾種,這里僅僅討論常見(jiàn)的兩種情況。


(a)模擬接口卡

  PSTN介入情況是普通的電話(huà)線(xiàn)或者模擬中繼電話(huà)線(xiàn)的時(shí)候,就需要這種卡。

  最流行的Asterisk模擬接口卡也許是TDM400P(實(shí)際上這款卡和時(shí)分復用沒(méi)有任何關(guān)系,僅僅是這么叫好聽(tīng)而已),由Digium公司制造。TDM400P是一個(gè)4口卡,可以插4塊子卡,既可以提供FXO口,也可以提供FXS口。這個(gè)卡是貴的,當然最有名氣。

(b)數字接口卡

  如果需要多于10條電路或者需要數字連接的時(shí)候,就要購買(mǎi)或者尋找T1或El卡了。但是要注意,El的接入的價(jià)格由信息產(chǎn)業(yè)部統一規定,在一些地區可以找到非常便宜的PSTN接入價(jià)格(落地價(jià)格),有關(guān)這方面的內容在這不細述。

2. 硬件的需求

  針對中小型公司,硬件的要求一般不是很高,普通的網(wǎng)絡(luò )設備就可以滿(mǎn)足要求。如果想采用很好的語(yǔ)音質(zhì)量,可以采用專(zhuān)門(mén)的語(yǔ)音網(wǎng)關(guān)來(lái)處理語(yǔ)音信息。因為,采用通信的硬件設備目前大多是PSTN電話(huà)終端,因此要求附加一個(gè)硬件來(lái)將PSTN電話(huà)轉化為“IP”電話(huà)。目前大多采用ATA設備來(lái)轉換PSTN的電話(huà)終端。當然也可以使用IP電話(huà),如X-Lite等。

對于本文檔的VoIP開(kāi)發(fā)環(huán)境說(shuō)明如下:

  1. 基于非專(zhuān)業(yè)系統的配置需求來(lái)進(jìn)行硬件的配置,如Ubuntu 7.04。

  2. 不方便配備專(zhuān)有板卡,尋找某些地區的PSTN接入運營(yíng)商,簡(jiǎn)稱(chēng)VoIP落地運營(yíng)商或者VoIP落地網(wǎng)關(guān),他們能夠提供接口卡(數字接口卡、語(yǔ)音網(wǎng)關(guān)、媒體網(wǎng)關(guān))。


軟件平臺

1.操作系統

  對于中小型公司而言,Linux可能是首選的操作系統。同時(shí),Asterisk源碼便于在Linux中編譯和運行,相對比較安全。在對于中小型軟件研發(fā)而言,Linux可能成為開(kāi)發(fā)中的首選的操作系統。

2.Asterisk軟件包

Asterisk的核心,主要由三個(gè)包組成:
  1. Asterisk主程序(Asterisk)

  2. Zapate電話(huà)驅動(dòng)(zaptel)

  3. PRI庫(libpri)
其余的還有一些其它的軟件,如語(yǔ)音附加包等,都可以從開(kāi)源的網(wǎng)站上下載。

4.4 Asterisk構建VoIP整合應用方案(基本呼叫功能的實(shí)現)

  Asterisk和VoIP的最初設計思想相同,其最終目的是減少長(cháng)途通話(huà)的費用,實(shí)現通話(huà)的網(wǎng)絡(luò )化,使IP網(wǎng)絡(luò )成為一個(gè)可運載語(yǔ)音數據和其它數據的平臺,實(shí)現語(yǔ)音網(wǎng)絡(luò )和視頻網(wǎng)絡(luò )等完美地結合。

  為了實(shí)現基本的呼叫功能,即摘機、掛機等功能,目前設計的拓撲結構為:VoIP軟終端--->SIP代理服務(wù)器(SIP Proxy Server、SIP Redirect Server)-->轉發(fā)到用戶(hù)代理服務(wù)器(UAS,Asterisk)--->與VoIP語(yǔ)音網(wǎng)關(guān)通信(Cisco AS5300,華為8010等設備,一般有2、4、n個(gè)數字中繼接口)---->通過(guò)E1中繼線(xiàn)路對接數字程控交換機(華為C&c08、貝爾S1240數字程控交換機)。

VoIP系統第一部分——IP側的實(shí)現

  VoIP系統有兩側:IP側與PSTN側,這部分主要是IP側,發(fā)起呼叫請求的VoIP軟終端是任何一個(gè)能夠發(fā)起SIP請求的客戶(hù)端軟件或者硬件設備或者語(yǔ)音網(wǎng)關(guān)設備,網(wǎng)絡(luò )拓撲結構圖如下所示,圖中每個(gè)結點(diǎn)在前幾個(gè)小節均有描述。

(點(diǎn)擊看大圖)

第二部分——VoIP網(wǎng)關(guān)、PSTN網(wǎng)絡(luò )層

  這部分是本文檔所討論的開(kāi)源軟交換平臺(Asterisk)通信的VoIP語(yǔ)音網(wǎng)關(guān),如圖4-3所示,經(jīng)過(guò)它出局的數字中繼是一個(gè)E1接口(又稱(chēng)一個(gè)PCM),是一對引自數字程控交換機的同軸電纜線(xiàn),在電纜線(xiàn)上數據傳輸速率是2.048 Mbps可以同時(shí)容納32時(shí)隙

*64Kbps的語(yǔ)音數據。


(點(diǎn)擊看大圖)


  結合圖4-2與圖4-3,基本呼叫處理包含主叫摘機、撥號、通話(huà)、掛機、被叫掛機全過(guò)程。通常應用呼叫的方式可能是PC到PC、PC到電話(huà)(PSTN/IP)、電話(huà)(PSTN/IP)到電話(huà)(PSTN/IP)等方式。對于基本的呼叫流程是任何PBX都具有的,設計流程大多都一樣。
  1. 在X-Lite客戶(hù)端輸入完被叫號碼后,點(diǎn)擊呼叫按鈕,用戶(hù)聽(tīng)到VoIP會(huì )話(huà)應用程序播放的撥號音,然后開(kāi)始撥號。

  2. X-Lite收集用戶(hù)撥打的號碼,并按照標準的SIP代理服務(wù)器到VoIP用戶(hù)代理服務(wù)器Asterisk。

  3. Asterisk動(dòng)態(tài)的調用呼叫模塊,進(jìn)入到Asterisk內部的呼叫Dialplan, 并按照呼叫Dialplan中配置的被叫號碼模板進(jìn)行匹配。

  4. 當成功匹配某個(gè)已配置的被叫號碼模板后,號碼將被映射至某語(yǔ)音網(wǎng)關(guān)(此語(yǔ)音網(wǎng)關(guān)直接連接目的電話(huà)或用戶(hù)小交換機PBX)。

  5. IP-PBX Asterisk的IP網(wǎng)絡(luò )利用H.323/SIP協(xié)議向語(yǔ)音網(wǎng)關(guān)發(fā)起呼叫,并為每路呼叫建立通道,用以發(fā)送和接收語(yǔ)音數據。

  6. 被叫語(yǔ)音網(wǎng)關(guān)接收IP側的H.323/SIP呼叫,通過(guò)PSTN信令將呼叫傳遞到給PBX處理,直到接通目的電話(huà)。

  7. 在呼叫連接過(guò)程中的H.323/SIP階段,IP側與PSTN側協(xié)商所使用的語(yǔ)音編解碼方式,并使用RTP協(xié)議傳遞語(yǔ)音數據。

  8. 呼叫中的任何一方掛機時(shí),VoIP會(huì )話(huà)應用程序X-Lite將結束會(huì )話(huà)。
4.5 基本呼叫功能環(huán)境搭建示例(SIP與H.323互通)

圖4-4 簡(jiǎn)單拓撲圖

軟終端Xlite注冊到軟交換Asterisk上

圖4-5 軟終端設定

4.5.1 IP-PBX服務(wù)器Asterisk抓包分析


(點(diǎn)擊看大圖)


圖4-6 SIP_REGISTER_1


(點(diǎn)擊看大圖)

圖4-7 SIP_REGISTER_2

X-Lite(UA) ------> asterisk PBX(讀取SIP INVITE消息)


(點(diǎn)擊看大圖)

圖4-8 IP_INVITE_1

Asterisk PBX 針對上面的分析情況,響應X-Lite會(huì )話(huà)繼續下去:

Transmitting to X-Lite(202.108.12.6)


(點(diǎn)擊看大圖)

圖4-9 SIP_INVITE_2


(點(diǎn)擊看大圖)

圖4-10 SIP_TRYING


執行撥號方案


(點(diǎn)擊看大圖)

圖4-11 dialplan

Asterisk然后開(kāi)始與華為8010語(yǔ)音網(wǎng)關(guān)建立H323通信

① Call set up.
H.225/Q.931 Call Setup


(點(diǎn)擊看大圖)

圖4-12 h323_SETUP_1

(點(diǎn)擊看大圖)

圖4-13 h323_SETUP_2


②A(yíng)LERT/PROGRESS 表示被叫已經(jīng)正在響鈴…


(點(diǎn)擊看大圖)

圖4-14 h323_3_ALERT

  這時(shí)候,Asterisk PBX將被叫手機正在響鈴的信號以SIP消息 的形式發(fā)送到客戶(hù)端X-Lite,這是一種sip_indicate類(lèi)型的SIP消

息。


(點(diǎn)擊看大圖)

圖4-15 SIP_Ringing

  Asterisk響應會(huì )話(huà)繼續的SIP消息


(點(diǎn)擊看大圖)

圖4-16 SIP_183_SESSION_PROGRESS

  Asterisk與華為8010語(yǔ)音網(wǎng)關(guān)的H323連接已經(jīng)成功建立

③Connect

  表示軟交換Asterisk與華為8010語(yǔ)音網(wǎng)關(guān)的H323連接已經(jīng)成功建立


(點(diǎn)擊看大圖)

圖4-17 H323_ESTABLISHED

  Asterisk與X-Lite之間發(fā)送OK與ACK響應消息,表示SIP軟終端已經(jīng)跟H323語(yǔ)音網(wǎng)關(guān)建立了連接,并且被叫已經(jīng)接聽(tīng),開(kāi)始成功通話(huà)


(點(diǎn)擊看大圖)

圖4-18 SIP_200ok_ack 被叫先掛斷,Asterisk與華為8010語(yǔ)音網(wǎng)關(guān)的H323連接在此釋放

④Release Complete

  表示軟交換Asterisk與華為8010語(yǔ)音網(wǎng)關(guān)的H323連接在此釋放

(點(diǎn)擊看大圖)

圖4-19 H323_RELEASE Asterisk向軟終端X-Lite發(fā)送BYE消息



圖4-20 SIP_BYE X-Lite收到BYE消息后以OK消息響應,整個(gè)會(huì )話(huà)就此終止

圖4-21 SIP_BYE_OK

4.5.2 結論

  通過(guò)觀(guān)察上面這個(gè)流程圖可以容易的看出,語(yǔ)音網(wǎng)關(guān)在收到INVITE消息后立即發(fā)送SETUP消息,反之亦然.

所以可以得到如下的H.323和SIP的消息對應關(guān)系:

H.323 消息 SIP 消息
Setup Invite
Call Proceeding 100 Trying
Alerting 180 Ringing
Connect 200 OK
Release Complete BYE

貝高林的Blog



相關(guān)鏈接:
基于A(yíng)sterisk的VoIP開(kāi)發(fā)指南—Asterisk模塊編寫(xiě)指南 2008-06-12
基于A(yíng)sterisk的VoIP開(kāi)發(fā)—Asterisk AGI程序編寫(xiě)指南 2008-06-12
無(wú)線(xiàn)IPPBX系統的設計與實(shí)現 2008-06-12
淺論美國寬帶電話(huà)(VOIP)監管的新動(dòng)向 2008-06-11
網(wǎng)絡(luò )電話(huà)(VoIP)成功應用美軍軍事系統 2008-06-06

分類(lèi)信息:        
亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 湖南省| 红河县| 大荔县| 平果县| 丹巴县| 忻城县| 晋宁县| 扎鲁特旗| 江山市| 木兰县| 陈巴尔虎旗| 富蕴县| 犍为县| 元阳县| 乌兰察布市| 隆德县| 孟津县| 华阴市| 台州市| 平江县| 清涧县| 南皮县| 平潭县| 虞城县| 苍溪县| 金阳县| 芒康县| 会东县| 博罗县| 大悟县| 桐庐县| 金溪县| 沂源县| 泊头市| 江华| 宜君县| 合作市| 德阳市| 丰城市| 那曲县| 饶河县| http://444 http://444 http://444 http://444 http://444 http://444