简介
本文档介绍FXS和FXO端口及其功能、呼叫建立和拆卸、配置组件和故障排除提示。
先决条件
要求
Cisco建议您了解模拟接口基础知识。
使用的组件
本文档中的信息基于下列硬件和软件版本:
- ISR4451-X/K9
- NIM-2FXSP
- NIM-2FXO
- 思科IOS® XE版本16.8.2
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
FXS/FXO基础
端口基础知识
外部交换站(FXS)/外部交换局(FXO)是典型的模拟电路,用于将一条模拟电话线传送到您的住宅。
FXOport(或设备)是连接到电路的端口,该端口能够在摘机时挂机/摘机并传输数字以启动呼叫。 它采用继电器,当端口摘机时,电路关闭;当端口被视为挂机时,电路打开。它与另一端的FXS互连。
当FXO端口终止来自运营商的线路时,您也可以将这些端口视为您的模拟听筒或传真机/调制解调器。
FXS端口是连接到电路并为FXO设备提供拨号音和振铃电压的设备。 FXS端口将网关连接到电话、传真机和调制解调器等设备。FXS端口仅使用两根电线(头端线和环线)传输给定呼叫的信令和音频路径。此双线对可向工作站提供振铃、电压和拨号音。
基本呼叫流程
为了更好地了解如何排除这两种端口类型故障,您必须首先查看如何在这些端口上设置呼叫。本部分显示从两个终端挂机时到出现双向音频时模拟呼叫的过程。
与所有呼叫一样,当两个终端未使用时,FXS端口会以挂机状态启动:
当其中一个电话摘机时,电路会关闭,并且FXS端口会向FXO设备提供拨号音。
一旦发起呼叫的设备摘机后,它将开始通过“脉冲”或“铃声”拨号号码。
一旦拨打了该号码,处理该呼叫的设备就会相应地路由该号码。呼叫被路由后,当远端设备收到呼叫的警报时,呼叫源自的设备将播放回铃音。
当远端设备接听呼叫后,其电路也将关闭,此时呼叫与双向音频连接:
前面的示例是呼叫从开始到结束的基本流程。但是,FXS端口向电话发送有关其每个呼叫状态的信号时,在幕后还会发生更多情况。下一部分介绍思科模拟网关上FXS端口使用的两种最常见的信令方法。
环路起始信令
环路启动信令是标准公共交换电话网(PSTN)中用于接入信令的最常用技术,或者是将大量设备连接到网络的模拟端口。大多数住宅电话都是模拟环路启动电话,基于之前看到的本地环路的概念。环路是由两根电线组成的电子通信路径,一根用于传输,另一根用于接收语音信号。
两线式电路仍称为头端和环,头端接地,环接在电池的负侧。当电话听筒被拿起(摘机)时,此操作会关闭电路,并在FXS端口和电话之间建立环路。从模拟端口的电池中抽取电流,它指示状态的变化。此状态变化向模拟端口中的电流检测器发出信号,以提供拨号音。
传入呼叫通过标准的开/关模式发信号到听筒,这将导致电话振铃。
出站呼叫的VPM信令
为了更好地理解FXS端口上成功的出站呼叫的日志的外观,对这些日志进行了注释,以便您可以清楚地识别呼叫的每个部分。
007578: Jul 2 09:15:50.655: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): GOING OFF HOOK
007579: Jul 2 09:15:51.903: htsp_dsp_message: SEND_SIG_STATUS: state=0xC timestamp=62909 systime=6970515
007580: Jul 2 09:15:51.903: htsp_process_event: [0/3/0, FXSLS_ONHOOK, E_DSP_SIG_1100]fxsls_onhook_offhook htsp_setup_ind
007581: Jul 2 09:15:51.903: [0/3/0] get_local_station_id calling num= calling name= calling time=07/02 09:15 orig called=
007582: Jul 2 09:15:51.904: htsp_process_event: [0/3/0, FXSLS_WAIT_SETUP_ACK, E_HTSP_SETUP_ACK]fxsls_check_auto_call
007583: Jul 2 09:16:00.879: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): DIALING 2002
007584: Jul 2 09:16:02.261: htsp_digit_ready(0/3/0): digit = 2
007585: Jul 2 09:16:02.734: htsp_digit_ready(0/3/0): digit = 0
007586: Jul 2 09:16:03.005: htsp_digit_ready(0/3/0): digit = 0
007587: Jul 2 09:16:03.438: htsp_digit_ready(0/3/0): digit = 2
007588: Jul 2 09:16:03.439: htsp_process_event: [0/3/0, FXSLS_OFFHOOK, E_HTSP_PROCEEDING]htsp_alert_notify
007589: Jul 2 09:16:08.241: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): RING BACK
007590: Jul 2 09:16:10.621: htsp_call_bridged invoked
007591: Jul 2 09:16:10.665: htsp_process_event: [0/3/0, FXSLS_OFFHOOK, E_HTSP_CONNECT]fxsls_offhook_connect
007592: Jul 2 09:16:10.665: [0/3/0] nim_set_sig_state: ABCD=6, timestamp=0, sys_time=6972391
007593: Jul 2 09:16:10.665: [0/3/0] set signal state = 0x6 timestamp = 0
007594: Jul 2 09:16:10.667: htsp_process_event: [0/3/0, FXSLS_CONNECT, E_HTSP_VOICE_CUT_THROUGH]fxsls_voice_cut_thru
007595: Jul 2 09:16:20.815: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): TWO WAY AUDIO
007596: Jul 2 09:16:37.503: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): HANGING UP
007597: Jul 2 09:16:39.794: htsp_dsp_message: SEND_SIG_STATUS: state=0x4 timestamp=45260 systime=6975304
007598: Jul 2 09:16:39.794: htsp_process_event: [0/3/0, FXSLS_CONNECT, E_DSP_SIG_0100]fxsls_offhook_onhook, HF duration Max=1000, HF duration Min=150
007599: Jul 2 09:16:39.794: htsp_timer - 1000 msec
007600: Jul 2 09:16:40.795: htsp_process_event: [0/3/0, FXSLS_CONNECT, E_HTSP_EVENT_TIMER]fxsls_connect_wait_release_req
007601: Jul 2 09:16:40.795: htsp_timer_stop
007602: Jul 2 09:16:40.796: htsp_timer_stop3
007603: Jul 2 09:16:40.878: htsp_process_event: [0/3/0, FXSLS_WAIT_RELEASE_REQ, E_HTSP_RELEASE_REQ]fxsls_waitrls_req_rls
007604: Jul 2 09:16:40.878: [0/3/0] nim_set_sig_state: ABCD=4, timestamp=0, sys_time=6975412
007605: Jul 2 09:16:40.878: [0/3/0] set signal state = 0x4 timestamp = 0
007606: Jul 2 09:16:40.878: [0/3/0] nim_set_sig_state: ABCD=4, timestamp=0, sys_time=6975412
007607: Jul 2 09:16:40.878: [0/3/0] set signal state = 0x4 timestamp = 0
007608: Jul 2 09:16:40.898: htsp_dsp_message: RESP_SIG_STATUS: state=0x4 timestamp=0 systime=6975414
007609: Jul 2 09:16:40.898: htsp_process_event: [0/3/0, FXSLS_ONHOOK, E_DSP_SIG_0100]fxsls_onhook_onhook
入站呼叫的VPM信令
本文档还包括入站呼叫的信令外观。已对日志进行了注释,以便轻松理解流程中的每个步骤。
008109: Jul 2 10:54:34.424: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): PHONE IS IN IDLE & ON HOOK. THEN IT STARTS TELLING PHONE TO RING.
008110: Jul 2 10:54:42.225: htsp_timer_stop3 htsp_setup_req
008111: Jul 2 10:54:42.225: Orig called num:88777
008112: Jul 2 10:54:42.225: htsp_process_event: [0/3/0, FXSLS_ONHOOK, E_HTSP_SETUP_REQ]fxsls_onhook_setuphtsp_alert
008113: Jul 2 10:54:42.225: [0/3/0] nim_set_sig_state: ABCD=0, timestamp=0, sys_time=7563547
008114: Jul 2 10:54:42.225: [0/3/0] set signal state = 0x0 timestamp = 0
008115: Jul 2 10:54:42.226: htsp_call_bridged invoked
008116: Jul 2 10:54:42.227: htsp_process_event: [0/3/0, FXSLS_WAIT_OFFHOOK, E_HTSP_VOICE_CUT_THROUGH]fxsls_waitoff_voice
008117: Jul 2 10:54:52.960: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): PHONE GOES OFF HOOK
008118: Jul 2 10:54:55.431: htsp_dsp_message: SEND_SIG_STATUS: state=0xC timestamp=42727 systime=7564868
008119: Jul 2 10:54:55.431: htsp_process_event: [0/3/0, FXSLS_WAIT_OFFHOOK, E_DSP_SIG_1100]fxsls_waitoff_offhook
008120: Jul 2 10:54:55.431: [0/3/0] nim_set_sig_state: ABCD=4, timestamp=0, sys_time=7564868
008121: Jul 2 10:54:55.432: [0/3/0] set signal state = 0x4 timestamp = 0
008122: Jul 2 10:54:55.432: [0/3/0] nim_set_sig_state: ABCD=6, timestamp=200, sys_time=7564868
008123: Jul 2 10:54:55.432: [0/3/0] set signal state = 0x6 timestamp = 200
008124: Jul 2 10:54:55.432: htsp_timer2 - 200 msec
008125: Jul 2 10:54:55.631: htsp_process_event: [0/3/0, FXSLS_WAIT_OFFHOOK, E_HTSP_EVENT_TIMER2]fxsls_offhook_dial htsp_dial
008126: Jul 2 10:54:55.632: htsp_process_event: [0/3/0, FXSLS_CONNECT, E_DSP_DIALING_DONE]fxsls_conn_dial_done
008127: Jul 2 10:54:55.640: htsp_process_event: [0/3/0, FXSLS_CONNECT, E_HTSP_VOICE_CUT_THROUGH]fxsls_voice_cut_thru
008128: Jul 2 10:55:08.864: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): TWO WAY AUDIO
008129: Jul 2 10:55:27.232: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): PHONE IS NOW DISCONNECTED FORM FAR END
008130: Jul 2 10:55:29.798: htsp_timer_stop3
008131: Jul 2 10:55:29.843: htsp_process_event: [0/3/0, FXSLS_CONNECT, E_HTSP_RELEASE_REQ]fxsls_connect_disc
008132: Jul 2 10:55:29.843: htsp_timer_stop
008133: Jul 2 10:55:29.843: [0/3/0] nim_set_sig_state: ABCD=12, timestamp=0, sys_time=7568309
008134: Jul 2 10:55:29.843: [0/3/0] set signal state = 0xC timestamp = 0
008135: Jul 2 10:55:29.843: [0/3/0] nim_set_sig_state: ABCD=4, timestamp=750, sys_time=7568309
008136: Jul 2 10:55:29.843: [0/3/0] set signal state = 0x4 timestamp = 750
008137: Jul 2 10:55:29.843: htsp_timer - 950 msecfxsls_simulate_onhook
008138: Jul 2 10:55:30.793: htsp_process_event: [0/3/0, FXSLS_CPC, E_HTSP_EVENT_TIMER]fxsls_cpc_timer
008139: Jul 2 10:55:30.793: htsp_timer - 60000 msec
008140: Jul 2 10:55:30.808: htsp_dsp_message: RESP_SIG_STATUS: state=0xC timestamp=0 systime=7568405
008141: Jul 2 10:55:30.808: htsp_process_event: [0/3/0, FXSLS_WAIT_ONHOOK, E_DSP_SIG_1100]fxsls_waitonhook_offhook
008142: Jul 2 10:55:37.525: htsp_dsp_message: SEND_SIG_STATUS: state=0x4 timestamp=19285 systime=7569077
008143: Jul 2 10:55:37.525: htsp_process_event: [0/3/0, FXSLS_WAIT_ONHOOK, E_DSP_SIG_0100]fxsls_waitonhook_onhook
008144: Jul 2 10:55:37.525: htsp_timer_stop htsp_report_onhook_sig
008145: Jul 2 10:55:48.351: %SYS-7-USERLOG_DEBUG: Message from tty867(user id: ): PHONE IS ON HOOK
排除FXS和FXO端口故障
本文档介绍在模拟端口基本了解其不同状态和完美的呼叫方案之后,排除这些端口故障的不同方法。具体而言,本章将介绍一些show命令和常见故障场景。
用于故障排除的命令
显示命令
为了帮助排除端口所处的状态故障,可以使用show voice port summary和show voice call summary等命令。这些命令可显示不同的状态,例如呼叫处于挂机状态且未使用时,端口处于摘机状态且有活动呼叫时。下图显示了一些不同的状态。
挂机:
ISR4451#show voice port sum IN OUT PORT CH SIG-TYPE ADMIN OPER STATUS STATUS EC =============== == ============ ===== ==== ======== ======== == 0/3/0 -- fxs-ls up dorm on-hook idle y 0/3/1 -- fxs-ls up dorm on-hook idle y ISR4451#show voice call sum PORT CODEC VAD VTSP STATE VPM STATE ============== ========= === ===================== ===================== 0/3/0 - - - FXSLS_ONHOOK 0/3/1 - - - FXSLS_ONHOOK
电话收到以下警报:
ISR4451#show voice port sum IN OUT PORT CH SIG-TYPE ADMIN OPER STATUS STATUS EC =============== == ============ ===== ==== ======== ======== == 0/3/0 -- fxs-ls up up on-hook ringing y 0/3/1 -- fxs-ls up dorm on-hook idle y ISR4451#show voice call sum PORT CODEC VAD VTSP STATE VPM STATE ============== ========= === ===================== ===================== 0/3/0 g711ulaw n S_SETUP_REQ_PROC FXSLS_WAIT_OFFHOOK 0/3/1 - - - FXSLS_ONHOOK
呼叫已连接:
ISR4451#show voice port sum IN OUT PORT CH SIG-TYPE ADMIN OPER STATUS STATUS EC =============== == ============ ===== ==== ======== ======== == 0/3/0 -- fxs-ls up up off-hook idle y 0/3/1 -- fxs-ls up dorm on-hook idle y ISR4451#show voice call sum PORT CODEC VAD VTSP STATE VPM STATE ============== ========= === ===================== ===================== 0/3/0 g711ulaw n S_CONNECT FXSLS_CONNECT 0/3/1 - - - FXSLS_ONHOOK
在前面的两个show命令中,以下命令可能会对您有所帮助:
show call active voice brief
show voice call status
show voice dsp active
show voice dsp error
show voice dsp group all
语音端口测试命令
检测器相关功能测试
使用test voice port detector命令,您可以强制将特定检测器设置为打开或关闭状态,对检测器进行测试,然后将检测器恢复为其原始状态。
要配置此功能,请在特权EXEC模式下输入以下命令:
命令 |
目的 |
Router# test voice port slot/subunit/port detector {m-lead | 电池反转 | 环路电流 | 振铃 | 头端接地 | 环接地 | ring-trip} {on | off} |
标识要测试的语音端口。 为正在测试的检测器输入关键字,并指定是否强制其进入打开或关闭状态。 对于每个信令类型(E&M、FXO、FXS),仅显示适用的关键字。仅当检测器处于强制状态时,才会显示disable关键字。 |
Router# test voice port slot/subunit/port detector {m-lead | 电池反转 | 环路电流 | 振铃 | 头端接地 | 环接地 | ring-trip}禁用 |
标识要结束测试的语音端口。 为正在测试的检测器输入关键字,该关键字禁用以结束强制状态。 对于每个信令类型(E&M、FXO、FXS),仅显示适用的关键字。仅当检测器处于强制状态时,才会显示disable关键字。 |
环回功能测试
要在语音端口上建立环回,请在特权EXEC模式下输入以下命令:
命令 |
目的 |
Router# test voice port slot/subunit/port loopback {local | 网络} |
标识要测试的语音端口并输入环回方向的关键字。 必须在测试的语音端口上建立呼叫。 |
Router# test voice port slot/subunit/port loopback disable |
标识要结束测试的语音端口,并输入关键字disable结束环回。 |
语音注入测试
要将测试音注入语音端口,请在特权EXEC模式下输入以下命令:
命令 |
目的 |
Router# test voice port slot/subunit/port inject-tone {local | network} {1000hz | 2000hz | 200hz | 3000hz | 300hz | 3200赫 | 3400赫 | 500hz | 静音} |
标识要测试的语音端口,并为发送测试音的方向和测试音的频率输入关键字。 必须在测试的语音端口上建立呼叫。 |
Router# test voice port slot/subunit/port inject-tone disable |
标识要在其上结束测试的语音端口,并输入关键字disable以结束测试音。 disable关键字仅在激活测试条件时可用。 |
中继相关功能测试
要在语音端口上测试与中继相关的功能,请在特权EXEC模式下输入以下命令:
命令 |
目的 |
Router# test voice port slot/subunit/port relay {e-lead | 环路 | 环接地 | 电池反转 | 电源拒绝 | 振铃 | tip-ground} {on|off} |
标识要测试的语音端口。 为正在测试的中继输入关键字,并指定是否强制其进入打开或关闭状态。 对于每个信令类型(E&M、FXO、FXS),仅显示适用的关键字。仅当中继处于强制状态时,才会显示disable关键字。 |
Router# test voice port slot/subunit/port relay {e-lead | 环路 | 环接地 | 电池反转 | 电源拒绝 | 振铃 | tip-ground}禁用 |
标识要结束测试的语音端口。 为正在测试的中继输入关键字,关键字disable结束强制状态。 对于每个信令类型(E&M、FXO、FXS),仅显示适用的关键字。仅当中继处于强制状态时,才会显示disable关键字。 |
传真/语音模式测试
为了进行测试, test voice port switch fax命令强制语音端口进入传真模式。输入此命令后,可以使用show voice call或show voice call summary命令检查语音端口是否可以在传真模式下运行。如果语音端口未检测到传真数据,语音端口将保持传真模式30秒,然后自动恢复为语音模式。
关键字disable可结束强制模式切换;但是,传真模式会在30秒后自动结束。仅当语音端口处于传真模式时,disable关键字才可用。
要强制语音端口进入传真模式并返回到语音模式,请在特权EXEC模式下输入以下命令:
命令 |
目的 |
Router# test voice port slot/subunit/port switch fax |
标识要测试的语音端口。 输入关键字fax ,强制语音端口进入传真模式。 |
Router# test voice port slot/subunit/port switch disable |
标识要结束测试的语音端口。 输入关键字disable以将语音端口返回到语音模式。 |
发现的常见问题
如前所述,本文档介绍排除FXO和FXS故障时发现的一些常见问题。
检测到FXO电源拒绝
FXO负责检测FXS何时完成电源拒绝,以便它知道何时在FXS端断开情况下挂机。
005754: Nov 18 18:51:28.257: htsp_process_event: [0/2/3, FXOLS_ONHOOK, E_HTSP_SETUP_REQ]fxols_onhook_setup 005755: Nov 18 18:51:28.257: [0/2/3] set signal state = 0xC timestamp = 0 005756: Nov 18 18:51:28.257: htsp_timer - 500 msec 005782: Nov 18 18:51:28.509: htsp_process_event: [0/2/3, FXOLS_WAIT_DIAL_TONE, E_DSP_SIG_1100]fxols_power_denial_detected 005783: Nov 18 18:51:28.509: htsp_timer2 - 1000 msec 005784: Nov 18 18:51:28.509: htsp_timer_stop 005785: Nov 18 18:51:29.509: htsp_process_event: [0/2/3, FXOLS_WAIT_DIAL_TONE, E_HTSP_EVENT_TIMER2]fxols_power_den_disc 005786: Nov 18 18:51:29.509: htsp_timer_stop 005787: Nov 18 18:51:29.509: htsp_timer_stop2
当在线路上未检测到环路电流时,将触发事fxols_power_denial_detected 件。默认情况下会启动750毫秒计时器。如果DSP在计时器到期之前未检测到电流,则会断开呼叫。计时器在语音端口配置模式下可使用timeouts power-denial <0-2500ms>命令进行修改。此计时器必须与FXS端为其电源拒绝持续时间定义的匹配。
此情况表示电缆或硬件有故障,或者另一端的端口类型错误。确定问题是否与端口或线路有关。
- 如果问题与线路有关,请检查连接到电信标记的电缆。与电信公司联系以获得帮助。
- 如果问题与端口有关,则可能是端口故障。进一步的故障排除可以证实这一点。
其他问题
- 断开监督-查看有关如何断开监督在模拟端口上处理的具体部分。
- 布线-布线必须为从FXS到FXO的两线直通电缆。如果因线路问题而无法听到拨号音,则通常线路上绝对没有音频声音。如果电缆连接正确,则摘机后背景噪音会略有增加。
- 端口损坏-端口可能损坏,无法提供拨号音、检测振铃电压等。进行故障排除,将端口与VoIP端和电缆端隔离。
- DSP问题-端口必须使用DSP识别端口上的事件。因此,语音端口会将DSP分配给启动时的信号,即使端口未使用且已关闭。对模拟语音端口进行更改时,请在再次测试之前关闭/不关闭端口。
- 长/低运行率,阻抗问题-由于是模拟音频传输,因此环境中电磁干扰(EMI)的运行状况非常重要,因为它会影响音频质量。例如,当您在荧光灯(或搅拌机/电动机附近)上运行模拟线路时,可能会在线路上产生过多噪声。长运行通常会导致衰减和阻抗不匹配。必须为运行长度设置适当的阻抗。
- 用于补偿衰减的增益过大-当应用大量输入增益时,这可能会加剧回声问题,因为它会导致低回声回波损耗(ERL)。尽可能避免这种情况。
- 数字传输-数字不从电信公司发送到FXO端口。您必须使用
connection plar <extension>才能将呼叫从端口路由到接待员或IVR/AA。
- 呼出呼叫故障-如果电路为FXOGS并且已为FXOLS配置该电路,则呼入呼叫可以工作,但呼出失败。此外,极性对于使用GS的传出呼叫也很重要。