本檔案將詳細介紹Cisco AS5400平台上的時分多工(TDM)交換的原理和設定。
假設讀取器對ISDN呼叫信令和TDM網路上同步時鐘源的分佈有基本瞭解。本文提供有關TDM計時的一些背景資訊。熟悉Cisco IOS®配置和調試命令也很有幫助。
本文中的資訊係根據以下軟體和硬體版本:
Cisco AS5400、AS5350和AS5850平台
採用IP Plus功能集的Cisco IOS軟體版本12.2.2XB5
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
TDM交換的基礎是在所有配置的介面之間共用同步時鐘源。如果埠間的時鐘參考不同,則訪問伺服器會註冊時鐘滑動,這在語音呼叫中可能不明顯,但幾乎可以肯定會導致傳真或數據機呼叫失敗。因此,訪問伺服器介面的外部裝置(PBX或中央辦公室(CO)交換機)同步到通用主時鐘參考非常重要。大多數Telcos或服務提供商訂閱或發起第1層時鐘基準,並在他們的網路中傳播該基準。因此,在大多數情況下,即使是在不同的服務提供商之間,時鐘也會保持同步。如果訪問伺服器上所有配置的T1/E1介面都保持同步,則介面出錯的可能性很小。
TDM交換基於傳入呼叫的被叫號碼識別服務(DNIS)路由呼叫。一旦接入伺服器接收到入站ISDN Q.931設定消息,它就可以確定呼叫將傳送到何處,在出站介面上選擇適當的承載通道,並傳送ISDN Q.931設定消息以通知下游裝置有新的呼叫。一旦終端裝置傳送ISDN Q.931連線消息,接入伺服器就跨接通過背板的脈衝編碼調制(PCM)流。如前一段所述,兩個連線的網路必須具有相同的時鐘同步,以確保PCM音訊流或數碼資料從一個介面到另一個介面的無錯誤切換。網路圖表顯示特定PRI介面上傳入的ISDN呼叫,以及根據已設定的普通舊式電話服務(POTS)撥號對等體上的配對透過其他介面進行交換的ISDN呼叫的一般概念。如有必要,可以使用IOS轉換規則處理被叫/主叫號碼。
AS5400平台通常作為撥入資料、語音、傳真或資料機存取伺服器安裝。為了終止語音型別呼叫(語音、傳真或數據機),接入伺服器需要適當的任何服務、要安裝的任何埠(ASAP)數位訊號處理器(DSP)資源。
如果實際上不需要在接入伺服器上終止數據機、傳真或語音呼叫,但出於某些原因需要切換回備用埠,則可以配置AS5400在純粹的TDM應用中運行,在該應用中,語音呼叫交換通過ISDN D通道信令進行控制。資料或語音呼叫可以基於DNIS(被叫號碼)切換到另一個介面。實際上,接入伺服器成為TDM語音/資料交換機。此功能通常稱為TDM交換,雖然其他名稱(如髮夾、長號或撥號修飾也應用於該技術)。通常,術語可以互換,對於本文而言,術語使用TDM交換。沒有雙音多頻(DTMF)或多頻(MF)信令音通過ISDN。呼叫控制是通過高級資料鏈路控制(HDLC)封裝的D通道消息完成的。因此,當處於TDM操作模式時,不需要用於語音呼叫的DSP資源。
接入伺服器使用傳入DNIS(被叫號碼)在傳出POTS撥號對等體目標模式上進行匹配,並將呼叫路由到適當的埠。也可以使用IOS轉換規則來操縱被叫號碼和主叫號碼,用於呼叫路由決策。
TDM交換的應用可以包括充當小型ISDN資料/語音交換(使用ISDN網路側協定模擬)的接入伺服器,或通過替代運營商(最低成本)進行呼叫重路由。
本文說明如何配置AS5400為語音和資料呼叫執行TDM交換。根據在DNIS上為傳入呼叫(在ISDN Q.931設定消息中提供)進行的匹配,呼叫從一個介面切換到另一個介面。此技術也可在使用TDM背面的其他平台上使用,例如AS5350和AS5850。
本節提供用於設定本文件中所述功能的資訊。
註:使用Command Lookup Tool(僅限註冊客戶)查詢有關本文檔中使用的命令的更多資訊。
本檔案會使用以下網路設定:
為了允許接入伺服器執行TDM交換,必須啟用資源池並將可用的承載通道資源放入池中。然後,該承載通道池被繫結到DNIS組,這允許將特定資源池與某些傳入被叫號碼或任何傳入被叫號碼相關聯。以下輸出顯示範例:
AS5400 |
---|
! resource-pool enable ! resource-pool group resource TDM_Voice range limit 124 !--- Up to 124 speech channels can be switched. ! resource-pool group resource TDM_Data range limit 124 !--- Up to 124 data channels can be switched. ! ! resource-pool profile customer TDM_Switching limit base-size all limit overflow-size 0 resource TDM_Voice speech !--- Resources for speech calls. ! resource TDM_Data digital ! resources for data calls ! dnis group default !--- Default DNIS group matches all called numbers. ! |
必須啟用資源池功能才能允許TDM交換。定義了一個名為TDM_Voice的資源組,該資源組最多允許124個可用於語音呼叫的通道。另一個名為TDM_Data的資源組最多允許124個通道進行資料呼叫。這些數字是從系統上的E1或T1埠的最大數量派生的。例如,一個8埠E1卡有30個承載通道,並且每個介面有一個信令通道(31個通道)用於8個埠。總數為248(31乘以8)。 資料呼叫和語音呼叫中的一半在此分配。
然後,將資源組TDM_Voice置於名為TDM_Switching的配置檔案中,並將呼叫型別定義為語音,同時將資源組TDM_Data定義為數字。這有效地允許具有語音和資料承載能力的呼叫通過接入伺服器。dnis group default 命令允許匹配所有傳入的被叫號碼。可以定義與更具體的被叫號碼匹配的DNIS組。有關詳細資訊,請參閱語音和資料服務的通用埠資源池配置指南。
如有必要,當呼叫進入特定埠時,可對被叫號碼進行操作以預置訪問代碼。例如:
AS5400 |
---|
! translation-rule 1 Rule 1 ^.% 555 !--- Match on any string, prepend with 555. ! voice-port 6/0:D translate called 1 !--- Apply translation rule 1 to port 6/0 so any !--- incoming call is prepended with 555. compand-type a-law ! voice-port 6/3:D compand-type a-law !--- The translated called number is matched on POTS dial-peers !--- to determine where it should be routed. dial-peer voice 1 pots description - enable DID (single stage dialing) on port 6/0 incoming called-number . direct-inward-dial port 6/0:D ! dial-peer voice 2 pots description - reroute calls from 6/0 to 6/3 destination-pattern 55598842304 port 6/3:D prefix 0401890165 ! |
當呼叫進入埠6/0時,該埠的前面為555。如果原始被叫號碼為98842304,轉換後的號碼將變為55598842304,並在撥號對等體2上匹配。然後該呼叫在埠6/3上傳送。由於該呼叫是顯式匹配,因此原始被叫號碼將被去除,字首命令將替換為0401890165。
資料呼叫交換工作方式相同。POTS撥號對等體匹配被叫號碼並將其從另一個埠引出。例如,如果呼叫在埠6/4上呼入,被叫號碼為5551000,則用新的被叫號碼為5552000切出埠6/7。同樣,如果呼叫在埠6/7上呼入,被叫號碼為5552000,則用新的被叫號碼為5551000切出埠6/4。
AS5400 |
---|
! dial-peer voice 3 pots description - enable DID on port 6/4 incoming called-number direct-inward-dial port 6/4:D ! dial-peer voice 4 pots description - enable DID on port 6/7 incoming called-number direct-inward-dial port 6/7:D ! dial-peer voice 12 pots description - reroute calls from 6/4 to 6/7 destination-pattern 5551000 port 6/7:D prefix 5552000 ! dial-peer voice 13 pots description - reroute calls from 6/7 to 6/4 destination-pattern 5552000 port 6/4:D prefix 5551000 ! |
使用本節內容,確認您的組態是否正常運作。
輸出直譯器工具(僅供已註冊客戶使用)(OIT)支援某些show命令。使用OIT檢視show命令輸出的分析。
show run — 顯示作為TDM交換機運行的接入伺服器的完整配置。
multi-5-19#show run Building configuration... Current configuration : 3110 bytes ! ! Last configuration change at 13:18:39 UTC Wed Jun 19 2002 ! NVRAM config last updated at 20:45:12 UTC Sat Jan 8 2000 ! version 12.2 service timestamps debug datetime msec localtime service timestamps log uptime no service password-encryption ! hostname multi-5-19 ! enable password cisco ! ! ! resource-pool enable ! resource-pool group resource TDM_Voice range limit 124 ! resource-pool group resource TDM_Data range limit 124 ! resource-pool profile customer TDM_Switching limit base-size all limit overflow-size 0 resource TDM_Data digital resource TDM_Voice speech dnis group default dial-tdm-clock priority 1 6/0 ! ! ! ! ip subnet-zero ip cef ! isdn switch-type primary-net5 ! ! ! ! ! ! ! fax interface-type fax-mail mta receive maximum-recipients 0 ! controller E1 6/0 pri-group timeslots 1-31 ! controller E1 6/1 ! controller E1 6/2 ! controller E1 6/3 pri-group timeslots 1-31 ! controller E1 6/4 pri-group timeslots 1-31 ! controller E1 6/5 ! controller E1 6/6 ! controller E1 6/7 pri-group timeslots 1-31 ! translation-rule 1 Rule 1 ^.% 555 ! translation-rule 2 Rule 2 ^.% 666 ! ! ! interface FastEthernet0/0 no ip address duplex auto speed auto ! interface FastEthernet0/1 no ip address duplex auto speed auto ! interface Serial0/0 no ip address shutdown clockrate 2000000 ! interface Serial0/1 no ip address shutdown clockrate 2000000 ! interface Serial6/0:15 no ip address isdn switch-type primary-net5 isdn incoming-voice modem no cdp enable ! interface Serial6/3:15 no ip address isdn switch-type primary-net5 isdn incoming-voice modem no cdp enable ! interface Serial6/4:15 no ip address isdn switch-type primary-net5 isdn protocol-emulate network no cdp enable ! interface Serial6/7:15 no ip address isdn switch-type primary-net5 isdn protocol-emulate network no cdp enable ! interface Group-Async0 physical-layer async no ip address ! ip classless ! no ip http server ! ! ! call rsvp-sync ! voice-port 6/0:D translate called 1 compand-type a-law ! voice-port 6/3:D translate called 2 compand-type a-law ! voice-port 6/4:D compand-type a-law ! voice-port 6/7:D compand-type a-law ! ! mgcp profile default ! dial-peer cor custom ! ! ! dial-peer voice 1 pots incoming called-number direct-inward-dial port 6/0:D ! dial-peer voice 2 pots incoming called-number direct-inward-dial port 6/3:D ! dial-peer voice 10 pots destination-pattern 55598842304 port 6/3:D prefix 94344600 ! dial-peer voice 11 pots destination-pattern 66698842305 port 6/0:D prefix 94344600 ! dial-peer voice 3 pots incoming called-number direct-inward-dial port 6/4:D ! dial-peer voice 4 pots incoming called-number direct-inward-dial port 6/7:D ! dial-peer voice 12 pots destination-pattern 5551000 port 6/7:D prefix 5552000 ! dial-peer voice 13 pots destination-pattern 5552000 port 6/4:D prefix 5551000 ! ! line con 0 line aux 0 line vty 0 4 password cisco login ! scheduler allocate 10000 400 ntp master end multi-5-19#
使用本節內容,對組態進行疑難排解。
輸出直譯器工具(僅供已註冊客戶使用)(OIT)支援某些show命令。使用OIT檢視show命令輸出的分析。
當您對ISDN中繼進行故障排除時,可以使B通道忙出。在CAS中繼的控制器配置模式下發出ds0 busyout X命令。
Router(config-controller)#ds0 busyout X
要忙出CCS或PRI ISDN中繼,請在介面配置模式下使用isdn service b_channel X state 2命令。
對於T1:
Router(config)#interface serial 0:23
對於E1:
Router(config)#interface serial 0:15 Router(config-if)#isdn service b_channel X state 2
有效狀態包括0=Inservice、1=Maint、2=Outofservice,且X是CCS和CAS配置中的B通道編號。
show isdn service命令可用於查詢每個B通道的狀態。
附註:使用 debug 指令之前,請先參閱有關 Debug 指令的重要資訊。
正常ISDN和IOS轉換規則調試可用於排除TDM交換故障。
debug translation detailed — 顯示有關IOS轉換規則操作的資訊,以便可以監視被叫或主叫號碼的數字操作。
debug isdn q931 — 顯示有關本地路由器(使用者端)與網路之間的ISDN網路連線(第3層)的呼叫建立和拆除的資訊。
這些命令輸出是對交換到連線埠6/3的連線埠6/0上的語音通話啟用debug translation detailed(IOS轉換規則調試)和debug isdn q931的追蹤。
multi-5-19#debug translation detailed *Jan 1 00:20:53.215: ISDN Se6/0:15: RX <- SETUP pd = 8 callref = 0x1D79 *Jan 1 00:20:53.215: Bearer Capability i = 0x8090A3 *Jan 1 00:20:53.215: Channel ID i = 0xA18395 *Jan 1 00:20:53.215: Called Party Number i = 0x80, '98842304', Plan:Unknown, Type:Unknown !--- Receive a setup message on interface 6/0:15 for a !--- speech call with a called number of 98842304. !--- Speech call is indicated by the bearer capability of 0x8090A3 : !--- 64 Kbps A-law PCM audio/speech. !--- IOS Translation rule number 1 prepends '555' to the original !--- called number when it passes through port 6/0. *Jan 1 00:20:53.219: xrule_checking *Jan 1 00:20:53.219: xrule_checking calling , called 98842304 *Jan 1 00:20:53.219: xrule_checking peer_tag 0, direction 1, protocol 6 *Jan 1 00:20:53.219: xrule_translation *Jan 1 00:20:53.219: xrule_translation callednumber 98842304, strlen 8 *Jan 1 00:20:53.219: xrule_translation callednumber 98842304 xruleCalledTag=1 *Jan 1 00:20:53.219: xrule_translation called Callparms Numpertype 0x80, match_type 0x0 *Jan 1 00:20:53.219: xrule_translation Xrule index 1, Numpertype 0x9 *Jan 1 00:20:53.219: dpMatchString, target_number 98842304, match_number ^.% *Jan 1 00:20:53.219: dpMatchString match_tmp , match_len 0 *Jan 1 00:20:53.219: dpMatchString beginning_replace 0, match_tmp ,target 98842304 *Jan 1 00:20:53.219: dpMatchString 1. target 98842304,match_tmp *Jan 1 00:20:53.219: dpMatchString 1.1 compare_len 0, target 98842304, match_tmp *Jan 1 00:20:53.219: dpMatchString 5. match_len=compare_len 0, target 98842304 *Jan 1 00:20:53.219: replace_string *Jan 1 00:20:53.219: replace_string match ^.%, replace 555 *Jan 1 00:20:53.219: translation_format replace_rule ^.%, strip_proceeding 0 *Jan 1 00:20:53.219: replace_string match_tmp ^.%, strip_proceeding 0 *Jan 1 00:20:53.219: replace_string match_tmp *Jan 1 00:20:53.219: replace_string direction 1, callparty 2 *Jan 1 00:20:53.219: replace_string direction 1, callparty 2, target 98842304 *Jan 1 00:20:53.219: replace_string match_tmp ,replace 555 *Jan 1 00:20:53.219: replace_string2.replace1,target98842304,current98842304,match_tmp *Jan 1 00:20:53.219: replace_string2.1 compare_len 0,match_len 0 *Jan 1 00:20:53.219: replace_string 3. replace1 , compare_len 0 *Jan 1 00:20:53.219: replace_string 4. replace1 5,compare_len -1,replace 55 *Jan 1 00:20:53.219: replace_string 4. replace1 55,compare_len -2,replace 5 *Jan 1 00:20:53.219: replace_string 4. replace1 555,compare_len -3,replace *Jan 1 00:20:53.219: replace_string 5.replace1 555, compare_len -3,match_len 0 *Jan 1 00:20:53.219: replace_string 6. replace1 555,compare_len -3,current 98842304 *Jan 1 00:20:53.219: replace_string 7. replace1 5559 *Jan 1 00:20:53.219: replace_string 7. replace1 55598 *Jan 1 00:20:53.219: replace_string 7. replace1 555988 *Jan 1 00:20:53.219: replace_string 7. replace1 5559884 *Jan 1 00:20:53.219: replace_string 7. replace1 55598842 *Jan 1 00:20:53.219: replace_string 7. replace1 555988423 *Jan 1 00:20:53.219: replace_string 7. replace1 5559884230 *Jan 1 00:20:53.219: replace_string 7. replace1 55598842304 *Jan 1 00:20:53.219: replace_string buffer 55598842304 *Jan 1 00:20:53.219: xrule_translation index 1,xrule_number 55598842304, callparty 2 *Jan 1 00:20:53.219: xrule_translation Return rc = 0 *Jan 1 00:20:53.219: xrule_checking Return rc = 0 *Jan 1 00:20:53.223: ISDN Se6/0:15: TX -> CALL_PROC pd = 8 callref = 0x9D79 *Jan 1 00:20:53.223: Channel ID i = 0xA98395 !--- Send a call proceeding back to the ISDN. *Jan 1 00:20:53.227: ISDN Se6/3:15: TX -> SETUP pd = 8 callref = 0x0005 *Jan 1 00:20:53.227: Bearer Capability i = 0x8090A3 *Jan 1 00:20:53.227: Channel ID i = 0xA9839F *Jan 1 00:20:53.227: Called Party Number i = 0x80, '0401890165', Plan:Unknown, Type:Unknown !--- Match has been made on outgoing POTS dial-peer !--- and a new call is sent out on 6/3:15. *Jan 1 00:20:53.371: ISDN Se6/3:15: RX <- CALL_PROC pd = 8 callref = 0x8005 *Jan 1 00:20:53.371: Channel ID i = 0xA1839F *Jan 1 00:20:53.371: ISDN Se6/3:15: RX <- ALERTING pd = 8 callref = 0x8005 !--- Receive alerting on the second (outgoing) call leg. *Jan 1 00:20:53.375: ISDN Se6/0:15: TX -> ALERTING pd = 8 callref = 0x9D79 *Jan 1 00:20:53.375: Progress Ind i = 0x8188 - In-band info or appropriate now available !--- Send alerting on the first (incoming) call leg. *Jan 1 00:21:00.095: ISDN Se6/3:15: RX <- CONNECT pd = 8 callref = 0x8005 *Jan 1 00:21:00.095: ISDN Se6/3:15: TX -> CONNECT_ACK pd = 8 callref = 0x0005 *Jan 1 00:21:00.099: ISDN Se6/0:15: TX -> CONNECT pd = 8 callref = 0x9D79 *Jan 1 00:21:00.247: ISDN Se6/0:15: RX <- CONNECT_ACK pd = 8 callref = 0x1D79 !--- Both calls connect. *Jan 1 00:21:00.247: ISDN Se6/0:15: CALL_PROGRESS:CALL_CONNECTED call id 0x5, bchan 20, dsl0 *Jan 1 00:21:37.591: ISDN Se6/0:15: RX <- DISCONNECT pd = 8 callref = 0x1D79 *Jan 1 00:21:37.591: Cause i = 0x8290 - Normal call clearing !--- Receive a disconnect on incoming call leg. *Jan 1 00:21:37.595: ISDN Se6/0:15: TX -> RELEASE pd = 8 callref = 0x9D79 *Jan 1 00:21:37.599: ISDN Se6/3:15: TX -> DISCONNECT pd = 8 callref = 0x0005 *Jan 1 00:21:37.599: Cause i = 0x8090 - Normal call clearing !--- Send a disconnect on the outgoing call leg. *Jan 1 00:21:37.631: ISDN Se6/0:15: RX <- RELEASE_COMP pd = 8 callref = 0x1D79 *Jan 1 00:21:37.723: ISDN Se6/3:15: RX <- RELEASE pd = 8 callref = 0x8005 *Jan 1 00:21:37.723: Cause i = 0x8290 - Normal call clearing *Jan 1 00:21:37.723: ISDN Se6/3:15: TX -> RELEASE_COMP pd = 8 callref = 0x0005 !--- Both calls have cleared.
以下是debug isdn q931命令的命令輸出。這些跟蹤顯示從埠6/4交換到埠6/7的ISDN資料呼叫。
Jun 19 13:36:02.091: ISDN Se6/4:15: RX <- SETUP pd = 8 callref = 0x0005 Jun 19 13:36:02.091: Bearer Capability i = 0x8890 Jun 19 13:36:02.091: Channel ID i = 0xA9839F Jun 19 13:36:02.095: Called Party Number i = 0x81, '5551000', Plan:ISDN, Type:Unknown !--- Call comes in on port 6/4 for 5551000. Bearer Capability !--- is 0x8890, which indicates 64 K data call. Jun 19 13:36:02.095: ISDN Se6/4:15: TX -> CALL_PROC pd = 8 callref = 0x8005 Jun 19 13:36:02.095: Channel ID i = 0xA9839F Jun 19 13:36:02.099: ISDN Se6/7:15: TX -> SETUP pd = 8 callref = 0x0085 Jun 19 13:36:02.099: Bearer Capability i = 0x8890 Jun 19 13:36:02.099: Channel ID i = 0xA98381 Jun 19 13:36:02.099: Called Party Number i = 0x81, '5552000', Plan:ISDN, Type:Unknown !--- Redirect the call out on port 6/7, (new) called !--- number is 5552000 with data bearer capability. Jun 19 13:36:02.155: ISDN Se6/7:15: RX <- CALL_PROC pd = 8 callref = 0x8085 Jun 19 13:36:02.155: Channel ID i = 0xA98381 Jun 19 13:36:02.159: ISDN Se6/7:15: RX <- CONNECT pd = 8 callref = 0x8085 Jun 19 13:36:02.159: Channel ID i = 0xA98381 !--- Second call leg connects. Jun 19 13:36:02.159: ISDN Se6/7:15: TX -> CONNECT_ACK pd = 8 callref = 0x0085 Jun 19 13:36:02.163: ISDN Se6/4:15: CALL_PROGRESS:CALL_CONNECTED call id 0x7,bchan 30, dsl 2 Jun 19 13:36:02.163: ISDN Se6/4:15: TX -> CONNECT pd = 8 callref = 0x8005 !--- First call leg connects. Jun 19 13:36:02.215: ISDN Se6/4:15: RX <- CONNECT_ACK pd = 8 callref = 0x0005 Jun 19 13:38:12.783: ISDN Se6/4:15: RX <- DISCONNECT pd = 8 callref = 0x0005 Jun 19 13:38:12.783: Cause i = 0x8090 - Normal call clearing !--- Remote device drops the call, first call leg disconnects. Jun 19 13:38:12.787: ISDN Se6/4:15: TX -> RELEASE pd = 8 callref = 0x8005 Jun 19 13:38:12.787: ISDN Se6/7:15: TX -> DISCONNECT pd = 8 callref = 0x0085 Jun 19 13:38:12.787: Cause i = 0x8290 - Normal call clearing !--- Second call leg is dropped. Jun 19 13:38:12.807: ISDN Se6/7:15: RX <- RELEASE pd = 8 callref = 0x8085 Jun 19 13:38:12.851: ISDN Se6/4:15: RX <- RELEASE_COMP pd = 8 callref = 0x0005 !--- Both calls have cleared.