中继(线)是两个语音端口之间的永久点对点通信线路。connection trunk命令在两个VoIP网关之间创建永久的IP语音(VoIP)呼叫。它通过在两个电话端点之间创建虚拟中继连接线来模拟中继连接。对于已连接的系统,它看起来好像T1中继直接连接在它们之间。
这些平台支持VoIP连接中继:
Cisco 2600、3600和3700系列数字和模拟接口
Cisco 7200/7500系列数字接口
思科MC3810数字和模拟接口
思科1750/1751和1760
注意:AS5300/AS5400/AS5800平台不支持也不支持连接中继,因为它们不适合具有大流量的WAN连接。
本文档中的信息基于以下软件和硬件版本:
带IP Plus功能集的思科IOS®软件版本12.2(10a)
Cisco 2610 系列路由器
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
本部分提供有关如何配置本文档所述功能的信息。
注:要查找有关本文档中使用的命令的其他信息,请使用命令查找工具(仅限注册客户)
T1/E1信道关联信令(CAS)接口支持连接中继模式。使用公共信道信令(CCS)的T1/E1接口不支持连接中继;例如,QSIG和PRI Q.931。为接地启动配置的外交换局(FXO)端口不支持连接中继。
连接中继模式是永久连接;VoIP 呼叫始终独立于挂机或摘机的普通老式电话服务 (POTS) 端口进行连接。连接中继具有静态配置的终端,不需要用户拨号来连接呼叫。它还允许在两个电话设备之间通过IP网络传递补充呼叫信令,如Hookflash或点对点hoot-n-holler。
以下语音端口组合支持连接中继模式:
recEive和transMit(E & M)到E & M(相同类型)
FXO到外交换站(FXS)
FXS到FXS(无信令)
注意:这些语音端口组合允许在模拟到模拟、数字到数字和模拟到数字接口之间进行。此外,当您配置FXS到FXS时,无法传送信令,因为它不是透明路径。连接的设备(FXO)将尝试相互发出信号。如果将语音路径设置为始终打开,则此设计可以正常工作。为VoIP拨号对等体配置信号类型ext-signal,路由器在打开语音路径之前将不再等待信令。
默认情况下,连接中继T1 CAS到E1 CAS的映射不起作用。根据各种ABCD位信令的PBX支持,必须对网关执行位顺序操作,并且可能不总是有效。
连接中继允许FXO和FXS端口之间的专用线路、自动振铃外部扩展(PLAR-OPX)功能类型。这允许远程站(连接到FXS端口)在PBX中显示为物理连接的站。如果此远程站点不应答呼叫,则可以将其回滚到集中语音邮件(如果已在PBX上配置)。
连接中继(如PLAR)不要求路由器从电话设备收集数字。当路由器启动并建立IP连接时,会创建永久VoIP呼叫。因此,现有客户拨号方案不必更改。
连接中继可以传递某些电话信令,例如Hookflash,但它不传递专有PBX信令。它不是透明CCS(T-CSS)功能。
连接中继(如PLAR)按语音端口定义。这意味着语音端口无法同时在连接中继模式和收集拨号数字模式下运行。唯一可能不是完全理想的实例是远程办公室,该办公室需要在本地分机之间拨号,而无需使用集中式PBX。这要求呼叫的路径通过VoIP网络返回,而不是在路由器内交换。通常情况下,这不应成为问题。
必须在中继的两端配置连接中继。当您配置带模拟接口的连接中继时,必须按语音端口定义。当您配置带数字接口的连接中继时,有多种选项:
您可以为每个DS0(每个时隙)定义单独的ds0-group命令,并可以使用connection trunk命令定义创建的每个语音端口。这可确保DS0到DS0的映射保留在数字中继上。
您可以定义单个ds0-group命令来处理所有DS0,也可以在语音端口上定义单个连接中继命令。这减少了所需的手动配置量,但无法保证中继两端的DS0一对一映射。此外,每次路由器重新加载时,映射可能与上次不同。此外,此配置使故障排除更加复杂,因为您无法在不中断整个中继组的情况下将问题隔离到单个(甚至几个)时隙。对于在PBX的任一端具有专有信令的T-CCS,也不建议使用此配置,因为如果没有一对一映射,它不能可靠地传送信令信道。
建议在连接的一端配置连接中继字符串命令后指定的应答模式关键字。这使中继的一端成为“主端”。 网关(路由器)和answer-mode关键字是“从端”。 answer-mode命令指定网关不会尝试发起中继连接,而是在建立中继之前等待传入呼叫。此配置方案将路由器启动中继所需的时间降至最低,并确保当两个网关之间的连接丢失时中继断开。否则,当连接再次启动时,网关可能不会尝试重新建立中继。
注意:当您发出connection trunk命令时,必须在语音端口上执行shutdown/no shutdown命令序列。
本文档使用以下两种网络设置:
上图说明了数字到数字的场景,其中路由器两端都有数字链路。
上图说明了数字到模拟场景,一端为数字,另一端为模拟。
本文档使用以下配置:
数字到数字
数字到模拟
第一个配置(数字到数字)显示了两台具有数字T1接口的路由器之间连接中继的典型配置。在本例中,路由器在PBX之间提供真正的线路替换。
数字到数字 — maui-slt-01 |
---|
version 12.2 service timestamps debug datetime msec service timestamps log datetime msec service password-encryption ! hostname maui-slt-01 ! voice-card 1 ! controller T1 1/0 framing esf linecode b8zs ds0-group 1 timeslots 1 type e & m-wink-start ds0-group 2 timeslots 2 type e & m-wink-start clock source line !--- The ds0-group command creates the logical voice-ports: !--- voice-port 1/0:1 and voice-port 1/0:2. ! voice-port 1/0:1 connection trunk 2000 !--- “master side” !--- This starts the trunk connection using digits 2000 to match !--- a VoIP dial-peer. The digits are generated internally by the !--- router and are not received from the voice-port. ! voice-port 1/0:2 connection trunk 2001 ! dial-peer voice 2 voip destination-pattern 200. !--- Matches connection trunk string 2000 and 2001. dtmf-relay h245-alphanumeric session target ipv4:192.168.100.2 ip qos dscp cs5 media ! dial-peer voice 1 pots destination-pattern 1000 port 1/0:1 !--- This dial-peer maps to maui-rtr-07’s voice-port 1/0:1. ! dial-peer voice 3 pots destination-pattern 1001 port 1/0:2 !--- This dial-peer maps to maui-rtr-07’s voice-port 1/0:2. ! interface Serial0/1 ip address 192.168.100.1 255.255.255.0 |
数字到数字 — maui-rtr-07 |
---|
version 12.2 service timestamps debug uptime service timestamps log uptime service password-encryption ! hostname maui-rtr-07 ! voice-card 1 ! controller T1 1/0 framing esf linecode b8zs ds0-group 1 timeslots 1 type e & m-wink-start ds0-group 2 timeslots 2 type e & m-wink-start clock source line ! voice-port 1/0:1 connection trunk 1000 answer-mode !--- “slave side” !--- The answer-mode specifies that the router should not attempt !--- to initiate a trunk connection, but it should wait for an !--- incoming call before it establishes the trunk. ! voice-port 1/0:2 connection trunk 1001 answer-mode ! dial-peer voice 1 voip destination-pattern 100. dtmf-relay h245-alphanumeric session target ipv4:192.168.100.1 ip qos dscp cs5 media ! dial-peer voice 2 pots destination-pattern 2000 port 1/0:1 !--- This dial-peer terminates the connection !--- from maui-slt-01 voice-port 1/0:1. ! dial-peer voice 3 pots destination-pattern 2001 port 1/0:2 !--- This dial-peer terminates the connection !--- from maui-slt-01 voice-port 1/0:2. ! interface Serial0/1 ip address 192.168.100.2 255.255.255.0 clockrate 128000 ! |
第二个配置(数字到模拟)显示了两个类似路由器(一个具有数字T1接口,另一个具有模拟接口)之间连接中继的典型配置。接口类型必须相同,才能使其正常工作(例如,E & M闪烁到E & M wink、E & M即时到E & M即时、FXO到FXS,反之亦然)。 在本例中,FXO环路启动是在数字T1接口上发出信令,并且在相应端有带FXS环路启动信令的模拟FXS端口。
数字到模拟 — maui-slt-01 |
---|
version 12.2 service timestamps debug datetime msec service timestamps log datetime msec service password-encryption ! hostname maui-slt-01 ! voice vad-time 40000 ! voice-card 1 ! controller T1 1/0 framing esf linecode b8zs ds0-group 1 timeslots 1 type fxo-loopstart clock source line !--- The ds0-group command creates the logical voice-ports: !--- voice-port 1/0:1 and voice-port 1/0:2. ! voice-port 1/0:1 connection trunk 2000 !--- “master side” !--- This starts the trunk connection using digits 2000 to match !--- a VoIP dial-peer. The digits are generated internally by the !--- router and are not received from the voice-port. ! ! ! dial-peer voice 2 voip destination-pattern 200. !--- Matches connection trunk string 2000 and 2001. dtmf-relay h245-alphanumeric session target ipv4:192.168.100.2 ip qos dscp cs5 media ! dial-peer voice 1 pots destination-pattern 1000 port 1/0:1 !--- This dial-peer maps to maui-rtr-07's voice-port 1/0/0. ! ! ! interface Serial0/1 ip address 192.168.100.1 255.255.255.0 ! |
数模 — maui-rtr-07 |
---|
version 12.2 service timestamps debug uptime service timestamps log uptime service password-encryption ! hostname maui-rtr-07 ! ! voice-port 1/0/0 connection trunk 1000 answer-mode !--- “slave side” !--- The answer-mode specifies that the router should not attempt !--- to initiate a trunk connection, but it should wait for an !--- incoming call before it establishes the trunk. ! ! dial-peer voice 1 voip destination-pattern 100. dtmf-relay h245-alphanumeric session target ipv4:192.168.100.1 ip qos dscp cs5 media ! dial-peer voice 2 pots destination-pattern 2000 port 1/0/0 !--- This dial-peer terminates the connection !--- from maui-slt-01 voice-port 1/0:1. ! ! ! interface Serial0/1 ip address 192.168.100.2 255.255.255.0 clockrate 128000 ! |
此部分提供您能使用的,用以确认您的配置正常工作的信息。
命令输出解释程序工具(仅限注册用户)支持某些 show 命令,使用此工具可以查看对 show 命令输出的分析。
show voice call summary — 用于验证所有中继是否都已启用并处于S_CONNECT状态。
当中继接通时,控制台将显示消息%HTSP-5-UPDOWN:中继端口(通道)[1/0:1(1)]已打开。
以下是show voice call summary命令的输出示例:
PORT CODEC VAD VTSP STATE VPM STATE ============ ======== === ==================== ====================== 3/0:0.1 g729r8 n S_CONNECT S_TRUNKED 3/0:1.2 g729r8 n S_CONNECT S_TRUNKED 3/0:2.3 g729r8 n S_CONNECT S_TRUNKED
未打开的中继将显示为S_TRUNK_PEND:
PORT CODEC VAD VTSP STATE VPM STATE ============ ======== === ==================== ====================== 3/0:0.1 - - - S_TRUNK_PEND 3/0:1.2 g729r8 n S_CONNECT S_TRUNKED 3/0:2.3 g729r8 n S_CONNECT S_TRUNKED
此部分提供您能使用故障排除您的配置的信息。
命令输出解释程序工具(仅限注册用户)支持某些 show 命令,使用此工具可以查看对 show 命令输出的分析。
注意:在发出debug命令之前,请参阅有关Debug命令的重要信息。
show call history voice | Include DisconnectText — 显示最近几次失败呼叫的断开原因。
show voice call summary — 显示两个呼叫段上处于活动状态的呼叫。
show voice dsp — 显示数字信号处理器(DSP)正在使用并正在处理数据包。
有关VoIP呼叫故障排除的详细信息,请参阅VoIP呼叫基础故障排除和调试和VoIP调试命令。
配置连接中继后,两台路由器上的关联语音端口必须为shutdown/no shutdown。如果将用户忙视为断开原因,则还会清除语音端口。
以下是show voice dsp命令的命令输出示例:
BOOT PAK TYPE DSP CH CODEC VERS STATE STATE RST AI PORT TS ABORT TX/RX-PAK-CNT ==== === == ======= ==== ===== ====== === == ======= == ===== =============== C549 000 01 g729r8 3.4 busy idle 0 0 3/0:12 13 0 3522765/3578769 00 g729r8 .41 busy idle 0 0 3/0:0 1 0 3505023/3560759 C549 001 01 g729r8 3.4 busy idle 0 0 3/0:13 14 0 3522761/3578601 00 g729r8 .41 busy idle 0 0 3/0:1 2 0 3522794/3578579
下一个示例输出是debug voip ccapi inout命令最常见的调试输出。此调试是在被叫端缺少POTS对等体的常见错误下进行的。在本例中,模拟端路由器没有POTS对等体来端接中继;在这种情况下,数字主叫端将进行以下调试:
maui-slt-01# *Mar 1 00:11:19.903: cc_api_call_setup_ind (vdbPtr=0x620B2DE8, callInfo={called=2000,called_oct3=0x81,calling=,calling_oct3=0x0, calling_oct3a=0x0,calling_xlated=false,subscriber_type_str=RegularLine ,fdest=1,peer_tag=2, prog_ind=3},callID=0x621C45F0) *Mar 1 00:11:19.903: cc_api_call_setup_ind type 3 , prot 0 *Mar 1 00:11:19.903: cc_process_call_setup_ind (event=0x62332908) *Mar 1 00:11:19.903: >>>>CCAPI handed cid 3 with tag 2 to app "DEFAULT" *Mar 1 00:11:19.907: sess_appl: ev(24=CC_EV_CALL_SETUP_IND), cid(3), disp(0) *Mar 1 00:11:19.907: sess_appl: ev(SSA_EV_CALL_SETUP_IND), cid(3), disp(0) *Mar 1 00:11:19.907: ssaCallSetupInd *Mar 1 00:11:19.907: ccCallSetContext (callID=0x3, context=0x621C4E90) *Mar 1 00:11:19.907: ssaCallSetupInd cid(3), st(SSA_CS_MAPPING),oldst(0), ev(24)ev->e.evCallSetupInd.nCallInfo.finalDestFlag = 1 *Mar 1 00:11:19.907: ssaCallSetupInd finalDest cllng(1000), clled(2000) *Mar 1 00:11:19.907: ssaCallSetupInd cid(3), st(SSA_CS_CALL_SETTING), oldst(0), ev(24)dpMatchPeersMoreArg result= 0 *Mar 1 00:11:19.907: ssaSetupPeer cid(3) peer list: tag(1) called number (2000) *Mar 1 00:11:19.907: ssaSetupPeer cid(3), destPat(2000), matched(1), prefix(), peer(61EE565C), peer->encapType (2) *Mar 1 00:11:19.907: ccCallProceeding (callID=0x3, prog_ind=0x0) *Mar 1 00:11:19.907: ccCallSetupRequest (Inbound call = 0x3, outbound peer =1, dest=, params=0x6233BD30 mode=0, *callID=0x6233C098, prog_ind = 3) *Mar 1 00:11:19.907: ccCallSetupRequest numbering_type 0x81 *Mar 1 00:11:19.907: ccCallSetupRequest encapType 2 clid_restrict_disable 1 null_orig_clg 1 clid_transparent 0 callingNumber 1000 *Mar 1 00:11:19.907: dest pattern 2..., called 2000, digit_strip 0 *Mar 1 00:11:19.907: callingNumber=1000, calledNumber=2000, redirectNumber= display_info= calling_oct3a=0 *Mar 1 00:11:19.907: accountNumber=, finalDestFlag=1, guid=1d0d.9a0f.14f0.11cc.8008.b3df.433e.6402 *Mar 1 00:11:19.911: peer_tag=1 *Mar 1 00:11:19.911: ccIFCallSetupRequestPrivate: (vdbPtr=0x621D74DC, dest=, callParams={called=2000,called_oct3=0x81, calling=1000,calling_oct3=0x0, calling_xlated=false, subscriber_type_str=RegularLine, fdest=1, voice_peer_tag=1}, mode=0x0) vdbPtr type = 1 *Mar 1 00:11:19.911: ccIFCallSetupRequestPrivate: (vdbPtr=0x621D74DC, dest=, callParams={called=2000, called_oct3 0x81, calling=1000,calling_oct3 0x0, calling_xlated=false, fdest=1, voice_peer_tag=1}, mode=0x0, xltrc=-5) *Mar 1 00:11:19.911: ccSaveDialpeerTag (callID=0x3, dialpeer_tag=0x1) *Mar 1 00:11:19.911: ccCallSetContext (callID=0x4, context=0x624C3094) *Mar 1 00:11:19.911: ccCallReportDigits (callID=0x3, enable=0x0) *Mar 1 00:11:19.911: cc_api_call_report_digits_done (vdbPtr=0x620B2DE8, callID=0x3, disp=0) *Mar 1 00:11:19.911: sess_appl: ev(52=CC_EV_CALL_REPORT_DIGITS_DONE), cid(3), disp(0) *Mar 1 00:11:19.911: cid(3)st(SSA_CS_CALL_SETTING)ev (SSA_EV_CALL_REPORT_DIGITS_DONE)oldst(SSA_CS_MAPPING) cfid(-1)csize(0)in(1)fDest(1) *Mar 1 00:11:19.911: -cid2(4)st2(SSA_CS_CALL_SETTING)oldst2(SSA_CS_MAPPING) *Mar 1 00:11:19.911: ssaReportDigitsDone cid(3) peer list: (empty) *Mar 1 00:11:19.911: ssaReportDigitsDone callid=3 Reporting disabled. *Mar 1 00:11:19.947: cc_api_call_disconnected(vdbPtr=0x621D74DC, callID=0x4, cause=0x1) *Mar 1 00:11:19.947: sess_appl: ev(11=CC_EV_CALL_DISCONNECTED), cid(4), disp(0) *Mar 1 00:11:19.947: cid(4)st(SSA_CS_CALL_SETTING)ev(SSA_EV_CALL_DISCONNECTED) oldst(SSA_CS_MAPPING)cfid(-1)csize(0)in(0)fDest(0) *Mar 1 00:11:19.947: -cid2(3)st2(SSA_CS_CALL_SETTING)oldst2(SSA_CS_CALL_SETTING) *Mar 1 00:11:19.951: ssaDiscSetting *Mar 1 00:11:19.951: ssa: Disconnected cid(4) state(1) cause(0x1) *Mar 1 00:11:19.951: ccCallDisconnect (callID=0x4, cause=0x1 tag=0x0) *Mar 1 00:11:19.951: ccCallDisconnect (callID=0x3, cause=0x1 tag=0x0) *Mar 1 00:11:19.951: cc_api_call_disconnect_done(vdbPtr=0x620B2DE8, callID=0x3, disp=0, tag=0x0) *Mar 1 00:11:19.955: sess_appl: ev(12=CC_EV_CALL_DISCONNECT_DONE), cid(3), disp(0) *Mar 1 00:11:19.955: cid(3)st(SSA_CS_DISCONNECTING)ev (SSA_EV_CALL_DISCONNECT_DONE)oldst(SSA_CS_CALL_SETTING) cfid(-1)csize(0)in(1)fDest(1) *Mar 1 00:11:19.955: -cid2(4)st2(SSA_CS_DISCONNECTING)oldst2(SSA_CS_CALL_SETTING) *Mar 1 00:11:19.955: ssaDisconnectDone *Mar 1 00:11:19.963: cc_api_icpif: expect factor = 0 *Mar 1 00:11:19.963: cc_api_call_disconnect_done(vdbPtr=0x621D74DC, callID=0x4, disp=0, tag=0x0) *Mar 1 00:11:19.967: sess_appl: ev(12=CC_EV_CALL_DISCONNECT_DONE), cid(4), disp(0) *Mar 1 00:11:19.967: cid(4)st(SSA_CS_DISCONNECTING)ev (SSA_EV_CALL_DISCONNECT_DONE)oldst(SSA_CS_CALL_SETTING) cfid(-1)csize(1)in(0)fDest(0) *Mar 1 00:11:19.967: ssaDisconnectDone
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
23-Jan-2006 |
初始版本 |