04-SIP配置
本章節下載: 04-SIP配置 (1002.34 KB)
SIP(Session Initiation Protocol,會話初始協議)是一個用於建立、更改和終止多媒體會話的應用層控製協議,其中的會話可以是IP電話或多媒體會議。
SIP是類似於HTTP協議的基於文本編碼的協議,具有易擴展、易實現等特點,因此非常適合用來實現基於因特網的多媒體通信係統,可以用來解決IP網絡中的信令控製,為電信、銀行、金融等行業提供更好的增值業務。
SIP協議采用Client/Server模型,主要通過客戶端與SIP服務器之間的通信來完成用戶呼叫。客戶端為用戶代理,SIP服務器有代理服務器、重定向服務器、位置服務器和注冊服務器。
UA(User Agent,用戶代理)是指支持SIP協議的終端。UA包括UAC(User Agent Client,用戶代理客戶端)和UAS(User Agent Server,用戶代理服務器)。
· 用戶代理客戶端是指在SIP會話建立過程中主動發起會話請求的SIP終端。
· 用戶代理服務器是指在SIP會話建立過程中接收會話請求的SIP終端。
在一個完整的通話過程中,每個UA既是UAC也是UAS。
代理服務器(Proxy Server)的作用是首先提供路由服務,即轉發UA的請求或者響應,還可以提供呼叫控製、計費認證授權等功能。
重定向服務器(Redirect Server)用來將會話請求中的地址映射成其它新的地址,然後將新的地址返回給UAC,由UAC直接向這些新的地址發起請求。
位置服務器(Location Server)用來為代理服務器和重定向服務器提供UA信息。位置服務器記錄了注冊服務器接收到的UA的信息。
注冊服務器(Registrar Server)接受用戶注冊,同時對用戶的注冊信息進行管理和維護。注冊信息一般存儲在位置服務器上,供查詢時使用。
SIP主要有五個基本功能:
· 確定用戶位置:確定被叫SIP終端所在的位置。SIP的最強大之處就是用戶定位功能,它可以利用注冊服務器上SIP終端的注冊信息實現用戶定位,也可以利用其它定位服務器,如DNS(Domain Name System,域名係統)、LDAP(Lightweight Directory Access Protocol,輕量級目錄訪問協議)等提供的定位服務來增強定位功能。
· 確定用戶可用性:檢查被叫SIP終端是否可以參加此會話。
· 確定用戶能力:確定被叫SIP終端可用於參加會話的媒體類型及媒體參數。SIP終端在消息交互過程中攜帶自身的媒體類型和媒體參數,使得會話雙方都可以明確對方的會話能力。
· 建立會話:SIP會話雙方通過協商媒體類型和媒體參數,最終選擇雙方支持的能力交集建立會話。
· 管理會話:發送、中止、轉移會話以及修改會話參數等。
SIP消息采用文本方式編碼,包括請求消息與響應消息兩類。
SIP請求消息包括INVITE、ACK、OPTIONS、BYE、CANCEL和REGISTER等。RFC 3261定義的請求消息有以下六種。
· INVITE:發起會話請求,邀請用戶加入一個呼叫。
· ACK:用於對請求消息的響應消息進行確認。
· OPTIONS:用於請求協商能力信息。
· BYE:用於結束已建立的呼叫。
· CANCEL:用於取消尚未建立的呼叫。
· REGISTER:用於向SIP注冊服務器發起注冊請求或注銷。
SIP響應消息用於對請求消息進行響應,指示呼叫或注冊的成功或失敗狀態。不同類的響應消息由狀態碼來區分,狀態碼包含三位整數,狀態碼的第一位用於定義響應類型,另外兩位用於進一步對響應進行更加詳細的說明。響應消息的分類如表1-1所示。
狀態碼編號 |
消息含義 |
消息歸類 |
100~199 |
收到請求,正在處理中 |
臨時消息 |
200~299 |
收到請求,並被成功處理,接受該請求 |
處理成功 |
300~399 |
要完成該請求需要更進一步的操作 |
重定向 |
400~499 |
消息語法錯誤,服務器不能處理該請求 |
客戶端出錯 |
500~599 |
由於UAS/SIP服務器的原因,無法處理該請求 |
服務器出錯 |
600~699 |
該請求在任何UAS/SIP服務器上都不能完成 |
全局錯誤 |
SIP是一個應用層的會話協議,與一般協議不同的是,SIP協議可以支持各種傳輸協議:
· SIP支持UDP傳輸:UDP是一個無連接的協議,且不提供可靠性。在UDP上建立SIP連接存在不可靠性。
· SIP支持TCP傳輸:增加了SIP報文和語音傳輸的可靠性,通過TCP協議自身的特點為基於SIP的VoIP通信提供了麵向連接和可靠的傳輸。使用TCP傳輸協議後,SIP協議可以不需要考慮報文丟失和重傳問題。在SIP支持TCP傳輸的基礎上,可以選用SIP支持TLS(Transport Layer Security,傳輸層安全)傳輸。SIP支持TCP傳輸僅僅保證了SIP報文和語音傳輸的可靠性,而SIP支持TLS傳輸則保證了SIP報文傳輸的安全性,具體內容請參見“1.1.5 1. 信令加密”。
用戶可以根據實際的應用環境采用不同的傳輸協議。
SIP可以利用TLS來保護通話中的控製信令,防止用戶信息被竊取,也可以利用SRTP協議對語音媒體流進行加密和認證等保護措施。兩者可以單獨使用,也可以同時使用。
TLS本身運行於TCP之上,並且提供了通信雙方身份識別和加密SIP報文的一整套安全方案,為應用層協議服務。建立TLS連接時需要認證雙方用戶的身份,因此用戶雙方必須有各自合法的數字證書,隻有通過認證的用戶才可以進行後續的通信。使用TLS傳輸SIP報文,SIP報文在整個傳輸過程全部被加密,這樣能夠最大程度地保護用戶數據不被他人非法竊取,提高了語音通信的安全性。
關於信令加密的配置請參見“1.12.1 配置使用TLS傳輸協議的SIP會話”。
SIP支持TLS傳輸需要配置TLS的安全策略,具體配置請參見“安全配置指導”中的“PKI”和“SSL”。
目前支持的媒體流協議包括:RTP(Real-Time Transport Protocol,實時傳輸協議)和RTCP(Real-Time Transport Control Protocol,實時傳輸控製協議)。RTP用於為具有實時特征的數據(如交互音頻和視頻)提供端到端網絡的實時傳輸服務;RTCP用於實時監控傳輸質量,並提供擁塞控製和流控製。RTP和RTCP配合使用,就能以有效的反饋和最小的開銷使傳輸效率最佳化。由於網絡中媒體流是明文傳輸的,為了保證通信內容的安全性,SRTP協議應運而生。
SRTP(Secure Real-Time Transport Protocol,安全RTP協議)可以實現對RTP/RTCP報文的加密、認證以及報文重傳保護。關於媒體流加密的配置請參見“1.12.2 配置使用SRTP協議的SIP呼叫”。
使用SRTP加密媒體流,首先需要協商加密信息,目前僅支持在SDP(Session Description Protocol,會話描述協議)中通過crypto頭域進行加密協商。發起方將本端支持的加密屬性信息發送給接收方進行協商,協商成功後,接收方返回相應的加密屬性信息。會話建立後,雙方各自使用自己的密鑰加密RTP/RTCP報文,使用對端的密鑰解密對方發送的RTP/RTCP報文。
SDP協商主要包括以下參數信息:
表1-2 加密屬性參數
參數名稱 |
參數含義 |
說明 |
Tag |
加密屬性信息標識符,在不同的加密屬性中的Tag值必須不同,接收方根據Tag值來決定使用哪一組加密屬性 |
必選協商參數 |
Crypto-Suite |
加密套件,用於定義加密和認證使用的算法。目前隻支持AES_CM_128_HMAC_SHA1_80和AES_CM_128_HMAC_SHA1_32兩種套件 |
必選協商參數 |
Key Parameters |
密鑰參數,用於定義密鑰信息,主要包括密鑰生成方法和密鑰值 |
必選協商參數 |
Session Parameters |
會話信息定義了與該會話相關的參數,如密鑰衍生率、UNENCRYPTED_SRTP、UNENCRYPTED_SRTCP、UNAUTHENTICATED_SRTP、FEC等 |
可選協商參數,暫不支持 |
信令加密或是媒體流加密在設備上既可以通過軟件實現,也可以通過硬件加密引擎實現。通過軟件實現的信令加密或是媒體流加密,由於複雜的加密/解密、認證算法會占用大量的CPU資源,將會影響設備整體處理效率;通過硬件加密引擎實現的信令加密或是媒體流加密,由於複雜的算法處理由硬件完成,因此可以提高設備的處理效率。
若設備支持通過硬件加密引擎進行認證和加/解密處理,則設備會首先將需要處理的數據發送給硬件加密引擎,由硬件加密引擎對數據進行處理之後再發送回設備,最後由設備進行轉發。
有關加密引擎的詳細介紹,請參見“安全配置指導”中的“加密引擎”。
本特性的支持情況與設備型號有關,請以設備的實際情況為準。
型號 |
說明 |
MSR610 |
不支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
不支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
不支持 |
MSR1004S-5G、MSR1004S-5G-CN |
不支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN、MSR1104S-W-5GGL |
不支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
不支持 |
MSR2600-10-X1 |
支持 |
MSR2630-G-X1 |
不支持 |
MSR 2630 |
支持 |
MSR3600-28、MSR3600-51 |
支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
不支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
不支持 |
MSR3600-28-G-X1-DP、MSR3600-51-G-X1-DP |
不支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
不支持 |
MSR-iMC |
不支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR 3610、MSR 3620、MSR 3620-DP、MSR 3640、MSR 3660 |
支持 |
MSR3610-G、MSR3620-G |
不支持 |
MSR3640-G |
支持 |
MSR3640-X1-HI |
支持 |
型號 |
說明 |
MSR810-W-WiNet、MSR810-LM-WiNet |
支持 |
MSR830-4LM-WiNet |
不支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
不支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
不支持 |
MSR2600-6-WiNet |
不支持 |
MSR2600-10-X1-WiNet |
支持 |
MSR2630-WiNet |
支持 |
MSR3600-28-WiNet |
支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
型號 |
說明 |
MSR860-6EI-XS |
不支持 |
MSR860-6HI-XS |
不支持 |
MSR2630-XS |
不支持 |
MSR3600-28-XS |
不支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
支持 |
MSR3610-I-XS |
不支持 |
MSR3610-IE-XS |
不支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
支持 |
型號 |
說明 |
MSR810-LM-GL |
支持 |
MSR810-W-LM-GL |
支持 |
MSR830-6EI-GL |
不支持 |
MSR830-10EI-GL |
不支持 |
MSR830-6HI-GL |
不支持 |
MSR830-10HI-GL |
不支持 |
MSR1004S-5G-GL |
不支持 |
MSR2600-6-X1-GL |
不支持 |
MSR3600-28-SI-GL |
不支持 |
部分設備需要安裝Voice Software License才能使用SIP。有關License的詳細介紹,請參見“基礎配置指導”中的“License管理”。
SIP配置任務如下:
(1) 配置SIP UA注冊
a. (可選)配置SIP鑒權信息
(2) 配置SIP呼叫路由
請選擇以下一項任務進行配置:
(3) (可選)配置SIP呼叫外OPTIONS保活探測
(4) (可選)配置重傳INVITE消息
(5) (可選)配置可信節點
(6) (可選)配置SIP擴展特性
¡ 配置設備域名
¡ 配置SIP兼容性
(7) (可選)配置SIP會話使用的傳輸協議
(8) (可選)配置SIP安全
(9) (可選)配置SIP URL類型
(10) (可選)配置QoS相關選項
(11) (可選)配置基於SIP-T架構的QSIG Tunnel
注冊是SIP UA向注冊服務器發送注冊請求,將SIP UA的相關信息(如地址信息、號碼信息等)提供給注冊服務器。注冊過程如圖1-1所示:
(1) SIP UA向注冊服務器發送注冊請求。
(2) 注冊服務器回複200 OK響應消息,通知SIP UA注冊成功。
圖1-1 SIP注冊過程
注冊服務器可以要求用戶鑒權,以保證用戶身份的合法性。使用鑒權的注冊過程如圖1-2所示。
(1) SIP UA向注冊服務器發送注冊請求,在注冊請求中攜帶需要注冊的號碼。
(2) 注冊服務器回複401/407響應消息表示注冊服務器需要對SIP UA進行鑒權,響應消息中攜帶參與鑒權的字段。
(3) SIP UA根據401/407消息中的鑒權字段查找SIP UA配置,並計算認證信息,然後將認證封裝在注冊報文中,重新向注冊服務器發送帶鑒權的注冊請求。
(4) 注冊服務器對收到的注冊請求中的認證信息進行驗證,如果一致,則回複200 OK響應消息,通知SIP UA注冊成功。
圖1-2 SIP注冊過程(使用鑒權)
為了保證SIP UA能夠成功注冊,需完成以下任務:
· 在語音實體下已經使用match-template命令配置號碼(目前不支持帶有通配符的號碼進行注冊),並使用line命令將語音用戶線綁定到指定的語音實體。
· 確保語音實體和使用的語音用戶線處於開啟狀態(即處於undo shutdown狀態)。
如果注冊服務器需要提供鑒權,那麼在SIP UA上需要設置SIP鑒權信息。SIP鑒權信息可以通過三種方式配置:
· 使用SIP視圖下的user命令配置全局SIP鑒權信息。
· 使用credentials命令配置SIP Trunk賬戶的SIP鑒權信息。關於SIP Trunk賬戶注冊的詳細介紹請參見“2 SIP Trunk”。
· 使用語音實體視圖下的user命令配置語音實體的SIP鑒權信息。
在配置SIP鑒權信息時,需要注意以下事項。
· 支持多個注冊服務器
SIP UA上的號碼最多可以向6個注冊服務器發起注冊,為了區分發送給不同注冊服務器的帶鑒權信息的注冊請求,SIP UA需要根據注冊服務器回複的401/407響應消息中的域名參數來匹配配置的鑒權信息。
在設備上,對於設置鑒權信息的user命令,無論是語音實體或是SIP視圖下,隻能配置一個username,該username可以組合12個不同的域名(命令行中的參數為realm),如果沒有配置域名,表示該鑒權信息可以用於回複任何注冊服務器的鑒權請求,如:
[Sysname-voice-dial-entity100] user 1000 password simple 1000 realm server1
[Sysname-voice-dial-entity100] user 1000 password simple 1000 realm server2
[Sysname-voice-dial-entity100] user 1000 password simple 2000 realm server3
[Sysname-voice-dial-entity100] user 1000 password simple 3000
假設SIP UA收到注冊服務器回複的401/407響應消息中攜帶的域名是server2,那麼SIP UA使用鑒權信息為用戶名1000,密碼1000。如果SIP UA收到注冊服務器回複的401/407響應消息中攜帶的域名是server4,SIP UA上沒有能和其精確匹配的鑒權信息,在這種情況下,就使用不帶域名的鑒權信息,即用戶名1000,密碼3000。
· 存在相同號碼的注冊,選取鑒權信息的優先級規則
如果SIP UA上存在相同號碼的不同語音實體時,選取鑒權信息的優先級規則如下:隻選取語音實體號最小的語音實體下的號碼,若該語音實體沒有此號碼,選擇credentials命令配置的號碼。收到注冊服務器回複的401/407消息後,SIP UA開始根據配置來選擇鑒權信息。首先匹配語音實體視圖下user命令配置的鑒權信息,如果匹配鑒權信息失敗,就查找credentials命令配置的鑒權信息,如果匹配鑒權信息失敗,繼續查找SIP視圖下user命令配置的鑒權信息。一旦匹配成功後,不再繼續匹配。如果選取鑒權信息失敗,則此號碼注冊失敗。一旦已經有號碼成功注冊到注冊服務器上,如果再增加滿足匹配條件的語音實體,即使其優先級高,也不會影響號碼的注冊狀態。
例如,號碼1000需要注冊到某個注冊服務器上,注冊服務器上對於號碼1000的鑒權信息為用戶名abcd,密碼為1234,域名為abc。在SIP UA上對於號碼1000存在如下配置。
# 在POTS語音實體1下配置SIP鑒權信息,用戶名為abcd,以明文方式設置密碼為1234,域名為aaa。
<Sysname> system-view
[Sysname] voice-setup
[Sysname-voice] dial-program
[Sysname-voice-dial] entity 1 pots
[Sysname-voice-dial-entity1] match-template 1000
[Sysname-voice-dial-entity1] user abcd password simple 1234 realm aaa
# 在POTS語音實體2下配置SIP鑒權信息,用戶名為abcd,以明文方式設置密碼為1234,域名為abc。
<Sysname> system-view
[Sysname] voice-setup
[Sysname-voice] dial-program
[Sysname-voice-dial] entity 2 pots
[Sysname-voice-dial-entity2] match-template 1000
[Sysname-voice-dial-entity2] user abcd password simple 1234 realm abc
# 配置SIP Trunk賬戶信息,號碼為1000,用戶名為abcd,以明文方式設置密碼為1234,域名為abc。
<Sysname> system-view
[Sysname] voice-setup
[Sysname-voice] sip
[Sysname-voice-sip] credentials number 1000 username abcd password simple 1234 realm abc
# 配置全局SIP鑒權信息,用戶名為abcd,以明文方式設置密碼為1234,域名為abc。
<Sysname> system-view
[Sysname] voice-setup
[Sysname-voice] sip
[Sysname-voice-sip] user abcd password simple 1234 realm abc
對於語音實體1、2下的號碼1000,選取語音實體號最小的進行匹配。語音實體1的鑒權信息無法和注冊服務器匹配,按匹配順序,繼續匹配credentials命令下配置的鑒權信息,匹配成功後,不再繼續匹配其它配置。使用display voice sip register-status顯示SIP UA的注冊狀態信息,可以查看到在注冊服務器上注冊語音實體1下的號碼1000。
<Sysname> display voice sip register-status
Number Entity Registrar Server Expires Status
--------------------------------------------------------------------------------
1000 1 192.168.4.240:5060 2877 Online
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置全局SIP鑒權信息。
user username password { cipher | simple } string [ realm realm ]
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入語音實體視圖。
entity entity-number pots
(5) 配置POTS語音實體的SIP鑒權信息。
user username password { cipher | simple } string [ realm realm ]
該功能可以控製POTS語音實體是否向注冊服務器發起注冊。如果設備上的某些號碼不需要注冊,或是要在注冊服務器上注銷某些號碼,可以執行undo register-number命令。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入POTS語音實體視圖。
entity entity-number pots
(5) 配置POTS語音實體向注冊服務器發起注冊。
register-number
缺省情況下,完成SIP注冊的相關配置後,POTS語音實體會向注冊服務器發起注冊。
為了確保語音實體或SIP Trunk賬戶在注冊服務器上注冊信息的有效性,語音實體或SIP Trunk賬戶應該在注冊老化時長超時之前重新向注冊服務器發起注冊,這個重新發起注冊的時間由refresh-ratio參數決定。重新注冊時間的計算方法如下:使用refresh-ratio參數配置注冊老化時長的百分比,在“注冊老化時長 × 注冊老化時長的百分比”超時後,語音實體或SIP Trunk賬戶重新向注冊服務器發起注冊。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置SIP UA使用的注冊服務器信息。
registrar registrar-index { ip ip-address | dns domain-name } [ port port-number ] [ expires seconds ] [ refresh-ratio ratio-percentage ] [ scheme { sip | sips } ] [ tcp [ tls ] ]
SIP呼叫路由分為三種:
· 直接使用IP地址。直接配置目的方的IP地址和端口號。
· 使用SIP代理服務器。組網環境中具有SIP代理服務器,可以使用SIP代理服務器查找呼叫目的地址。
· 采用域名作為目的地址。這種配置使得SIP UA不需要關心目的方的具體地址,隻需要知道目的方在網絡中的唯一域名,通過和域名服務器配合,即可實現和目的方的通話。有關DNS的詳細介紹,請參見“三層技術-IP業務配置指導”中的“域名解析”。目前隻支持使用A類查詢方式,需要配置目的地址的域名和端口號。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 配置SIP呼叫路由。
address sip ip ip-address [ port port-number ]
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置SIP UA使用的SIP代理服務器信息。
proxy { dns domain-name port port-number | ip ip-address [ port port-number ] }
(5) 退回語音視圖。
quit
(6) 進入語音撥號策略視圖。
dial-program
(7) 進入VoIP語音實體視圖。
entity entity-number voip
(8) 配置使用代理服務器查找呼叫目的地址。
address sip proxy
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 配置目的方的域名。
address sip dns domain-name port port-number
啟用呼叫外OPTIONS保活探測功能後,本端會按配置的up-interval參數定時發送OPTIONS報文,如果本端設備在up-interval時間內收到對端應答報文,則表示該VoIP語音實體可用,本端繼續使用up-interval參數定時發送OPTIONS報文;如果本端在up-interval時間內沒有收到應答報文或是收到的應答報文為408、499以及5XX(500、501、502、503、504、513除外),會開始重複探測,每次探測的時間間隔由timers options命令控製,在完成重複探測後,若還未收到表示語音實體可用的應答報文,則表示該VoIP語音實體不可用。
如果語音實體被判定為不可用,則本端會按配置的down-interval參數定時發送OPTIONS報文,如果收到表示語音實體可用的應答報文,會開始重複探測,每次探測的時間間隔由timers options命令控製,在重複探測期間,本端每次都能收到對端應答報文,則將該VoIP語音實體的狀態恢複為可用。如果一直沒有收到表示語音實體可用的應答報文,則本端繼續按配置的down-interval參數定時發送OPTIONS報文。
對已經被shutdown的VoIP語音實體,保活探測功能不生效。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 開啟呼叫外OPTIONS保活探測功能,並配置保活報文的時間間隔。
voice-class sip options-keepalive [ up-interval interval ] [ down-interval interval ] [ retry retries ]
缺省情況下,呼叫外OPTIONS保活探測功能處於關閉狀態。
(6) 退回語音視圖。
quit
(7) 進入SIP視圖。
sip
(8) 配置在開啟呼叫外OPTIONS保活探測功能後,在重複探測期間,發送OPTIONS報文的時間間隔。
timers options value
缺省情況下,發送OPTIONS報文的時間間隔為500毫秒。
隻有使用voice-class sip options-keepalive命令開啟保活探測功能後,該配置才能生效。
通話發起方發送INVITE消息給應答方時會啟動定時器,該定時器將使用用戶配置的時間長度計時。在定時器超時後仍未收到應答方的100 response響應報文時,發起方將重傳INVITE消息。
在重傳次數達到配置的數值後仍未收到應答方的100 response響應報文時,設備將做拆線處理。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置INVITE消息未被響應時的重傳次數。
retry invite times
缺省情況下,INVITE消息未被響應將重傳6次。
(5) 配置通話發起方等待應答方回複的100 response消息的時間長度。
timers trying timer-length
缺省情況下,通話發起方等待應答方回複的100 response消息的時間長度為500毫秒。
未開啟可信節點功能,設備會接受所有SIP呼叫。開啟可信節點功能後,設備隻接收來自可信節點的SIP呼叫。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 開啟可信節點功能。
ip address trusted authenticate
缺省情況下,可信節點功能處於關閉狀態,所有節點默認為可信,設備接受所有呼叫請求。
(5) 進入可信節點列表視圖。
ip address trusted list
(6) 添加可信節點。
ip ipv4−address [ mask ]
源接口綁定功能是指在使用SIP協議時,用戶可以通過命令行配置指定發送的SIP信令流或媒體流的源接口。源接口綁定功能將SIP信令流和媒體流的源地址綁定到某一接口上,此接口下的IP地址即為發送媒體流或是SIP信令的源地址。該接口上的地址可以通過DHCP或PPPoE服務器動態分配。這種方式解決了當接口IP地址變換時,需要手工更新配置的缺點,方便網絡管理。目前支持源接口綁定的接口類型有三層以太網接口、VLAN接口、LoopBack接口和Dialer接口(VoIP語音實體下的源接口綁定命令不支持LoopBack接口)。配置此方式時,請使用存在主IP地址,並且狀態為up的接口作為源接口,否則源接口綁定功能失效。
關於DHCP功能的介紹和配置,請參見“三層技術-IP業務配置指導”中的“DHCP”。關於PPPoE功能的介紹和配置,請參見“二層技術-廣域網接入配置指導”中的“PPPoE”。
源接口綁定功能可以在SIP視圖或者是VoIP語音實體視圖下配置。SIP視圖下的bind命令為全局命令,當VoIP語音實體下配置源接口綁定時,會使用VoIP語音實體配置,否則使用全局命令配置的源接口綁定,即VoIP語音實體配置優先於全局配置。
表1-3 配置源接口綁定命令的生效情況
狀態 |
源接口綁定功能的生效情況 |
在通話過程中 |
對於媒體流,媒體流的源接口不會隨配置立即更新。在下一次創建新的SIP會話後,該綁定才會在相應的媒體流上生效 對於SIP信令,配置將立即生效 |
綁定的接口被shutdown |
源接口綁定功能失效,SIP信令流或媒體流的源地址恢複為缺省情況 |
綁定接口的IP地址被刪除或綁定的接口被刪除 |
|
被綁定的接口對應的物理層或鏈路層狀態為down |
|
綁定的接口從DHCP或或PPPoE服務器動態獲得了新的IP地址 |
使用最新的IP地址作為媒體流或信令流的源地址 |
正在進行SIP注冊 |
重新發起注冊時間超時後,配置才會生效 |
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置源接口綁定功能。
bind { control | media } source-interface interface-type interface-number
缺省情況下,使用路由出接口的IP地址作為設備發送SIP信令或媒體流的源地址。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 配置源接口綁定功能。
voice-class sip bind { control | media } source-interface interface-type interface-number
缺省情況下,VoIP語音實體下配置與全局源接口綁定的配置情況相同。
在用戶通話過程中,可以使用兩種方式傳輸DTMF(Dual Tone Multi-Frequency,雙音多頻)信號。
· 帶內方式:將DTMF信號封裝成RTP(Real-Time Transport Protocol,實時傳輸協議)報文發送到對端。
· 帶外方式:從DTMF信號中提取相應信息,然後封裝成SIP消息發送到對端。建議配置該方式時,在主被叫設備上同時開啟outband sip命令。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 創建語音實體,並進入語音實體視圖。
entity entity-number { pots | voip }
(5) 配置使用SIP帶外方式傳輸DTMF信號。
outband sip
缺省情況下,使用帶內方式傳輸DTMF信號。
在通信網絡中會出現呼叫雙方會話已經結束,但可能由於BYE報文的丟失,而沒有通知到SIP代理服務器,導致SIP代理服務器認為會話依然存在,仍然保留該過程中保存的連接信息,造成SIP代理服務器資源的浪費。
為解決該問題,RFC 4028中定義會話更新機製,通過周期性發送re-INVITE或者UPDATE報文,使SIP代理服務器或UA獲取當前會話狀態。
會話定期更新使用Session-Expires和Min-SE兩個頭域,以及422應答(Session Interval Too Small):
· Session-Expires頭域:定義SIP會話的最長持續時間,即在該時間內沒有收到更新請求則認為會話已經結束。
· Min-SE頭域:定義SIP會話的最短持續時間,用於防止頻繁發送會話更新請求導致的帶寬占用。
· 422:當UAS或者SIP代理服務器收到一個攜帶Session-Expires頭域的會話更新請求,如果該頭域的時間值小於本端Min-SE頭域的值,UAS或者SIP代理服務器會發送攜帶自身Min-SE頭域值的422應答拒絕該請求,並使用Min-SE頭域通知請求方其所能接受的最短會話時間。
會話更新執行者和SIP會話的最長持續時間是由SIP UA和SIP代理服務器協商確定的。完成協商後,由會話更新執行者周期性的發送re-INVITE或者UPDATE報文,如果沒有收到應答報文,或是對端沒接收到re-INVITE或者UPDATE報文,則會發送BYE報文結束會話。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 全局開啟會話更新功能。
session refresh
缺省情況下,設備作為UAC,不主動啟用會話更新功能。設備作為UAS,支持會話更新功能。
在UAC上配置該命令。
(5) 配置SIP會話更新參數。
min-se time [ session-expires interval ]
缺省情況下,SIP會話的最短持續時間和SIP會話的最長持續時間均為1800秒。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 開啟VoIP語音實體下的會話更新功能。
voice-class sip session refresh [ global ]
缺省情況下,VoIP語音實體下的會話更新功能開啟狀態與全局開啟狀態保持一致。
會話更新機製能夠解決SIP代理服務器由於未收到BYE報文而依然保留連接信息的問題,避免了SIP代理服務器資源的浪費。若會話的一方不支持會話更新機製,則可使用呼叫內OPTIONS保活探測機製,設備通過周期性發送OPTIONS報文來探測遠端UA的會話狀態。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 全局開啟呼叫內OPTIONS保活探測。
options-ping seconds
缺省情況下,全局呼叫內OPTIONS保活探測功能處於關閉狀態。
在呼叫建立前,如果會話更新協商成功,則呼叫內OPTIONS保活探測功能不生效。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 開啟保活探測功能,並配置保活報文的發送時間間隔。
voice-class sip options-ping { global | seconds }
缺省情況下,VoIP語音實體呼叫內OPTIONS保活探測使用全局配置。
在SIP網絡和PSTN網絡互通時,SIP狀態碼和PSTN原因值之間使用默認的映射關係,具體的缺省值可以參見“語音命令參考”中的“SIP”。為了適應更複雜的組網應用,用戶也可以通過命令行修改默認的映射關係,實現靈活轉換PSTN原因值和SIP狀態碼的映射關係。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置與PSTN原因值對應的SIP狀態碼。
set pstn-cause pstn-cause sip-status sip-status
缺省情況下,PSTN原因值和SIP狀態碼的對應關係請參見“語音命令參考”中的“SIP”。
(5) 配置與SIP狀態碼對應的PSTN原因值。
set sip-status sip-status pstn-cause pstn-cause
缺省情況下,SIP狀態碼和PSTN原因值的對應關係請參見“語音命令參考”中的“SIP”。
(6) 顯示PSTN原因值和SIP狀態碼的映射關係。
display voice sip map { pstn-sip | sip-pstn }
當呼叫發起方需要隱藏主叫號碼,或當ISDN之間通過SIP網絡連接,需要通過SIP網絡透傳主被叫號碼信息時,可以配置如下頭域。
· 配置添加Privacy頭域:如果Privacy頭域中出現“Privacy: none”,表示在頭域中不隱藏主叫號碼。如果Privacy頭域中出現“Privacy: id”,表示隱藏主叫號碼。
· 配置添加Remote-Party-ID頭域:如果該頭域中出現“privacy=off”,表示在頭域中顯示主叫號碼;如果該頭域中出現“privacy=full”,表示隱藏主叫號碼。配置此頭域後,表示設備發送的INVITE消息中攜帶Remote-Party-ID頭域。接收設備上收到攜帶該頭域的INVITE請求,無論是否配置此頭域,都會優先從該頭域中獲取主叫信息。
Remote-Party-ID頭域不能與P-Preferred-Identity頭域或P-Asserted-Identity頭域同時存在。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置發送的INVITE消息中攜帶Privacy頭域。
privacy
缺省情況下,發送的SIP消息中不攜帶Privacy頭域。
(5) 配置發送的INVITE消息中攜帶Remote-Party-Id頭域。
remote-party-id
缺省情況下,發送的INVITE消息中攜帶Remote-Party-ID頭域。
配置asserted-id pai命令,SIP消息中會攜帶P-Asserted-Identity頭域。配置asserted-id ppi命令,SIP消息中會攜帶P-Preferred-Identit頭域。P-Preferred-Identity、P-Asserted-Identity和Remote-Party-ID這三個頭域中的任何兩個不能同時存在。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置發送的SIP消息中攜帶P-Asserted-Identity頭域或者P-Preferred-Identity頭域。
asserted-id { pai | ppi }
缺省情況下,發送的SIP消息中不攜帶P-Asserted-Identit頭域或者P-Preferred-Identity頭域。
如表1-1所示,SIP響應消息中有一類為臨時響應,對臨時響應可以開啟可靠的重傳機製,保證UAS回複的臨時響應18x不會因為網絡環境不穩定而丟失。SIP可靠臨時響應的過程如下:
(1) UAC在發送的INVITE消息中攜帶Require或Supported頭域,表示強製要求或支持SIP可靠臨時響應。
(2) UAS回複可靠的臨時響應(18x中攜帶Require: value頭域)。
(3) UAC收到可靠的臨時響應後,向UAS發送PRACK消息,表示確認收到臨時響應。
(4) UAS收到PRACK消息後回複200 OK。
如果在規定時間內,UAS沒有收到UAC發送的PRACK消息,UAS會認為UAC沒有收到18x,然後重發18x消息,以此來實現SIP臨時響應的可靠傳輸。關於SIP可靠臨時響應的詳細說明可以參考RFC 3262。
如果需要使用SIP可靠臨時響應,建議在UAC和UAS上配置頭域中的value值保持一致。rel1xx require和rel1xx supported的區別如下:
· 在UAC上配置rel1xx require命令,UAC發送的INVITE請求中攜帶Require: value頭域,表示UAC強製要求UAS回複可靠的臨時響應(18x中攜帶Require: value頭域)。如果在UAS上配置rel1xx disable命令,即不支持SIP可靠臨時響應,在這種情況下,UAS回複420,呼叫被終止。
· 在UAC上配置rel1xx supported命令,UAC發送的INVITE請求中攜帶Supported: value頭域,表示UAC支持但不強製SIP可靠臨時響應。如果在UAS上配置rel1xx disable命令,即不支持SIP可靠臨時響應,UAS回複不可靠的臨時響應(18x中不攜帶Require: value頭域)。在這種情況下,呼叫正常進行,但是不能可靠傳輸臨時響應。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置SIP可靠臨時響應。
rel1xx { disable | require value | supported value }
缺省情況下,發送的SIP消息中攜帶Supported: value頭域,即命令行rel1xx supported 100rel生效。
開啟SIP支持VRF(VPN Routing&Forwarding,VPN路由轉發)功能後,語音SIP服務與指定的VPN實例相關聯,PE(Provider Edge,服務提供商網絡邊緣)設備能夠在VPN實例中使用SIP業務。VPN實例關聯的接口地址將作為設備發送SIP信令或媒體流的源地址。
當正在使用呼叫、注冊、訂閱或保活等SIP業務時,無法配置和取消語音SIP服務與指定VPN實例關聯。另外,在配置語音SIP服務與指定VPN實例關聯前,需要先創建該VPN實例。
(1) 進入係統視圖。
system-view
(2) 創建VPN實例。
ip vpn-instance vpn-instance-name
(3) 退回係統視圖。
quit
(4) 進入語音視圖。
voice-setup
(5) 進入SIP視圖。
sip
(6) 配置語音SIP服務與指定VPN實例關聯。
vpn-instance vpn-instance-name
缺省情況下,語音SIP服務不與任何VPN實例關聯。
未配置設備的域名,本端設備發出的SIP報文中的CONTACT頭域會攜帶IP地址;配置了設備的域名後,本端設備發出的SIP報文中的CONTACT頭域會攜帶域名。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置設備域名。
sip-domain domain-name
某些第三方設備由於沒有嚴格按照SIP協議標準實現,因而在與這些設備交互時需要配置SIP兼容性,具體支持情況如下:
· 在將釋放的呼叫原因值Cause 27 (Destination out of order)轉換為Cause 38(Network out of order)發送給對端設備時,需要指定cause-code參數;
· 在收到被叫方不帶媒體信息的18x報文時,若要保持已經存在的早期媒體通道,需指定early-media參數;
· 在交互T.38傳真報文時,需要指定t38參數;
· 在進行傳真透傳/Modem透傳時,需要指定x-param參數。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置SIP兼容性。
sip-compatible { cause-code | early-media | t38 | x-param }
缺省情況下,未配置SIP兼容性。
多種兼容性配置可共存。
開啟本功能後,被叫方設備收到呼叫建立請求後向主叫回複帶有媒體信息的183 Session Progress應答。關閉本功能後,被叫方設備收到呼叫建立請求後向主叫回複不帶媒體信息的180 Ringing應答。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 開啟早期媒體協商功能。
early-media enable
缺省情況下,早期媒體協商功能處於開啟狀態。
發送方和接收方必須配置相同的傳輸協議類型,如在發送方配置session transport tcp,那麼在接收方需要配置transport tcp。
使用TCP傳輸協議進行呼叫、注冊或訂閱功能,都需要開啟TCP傳輸協議的偵聽端口。
目前不支持呼叫中切換傳輸協議。
SIP視圖下的session transport命令表示的是全局采用的傳輸協議類型,如果用戶需要針對某個呼叫采用其他的傳輸協議時,可以在對應的VoIP語音實體視圖下配置相應的傳輸協議類型。當VoIP語音實體視圖下配置的傳輸協議類型與SIP視圖下的session transport命令配置的傳輸協議類型不一致時,則使用該VoIP語音實體下的配置,即VoIP語音實體配置優先於全局配置。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置發起SIP呼叫使用的全局傳輸協議。
session transport { tcp | udp }
缺省情況下,全局傳輸協議類型為UDP。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 配置發起SIP呼叫使用的傳輸協議。
session transport { tcp | udp }
缺省情況下,VoIP語音實體的傳輸協議與全局傳輸協議相同。
在設備上開啟TLS傳輸協議的偵聽端口後,設備才能接收到對端使用UDP/TCP傳輸協議發送的報文。
執行undo transport命令會刪除當前已經建立的連接。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 開啟UDP/TCP傳輸協議的偵聽端口。
transport { tcp | udp }
缺省情況下,UDP和TCP傳輸協議偵聽端口處於開啟狀態。
TCP連接的老化時間是指建立的TCP連接處於空閑狀態的時間,老化時間過後,會刪除已建立的TCP連接。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置TCP連接的老化時間。
timers connection aging tcp tcp-age-time
缺省情況下,TCP連接的老化時間為5分鍾。
發送方和接收方必須配置相同的傳輸協議類型,如在發送方處配置session transport tls,那麼在接收方需要配置transport tls。
使用TLS傳輸協議進行呼叫時,VoIP語音實體下address sip命令的缺省端口號將改為5061。相關命令請參見“語音命令參考/SIP”中的命令address sip。
使用TLS傳輸協議進行注冊時,registrar命令的缺省端口號為5061。相關命令請參見“語音命令參考/SIP”中的命令registrar。
使用TLS傳輸協議進行訂閱時,mwi命令的缺省端口號為5061。相關命令請參見“語音命令參考/語音業務”中的命令mwi。
使用TLS傳輸協議進行呼叫、注冊或訂閱功能,都需要完成配置SSL策略的配置,確保設備上已申請的證書可用,並開啟TLS傳輸協議的偵聽端口。SSL策略的配置方法請參見“安全配置指導”中的“PKI”和“SSL”。
SIP視圖下的session transport命令表示的是全局采用的傳輸協議類型,如果用戶需要針對某個呼叫使用其它的傳輸協議時,可以在對應的VoIP語音實體視圖下配置相應的傳輸協議類型。當VoIP語音實體視圖下配置的傳輸協議類型與SIP視圖下的session transport命令配置的傳輸協議類型不一致時,則使用該VoIP語音實體下的配置,即VoIP語音實體配置優先於全局配置。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置客戶端的策略名稱。
crypto ssl-client-policy client-policy-name
(5) 配置服務器端的策略名稱。
crypto ssl-server-policy server-policy-name
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置發起SIP呼叫使用的全局TLS傳輸協議。
session transport tcp [ tls ]
缺省情況下,全局傳輸協議類型為UDP協議。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 配置VoIP語音實體發起SIP呼叫使用TLS傳輸協議。
session transport tcp [ tls ]
缺省情況下,VoIP語音實體的傳輸協議與全局傳輸協議相同。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 開啟TLS傳輸協議的偵聽端口。
transport tcp [ tls ]
缺省情況下,TLS協議偵聽端口處於關閉狀態。
設備上開啟TLS傳輸協議的偵聽端口後,才能收到對端使用TLS傳輸協議發送的報文。
執行undo transport命令會刪除當前已經建立的連接。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置TLS連接的老化時間。
timers connection aging tls tls-age-time
缺省情況下,TLS連接的老化時間為30分鍾。
TLS連接的老化時間是指建立的TLS連接處於空閑狀態的時間,老化時間過後,會刪除已建立的TLS連接。
設備作為呼叫發起方:
· 配置srtp命令,表示設備在發起呼叫時,INVITE消息中攜帶crypto和RTP/SAVP參數,如果收到對方的488應答,則會釋放呼叫。
· 配置srtp fallback命令,表示設備在發起呼叫時,INVITE消息中攜帶crypto和RTP/SAVP參數,如果收到對方的488應答,會重新發送攜帶RTP/AVP參數的INVITE消息。
設備作為呼叫接收方:
· 配置srtp命令,表示設備隻能接收使用SRTP協議的呼叫。
· 配置srtp fallback命令,表示設備會優先使用SRTP協議進行媒體流協商,若協商失敗,則使用RTP協議。
SIP視圖下的srtp命令為全局命令,當VoIP語音實體下配置了媒體流協議時,則使用VoIP語音實體配置,否則使用SIP視圖下的srtp命令的配置,即VoIP語音實體配置優先於全局配置。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置SIP呼叫使用的全局SRTP協議。
srtp [ fallback ]
缺省情況下,SIP呼叫使用RTP協議。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 配置發起SIP呼叫使用的SRTP協議。
srtp [ fallback ]
缺省情況下,VoIP語音實體下的媒體流協議與全局媒體流協議相同。
SRTP和SRTCP報文中包含MKI(Master Key Identifier,主密鑰標識符)字段,配置MKI長度即配置MKI字段在SRTP或SRTCP報文中占用的空間大小。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置語音MKI長度。
mki mki-length
缺省情況下,不支持MKI字段。
若要配置mki命令並使其生效,SIP呼叫需使用SRTP協議。
SIP協議中的URL(Uniform Resource Locator,統一資源定位符)表示的是統一資源定位信息,目前設備可以支持SIP和SIPS(SIP secure,安全SIP)兩種類型。當用戶希望SIP信令交互能夠得到端到端的安全TLS連接保證,可以配置SIPS類型,達到避免信息泄露的目的。
通過配置可以指定呼叫采用的URL類型類別。SIP視圖下的url命令為全局命令,當VoIP語音實體下配置了URL類型時,會使用VoIP語音實體配置,否則使用全局命令配置的URL類型,即VoIP語音實體配置優先於全局配置。
隻有傳輸協議為TLS時才能使用SIPS的URL類型。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置發起呼叫使用的全局URL類型。
url { sip | sips }
缺省情況下,全局使用SIP格式的URL類型。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 配置VoIP語音實體的URL類型。
voice-class sip url { sip | sips }
缺省情況下,VoIP語音實體的URL類型與全局的URL類型相同。
用戶可以通過設置DSCP值對承載媒體流或語音信令的IP報文中DSCP值進行標記,從而實現語音服務質量的差異化。
載媒體流的IP報文中DSCP值可以在SIP視圖或語音實體視圖下配置。SIP視圖下的ip qos dscp命令為全局命令,當語音實體下配置媒體流的IP報文中DSCP值時,則使用語音實體配置,否則使用全局命令配置的DSCP值,即語音實體配置優先於全局配置。關於語音實體視圖下配置該值的方法請參見“語音配置指導”中的“語音實體”。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置承載媒體流或語音信令的IP報文中DSCP值。
ip qos dscp { dscp-value | dscp-value-set } { media | signaling }
缺省情況下,承載媒體流或語音信令的IP報文中DSCP值為ef(101110)。
基於SIP-T架構的QSIG Tunnel特性提供一種類似隧道的方式,通過“封裝”和“映射”將ISDN信令轉化為SIP消息(即在SIP消息中攜帶原始的QSIG信令),實現ISDN網絡跨越SIP網絡通信。和簡單的對QSIG信令和SIP消息進行映射相比,SIP-T協議在傳輸中保持ISDN信令內容的完整性和豐富性,可以無損地將ISDN信令傳輸到跨SIP網絡的另一側ISDN網絡。
在如下所示的組網中,Telephone A呼叫Telephone B,為了將QSIG信令的內容通過SIP消息透傳給Router B,需要在在出口網關Router A上配置signaling forward rawmsg命令,實現Router A發送攜帶QSIG信令的SIP消息。在入口網關Router B上不需要配置該命令,Router B收到攜帶QSIG信令的SIP消息後,能夠從SIP消息中提取QSIG信令,並發送到ISDN側。並且,Router B收到ISDN側的QSIG信令後,也能夠通過SIP應答消息將QSIG信令發送到Router A。
圖1-3 基於SIP-T架構的QSIG Tunnel
當配置了QSIG協議後,由於SIP消息中會默認攜帶原始QSIG信令,在與SIP服務器互通時可能會出現服務器無法識別這種格式報文的情況,故與SIP服務器互通的組網中,建議數字語音接口使用其他支持的信令協議。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 配置SIP消息中攜帶QSIG信令。
signaling forward rawmsg
缺省情況下,SIP消息中不攜帶QSIG信令。
當ISDN網絡使用重疊發號時,設備無法支持該功能。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後SIP的運行情況,通過查看顯示信息驗證配置的效果。
表1-4 SIP顯示和維護
操作 |
命令 |
顯示可信節點列表信息 |
display voice ip address trusted list |
顯示SIP UA的注冊狀態信息 |
display voice sip register-status |
顯示PSTN原因值和SIP狀態碼的映射關係 |
display voice sip map { pstn-sip | sip-pstn } |
顯示SIP當前的呼叫信息 |
display voice sip call |
顯示SIP使用的傳輸層上的連接信息 |
display voice sip connection { tcp | tls } |
刪除SIP使用的傳輸層上的連接 |
reset voice sip connection { tcp | tls } id conn-id |
Router A和Router B作為SIP UA,要求采用SIP協議直接呼叫目的方IP地址。
圖1-4 SIP UA直接呼叫目的方IP地址組網圖
(1) 配置Router A
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterA> system-view
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ip address 192.168.2.1 255.255.255.0
[RouterA-GigabitEthernet1/0/1] quit
# 配置VoIP語音實體,呼叫目的IP地址為192.168.2.2,被叫號碼模板為2222。
[RouterA] voice-setup
[RouterA-voice] dial-program
[RouterA-voice-dial] entity 2222 voip
[RouterA-voice-dial-entity2222] address sip ip 192.168.2.2
[RouterA-voice-dial-entity2222] match-template 2222
[RouterA-voice-dial-entity2222] quit
# 配置POTS語音實體中的本地號碼為1111,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterA-voice-dial] entity 1111 pots
[RouterA-voice-dial-entity1111] line 2/1/1
[RouterA-voice-dial-entity1111] match-template 1111
(2) 配置Router B
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] ip address 192.168.2.2 255.255.255.0
[RouterB-GigabitEthernet1/0/1] quit
# 配置POTS語音實體中的本地號碼為2222,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterB] voice-setup
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 2222 pots
[RouterB-voice-dial-entity2222] line 2/1/1
[RouterB-voice-dial-entity2222] match-template 2222
[RouterB-voice-dial-entity2222] quit
# 配置VoIP語音實體,呼叫目的IP地址為192.168.2.1,被叫號碼模板為1111。
[RouterB-voice-dial] entity 1111 voip
[RouterB-voice-dial-entity1111] address sip ip 192.168.2.1
[RouterB-voice-dial-entity1111] match-template 1111
· 電話1111可以呼叫電話2222,同理,電話2222也可以呼叫電話1111。
· 使用display voice sip call命令可以查看到SIP當前的呼叫信息。
Router A和Router B作為SIP UA,先將號碼注冊到注冊服務器上,然後通過SIP代理服務器完成呼叫。
· 在Router A上,所有號碼使用相同的鑒權用戶名和密碼。鑒權用戶名為routerA,密碼為1234。
· 在Router B上,號碼2222的鑒權用戶名為routerB,密碼為7890,域名為server1。
圖1-5 SIP UA通過SIP代理服務器呼叫組網圖
(1) 配置Router A
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterA> system-view
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ip address 192.168.2.1 255.255.255.0
[RouterA-GigabitEthernet1/0/1] quit
# 配置SIP UA使用的SIP注冊服務器和SIP代理服務器的IP地址。
[RouterA] voice-setup
[RouterA-voice] sip
[RouterA-voice-sip] registrar 1 ip 192.168.2.3
[RouterA-voice-sip] proxy ip 192.168.2.3
# 配置鑒權信息,用戶名為routerA,以明文方式設置密碼為1234。
[RouterA-voice-sip] user routerA password simple 1234
[RouterA-voice-sip] quit
# 配置POTS語音實體中的本地號碼為1111,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterA-voice] dial-program
[RouterA-voice-dial] entity 1111 pots
[RouterA-voice-dial-entity1111] line 2/1/1
[RouterA-voice-dial-entity1111] match-template 1111
[RouterA-voice-dial-entity1111] quit
# 配置VoIP語音實體,使用SIP代理服務器查找呼叫目的地址,被叫號碼模板為2222。
[RouterA-voice-dial] entity 2222 voip
[RouterA-voice-dial-entity2222] address sip proxy
[RouterA-voice-dial-entity2222] match-template 2222
[RouterA-voice-dial-entity2222] quit
(2) 配置Router B
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] ip address 192.168.2.2 255.255.255.0
[RouterB-GigabitEthernet1/0/1] quit
# 配置SIP UA使用的注冊服務器和SIP代理服務器的IP地址。
[RouterB] voice-setup
[RouterB-voice] sip
[RouterB-voice-sip] registrar 1 ip 192.168.2.3
[RouterB-voice-sip] proxy ip 192.168.2.3
[RouterB-voice-sip] quit
# 配置POTS語音實體中的本地號碼為2222,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 2222 pots
[RouterB-voice-dial-entity2222] line 2/1/1
[RouterB-voice-dial-entity2222] match-template 2222
# 配置鑒權信息,用戶名為routerB,以明文方式設置密碼為7890,域名為server1。
[RouterB-voice-dial-entity2222] user routerB password simple 7890 realm server1
# 配置VoIP語音實體,使用SIP代理服務器查找呼叫目的地址,被叫號碼模板為1111。
[RouterB-voice-dial-entity2222] quit
[RouterB-voice-dial] entity 1111 voip
[RouterB-voice-dial-entity1111] address sip proxy
[RouterB-voice-dial-entity1111] match-template 1111
[RouterB-voice-dial-entity1111] quit
· 雙方的號碼在注冊服務器上成功注冊後,電話1111可以通過SIP代理服務器呼叫電話2222,同理,電話2222可以通過SIP代理服務器呼叫電話1111。
· 使用display voice sip register-status命令可以查看到電話1111和電話2222的注冊狀態。
· 使用display voice sip call命令可以查看到SIP當前的呼叫信息。
Router A和Router B作為SIP UA,通過DNS服務器查詢目的地址後進行SIP呼叫。
圖1-6 SIP UA通過DNS服務器查詢目的地址後呼叫組網圖
(1) 配置Router A
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterA> system-view
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ip address 192.168.2.1 255.255.255.0
[RouterA-GigabitEthernet1/0/1] quit
# 配置主機名cc.example.com對應的IP地址為192.168.2.2。
[RouterA] ip host cc.example.com 192.168.2.2
# 配置VoIP語音實體,呼叫目的的域名為cc.example.com,被叫號碼模板為2222。
[RouterA] voice-setup
[RouterA-voice] dial-program
[RouterA-voice-dial] entity 2222 voip
[RouterA-voice-dial-entity2222] address sip dns cc.example.com port 5060
[RouterA-voice-dial-entity2222] match-template 2222
[RouterA-voice-dial-entity2222] quit
# 配置POTS語音實體中的本地號碼為1111,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterA-voice-dial] entity 1111 pots
[RouterA-voice-dial-entity1111] line 2/1/1
[RouterA-voice-dial-entity1111] match-template 1111
(2) 配置Router B
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] ip address 192.168.2.2 255.255.255.0
[RouterB-GigabitEthernet1/0/1] quit
# 配置POTS語音實體中的本地號碼為2222,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterB] voice-setup
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 2222 pots
[RouterB-voice-dial-entity2222] line 2/1/1
[RouterB-voice-dial-entity2222] match-template 2222
[RouterB-voice-dial-entity2222] quit
# 配置VoIP語音實體,呼叫目的IP地址為192.168.2.1,被叫號碼模板為1111。
[RouterB-voice-dial]entity 1111 voip
[RouterB-voice-dial-entity1111] address sip ip 192.168.2.1
[RouterB-voice-dial-entity1111] match-template 1111
· 電話1111通過DNS服務器查詢目的地址後呼叫電話2222。電話2222通過查詢被叫的靜態IP地址呼叫電話1111。
· 使用display voice sip call命令可以查看到SIP當前的呼叫信息。
Router A和Router B作為SIP UA,要求號碼為1111的電話使用TCP傳輸協議呼叫號碼為2222的電話。
圖1-7 SIP呼叫使用TCP傳輸協議組網圖
(1) 配置Router A
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterA> system-view
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ip address 192.168.2.1 255.255.255.0
[RouterA-GigabitEthernet1/0/1] quit
# 配置發起SIP呼叫使用的全局TCP傳輸協議。
[RouterA] voice-setup
[RouterA-voice] sip
[RouterA-voice-sip] session transport tcp
[RouterA-voice-sip] quit
# 配置VoIP語音實體,呼叫目的IP地址為192.168.2.2,被叫號碼模板為2222。
[RouterA-voice] dial-program
[RouterA-voice-dial] entity 2222 voip
[RouterA-voice-dial-entity2222] address sip ip 192.168.2.2
[RouterA-voice-dial-entity2222] match-template 2222
[RouterA-voice-dial-entity2222] quit
# 配置POTS語音實體中的本地號碼為1111,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterA-voice-dial] entity 1111 pots
[RouterA-voice-dial-entity1111] line 2/1/1
[RouterA-voice-dial-entity1111] match-template 1111
(2) 配置Router B
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] ip address 192.168.2.2 255.255.255.0
[RouterB-GigabitEthernet1/0/1] quit
# 配置接收SIP呼叫時使用的傳輸協議為TCP(此步驟可選,因為在缺省情況下,TCP傳輸協議偵聽端口處於開啟狀態)。
[RouterB] voice-setup
[RouterB-voice] sip
[RouterB-voice-sip] transport tcp
[RouterB-voice-sip] quit
# 配置POTS語音實體中的本地號碼為2222,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 2222 pots
[RouterB-voice-dial-entity2222] line 2/1/1
[RouterB-voice-dial-entity2222] match-template 2222
# 配置VoIP語音實體,呼叫目的IP地址為192.168.2.1,被叫號碼模板為1111。
[RouterB-voice-dial] entity 1111 voip
[RouterB-voice-dial-entity1111] address sip ip 192.168.2.1
[RouterB-voice-dial-entity1111] match-template 1111
電話1111使用TCP傳輸協議與電話2222建立通話,通過display voice sip connection tcp命令可以查看TCP連接的信息。
Router A和Router B作為SIP UA,要求使用TLS傳輸協議建立SIP呼叫。
圖1-8 SIP呼叫使用TLS傳輸協議組網圖
· 本配置舉例中,CA服務器上采用RSA Keon軟件。關於TLS策略名稱的具體配置請參見“安全配置指導”中的“SSL”。
· 為保證設備上已申請的證書可用,請確保設備當前係統時間處於證書的有效期範圍之內。
(1) 配置Router A
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterA> system-view
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ip address 192.168.2.1 255.255.255.0
[RouterA-GigabitEthernet1/0/1] quit
# 配置PKI實體名稱為aaa,通用名為RouterA。
[RouterA] pki entity aaa
[RouterA-pki-entity-aaa] common-name RouterA
[RouterA-pki-entity-aaa] quit
# 配置PKI域。創建PKI域voice,配置設備信任的CA的名稱為voice。
[RouterA] pki domain voice
[RouterA-pki-domain-voice] ca identifier voice
# 配置注冊服務器URL,格式為https://host:port/Issuing Jurisdiction ID。其中的Issuing Jurisdiction ID為CA服務器上生成的16進製字符串。
[RouterA-pki-domain-voice] certificate request url https://192.168.2.88:446/bd0683e5a369eb4edbb4ef502eaca6ec42d24e97
# 配置證書申請的注冊受理機構為CA。
[RouterA-pki-domain-voice] certificate request from ca
# 指定PKI實體名稱為aaa並指定RSA密鑰對的名稱為keyname。
[RouterA-pki-domain-voice] certificate request entity aaa
[RouterA-pki-domain-voice] public-key rsa general name keyname
[RouterA-pki-domain-voice] quit
# 生成RSA算法的本地密鑰對。
[RouterA] public-key local create rsa name keyname
# 獲取CA證書並下載至本地。
[RouterA] pki retrieve-certificate domain voice ca
# 手工申請本地證書。
[RouterA] pki request-certificate domain voice
# 創建SSL服務器端策略,配置SSL服務器端策略所使用的PKI域。
[RouterA] ssl server-policy server
[RouterA-ssl-server-policy-server] pki-domain voice
# 創建SSL客戶端策略,配置SSL客戶端策略所使用的PKI域。
[RouterA] ssl client-policy client
[RouterA-ssl-client-policy-client] pki-domain voice
# 配置SIP會話使用TLS傳輸協議時選擇的策略名稱。
[RouterA] voice-setup
[RouterA-voice] sip
[RouterA-voice-sip] crypto ssl-server-policy server
[RouterA-voice-sip] crypto ssl-client-policy client
# 配置發起SIP呼叫時采用的傳輸協議類型為TLS。
[RouterA-voice-sip] session transport tcp tls
# 開啟TLS傳輸協議的偵聽端口。
[RouterA-voice-sip] transport tcp tls
[RouterA-voice-sip] quit
# 配置VoIP語音實體,呼叫目的IP地址為192.168.2.2,被叫號碼模板為2222,目的端口號為5061。
[RouterA-voice] dial-program
[RouterA-voice-dial] entity 2222 voip
[RouterA-voice-dial-entity2222] address sip ip 192.168.2.2 port 5061
[RouterA-voice-dial-entity2222] match-template 2222
[RouterA-voice-dial-entity2222] quit
# 配置POTS語音實體中的本地號碼為1111,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterA-voice-dial] entity 1111 pots
[RouterA-voice-dial-entity1111] line 2/1/1
[RouterA-voice-dial-entity1111] match-template 1111
(2) 配置Router B
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] ip address 192.168.2.2 255.255.255.0
[RouterB-GigabitEthernet1/0/1] quit
# 配置PKI實體名稱為aaa,通用名為RouterB。
[RouterB] pki entity aaa
[RouterB-pki-entity-aaa] common-name RouterB
[RouterB-pki-entity-aaa] quit
# 配置PKI域。創建PKI域voice,配置設備信任的CA的名稱為voice。
[RouterB] pki domain voice
[RouterB-pki-domain-voice] ca identifier voice
# 配置注冊服務器URL,格式為https://host:port/Issuing Jurisdiction ID。其中的Issuing Jurisdiction ID為CA服務器上生成的16進製字符串。
[RouterB-pki-domain-voice] certificate request url https://192.168.2.88:446/bd0683e5a369eb4edbb4ef502eaca6ec42d24e97
# 配置證書申請的注冊受理機構為CA。
[RouterB-pki-domain-voice] certificate request from ca
# 指定PKI實體名稱為aaa。
[RouterB-pki-domain-voice] certificate request entity aaa
[RouterB-pki-domain-voice] quit
# 生成RSA算法的本地密鑰對。
[RouterB] public-key local create rsa
# 獲取CA證書並下載至本地。
[RouterB] pki retrieve-certificate domain voice ca
# 手工申請本地證書。
[RouterB] pki request-certificate domain voice
# 創建SSL服務器端策略,配置SSL服務器端策略所使用的PKI域。
[RouterB] ssl server-policy server
[RouterB-ssl-server-policy-server] pki-domain voice
# 創建SSL客戶端策略,配置SSL客戶端策略所使用的PKI域。
[RouterB] ssl client-policy client
[RouterB-ssl-client-policy-client] pki-domain voice
# 配置SIP會話使用TLS傳輸協議時選擇的策略名稱。
[RouterB] voice-setup
[RouterB-voice] sip
[RouterB-voice-sip] crypto ssl-server-policy server
[RouterB-voice-sip] crypto ssl-client-policy client
# 配置發起SIP呼叫時采用的傳輸協議類型為TLS。
[RouterB-voice-sip] session transport tcp tls
# 開啟TLS傳輸協議的偵聽端口。
[RouterB-voice-sip] transport tcp tls
[RouterB-voice-sip] quit
# 配置POTS語音實體中的本地號碼為2222,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 2222 pots
[RouterB-voice-dial-entity2222] line 2/1/1
[RouterB-voice-dial-entity2222] match-template 2222
# 配置VoIP語音實體,呼叫目的IP地址為192.168.2.1,被叫號碼模板為1111,目的端口號為5061。
[RouterB-voice-dial] entity 1111 voip
[RouterB-voice-dial-entity1111] address sip ip 192.168.2.1 port 5061
[RouterB-voice-dial-entity1111] match-template 1111
雙方通過TLS傳輸協議建立SIP通話,通過display voice sip connection tls命令可以查看TLS連接的信息。
Router A和Router B作為SIP UA采用SIP協議進行呼叫。要求在呼叫建立之後,通話雙方在通話過程中可以使用SIP帶外方式傳輸DTMF信號。
圖1-9 SIP帶外方式傳輸DTMF信號組網圖
(1) 配置Router A
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterA> system-view
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ip address 192.168.2.1 255.255.255.0
[RouterA-GigabitEthernet1/0/1] quit
# 配置VoIP語音實體,呼叫目的IP地址為192.168.2.2,被叫號碼模板為2222。
[RouterA] voice-setup
[RouterA-voice] dial-program
[RouterA-voice-dial] entity 2222 voip
[RouterA-voice-dial-entity2222] address sip ip 192.168.2.2
[RouterA-voice-dial-entity2222] match-template 2222
# 配置使用SIP帶外方式傳輸DTMF信號。
[RouterA-voice-dial-entity2222] outband sip
[RouterA-voice-dial-entity2222] quit
# 配置POTS語音實體中的本地號碼為1111,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterA-voice-dial] entity 1111 pots
[RouterA-voice-dial-entity1111] line 2/1/1
[RouterA-voice-dial-entity1111] match-template 1111
# 配置使用SIP帶外方式傳輸DTMF信號。
[RouterA-voice-dial-entity1111] outband sip
(2) 配置Router B
# 配置GigabitEthernet1/0/1接口的IP地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] ip address 192.168.2.2 255.255.255.0
[RouterB-GigabitEthernet1/0/1] quit
# 配置VoIP語音實體,呼叫目的IP地址為192.168.2.1,被叫號碼模板為1111。
[RouterB] voice-setup
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 1111 voip
[RouterB-voice-dial-entity1111] address sip ip 192.168.2.1
[RouterB-voice-dial-entity1111] match-template 1111
# 配置使用SIP帶外方式傳輸DTMF信號。
[RouterB-voice-dial-entity1111] outband sip
[RouterB-voice-dial-entity1111] quit
# 配置POTS語音實體中的本地號碼為2222,並將FXS語音用戶線line2/1/1綁定到此POTS語音實體上。
[RouterB-voice-dial] entity 2222 pots
[RouterB-voice-dial-entity2222] line 2/1/1
[RouterB-voice-dial-entity2222] match-template 2222
# 配置使用SIP帶外方式傳輸DTMF信號。
[RouterB-voice-dial-entity2222] outband sip
呼叫建立之後,通話過程中一方按鍵,DTMF信號會通過SIP帶外方式傳輸到對方。
在如圖2-1所示的傳統電話網絡中,企業通過內部的PBX完成所有內部呼叫,企業和外部的通信都是通過PSTN電話運營商提供的中繼線路進行呼叫。
隨著IP技術的發展,越來越多的企業部署如圖2-2所示的基於SIP協議的IP-PBX,企業的內部呼叫都可以使用SIP協議。但企業如果要進行對外呼叫,仍然需要租用PSTN電話運營商的中繼線路。這種組網的缺點是企業需要同時維護SIP網絡和PSTN網絡,增加了管理難度。
隨著企業內大量部署支持SIP協議的IP-PBX以及通過SIP協議提供語音通信基礎架構的ITSP(Internet Telephone Service Provider,互聯網電話運營商)的逐漸增多,企業迫切需要一種能提供類似於傳統PSTN中繼線路的SIP中繼技術,用於連接企業IP-PBX與外部的Internet電話運營商,實現全網IP化。這種SIP中繼技術就是SIP Trunk,其典型組網圖如圖2-3所示。
SIP Trunk作為一種功能可以嵌入到部署在企業網絡邊緣的語音網關或防火牆中。能夠實現SIP Trunk功能的設備稱為SIP Trunk設備,或TG網關。
SIP Trunk具有以下特點:
· SIP Trunk設備和ITSP之間隻需建立唯一的、安全的、具有QoS保證的SIP Trunk鏈路。通過該鏈路來承載企業的多路並發呼叫,運營商隻需對該鏈路進行鑒權,不再對承載於該鏈路上的每一路SIP呼叫進行鑒權。
· 企業內部通信由企業IP-PBX負責。企業所有外出通信都通過SIP Trunk交由ITSP,再由ITSP中的設備發送到PSTN網絡,企業不再需要維護原有的傳統PSTN中繼鏈路,節省了硬件和維護成本。
· 企業可以通過設置目的地址任意選擇並連接到多個ITSP,充分利用遍布全球各地的ITSP,節省通話費用。
· 部署SIP Trunk設備後,全網可以使用SIP協議,可以更好地支持語音、會議、即時消息等IP通信業務。
· SIP Trunk設備不同於SIP代理服務器。SIP Trunk設備接收到用戶的呼叫請求後,會代表用戶向ITSP發起新呼叫請求。在轉發過程中,SIP Trunk設備不但要對信令消息進行中繼轉發,對RTP媒體消息也需要進行中繼轉發。在整個過程中,SIP Trunk設備兩端的設備(企業內部和企業外部設備)均認為和其交互的是SIP Trunk設備本身。
SIP Trunk設備部署在企業IP-PBX和ITSP之間。企業的所有內部呼叫通過企業內部的IP-PBX完成,企業的所有外部呼叫均通過SIP Trunk鏈路發送給ITSP。圖2-4所示為應用SIP Trunk技術的實際組網圖。
與SIP Trunk相關的協議規範有:
· RFC 3261
· RFC 3515
· SIPconnect Technical Recommendation v1.1
本特性的支持情況與設備型號有關,請以設備的實際情況為準。
型號 |
說明 |
MSR610 |
不支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
不支持 |
MSR1004S-5G、MSR1004S-5G-CN |
不支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN、MSR1104S-W-5GGL |
不支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
不支持 |
MSR2600-10-X1 |
支持 |
MSR2630-G-X1 |
不支持 |
MSR 2630 |
支持 |
MSR3600-28、MSR3600-51 |
支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
不支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
不支持 |
MSR3600-28-G-X1-DP、MSR3600-51-G-X1-DP |
不支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
不支持 |
MSR-iMC |
不支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR 3610、MSR 3620、MSR 3620-DP、MSR 3640、MSR 3660 |
支持 |
MSR3610-G、MSR3620-G |
不支持 |
MSR3640-G |
支持 |
MSR3640-X1-HI |
支持 |
型號 |
說明 |
MSR810-W-WiNet、MSR810-LM-WiNet |
支持 |
MSR830-4LM-WiNet |
不支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
不支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
不支持 |
MSR2600-6-WiNet |
不支持 |
MSR2600-10-X1-WiNet |
支持 |
MSR2630-WiNet |
支持 |
MSR3600-28-WiNet |
支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
型號 |
說明 |
MSR860-6EI-XS |
不支持 |
MSR860-6HI-XS |
不支持 |
MSR2630-XS |
不支持 |
MSR3600-28-XS |
不支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
支持 |
MSR3610-I-XS |
不支持 |
MSR3610-IE-XS |
不支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
支持 |
型號 |
說明 |
MSR810-LM-GL |
支持 |
MSR810-W-LM-GL |
支持 |
MSR830-6EI-GL |
不支持 |
MSR830-10EI-GL |
不支持 |
MSR830-6HI-GL |
不支持 |
MSR830-10HI-GL |
不支持 |
MSR1004S-5G-GL |
不支持 |
MSR2600-6-X1-GL |
不支持 |
MSR3600-28-SI-GL |
不支持 |
部分設備需要安裝Voice Software License才能使用SIP Trunk。有關License的詳細介紹,請參見“基礎配置指導”中的“License管理”。
SIP Trunk配置任務如下:
(2) 配置SIP Trunk賬戶注冊
(3) (可選)配置編解碼透傳
(4) (可選)配置媒體旁路
(5) (可選)配置DO-EO轉換
請完成VoIP語音實體配置,確保SIP Trunk兩端的設備能夠呼叫成功。
開啟allow-connections sip to sip功能後,設備作為SIP Trunk設備。在設備作為SIP Trunk設備使用時,不推薦再將設備作為SIP UA使用。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 允許SIP到SIP的VoIP呼叫連接。
allow-connections sip to sip
缺省情況下,不允許SIP到SIP的VoIP呼叫連接。
在SIP Trunk設備上,運營商給用戶分配的信息是通過配置SIP Trunk賬戶來完成的。SIP Trunk賬戶號碼最多可以向6個注冊服務器發起注冊,為了區分發送給不同注冊服務器的帶鑒權信息的注冊請求,SIP Trunk設備需要根據注冊服務器回複的401/407響應消息中的realm值來匹配配置的鑒權信息。因此一個賬戶號碼需要支持多域名參數,完成賬戶號碼和realm值的配置後,SIP Trunk設備就能選擇相應的用戶名和密碼發送給指定的注冊服務器。目前,一個賬戶號碼可以配置攜帶12個不同的域名,並且設備最多支持128個賬戶號碼。完成SIP Trunk賬戶配置後,還需要配置registrar命令使SIP Trunk賬戶向指定的注冊服務器發起注冊。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入SIP視圖。
sip
(4) 配置SIP Trunk賬戶信息。
credentials number number username username password { cipher | simple } string realm realm
(5) 配置使用的注冊服務器信息。
registrar registrar-index { ip ip-address | dns domain-name } [ port port-number ] [ expires seconds ] [ refresh-ratio ratio-percentage ]
SIP Trunk設備上配置的VoIP語音實體的編解碼如果不能和呼叫雙方的編解碼存在交集,可以使用該命令開啟SIP Trunk設備的編解碼透傳功能。開啟SIP Trunk設備的編解碼透傳功能後,SIP Trunk設備不會幹預呼叫兩端的編解碼協商,而是將編解碼能力集透傳給對方,由呼叫雙方完成編解碼協商。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 使能編解碼透傳。
codec transparent
缺省情況下,SIP Trunk設備的編解碼透傳功能處於關閉狀態,SIP Trunk設備參與呼叫雙方的媒體協商。
開啟SIP Trunk設備的媒體旁路功能,可以使媒體流在呼叫的兩個SIP端點間直接傳輸,SIP Trunk設備不參與媒體流協商。缺省情況下,媒體流經過SIP Trunk設備進行中繼轉發,SIP Trunk設備會隱藏SIP端點攜帶的媒體地址,將媒體地址替換為SIP Trunk設備的地址。當不需要隱藏媒體地址時,配置媒體旁路功能可以提升SIP Trunk設備性能。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 開啟媒體旁路。
media flow-around
缺省情況下,SIP Trunk設備的媒體旁路功能處於關閉狀態。
攜帶SDP Offer的INVITE消息請求稱為Early Offer,不攜帶SDP Offer的INVITE消息稱為Delayed Offer。由於目前很多運營商均不接受不攜帶SDP Offer的INVITE消息,所以作為中間設備的SIP Trunk設備需要提供這種報文轉換功能。在SIP Trunk設備上配置DO-EO轉換功能後,設備可以將不攜帶SDP Offer的INVITE消息轉換為攜帶SDP Offer的INVITE消息,以滿足服務器業務呼叫的需求。
在開啟編解碼透傳功能或媒體旁路功能的情況下,該命令配置不會生效。
(1) 進入係統視圖。
system-view
(2) 進入語音視圖。
voice-setup
(3) 進入語音撥號策略視圖。
dial-program
(4) 進入VoIP語音實體視圖。
entity entity-number voip
(5) 使能DO-EO轉換。
voice-class sip early-offer forced
缺省情況下,DO-EO轉換功能處於關閉狀態。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後SIP Trunk功能的運行情況,通過查看顯示信息驗證配置的效果。
表2-1 SIP Trunk顯示和維護
操作 |
命令 |
查看SIP Trunk賬戶的注冊狀態 |
display voice sip register-status |
某企業部署SIP Trunk設備。其中,Router A為企業內網設備,Router B為企業外網設備,要求內外網之間的所有電話都要通過SIP Trunk設備。
(1) 在企業內網設備Router A上的配置思路如下:
¡ 在POTS語音實體中配置本地號碼為2000。
¡ 在VoIP語音實體中配置被叫號碼為1000,目的地址為SIP Trunk的接口地址。
(2) 在SIP Trunk設備上的配置思路如下:
¡ 使能SIP Trunk功能。
¡ 配置SIP Trunk賬戶,配置運營商分配的用戶名和密碼,並將該賬戶注冊到運營商的服務器上。
¡ 配置從內網到外網的呼叫路由。該呼叫路由通過SIP服務器組完成內網用戶的對外呼叫。
¡ 配置從外網到內網的呼叫路由。該呼叫路由的目的地址為內網設備Router A的接口地址。
(3) 在企業外網設備Router B上的配置思路如下:
¡ 在POTS語音實體中配置本地號碼為1000,並將號碼注冊到運營商的服務器上。
¡ 在VoIP語音實體中配置被叫號碼為2000,目的地址為SIP Trunk設備上的接口地址。
圖2-5 SIP Trunk典型配置舉例
(1) 配置企業內網設備Router A
# 配置POTS語音實體中的本地號碼為2000。
<RouterA> system-view
[RouterA] voice-setup
[RouterA-voice] dial-program
[RouterA-voice-dial] entity 2000 pots
[RouterA-voice-dial-entity2000] line 2/1/1
[RouterA-voice-dial-entity2000] match-template 2000
[RouterA-voice-dial-entity2000] quit
# 配置VoIP語音實體,被叫號碼為1000,對端的IP地址為SIP Trunk的接口地址1.1.1.2。
[RouterA-voice-dial] entity 1000 voip
[RouterA-voice-dial-entity1000] address sip ip 1.1.1.2
[RouterA-voice-dial-entity1000] match-template 1000
(2) 配置SIP Trunk設備
# 配置允許SIP到SIP的VoIP呼叫連接。
<TG> system-view
[TG] voice-setup
[TG-voice] allow-connections sip to sip
[TG-voice] sip
# 創建SIP Trunk賬戶,號碼為2000,用戶名和密碼為2000,域名為abc。.
[TG-voice-sip] credentials number 2000 username 2000 password simple 2000 realm abc
# 配置注冊服務器信息。SIP Trunk賬戶向注冊服務器10.1.1.2發起注冊。
[TG-voice-sip] registrar 1 ip 10.1.1.2
[TG-voice-sip] quit
# 配置呼叫路由(內網用戶2000向外網用戶1000發起呼叫)。配置VoIP語音實體綁定的SIP服務器組索引為1。
[TG-voice] dial-program
[TG-voice-dial] entity 1 voip
[TG-voice-dial-entity1] address sip ip 2.1.1.2
[TG-voice-dial-entity1] match-template 1000
[TG-voice-dial-entity1] quit
# 配置呼叫路由(外網用戶1000向內網用戶2000發起呼叫)。對端的IP地址為內網設備Router A的接口地址1.1.1.1。
[TG-voice-dial] entity 2 voip
[TG-voice-dial-entity2] address sip ip 1.1.1.1
[TG-voice-dial-entity2] match-template 2000
(3) 配置企業外網設備Router B
# 配置POTS語音實體中的本地號碼為1000。
<RouterB> system-view
[RouterB] voice-setup
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 1000 pots
[RouterB-voice-dial-entity1000] line 2/1/1
[RouterB-voice-dial-entity1000] match-template 1000
[RouterB-voice-dial-entity1000] quit
# 配置VoIP語音實體,被叫號碼為2000,目的地址為SIP Trunk設備上的接口地址。
[RouterB-voice-dial] entity 2000 voip
[RouterB-voice-dial-entity2000] address sip ip 2.1.1.1
[RouterB-voice-dial-entity2000] match-template 2000
(1) 在SIP Trunk設備上查看SIP Trunk賬戶狀態
[TG-voice-dial-entity2] display voice sip register-status
Number Entity Registrar Server Expires Status
--------------------------------------------------------------------------------
2000 0 10.1.1.2:5060 1802 Online
從上麵的顯示信息中可以看到,內網的賬戶2000已經注冊到服務器10.1.1.2上。
(2) 內網和外網能夠成功建立呼叫,且所有呼叫均通過SIP Trunk設備
內外網用戶進行呼叫時,可以在SIP Trunk設備上使用display voice sip call命令查看到內外網之間的所有電話都經過SIP Trunk設備。
(3) 在運營商的SIP Server上隻能看到SIP Trunk設備的接口地址,SIP Trunk設備實現了保護企業內網用戶信息的作用。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!