呼叫人ID是一项模拟服务,通过此服务,电话中心局(CO)交换机发送关于来电的数字信息。模拟外部交换站(FXS)端口的呼叫方ID名称传输功能最初在Cisco IOS®软件版本12.1(2)XH中引入,并且在所有更高的Cisco IOS软件版本中都可用。此功能可用并可配置在每个端口,以便电话接通到模拟FXS语音端口。此功能也可在模拟外交局(FXO)上使用。
注意:FXS端口传输主叫方ID,而FXO端口接收主叫方ID。主叫方ID可与模拟电话、公共交换电话网(PSTN)、专用交换机(PBX)、H.323终端(如Microsoft NetMeeting)、Cisco CallManager和IP电话互操作。因此,呼叫方ID可以通过包含所有或部分这些设备的电话网络传送,但有些例外。
此外,还有Cisco IOS功能,允许网络设计人员在必要时阻止呼叫方ID从FXS端口传输。默认情况下,所有呼叫的呼叫方ID都不被阻止;但是,呼叫方ID可以按端口进行阻止。在任何给定端口上启用此功能时,它会阻止来自该端口的所有呼叫的呼叫方ID。
在尝试此配置之前,请确保您了解此功能的命令参考,如下所述:
[no] caller-id enable — 启用和禁用呼叫方ID。默认为“呼叫方ID已禁用”。该操作可以启用或禁用FXS端口上的Caller ID的传输,并启用或禁用FXO端口上的Caller ID的接收。
[no] station-id numberstring — 提供一个站号码,用作与语音端口关联的主叫号码。字符串参数是可选参数,当呼叫源自此语音端口时,则假设该参数为呼叫号码。如果没有指定此参数,使用从reverse-dial-peer搜索获得的呼叫号。如果主叫ID在FXO语音端口没有被收到,此参数用作呼叫号。可用于字符串参数的最大字符数为15个字符。
[no] station-id namestring — 提供与语音端口关联的站名。当呼叫源自此语音端口时,字符串参数作为呼叫的姓名传达到远程终端。如果主叫ID在FXO语音端口没有被接收,则此参数用作呼叫名。可用于字符串参数的最大字符数为15个字符。
[no] caller-id block — 阻止或取消阻止呼叫方ID。默认为“Caller ID unblocked”(取消阻止呼叫方ID)。此命令阻止或取消阻止来自此端口的所有呼叫的呼叫方ID。此命令仅在FXS语音端口上可用。
[no] ring number string — 此命令设置在通过FXO语音端口应答呼叫之前要检测到的最大振铃数。振铃号命令是思科在两次振铃后如何接收呼叫方ID信息。有关详细信息,请参阅Cisco IOS语音命令参考的振铃号部分。
此配置使用以下软件和硬件版本开发并测试:
Cisco 2600 IOS®路由器,带以太网卡、模拟FXS卡、NM-2V模块和带NM-HDV模块的VWIC-MFT副卡
一台简单的模拟电话,RJ-11连接到一台Cisco 2600
具有T1接口的任何第三方供应商PBX(适用于其他Cisco 2600)
2600s中使用的Cisco IOS版本是主线Cisco IOS®软件版本12.2(10)
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本部分提供有关如何配置本文档所述功能的信息。
注意:要查找有关本文档中使用的命令的其他信息,请使用命令查找工具(仅注册客户)。
此图中的简单电话网络显示了通过LAN和Cisco 2600 B端FXS端口向电话B传送主叫方ID的示例。E&M信道关联信令(CAS)线路不支持呼叫方ID。在本示例中,呼叫方ID被伪装成来自CAS线路,以便将其发送到FXS端口。对于数字线路来说,只有ISDN线路在默认情况下支持主叫ID发送,并且CAS类型fgd是唯一支持主叫ID发送的CAS类型。
在Cisco AS5300和AS5800平台上,CAS信令功能组B(FGB)的功能允许在配置T1时接收自动号码标识(ANI)。如果使用此信令,则呼叫方ID在Cisco 5300或5800。此功能在T1语音通道的CAS中进一步说明。
此配置仅显示与IP语音(VoIP)和呼叫方ID命令相关的元素:
呼叫流从PBX到电话B。在此场景中,如果呼叫进入2600 A并转出到2600 B,则电话B上的主叫方ID显示为:
Name = Outside CallingNumber = 5553030 Time = 2600 B’s local clock setting
本文档使用以下配置:
思科2600 A |
---|
! Controller T1 1/0 framing esf linecode b8zs ds0-group 1 timeslots 1-4 type e&m-wink-start ! interface ethernet 0/0 ip address 10.10.1.2 255.255.255.0 ! voice-port 1/0:1 station-id name Outside !--- Command line interface (CLI) to spoof !--- Name Display on phone for all calls !--- from CAS line. station-id number 5553030 !--- CLI to spoof Number Display on phone !--- for all calls from CAS line. ! dial-peer voice 9913050 voip destination-pattern 9913050 session target ipv4:10.10.1.1 ! |
思科2600 B |
---|
! interface ethernet 0/1 ip address 10.10.1.1 255.255.255.0 ! voice-port 1/1/0 caller-id enable !--- Enables Caller ID feature. ! dial-peer voice 100 pots destination-pattern 9913050 port 1/1/0 ! |
要启用SIP报头Remote-Party-ID的转换,请在SIP UA配置模式下使用remote-party-id命令。
Router(config)#sip-ua
Router(config-sip-ua)#remote-party-id
启用remote-party-id命令后,如果传入INVITE消息中存在Remote-Party-ID报头,则从Remote-Party-ID报头提取的呼叫名称和号码作为呼叫名称和号码在传出设置消息中发送。有关主叫方身份的SIP扩展的详细信息,请参阅主叫方身份和隐私的SIP扩展。
有关主叫方ID的验证和基本配置,请参阅T1语音通道上的CAS。
本部分提供的信息可用于对配置进行故障排除。
您可以打开多个调试,以排除路由器上的呼叫方ID功能故障。语音端口模块(VPM)信令调试(debug vpm signal)可追踪启动Caller ID功能的标准FXS loopstart调试。从终端路由器和该路由器的FXS端口的角度分析这些调试;呼叫方ID在此端收到。
在FXS端口上从终端网关2600 B进行调试 |
---|
2600B# show debug Voice Port Module signaling debugging is on Nov 17 17:05:27.144 EST: [1/1/0, FXSLS_ONHOOK, E_HTSP_SETUP_REQ] fxsls_onhook_setup Nov 17 17:05:27.144 EST: [1/1/0] set signal state = 0x0 timestamp= 0 htsp_progress Nov 17 17:05:27.144 EST: [1/1/0] set signal state = 0x0 timestamp= 0 !--- Here is what is delivered to the phone. Nov 17 17:05:27.144 EST: [1/1/0] htsp_set_caller_id_tx calling num=5553030 display_info=Outside called num=9913050 !--- Here is the Hex that is sent out to the phone. Nov 17 17:05:27.144 EST: [1/1/0] Caller ID String 80 1C 01 08 31 31 31 37 32 32 30 35 07 35 35 35 33 30 33 30 07 07 4F 75 74 73 69 64 65 6F Nov 17 17:05:27.148 EST: [1/1/0] htsp_set_caller_id_tx Caller ID: FSK_DURING_RING Nov 17 17:05:27.148 EST: [1/1/0] htsp_start_caller_id_tx string length=31 Nov 17 17:05:27.160 EST: [1/1/0, FXSLS_WAIT_OFFHOOK, E_HTSP_VOICE_CUT_THROUGH] fxsls_waitoff_voice Nov 17 17:05:34.836 EST: [1/1/0, FXSLS_WAIT_OFFHOOK, E_HTSP_RELEASE_REQ] fxsls_waitoff_release Nov 17 17:05:34.836 EST: [1/1/0] set signal state = 0x4 timestamp = 0 |
注意:此输出中位于多行的行实际上在调试输出中显示为一行。
电话B上显示以下内容:
CallerID = 5553030 Name = Outside Time = 10:05P Nov17 !--- Time is received from the Local Router Clock.
在本例中,当十六进制主叫方ID字符串解码时,它会提供以下结果:
Nov 17 17:05:27.144 EST: [1/1/0] Caller ID String 80 1C 01 08 31 31 31 37 32 32 30 35 02 07 35 35 35 33 30 33 30 07 07 4F 75 74 73 69 64 65 6F !--- Decode from Bellcore. 80 1C: Header (80 = Call Setup, Length) 01 : Parameter Value (Date and Time) 08 : Length of Information 31 31: Month (11 = November) 31 37: Day (17th) 32 32: Hour( 22) 30 35: Minute(05) 02 : Parameter Value (Calling Line DN) 07 : Length of Parameter 35 35 35 33 30 33 30 : Phone number (5553030) 07 : Parameter Value (Display) !--- "P" (0x50) is sent if "Anonymous" indication !--- is to be sent to phone. !--- "O" (0x4F) is sent if "Out of Area/Unavailable" indication !--- is to be sent to the phone. 07 : Parameter Length 4F 75 74 73 69 64 65 : Display in ASCII Hex.
注意:此输出中位于多行的行实际上在调试输出中显示为一行。
在显示的示例中,一切正常,并且名称和号码显示都正确地传送到电话。在这两种情况下,主叫号码在一种情况下无法显示,在另一种情况下,名称无法显示。
Nov 17 17:39:34.164 EST: [1/1/0] htsp_set_caller_id_tx calling num= display_info=Outside called num=9913050 Nov 17 17:39:34.164 EST: [1/1/0] Caller ID String 80 16 01 08 31 31 31 37 32 32 33 39 04 01 4F 07 07 4F 75 74 73 69 64 65 88
注意:此输出中位于多行的行实际上在调试输出中显示为一行。
在本例中,当十六进制主叫方ID字符串解码时,子字符串04 01 4F将转换为以下值:
04 : Reason for Absence of DN 01 : Length of message 4F : "Out of Area"
Nov 17 17:53:24.034 EST: [1/1/0] htsp_set_caller_id_tx calling num=5551212 display_info= called num=9913050 Nov 17 17:53:24.034 EST: [1/1/0] Caller ID String 80 16 01 08 31 31 31 37 32 32 35 33 02 07 35 35 35 31 32 31 32 08 01 4F 05
注意:此输出中位于多行的行实际上在调试输出中显示为一行。
在本例中,当十六进制主叫方ID字符串解码时,子字符串08 01 4F将转换为以下值:
08 : Reason for Absence of Display 01 : Length 4F : "Out of Area"
这些是接收呼叫方ID的FXO端口的相同VPM调试。在所示的示例中,FXS端口将呼叫方ID传输到电话。对于FXO端口,该过程是相反的,但调试过程非常相似(如下所示)。
FXO端口接收呼叫方ID的调试正确 |
---|
Nov 20 10:40:15.861 EST: [1/0/0] htsp_start_caller_id_rx Nov 20 10:40:15.861 EST: [1/0/0] htsp_set_caller_id_rx:BELLCORE Nov 20 10:40:15.861 EST: htsp_timer - 10000 msec Nov 20 10:40:17.757 EST: [1/0/0, FXOLS_RINGING, E_DSP_SIG_0100] Nov 20 10:40:17.757 EST: fxols_ringing_not Nov 20 10:40:17.761 EST: htsp_timer_stop Nov 20 10:40:17.761 EST: htsp_timer - 10000 msec Nov 20 10:40:18.925 EST: [1/0/0] htsp_stop_caller_id_rx Nov 20 10:40:21.857 EST: [1/0/0, FXOLS_RINGING, E_DSP_SIG_0000] Nov 20 10:40:23.857 EST: [1/0/0, FXOLS_RINGING, E_DSP_SIG_0100] Nov 20 10:40:23.857 EST: fxols_ringing_not Nov 20 10:40:23.861 EST: htsp_timer_stop htsp_setup_ind Nov 20 10:40:23.861 EST: [1/0/0] get_fxo_caller_id:Caller ID received. Message type=128 length=31 checksum=74 Nov 20 10:40:23.861 EST: [1/0/0] Caller ID String 80 1C 01 08 31 31 32 30 31 35 34 30 02 07 35 35 35 31 32 31 32 07 07 4F 7574 73 69 64 65 74 Nov 20 10:40:23.865 EST: [1/0/0] get_fxo_caller_id calling num=5551212 calling name=Outside calling time=11/20 15:40 Nov 20 10:40:23.869 EST: [1/0/0, FXOLS_WAIT_SETUP_ACK, E_HTSP_SETUP_ACK] Nov 20 10:40:23.873 EST: fxols_wait_setup_ack: Nov 20 10:40:23.873 EST: [1/0/0] set signal state = 0xC timestamp = 0 Nov 20 10:40:23.985 EST: [1/0/0, FXOLS_PROCEEDING, E_DSP_SIG_0100] fxols_proceed_clear Nov 20 10:40:23.985 EST: htsp_timer_stop2 Nov 20 10:40:24.097 EST: [1/0/0, FXOLS_PROCEEDING,E_DSP_SIG_0110] fxols_rvs_battery Nov 20 10:40:24.097 EST: htsp_timer_stop2 Nov 20 10:40:24.733 EST: [1/0/0, FXOLS_PROCEED_RVS_BT,E_HTSP_PROCEEDING] fxols_offhook_proc Nov 20 10:40:24.733 EST: htsp_timer - 120000 msec Nov 20 10:40:24.745 EST: [1/0/0, FXOLS_PROCEED_RVS_BT,E_HTSP_VOICE_CUT_THROUGH] fxols_proc_voice |
注意:此输出中位于多行的行实际上在调试输出中显示为一行。