二、VOIP的設計與實現
1、 VOIP硬件組成
(1)IP電話系統的關鍵設備—一網關
設在各地的網關由一個獨一的IP地址表示,它是架通兩種通信傳輸方式的一座 橋樑,是Internet上的‘交換局”,以實現遠程電話間的互聯和通信,在一邊,網關連接傳統的電路交換網(Circuit-switched Network)如公共交換電話網(PSTN),可和外部的任意一部電話通信。在另一邊,網關連接分組交換網(Packet-Switched Network)如Internet、Intranet等,可和接入網絡的任 意一臺計算機通信。在整個Internet Phone系統中,網關分佈在世界各地,處理當 地的PSTN網與Internet的接入和轉換理。 網關接收標準電話信號,經數字化與大幅度地壓縮後,使用IP協議進行分組送到Internet,找出傳輸路由,通過Internet發往目的地。反之,接收Internet傳輸過來的數據分組,並轉往電話網絡系統。接入和轉出電話網絡系統可同時進行,實 現全雙工(雙向)通話。例如在北京撥打一個到舊金山的長途電話,在北京,一個普通的公共電話通過 PSTN接入本地網關,本地網關對數據進行特定的壓縮算法處理,組織成包含主、被叫號碼、時間、通話信息等數據的IP分組,並分析被叫號碼,根據路由表,把它映射成爲一個IP地址,通過路由選擇,發往該IP地址(如舊金山)對應的遠端網關。而在被叫方舊金山,遠端網關接收北京本地網關傳輸過來的IP數據分組,進行相反過程的解壓縮,再發往其本地端的PSTN網。這樣,就實現了兩地的實時通信。而其所包含的通信費用僅爲北京本地普通電話費+Internet通信費+舊金山本地電話費。
由於Internet的通信費是較低的,所以長途電話費用大大下降。
(2)關守
關守是專門用於管理呼叫控制的設備。儘管H.323中,關守並不是必不可少的,但在大規模網絡中,將控制功能集中於一處是很有裨益的。
關守主要包括如下功能:
(1)地址翻譯在本地可以採用專用的編址方案(H.323中稱爲別名地址)比如:助記符、暱稱或e-mail地址。關守可以將這些別名地址翻譯爲IP地址。
(2)接納控制關守負責控制終端或網關之間的VoIP呼叫的建立。關守根據各種已知變量:呼叫權限、源與目地地址、時間等確定呼叫是被接納還是拒絕。這樣,關守保證了VoIP網絡的安全性。
(3)帶寬管理爲了有效利用許多終端共享的帶寬資源,關守能夠在通話過程中調整終端或網關的呼叫參數。通過這種方式,關守可以協調帶寬資源的分配。
(4)區域管理關守除了要實現上述功能外,還必須協調好上述功能。例如爲了避免語音質量惡化,區域管理要求一條窄帶鏈路上最多隻允許25個呼叫。實現這種管理功能可以採用自動呼叫分配(ACD)或 集中式呼叫管理。
(5)呼叫信令關守作爲終端或網關的呼叫信令代理,可以減輕它們的控制呼叫職責。它可以簡化點對點鏈路的初始化,加速呼叫的建立和信令的傳遞。關守以及在其控制下的終端節點構成了H.323域--單一控制的邏輯設備羣。如圖5所示。
圖5
除了上述的功能,關守爲適應未來VoIP系統所需的擴充功能正在研發中。由於關守是可選設備,故H.225協議和H.245協議均定義了有無關守兩種情況下信令的處理過程。沒有關守時,將由終端自行控制呼叫信令。
關守爲了管理與之相連的終端或網關,必須在數據庫中記錄這些終端或網關的各種參數,如:IP地址與別名地址、信道帶寬等等。這些記錄可以通過手動配置關守文件完成,也可通過關守檢測登錄過程自動實現。在檢測關守期間,端節點通過廣播IP地址:224.0.1.41向所有關守發送"關守請求"消息,目的是尋找可應答的關守。接到這一消息的關守或接納或拒絕請求,也就是或允許或拒絕終端登錄。然後,端節點從發出接納消息的關守中選擇自己願意登錄的一個。接着,端節點向選定的關守發出"登錄請求"消息,開始正式的登錄過程。得到關守確認後,端節點和關守開始交互有關信息,例如關守動態給端節點分配別名地址;關守限定端節點必須登錄的有效時段。通過呼叫信令的集中控制與協調管理,關守簡化了VoIP系統的控制與使用。在一定範圍內,關守可看作所有設備的控制節點。
2、點到點實現方式
Voice over IP是在IP網絡上傳輸語音流量(例如,電話和傳真)的技術,主要是一種軟件特性,但是,要在Cisco2600/3600系列路由器上實現這個功能,必須首先安裝語音模塊VNM(Voice Network Module),VNM可以裝兩個或四個語音接口卡(VIC),每個接口卡都對應於與語音接口相關的特定信號類型。
1. 單機實現IP語音電話
(1)在裝有兩個語音模塊的3600路由器上實現IP語音電話(如下圖所示)。
(2)基本配置
dial-peer voice 1 pots
destination-pattern 111
port 3/0/0
!
dial-peer voice 2 voip
destination-pattern 222
session target ipv4:192.16.12.1
!
dial-peer voice 4 pots
destination-pattern 222
port
!
dial-peer voice 3 voip
destination-pattern 111
session target ipv4:192.16.12.2
!
!
(3)配置概述
本實驗是在Cisco3600 Router內部實現的,沒有經過鏈路傳輸,所以不需要優化撥號點和網絡接口的配置,只需配置撥號點:
● 要配置源和目標之間的所有連接,在voice port 3/0/0上輸入下面命令:
dial-peer voice 1 pots
destination-pattern 111
port 3/0/0
!
dial-peer voice 2 voip
destination-pattern 222
session target ipv4:192.16.12.1
● 要完成在撥號點1和撥號點4之間的端對端呼叫,在voice port3/1/0上輸入下面命令:
dial-peer voice 4 pots
destination-pattern 222
port 3/1/0
!
dial-peer voice 3 voip
destination-pattern 111
session target ipv4:192.16.12.2
2. 路由器間實現IP語音電話
(1) 站點A有一個Cisco3600路由器,站點B有一個Cisco2600路由器,它們通過
DCE/DTE V.35電纜背對背地連接起來。在每個路由器中安裝了一個含有一個VIC-2FXS的NM-2V,提供兩個模擬電話的連接。
(2)創建並實現撥號方案
(3)基本配置:
站點A的基本配置見清單1(站點B的基本配置略)。
清單1 站點A RouterA的配置
Current configuration:
!
version 12.0
service timestamps debug uptime //設定Debug跟蹤日誌顯示其時間
service timestamps log uptime //設定看Log時顯示其時間
no service password-encryption //口令不加密
!
hostname router_A
!
enable password cisco
!
username router_A password 0 cisco
!
ip subnet-zero
no ip domain-lookup
voice-port 3/0/0
echo-cancel coverage 16 //啓動回聲消除功能
!
voice-port 3/0/1
dial-peer voice 1 pots //定義撥號對等體到語音物理端口
destination-pattern 2222 //定義電話號碼
port 3/0/0 //定義電話號碼
!
dial-peer voice 2 voip //定義撥號對等體到語音
destination-pattern 1111 //爲撥號對等體分配電話號碼
req-qos controlled-load //在分配帶寬時,RSVP確保即使帶寬發生擁塞與過載時,數據流也能得到優先處理。
codec g711ulaw //撥號點的語音編碼速率—64000bps
ip precedence 5 //IP優先級,5爲關鍵
no vad //禁用語音活動檢測
session target ipv4:192.168.100.1 //定義Voip路由,爲對端的IP地址
!
!
interface Ethernet0/0
no ip address
no ip directed-broadcast
shutdown
!
interface Serial0/0
ip address 192.168.100.2 255.255.255.0 // S0/0的IP地址
no ip directed-broadcast
no ip mroute-cache
no fair-queue
clockrate 2000000
ip rtp header-compression //配置RTP頭壓縮器
ip rtp compression-connections 25
ip rsvp bandwidth 1000 320
!
interface Ethernet0/1
no ip address
no ip directed-broadcast
shutdown
!
ip classless
ip route 192.168.100.0 255.255.255.0 192.168.100.1
no ip http server
!
line con 0
transport input none
line aux 0
line vty 0 4
login
!
end
(4)配置概述
根據公共的功能,站點A的配置分爲4個不同的部分。第1部分在清單2中描述,它爲日誌和調試命令啓用時間標記,爲路由器指定一個主機名稱。
清單2 站點A的配置的第1部分
version 12.0
service timestamps debug uptime //設定Debug跟蹤日誌顯示其時間
service timestamps log uptime //設定看Log時顯示其時間
no service password-encryption //口令不加密
!
hostname router_A
!
enable password cisco
!
username router_A password 0 cisco
!
第2部分在清單4中描述,它提供語音連接的實質內容,語音端口簡單地標識它們連接到的設備。撥號對等體1把電話號碼分配給物理語音端口,撥號對等體2定義VoIP呼叫到站點B。在語音端口3/0/0上啓動回聲消除功能。IP優先級設置爲5,設置資源預留協議RSVP爲controlled-load,確保即使帶寬發生擁塞與過載時,數據流也能得到優先處理。而且因爲多餘的帶寬,語音活動檢測被禁止了,併爲撥號點配置了語音編碼速率—64000bps。
清單4 站點A的配置的第2部分
voice-port 3/0/0
echo-cancel coverage 16
!
voice-port 3/0/1
!
!
dial-peer voice 1 pots
destination-pattern 2222
port 3/0/0
!
dial-peer voice 2 voip
destination-pattern 1111
req-qos controlled-load
codec g711ulaw
ip precedence 5
no vad
session target ipv4:192.168.100.1
!
第3部分在清單5中描述,它配置路由器上的網絡端口。串口0/0連接到DCE V.35電纜,爲串行接口增加clockrate接口配置命令。爲語音配置RSVP保證在網絡中獲取特定的QoS。配置RTP頭壓縮連接的數量爲25。
清單5 站點A的配置的第5部分
interface Ethernet0/0
no ip address
no ip directed-broadcast
shutdown
!
interface Serial0/0
ip address 192.168.100.2 255.255.255.0
no ip directed-broadcast
no ip mroute-cache
no fair-queue
clockrate 2000000
ip rtp header-compression
ip rtp compression-connections 25
ip rsvp bandwidth 1000 320
!
第4部分如清單6所示,完成整個配置,它分配一條靜態路由到站點B的網絡(192.168.100.0),在這個簡單環境中,不要求IP路由協議。
清單6 站點A的配置的第4部分
ip classless
ip route 192.168.100.0 255.255.255.0 192.168.100.1
no ip http server
3、網守實現方式 (GATEKEEPER)
可以想像,採用點到點撥號方式,當電話終端數量很大時,各個網關上的配置將會變得非常麻煩。如果要在這個基礎上增加一個電話終端或修改網關上的參數,其工作量都是指數倍的增長,這對網絡的維護來說,簡直是一個災難。
採用GATEKEEPER的方式,就是讓所有參數的增刪修改都集中到一個或幾個服務器,讓服務器來管理整個網絡。
首先,一個各地連通的網絡需要架設起來。
網關採用2600系列路由器+VNM+VIC,電話接口爲FXS
網守採用3640。
VOIP網關上的配置如下:
在全局配置模式下
dial-peer voice 1 pots
destination-pattern 2000
port 1/0/0
注:destination-pattern 2000用來設置IP電話號碼
port 1/0/0用來指定該號碼對應的語音端口
在全局配置模式下
dial-peer voice 3 voip
destination-pattern .…
session target ras
注:
destination-pattern…. 表示對端號碼爲任意的4位號碼
session target ras 表示採用關守方式對所撥號碼進行解析
配置路由器爲voip gateway
在全局配置模式下
gateway
在以太網口下配置關守位置
interface Ethernet0/0
h323-gateway voip interface
h323-gateway voip id xxx@x.y.cn ipaddr x.x.x.x 1719
h323-gateway voip h323-id yyy@ x.y.cn
注:
h323-gateway voip interface表示該端口配置爲VOIP中和關守進行通訊的接口
h323-gateway voip id xxx@x.y.cn ipaddr ipaddr x.x.x.x 1719把關守指向x.x.x.x
端口爲1719,ID號 xxx@x.y.cn ipaddr
h323-gateway voip h323-id yyy@ x.y.cn 指定本地H323-ID
網守上的配置如下:
進入特權模式
#gatekeeper
config-gk)#zone local router-name xxx@x.y.cn x.x.x.x
router-name爲路由器名
config-gk)# gw-type-prefix 2# gw ipaddr y.y.y.y 1720
y.y.y.y是指定x.x.x.x爲關守的網關