简介
本文档介绍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端口仅使用两根电线(Tip和Ring)作为给定呼叫的信令和音频路径。此双线对可向工作站提供振铃、电压和拨号音。
基本呼叫流程
为了更好地了解如何对这两种端口类型进行故障排除,您必须首先查看呼叫是如何在它们上建立的。本部分介绍从两个终端挂机到出现双向音频的点之间的模拟呼叫过程。
与所有呼叫一样,当两个终端未使用时,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 | battery-reversal | loop-current |振铃 | tip-ground | ring-ground | ring-trip} {on |关闭}
|
标识要测试的语音端口。
为要测试的检测器输入关键字,并指定是否强制其进入打开或关闭状态。
对于每个信令类型(E&M、FXO、FXS),仅显示适用的关键字。仅当检测器处于强制状态时,才会显示disable关键字。
|
Router# test voice port slot/subunit/port detector {m-lead | battery-reversal | loop-current |振铃 | tip-ground | ring-ground | 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 |网络} {1000hz | 2000hz | 200hz | 3000hz | 300hz | 3200hz | 3400hz | 500hz | quiet}
|
标识要测试的语音端口,并为发送测试音的方向和测试音的频率输入关键字。
必须在测试的语音端口上建立呼叫。
|
Router# test voice port slot/subunit/port inject-tone disable
|
标识要结束测试的语音端口,并输入关键字disable结束测试音。
只有激活测试条件时,disable关键字才可用。
|
中继相关功能测试
要在语音端口上测试中继相关功能,请在特权EXEC模式下输入以下命令:
命令
|
目的
|
Router# test voice port slot/subunit/port relay {e-lead |循环 | ring-ground | battery-reversal |电源拒绝 |振铃 | tip-ground} {on|off}
|
标识要测试的语音端口。
为正在测试的中继输入关键字,并指定是强制其进入打开状态还是关闭状态。
对于每个信令类型(E&M、FXO、FXS),仅显示适用的关键字。仅当中继处于强制状态时,才会显示disable关键字。
|
Router# test voice port slot/subunit/port relay {e-lead |循环 | ring-ground | battery-reversal |电源拒绝 |振铃 | 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
,以便将呼叫从端口路由到接待员或IVR/AA。
- 呼出呼叫失败 — 如果电路为FXOGS并且已为FXOLS配置该电路,则呼入呼叫可以工作,但呼出失败。此外,极性对于使用GS的传出呼叫也很重要。