There are a number of reasons why your caller ID isn’t working when your FXO port on a Cisco router receives a phone call. In this lesson, I’d like to show you how to fix most of the issues. This is what the configuration of my FXO port looks like now:
voice-port 0/3/0
connection plar 500
station-id number 123456789
caller-id enable
There’s nothing spectacular, just a station-id and a connection plar. I have enabled caller-id, so I would expect it to work. Let’s do a debug to see if we receive a number…
VOIPGATEWAY#debug vpm signal
Voice Port Module signaling debugging is enabled
Now I’m going to call the number and let the FXO port answer it. This is what you’ll see:
VOIPGATEWAY#
htsp_process_event: [0/3/0, FXOLS_ONHOOK, E_DSP_SIG_0110]
fxols_line_reversal_clid_wait. On_hook line reversal detected possibily due to crossed cable
htsp_process_event: [0/3/0, FXOLS_ONHOOK, E_DSP_SIG_0000]fxols_onhook_ringing
htsp_timer - 125 msec
htsp_process_event: [0/3/0, FXOLS_WAIT_RING_MIN, E_HTSP_EVENT_TIMER]fxols_wait_ring_min_timer
htsp_timer - 10000 msec
htsp_timer3 - 5600 msec
[0/3/0] htsp_start_caller_id_rx:BELLCORE
htsp_start_caller_id_rx create dsp_stream_manager
[0/3/0] htsp_dsm_create_success returns 1
htsp_process_event: [0/3/0, FXOLS_RINGING, E_DSP_SIG_0100]
fxols_ringing_not
htsp_timer_stop
htsp_timer - 10000 msec
htsp_process_event: [0/3/0, FXOLS_RINGING, E_DSP_SIG_0000]
htsp_process_event: [0/3/0, FXOLS_RINGING, E_HTSP_EVENT_TIMER3]fxols_snoop_clid_stop
htsp_timer_stop3
htsp_process_event: [0/3/0, FXOLS_RINGING, E_DSP_SIG_0100]
fxols_ringing_not
htsp_timer_stop
htsp_timer_stop3
[0/3/0] htsp_stop_caller_id_rx. message length 0htsp_setup_ind
[0/3/0] get_fxo_caller_id:Caller ID receive failed. parseCallerIDString:no data.
[0/3/0] get_local_station_id calling num=0205111234 calling name= calling time=07/26 10:08 orig called=
htsp_process_event: [0/3/0, FXOLS_WAIT_SETUP_ACK, E_HTSP_SETUP_ACK]
fxols_wait_setup_ack:
[0/3/0] set signal state = 0xC timestamp = 0fxols_check_auto_call
htsp_process_event: [0/3/0, FXOLS_PROCEEDING, E_HTSP_PROCEEDING]fxols_offhook_proc
htsp_timer - 120000 msec
[0/3/0] htsp_dsm_close_done
htsp_pre_connect_disconnect, cdb = 47933248 cause = 1
htsp_process_event: [0/3/0, FXOLS_PROCEEDING, E_HTSP_PRE_CONN_DISC]
htsp_process_event: [0/3/0, FXOLS_OFFHOOK, E_DSP_SIG_0110]
htsp_timer_stop2 fxols_offhook_rvs_battery
There’s quite some information, but the most important one right now is the following line:
get_fxo_caller_id:Caller ID receive failed. parseCallerIDString:no data.
When we take a closer look, there are some items that we should take a closer look at. The first one is the following line:
[0/3/0] htsp_start_caller_id_rx:BELLCORE
In my case, this is not correct as I’m troubleshooting a router that is connected to a Dutch PSTN from a telco called “KPN”. If you are in another country, make sure the alerting method is correct. You can change this with the cptone
command:
VOIPGATEWAY(config)#voice-port 0/3/0
VOIPGATEWAY(config-voiceport)#cptone ?
locale 2 letter ISO-3166 country code
AR Argentina IN India PE Peru
AU Australia ID Indonesia PH Philippines
AT Austria IE Ireland PL Poland
BE Belgium IL Israel PT Portugal
BR Brazil IT Italy RU Russian Federation
CA Canada JP Japan SA Saudi Arabia
CN China JO Jordan SG Singapore
CO Colombia KE Kenya SK Slovakia
C1 Custom1 KR Korea Republic SI Slovenia
C2 Custom2 KW Kuwait ZA South Africa
CY Cyprus LB Lebanon ES Spain
CZ Czech Republic LU Luxembourg SE Sweden
DK Denmark MY Malaysia CH Switzerland
EG Egypt MX Mexico TW Taiwan
FI Finland NP Nepal TH Thailand
FR France NL Netherlands TR Turkey
DE Germany NZ New Zealand AE United Arab Emirates
GH Ghana NG Nigeria GB United Kingdom
GR Greece NO Norway US United States
HK Hong Kong OM Oman VE Venezuela
HU Hungary PK Pakistan ZW Zimbabwe
IS Iceland PA Panama
In my case, it should be “NL” (The Netherlands):
VOIPGATEWAY(config-voiceport)#cptone nl
%Impedance also changed to Complex2
At least the local is now configured correctly. Let’s call one more time to see if there’s anything different in my debug!
VOIPGATEWAY#
htsp_process_event: [0/3/0, FXOLS_ONHOOK, E_DSP_SIG_0110]
fxols_line_reversal_clid_wait. On_hook line reversal detected possibily due to crossed cable
htsp_process_event: [0/3/0, FXOLS_ONHOOK, E_DSP_SIG_0000]fxols_onhook_ringing
htsp_timer - 125 msec
htsp_process_event: [0/3/0, FXOLS_WAIT_RING_MIN, E_HTSP_EVENT_TIMER]fxols_wait_ring_min_timer
htsp_timer - 10000 msec
htsp_timer3 - 5600 msec
[0/3/0] htsp_start_caller_id_rx:ETSI_DTMF
htsp_start_caller_id_rx create dsp_stream_manager
[0/3/0] htsp_dsm_create_success returns 1
htsp_process_event: [0/3/0, FXOLS_RINGING, E_DSP_SIG_0100]
fxols_ringing_not
htsp_timer_stop
htsp_timer - 10000 msec
htsp_process_event: [0/3/0, FXOLS_RINGING, E_DSP_SIG_0000]
htsp_process_event: [0/3/0, FXOLS_RINGING, E_HTSP_EVENT_TIMER3]fxols_snoop_clid_stop
htsp_timer_stop3
htsp_process_event: [0/3/0, FXOLS_RINGING, E_DSP_SIG_0100]
fxols_ringing_not
htsp_timer_stop
htsp_timer_stop3
[0/3/0] htsp_stop_caller_id_rx. message length 0htsp_setup_ind
[0/3/0] get_fxo_caller_id:Caller ID receive failed. parseCallerIDString:no data.
[0/3/0] get_local_station_id calling num=0205111234 calling name= calling time=07/26 10:18 orig called=
htsp_process_event: [0/3/0, FXOLS_WAIT_SETUP_ACK, E_HTSP_SETUP_ACK]
fxols_wait_setup_ack:
[0/3/0] set signal state = 0xC timestamp = 0fxols_check_auto_call
[0/3/0] htsp_dsm_close_done
htsp_process_event: [0/3/0, FXOLS_PROCEEDING, E_HTSP_PROCEEDING]fxols_offhook_proc
htsp_timer - 120000 msec
htsp_pre_connect_disconnect, cdb = 47933248 cause = 1
I can see the locale has changed to ETSI_DTMF, which is correct, but I’m still not receiving the caller ID. There’s one more message in this debug that requires our attention, however:
fxols_line_reversal_clid_wait. On_hook line reversal detected possibily due to crossed cable
I can set the line-reversal alerting method for Caller-ID information by using the following command:
VOIPGATEWAY(config)#voice-port 0/3/0
VOIPGATEWAY(config-voiceport)#caller-id alerting line-reversal
Time for one more call…
VOIPGATEWAY#
htsp_process_event: [0/3/0, FXOLS_ONHOOK, E_DSP_SIG_0110]
fxols_line_reversal_clid_wait. Line reversal alerting
[0/3/0] htsp_start_caller_id_rx:ETSI_DTMF
htsp_start_caller_id_rx create dsp_stream_manager
[0/3/0] htsp_dsm_create_success returns 1
[0/3/0] htsp_dsm_feature_notify_cb returns 2 id=DSM_FEATURE_SM_CALLERID_RX
htsp_process_event: [0/3/0, FXOLS_ONHOOK, E_HTSP_CALLERID_RX_DONE]
[0/3/0] htsp_stop_caller_id_rx. message length 12
[0/3/0] htsp_dsm_close_done
htsp_process_event: [0/3/0, FXOLS_ONHOOK, E_DSP_SIG_0000]fxols_onhook_ringing
htsp_timer - 125 msec
htsp_process_event: [0/3/0, FXOLS_WAIT_RING_MIN, E_HTSP_EVENT_TIMER]fxols_wait_ring_min_timer
htsp_timer - 10000 msec
htsp_process_event: [0/3/0, FXOLS_RINGING, E_DSP_SIG_0100]
fxols_ringing_not
htsp_timer_stop
htsp_timer_stop3 htsp_setup_ind
[0/3/0] get_fxo_caller_id:Caller ID received. Message type=129 length=12 checksum=00
[0/3/0] Caller ID String 43 30 35 36 32 36 31 11 11 11 35
[0/3/0] get_fxo_caller_id calling num=0612345678 calling name= calling time=07/26 10:22
htsp_process_event: [0/3/0, FXOLS_WAIT_SETUP_ACK, E_HTSP_SETUP_ACK]
fxols_wait_setup_ack:
[0/3/0] set signal state = 0xC timestamp = 0fxols_check_auto_call
htsp_process_event: [0/3/0, FXOLS_PROCEEDING, E_HTSP_PROCEEDING]fxols_offhook_proc
htsp_timer - 120000 msec
htsp_pre_connect_disconnect, cdb = 47933248 cause = 1
Excellent, now you can see that my router has received the Caller ID! In my case, this has solved the problem, but if you are still having issues, there’s one more thing you can try. Your telco may send the caller ID not at the first ring but at the second ring. You can try the following command to change this:
VOIPGATEWAY(config)#voice-port 0/3/0
VOIPGATEWAY(config-voiceport)#caller-id alerting ring ?
<1-4> number of ring on cycles
Configure it for two rings and see if it makes a difference.
Hopefully, this lesson has helped you to solve your Caller ID problem. If you have any questions feel free to leave a comment!
Hi Rene,
I need help on H323 as I am using it to connect two regions eg Site A ( CUCM) and Site B (CME)
1.My problem is that when I call from CUCM to CME the user cant see my Caller ID but I can see if call coming from CME to CUCM.
2. Onother one is, when I call from CME to CUCM there is no ring back tone and the Codec am using G729 as tried few ways but no luck.
This is indeed very useful. Awesome help this.