簡介
本檔案介紹FXS和FXO連線埠及其功能、通話設定和卸除、組態元件和疑難排解提示。
必要條件
需求
思科建議您瞭解模擬介面基礎知識。
採用元件
本文件中的資訊是以下列硬體與軟體版本為依據:
- ISR4451-X/K9
- NIM-2FXSP
- NIM-2FXO
- Cisco IOS® XE版本16.8.2
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
FXS/FXO基礎知識
埠基礎知識
外匯站(FXS)/外匯局(FXO)是典型的類比電路,用於為您的住宅傳輸一條模擬電話線路。
FXOport(或裝置)是連線到電路的埠,它具有掛機功能,在掛機時可以傳送數字以發起呼叫。它使用繼電器,當埠摘機時,電路關閉,當埠被視為掛機時,電路開啟。它與另一側的FXS互連。
由於FXO埠終止運營商提供的線路,您還可以將其視為模擬聽筒或傳真機/數據機。
FXS埠是連線到電路並為FXO裝置提供撥號音和振鈴電壓的裝置。FXS埠將網關連線到電話、傳真機和數據機等設備。FXS連線埠僅使用兩根電線(尖端和環)作為指定通話上的訊號傳送和音訊路徑。此雙線對可向站台提供振鈴、電壓和撥號音。
基本呼叫流程
為了更好地理解如何對這兩種埠型別進行故障排除,您必須首先瞭解呼叫是如何在它們上面設定的。本節介紹從兩個端點掛機到出現雙向音訊的點之間的模擬呼叫過程。
與所有呼叫一樣,當兩個端點未使用時,FXS埠會以掛機狀態啟動:

當其中一個電話摘機時,電路關閉,並且撥號音由FXS埠提供給FXO裝置。

一旦發起呼叫的裝置處於摘機狀態,它就會開始通過Pults或Tones來撥打該號碼。

撥打該號碼後,處理該呼叫的裝置會相應地路由該號碼。一旦呼叫被路由,當遠端裝置收到呼叫的警報時,呼叫源自的裝置將播放回鈴音。

一旦遠端裝置接聽呼叫,其電路也關閉,此時呼叫與雙向音訊連線:

先前的範例是呼叫開始到結束的基本流程。但是,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 injection-tone {local |網路} {1000hz | 2000hz | 200hz | 3000hz | 300hz | 3200hz | 3400hz | 500hz | quiet}
|
標識要測試的語音埠,並為傳送測試音的方向和測試音的頻率輸入關鍵字。
必須在測試的語音埠上建立呼叫。
|
Router# test voice port slot/subunit/port injection-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的傳出呼叫也很重要。