此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍陆地移动无线电(LMR)或Hoot and Holler(Hootie)功能,该功能允许模拟设备通过支持组播的LAN与其他(模拟和IP)终端通信。
语音网关充当IP网络和模拟终端之间的分界点,并促进模拟音频和组播实时传输协议(RTP)之间的会话。
作者:Kyzer Davis和Matt Snow,思科TAC工程师。
Cisco 建议您了解以下主题:
! license boot level appxk9 license boot level uck9 ! or
license boot suite FoundationSuiteK9
license boot suite AdvUCSuiteK9
注意:本文档不涉及LAN或WAN上组播配置的许多方面。请参阅适用的文档,在网络路径中启用LAN或WAN设备上的组播。
ISR4451# show inventory NAME: "Chassis", DESCR: "Cisco ISR4451 Chassis" PID: ISR4451-X/K9 , VID: V03 , SN: XXXXXXXXX NAME: "NIM subslot 0/3", DESCR: "NIM-4E/M Voice Analog Module" PID: NIM-4E/M , VID: V01 , SN: XXXXXXXXX
注意:使用ISR 4000语音网关的模拟NIM卡使用NIM DSP。 因此不需要主板DSP。
潜在使用案例:
注意:以下是几个示例使用案例。应用程序不限于这些功能。
LMR的原始设计指南不涵盖最新一代思科语音网关所需的项目。因此,本文档旨在介绍ISR 4300和4400系列语音网关等IOS-XE设备的LMR/Hootie功能。
以下是示例拓扑;
第7层信令和介质
Analog Endpoint <> Ear and Mouth (E&M) Port <> Cisco Voice Gateway (4451-X) <> Multicast Enabled LAN <> IP Endpoint.
提示:请记住,由于IP主干使用组播,因此语音网关只需能够成功加入所需的组播组。语音网关不知道其他终端,也不直接与其通信,因此本文档详细介绍了一个LMR/Hootie语音网关中的示例配置、调试、show命令和故障排除。
步骤1.您必须首先配置运行语音和组播功能所需的IOS-XE许可证。
config t ! license boot level appxk9 license boot level uck9
! or
license boot suite FoundationSuiteK9
license boot suite AdvUCSuiteK9 ! exit ! wr ! reload !
设备重新通电后,验证许可证状态是否与以下show命令输出匹配:
ISR4451# show license feature Feature name Enforcement Evaluation Subscription Enabled RightToUse appxk9 yes yes no yes yes uck9 yes yes no yes yes
步骤2.接下来定义包含所需组播IP和端口的IP拨号对等体组播语音;
! dial-peer voice 33333 voip
destination-pattern 33333
session protocol multicast
session target ipv4:239.X.X.X:21000
codec g711ulaw
vad aggressive !
拨号对等体命令语法:
CLI命令 | 描述 |
destination-pattern <number> | 拨号对等体的Match语句。拨号对等体可用所需。 |
会话协议组播 | 指示设备此拨号对等体用于IP组播功能。 |
session target ipv4:<a.b.c.d.>:xxxxx | 这是语音网关加入以发送/接收组播RTP的组播组的IP和端口。 |
codec <codec> |
定义用于组播RTP数据包的编解码器。支持的编解码器包括G711ulaw、G711alaw、G729和G726。 |
[no] vad [aggressive] |
当您使用no vad命令禁用VAD时,将禁用此RTP流的语音活动检测。 当使用命令vad aggressive时,VAD噪声阈值从–78降低到–62 dBm。低于–62 dBm阈值的噪音被视为静默,不通过网络发送。此外,未知数据包被视为静默并被丢弃。源 注意:使用vad aggressive时,您可能在show ip mroute中看不到VIF,因为无需从LMR路由器发送数据包。 |
步骤3.为了便于模拟端口的组播组和此语音网关之间永久(始终为up)连接,您必须定义语音类永久连接,然后将其应用到语音端口。
! voice class permanent 1 signal timing oos timeout disabled signal keepalive disabled !
voice-port 0/1/0
voice-class permanent 1
!
语音类永久命令语法
CLI命令 | 描述 | 源 |
signal timing oos timeout { disabled | <seconds> } | 禁用信令丢失检测。或者,可以配置秒数。 | 命令语法指南 |
signal keepalive { disabled | <seconds> } | 指定保持连接信令数据包间隔(以秒为单位)。禁用时不发送keepalive。 | 命令语法指南 |
然后,语音端口将配置为E&M端口的所需连接类型,然后配置命令。(E&M或本文档未涵盖的其他模拟特定配置有关详细信息,请参阅E&M配置指南。)
步骤4. Cisco hoot and holler over IP提供始终在线通信网桥。最终用户无需拨打任何电话号码即可联系呼叫组的其他成员。为了模拟此功能,Cisco IOS提供了一项名为Connection Trunk的功能。连接中继提供永久语音呼叫,不需要最终用户输入任何数字,因为所有数字都由路由器/网关进行内部拨号。
此连接中继将语音端口绑定到您在拨号对等体配置步骤中配置的组播地址。
!
voice-port 0/1/0 connection trunk 33333 !
模拟端口命令语法
CLI命令 | 描述 | 源 |
connection trunk <number> | 指定模拟到PBX的永久中继连接的连接。中继连接在没有任何活动呼叫时保持永久状态。 | 命令语法指南 |
步骤5.完成语音配置后,您需要定义组播配置。
! ip multicast-routing distributed !
interface GigabitEthernet0/0/1
ip address Y.Y.Y.Y 255.255.255.0
ip pim sparse-mode
! interface Vif1
ip address 192.0.2.2 255.255.255.0
ip pim sparse-mode
!
interface Service-Engine0/1/0
ip pim sparse-mode
!
ip pim rp-address 2.x.x.x
!
有关组播配置的注释:
使用本部分可确认配置能否正常运行。
当配置完成时,将永久连接存储。您可以使用此show命令输出来检验它;
ISR4451# show call active voice compact <callID> A/O FAX T<sec> Codec type Peer Address IP R<ip>:<udp> VRF Total call-legs: 2 115 ANS T24 g711ulaw TELE P 116 ORG T0 g711ulaw VOIP P33333 239.X.X.X:21000
ISR4451# show voip rtp connections VoIP RTP Port Usage Information: Max Ports Available: 19999, Ports Reserved: 101, Ports in Use: 0 Port range not configured Min Max Ports Ports Ports Media-Address Range Port Port Available Reserved In-use ------------------------------------------------------------------------------ Global Media Pool 8000 48198 19999 101 0 ------------------------------------------------------------------------------ VoIP RTP active connections : No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP MPSS VRF 1 116 115 15986 21000 192.0.2.1 239.X.X.X NO NA Found 1 active RTP connections
ISR4451# show voice port summary IN OUT PORT CH SIG-TYPE ADMIN OPER STATUS STATUS EC =============== == ============ ===== ==== ======== ======== == 0/3/1 -- e&m-imd up up trunked trunked y
ISR4451# show voice call summary PORT CODEC VAD VTSP STATE VPM STATE ============== ========= === ===================== ===================== 0/3/1 g711ulaw y S_CONNECT S_TRUNKED
ISR4451# show voice call status CallID CID ccVdb Port Slot/Bay/DSP:Ch Called # Codec MLPP Dial-peers 0x73 12D0 0x7F7475CF8C08 0/3/1 0/3/1:1 33333 g711ulaw 4 777 33333777/33333 1 active call found
ISR4451# show voice trunk-conditioning supervisory FAST SCAN 0/3/1 : state : TRUNK_SC_CONN_DEFAULT_OOS, voice : off , signal : on ,master status: lost keepalive, trunk connected sequence oos : idle and oos pattern :rx_idle = 0000 rx_oos = 1111 timeout timing : idle = 0, idle_off = 0, restart = 120, standby = 0, timeout = 30 supp_all = 0, supp_voice = 0, keep_alive = 5 timer: oos_ais_timer = 46, timer = 43 ISR4451# show voice trunk-conditioning signaling 0/3/1 : hardware-state ACTIVE signal type is NorthamericanCAS status : lost keepalive, forced playout pattern = 0xF idle monitoring : disabled tx_idle = FALSE, rx_idle = FALSE, tx_oos = FALSE, lost_keepalive = TRUE trunk_down_timer = 0, rx_ais_duration = 0, idle_timer = 0,tx_oos_timer = 0
要验证IP到模拟复制,请首先检查新的IOS-XE命令:
ISR4451# show platform hardware qfp active feature sbc hootie group SBC Hootie structure : --------------------------------------- VRF = 0 IP = 239.X.X.X Port = 21000 Protocol = 1 Calls in group = 1 SBC Hootie group Statistics --------------------------------------- Total RTP packets received = 2873 Total RTP octects received = 573520 Total RTP packets replicated = 2873 Total RTP octects replicated = 573520 Total RTP packets dropped = 0 Total RTP octects dropped = 0 ISR4451# show platform hardware qfp active feature sbc hootie group SBC Hootie structure : --------------------------------------- VRF = 0 IP = 239.X.X.X Port = 21000 Protocol = 1 Calls in group = 1 SBC Hootie group Statistics --------------------------------------- Total RTP packets received = 3111 Total RTP octects received = 621032 Total RTP packets replicated = 3111 Total RTP octects replicated = 621032 Total RTP packets dropped = 0 Total RTP octects dropped = 0
检验PIM邻居:
ISR4451# show ip pim neighbor PIM Neighbor Table Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority, P - Proxy Capable, S - State Refresh Capable, G - GenID Capable, L - DR Load-balancing Capable Neighbor Interface Uptime/Expires Ver DR Address Prio/Mode Y.Y.Y.Y GigabitEthernet0/0/1 00:20:13/00:01:41 v2 1 / DR S P G
验证mroute输出是否正确:
ISR4451# show ip mroute [snip] (192.0.2.1, 239.X.X.X), 00:01:08/00:02:20, flags: FT Incoming interface: Vif1, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet0/0/1, Forward/Sparse, 00:01:08/00:03:19
验证我们的组播RP是否在列表中:
ISR4451# show ip igmp member Flags: A - aggregate, T - tracked L - Local, S - static, V - virtual, R - Reported through v3 I - v3lite, U - Urd, M - SSM (S,G) channel 1,2,3 - The version of IGMP, the group is in Channel/Group-Flags: / - Filtering entry (Exclude mode (S,G), Include mode (G)) Reporter: <mac-or-ip-address> - last reporter if group is not explicitly tracked <n>/<m> - <n> reporter in include mode, <m> reporter in exclude Channel/Group Reporter Uptime Exp. Flags Interface *,239.X.X.X 192.0.2.2 00:01:16 01:43 2VA Vi1
验证组播数据包复制:
RP# show ip mroute count [snip] Group: 239.X.X.X, Source count: 1, Packets forwarded: 2107, Packets received: 2108 RP-tree: Forwarding: 2/0/56/0, Other: 2/0/0 Source: 192.168.19.1/32, Forwarding: 2105/50/158/80, Other: 2106/0/1
RP# show ip mroute count [snip] Group: 239.X.X.X, Source count: 1, Packets forwarded: 2190, Packets received: 2191 RP-tree: Forwarding: 2/0/56/0, Other: 2/0/0 Source: 192.168.19.1/32, Forwarding: 2188/50/159/80, Other: 2189/0/1
思科 CLI 分析器(仅适用于注册客户)支持某些 show 命令。要查看对 show 命令输出的分析,请使用思科 CLI 分析器。
本部分提供了可用于对配置进行故障排除的信息。
如果连接未建立,请首先通过以下调试验证信令:
debug vpm signal debug voip vtsp session debug voip ccapi inout
调试示例:
123165: Oct XX 13:21:55.563: htsp_process_event: [0/3/1, S_DOWN, E_HTSP_IF_INSERVICE] 123166: Oct XX 13:21:55.564: %LINK-3-UPDOWN: Interface recEive and transMit 0/3/1, changed state to up 123167: Oct XX 13:21:55.564: recEive and transMit 0/3/1 rx_signal_map: 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8 123168: Oct XX 13:21:55.564: recEive and transMit 0/3/1 tx_signal_map: 0 0 0 0 0 0 0 0 C C C C C C C C 123169: Oct XX 13:21:55.564: htsp_process_event: [0/3/1, S_OPEN_PEND, E_HTSP_GO_TRUNK]em_trunk_null_init 123170: Oct XX 13:21:55.564: flex_set_Legerity_impedance: [0/3/1] impedance = 0 123171: Oct XX 13:21:55.704: htsp_process_event: [0/3/1, S_TRUNK_NULL, E_HTSP_INSERVE]default_trunk_down 123172: Oct XX 13:21:55.704: htsp_timer - 6204 msec 123173: Oct XX 13:21:55.919: %SYS-5-CONFIG_I: Configured from console by vty3 (192.168.19.2) 123174: Oct XX 13:22:01.908: htsp_process_event: [0/3/1, S_TRUNK_PEND, E_HTSP_EVENT_TIMER] 123175: Oct XX 13:22:01.908: htsp_timer_stop htsp_setup_ind 123176: Oct XX 13:22:01.908: [0/3/1] get_local_station_id calling num= calling name= calling time=10/08 13:22 orig called= 123177: Oct XX 13:22:01.908: htsp_timer - 2000 msec 123181: Oct XX 13:22:01.909: //-1/80F08D0180E8/CCAPI/cc_api_call_setup_ind_common: Interface=0x7F7475CF8C08, Call Info( Calling Number=,(Calling Name=)(TON=Unknown, NPI=Unknown, Screening=Not Screened, Presentation=Allowed), Called Number=33333(TON=Unknown, NPI=Unknown), Calling Translated=FALSE, Subscriber Type Str=RegularLine, FinalDestinationFlag=TRUE, Incoming Dial-peer=777, Progress Indication=ORIGINATING SIDE IS NON ISDN(3), Calling IE Present=FALSE, Source Trkgrp Route Label=, Target Trkgrp Route Label=, CLID Transparent=FALSE), Call Id=-1 123203: Oct XX 13:22:01.911: //115/80F08D0180E8/CCAPI/ccCallSetupRequest: Calling Number=(TON=Unknown, NPI=Unknown, Screening=Not Screened, Presentation=Allowed), Called Number=33333(TON=Unknown, NPI=Unknown), Redirect Number=, Display Info= Account Number=, Final Destination Flag=TRUE, Guid=80F08D01-CA55-11E8-80E8-8E0AC3C8E4C4, Outgoing Dial-peer=33333 123252: Oct XX 13:22:01.914: //116/80F08D0180E8/CCAPI/cc_api_caps_ack: Destination Interface=0x7F7475CF8C08, Destination Call Id=115, Source Call Id=116, Caps(Codec=g711ulaw(0x1), Fax Rate=FAX_RATE_VOICE(0x2), Fax Version:=0, Vad=AGGRESSIVE(0x4), Modem=OFF(0x0), Codec Bytes=160, Signal Type=2, Seq Num Start=2165) 123253: Oct XX 13:22:01.914: //115/80F08D0180E8/CCAPI/cc_api_caps_ack: Destination Interface=0x7F7471175B68, Destination Call Id=116, Source Call Id=115, Caps(Codec=g711ulaw(0x1), Fax Rate=FAX_RATE_VOICE(0x2), Fax Version:=0, Vad=AGGRESSIVE(0x4), Modem=OFF(0x0), Codec Bytes=160, Signal Type=2, Seq Num Start=2165)
123255: Oct XX 13:22:01.914: //115/80F08D0180E8/VTSP:(0/3/1):-1:1:1/vtsp_call_connect: Connected Name 123256: Oct XX 13:22:01.914: //115/80F08D0180E8/VTSP:(0/3/1):-1:1:1/vtsp_call_connect: Connected Number 33333 123257: Oct XX 13:22:01.914: //115/80F08D0180E8/VTSP:(0/3/1):-1:1:1/vtsp_call_connect: Connected oct3a 0 123258: Oct XX 13:22:01.914: //115/80F08D0180E8/CCAPI/ccCallConnect: Call Entry(Connected=TRUE, Responsed=TRUE) 123265: Oct XX 13:22:01.916: htsp_process_event: [0/3/1, S_TRUNK_W_CUTTHRU, E_HTSP_VOICE_CUT_THROUGH] 123266: Oct XX 13:22:01.916: send_trunk_dsp_voice_chnl_mapping:[0/3/1], 1/0/0 123267: Oct XX 13:22:01.916: send_trunk_dsp_sig_chnl_mapping:[0/3/1], 129/0/0 123268: Oct XX 13:22:01.916: recEive and transMit 0/3/1 rx_signal_map: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 default_trunk_up 123269: Oct XX 13:22:01.916: recEive and transMit 0/3/1 tx_signal_map: 0 0 0 0 0 0 0 0 F F F F F F F F default_trunk_updefault_trunk_up 123270: Oct XX 13:22:01.916: recEive and transMit 0/3/1 rx_signal_map: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 default_trunk_up 123271: Oct XX 13:22:01.916: recEive and transMit 0/3/1 tx_signal_map: 0 0 0 0 0 0 0 0 F F F F F F F F default_trunk_up 123272: Oct XX 13:22:01.916: %HTSP-5-UPDOWN: Trunk port(channel) [0/3/1] is up
如果您看到此错误,则是由于拨号对等体上不提供会话协议组播命令所致。
%VOICE_IEC-3-GW: H323: Internal Error (H225 chn, sock fail in RAS): IEC=1.1.186.5.81.0
如果问题出在无音频中,请验证语音网关是否已正确加入组播组。有关工作设备的基线输出,请参阅本文档验证部分中的命令输出。特定组播组的show ip mroute命令的传出接口不得为Null。如果您看到Null传出接口,请查看组播LAN的适用网络配置,因为这表示语音网关无法正确加入组播组。
空传出接口示例:
Router# show ip mroute 239.X.X.X (*, 239.X.X.X), 00:22:02/stopped, RP 10.188.0.1, flags: SJCF Incoming interface: GigabitEthernet0/0/1, RPF nbr X.X.X.X Outgoing interface list: Vif1, Forward/Sparse-Dense, 00:18:27/00:02:32 (A.B.C.D, 239.X.X.X), 00:20:34/00:01:23, flags: PFT Incoming interface: Vif1, RPF nbr 0.0.0.0 Outgoing interface list: Null
如果设备在组播组中正确,但音频问题仍然存在,请使用命令show platform hardware qfp active feature sbc hootie group 多次验证设备是否能够接收和复制数据包。每次运行命令时,计数器必须增加。或者,可以运行命令show platform hardware qfp active statistics drop,查看语音网关是否丢弃流量。要清除这些计数器,请运行命令show platform hardware qfp active statistics drop clear。
如果未配置IP组播路由,则Ipv4mcNoRoute的丢弃原因会增加,如下所示:
4451# show platform hardware qfp active statistics drop ------------------------------------------------------------------------- Global Drop Stats Packets Octets ------------------------------------------------------------------------- Ipv4mcNoRoute 728 145272
其他音频问题(例如网关无法将从模拟端接收的组播RTP数据包复制到IP端)可能由于组播配置问题而发生。当观察到这些丢包时,这些问题可能表现为丢包原因FIAError。观察到这些配置后,请查看适用的组播配置并确保网关可以正确加入组播组,并且show ip mroute命令具有有效的输出接口。有关基线命令输出,请参阅本文档的组播部分。
4451# show platform hardware qfp active statistics drop ------------------------------------------------------------------------- Global Drop Stats Packets Octets ------------------------------------------------------------------------- FIAError 724 144800
如果未启用组播路由,则show ip mroute states的输出会如此。
ISR4451# sh ip mroute IP Multicast Forwarding is not enabled.
[snip]
为了验证是否在语音端口上发送或接收模拟音频,您可以捕获PCM。完整PCM文档
conf t voice pcm capture buffer 200000 voice pcm capture destination bootflash: exit ! test voice port 0/1/0 pcm-dump caplog ffffff duration 255 ! send audio test voice port 0/1/0 pcm-dump disable ! copy flash:/<filename>.dat [ftp://user:pass@ip.address/filename.pcap | tftp://a.b.c.d/filename] ! TAC is required to decode the binary .dat file into SIN/SOUT/RIN audio streams
为了验证是否发送或接收组播RTP,您可以在物理接口上捕获数据包捕获(PCAP)。完整的EPC文档。
! NOT IN CONFIGURATION TERMINAL monitor capture TAC int gig0/0/1 both monitor capture TAC match any ! monitor capture TAC start ! send audio monitor capture TAC stop ! monitor capture TAC export [flash:/filename.pcap | ftp://user:pass@ip.address/filename.pcap | tftp://a.b.c.d/filename] ! monitor capture TAC clear
如果需要,DSP/PVDM可在语音网关上按所需方向(网络IP-LAN端或本地模拟端口端)生成测试音。
此音可以指向DSP的IP LAN组播地址。这些命令可用于启用/禁用。连接必须处于活动状态,并且必须指定测试的模拟端口。
test voice port 0/1/0 inject-tone network 1000 ! A 1000hz tone is now being generated from the analog port to the IP LAN Multicast Address test voice port 0/1/0 inject-tone network disable
为了从DSP从模拟端口生成音,这些命令可用于启用/禁用。连接必须处于活动状态,并且必须指定用于测试的模拟端口。
test voice port 0/1/0 inject-tone local 1000 ! A 1000hz tone is now being generated out of the analog port. test voice port 0/1/0 inject-tone local disable
下载VLC Media Player并导航至Media > Open Network Stream
以此格式输入组播RTP IP地址并点击播放
rtp://@239.X.X.X:21000
下一步下载并打开Wireshark。然后选择数据包捕获所需的特定接口。
使用rtp过滤器启动捕获。
如果一切顺利,您必须加入组播RP。(可以从RP运行相同的组播命令来验证加入组播组的PC)。
通过tone命令生成音调,或让模拟终端发言。
您现在必须在wireshark中看到数据包。请记住,源IP必须是VIF IP减1,因此对于我们的测试,源IP必须是192.0.2.2 -1 = 192.0.2.1。
思科 CLI 分析器(仅适用于注册客户)支持某些 show 命令。要查看对 show 命令输出的分析,请使用思科 CLI 分析器。
注意:使用 debug 命令之前,请参阅有关 Debug 命令的重要信息。
CSCvd18792 - ISR4K - Hoot和Holler E&M端口不能与组播集线器共置
CSCve66876 - ISR4K - DSP数据包的组播RP注册被丢弃
CSCve71893 - ISR4K - Hoot和Holler组播复制问题
版本 | 发布日期 | 备注 |
---|---|---|
2.0 |
29-Apr-2022 |
对文档的细微更改 |
1.0 |
30-Oct-2018 |
初始版本 |