Archive for the ‘Media Resources’ Category

I came across this issue with one of  our customer last week where a call was coming in to receptionist at Site ‘A’ but she was not able to transfer the call to someone at Site ‘B’. They had Centralized deployment and all phones on branch sites were registered to Central site. The call was dropping as soon as she would press ‘hold’ to transfer the call. This is what I was getting on Site ‘A’ gateway:

2621-VG01#
.Feb  7 09:25:14.805: ISDN Se1/0:15 Q931: RX <- SETUP pd = 8  callref = 0x0002
Sending Complete
Bearer Capability i = 0x8090A3
Standard = CCITT
Transer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98382
Exclusive, Channel 2
Called Party Number i = 0x81, ‘700481’
Plan:ISDN, Type:Unknown
.Feb  7 09:25:14.837: ISDN Se1/0:15 Q931: TX -> CALL_PROC pd = 8  callref = 0x8002
Channel ID i = 0xA98382
Exclusive, Channel 2
.Feb  7 09:25:14.961: ISDN Se1/0:15 Q931: TX -> ALERTING pd = 8  callref = 0x8002
Progress Ind i = 0x8188 – In-band info or appropriate now available
.Feb  7 09:25:22.877: ISDN Se1/0:15 Q931: TX -> CONNECT pd = 8  callref = 0x8002
.Feb  7 09:25:22.945: ISDN Se1/0:15 Q931: RX <- CONNECT_ACK pd = 8  callref = 0x0002

.Feb  7 09:25:41.934: ISDN Se1/0:15 Q931: TX -> DISCONNECT pd = 8  callref = 0x8002
Cause i = 0x80FF – Interworking error; unspecified
.Feb  7 09:25:42.118: ISDN Se1/0:15 Q931: RX <- RELEASE pd = 8  callref = 0x0002
.Feb  7 09:25:42.122: ISDN Se1/0:15 Q931: TX -> RELEASE_COMP pd = 8  callref = 0x8002

Now this error had no explanation whatsoever and it was quite hard to troubleshoot.

I knew that for a transfer function to work properly across WAN (G729-G729) you need a MTP. The MRGL had a group with MTP as well as transcoder. I noticed MTP was added as part of one group where announciator, CFB etc were added with it as well. Transcoder was added seperately. I think I read somewhere that Call manager sometimes take Transcoder as MTP if MTP is not added in a seperate group. As transcoder can’t do G729-G729, it will fail to provide supplemantary services to the gateway and eventually the call will drop. As a good design approach, always place MTP in a seperate group and at the top of MRGL.

I removed MTP from that group, placed it in a seperate group and prioritized it at MRGL.

Made test calls and they all worked fine.

Advertisements

Came across an MoH issue for a customer where the file was missing from Subscriber. As you may be aware that an MoH file should always be uploaded across the cluster on each server to work properly. If you only upload the MoH file on Publisher then it won’t be replicated on other servers. You can check that by going into those servers > Media Resources > Audio Source file.

So..to cut long story short, I went back to customer to give me that wave file which was uploaded on Pub so that I can upload it on Sub as well. Customer came back saying that they don’t have that file and I should do something to get the file from Publisher.

Using my CLI skills, I downloaded the MoH file from Call manager and then uploaded it on Sub. The file has different formats like.alaw ulaw g729 etc. Once you download it, you can change it back to .wav file. This is  how I downloaded it.

CCMRoot@10.2.0.10’s password:
Last login: Fri Sep 24 12:45:46 2010 from 10.0.0.100

Welcome to the Platform Command Line Interface

Uptime              : 13:27:13  up 175 days,  2:23,  1 user,
Load average        : 0.15, 0.15, 0.16
Platform OS version : UCOS 3.0.0.0-57
HW model            : 7825H3

admin:
admin:
admin:file list activelog mohprep/* [this will show you all files in MoH dir]
CiscoMOHSourceReport.xml                SampleAudioSource.alaw.wav
SampleAudioSource.g729.wav              SampleAudioSource.ulaw.wav
SampleAudioSource.wb.wav                SampleAudioSource.xml
TheBoysFromLiverpool.alaw.wav           TheBoysFromLiverpool.g729.wav
TheBoysFromLiverpool.ulaw.wav           TheBoysFromLiverpool.wb.wav
TheBoysFromLiverpool.xml
dir count = 0, file count = 11
admin:
admin:
admin:file get activelog mohprep/TheBoysFromLiverpool.alaw.wav
Please wait while the system is gathering files info …done.
Sub-directories were not traversed.
Number of files affected: 1
Total size in Bytes: 1831882
Total size in Kbytes: 1788.9473
Would you like to proceed [y/n]? y
SFTP server IP: 10.0.0.100
SFTP server port [22]:
User ID: cisco
Password: *****

Download directory: \

The authenticity of host ‘10.0.0.100 (10.0.0.100)’ can’t be established.
RSA key fingerprint is 7b:cf:ae:e3:8d:00:09:f0:20:d1:25:8b:f2:b9:38:bc.
Are you sure you want to continue connecting (yes/no)? yes
.
Transfer completed.
admin:

Came across a complex situation where customer was using this SIP trunk as an alternative to ISDN-30 (if all channels are used or if ISDN goes down). The ISDN-30 link was working fine but they had issues on SIP trunk (how many times I have heard this?) …. their outbound calls over SIP were using a prefix ‘8’ to route calls on SIP trunk to SIP Provider. The Outbound calls were working fine. The inbound calls drop after 8 secs and none of the calling/called party could hear each other. Complete silence..

Call flow was something like this:

PSTN (81763)  —– > 2311111  >>>> Hit Gateway >>> Translates to 2905 >>> dialpeer to reach CUCM >> Picks up the phone x2905 >>> Both Calling and Called party hear silence >>> Call drops in 8 secs

Some information off the gateway was something like this:

voice service voip
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
supplementary-service h450.12
fax protocol t38 ls-redundancy 2 hs-redundancy 2 fallback none
h323
emptycapability
h225 id-passthru
h225 connect-passthru
session transport udp
h245 passthru tcsnonstd-passthru
sip
bind control source-interface FastEthernet0/1
bind media source-interface FastEthernet0/1

!

voice class codec 1
codec preference 1 g711alaw
codec preference 2 g711ulaw
codec preference 3 g729r8
!
!
!

interface FastEthernet0/0
ip address 192.168.212.4 255.255.255.240
ip access-group H323-Security-In in
duplex auto
speed auto
h323-gateway voip bind srcaddr 192.168.212.4
service-policy output QoS-LAN-Policy
!
interface FastEthernet0/1
ip address 94.x.x.194 255.255.255.248
ip access-group SIP-Security-In in
ip access-group SIP-Security-Out out
duplex auto
speed auto
auto qos voip trust
no cdp enable
service-policy output AutoQoS-Policy-Trust

!

dial-peer voice 50 voip
description **Incoming Call from SIP Trunk to CUCM**
translation-profile incoming SIP-CALLS-IN
preference 1
redirect ip2ip
voice-class codec 1
voice-class sip dtmf-relay force rtp-nte
session protocol sipv2
session target ipv4:146.x.x.200
incoming called-number .%
dtmf-relay rtp-nte
no vad
!

dial-peer voice 60 voip
description **Outgoing Call to SIP Trunk**
translation-profile outgoing SIP-CALLS-OUT
huntstop
preference 5
destination-pattern 8.T
voice-class codec 1
voice-class sip dtmf-relay force rtp-nte
session protocol sipv2
session target ipv4:146.x.x.200
dtmf-relay rtp-nte
no vad
!
dial-peer voice 31 voip
description *** Outbound calls from CUCM system ***
huntstop
redirect ip2ip
voice-class codec 1
incoming called-number 8T
no vad
!

I ran some traces but the issue was not clear as I was getting cause code = 16 normal call clearing. I followed the following steps to resolve the issue:

Step#1:

At Call manager their MTP and Transcoder were in same group which is not a good design approach. MTP and Transcoder should always be in different MRGs so that Call manager doesn’t use a Transcoder where an MTP is required as a Transcoder cannot do g729-g729. I made these changes:

MRG-GW-MTP >> This contains SW MTP at Gateway only
MRG-CUCM-MTP >> This contains CUCM SW MTP
MRG-Gateway >> GW-CON & GW-Xcode (both hardware)
MRG-HQ >> ANN_2, CFB_2, MOH_2

At Gateway:
MRGL-GW  >> MRG-GW-MTP , MRG-CUCM-MTP ,  MRG-Gateway, MRG-HQ

HQ:

MRGL-HQ >> MRG-GW-MTP , MRG-CUCM-MTP, MRG-HQ

Step#2:

Removed the SIP bind commands. I tried pinging fa0/1 to CUCM which failed so I removed the binding and left it on IOS to pick closest LAN interface to CUCM and WAN interface for going outside

Step#3:

Under voice services voip – – added allow-connections h323 to h323 and removed redirect ip2ip. We should not need this command will redirect SIP phone calls to SIP phone calls.

Step#4:

Ran the following debugs:

debug voip ccapi inout
debug cch323 all
debug h225 asn1
debug h245 asn1
debug ip tcp trans
debug ccsip all

Collected debugs in the following manner:

Router(config)# service sequence
Router(config)# service timestamps debug datetime localtime msec
Router(config)# logging buffered 10000000 7
Router(config)# no logging con
Router(config)# no logging mon
Router(config)# voice iec syslog

Router(config)#service timestamps log datetime localtime msec

Router# term len 0
<Enable session capture to txt file in terminal program.>
Router# sh logg

Step#5:

The debugs were huge but I could see
045897: *Sep  3 20:46:57.975: TCP0: ACK timeout timer expired
045898: *Sep  3 20:47:05.679: //-1/xxxxxxxxxxxx/H323/cch323_process_carrier_update: Registered = 0, Event = 1, Reason = 2
045899: *Sep  3 20:47:05.907: //-1/xxxxxxxxxxxx/H323/cch323_ct_main: SOCK 3 Event 0x1
045900: *Sep  3 20:47:05.907: //-1/xxxxxxxxxxxx/H323/cch323_gw_process_read_socket: owner_data=0x4AE82D10, len=2, msgPtr=0x4A8F8D78
045901: *Sep  3 20:47:05.907: //-1/xxxxxxxxxxxx/H323/cch323_gw_process_read_socket: Received msg for H.245
045902: *Sep  3 20:47:05.907: h245_decode_one_pdu: more_pdus = 0, bytesLeftToDecode = 2
045903: *Sep  3 20:47:05.907: H245 MSC INCOMING ENCODE BUFFER::= 4A40
045904: *Sep  3 20:47:05.911:
045905: *Sep  3 20:47:05.911: H245 MSC INCOMING PDU ::

value MultimediaSystemControlMessage ::= command : endSessionCommand : disconnect : NULL

Observed no capability exchange when the call connects,  the endSession is being sent by the far h323 side because h245 negotiation isn’t occurring.

Further down the lines found  this:

163432: *Sep  5 17:36:35.240: //-1/xxxxxxxxxxxx/H323/cch323_h225_receiver: Received msg of type RELEASEIND_CHOSEN
163433: *Sep  5 17:36:35.240: //9761/F1DB1EE38000/H323/release_ind: Disconnect cause 16 location code 0
163434: *Sep  5 17:36:35.240: //-1/xxxxxxxxxxxx/H323/h323_set_release_source_for_peer: ownCallId[9761], src[4]
163435: *Sep  5 17:36:35.240: //9761/F1DB1EE38000/H323/cch323_h225_receiver: RELEASEIND_CHOSEN: src address = 192.168.212.4; dest address = 192.168.212.1
163436: *Sep  5 17:36:35.240: //9761/F1DB1EE38000/H323/run_h225_sm: Received event H225_EV_RELEASE_IND while at state H225_WAIT_FOR_H245

Noticed SIP provider is doing early-offer (note the SDP in the INVITE).  When this happens, CUBE needs to do fast-start on the outbound h323 leg to CM.  CM is not negotiating FS here.  I Checked the ‘Enable Inbound Fast Start’ box on CM under the CUBE’s H323 gateway config.

Also, observed that capabilities aren’t exchanged when the H245 TCP channel is opened up. Unchecked ‘Wait for far end h.245 capability exchange’ at the gateway config under CUCM. Reset the gateway.

This fixed the issue.

The Cisco High-Density Packet Voice Digital Signal Processor (DSP) Module (PVDM2) enables Cisco Integrated Services Routers to provide high-density voice connectivity, conferencing, and transcoding capabilities in Cisco IP Communications solutions. PVDM stands for packet voice DSP module; it is the Cisco product name for the module that provides digital signal processing resources to a system. DSP stands for Digital Signal Processor; it is a generic Industry terminology. A PVDM module could be staffed with one or multiple DSPs.

PVDM2-8 = 8ch (G), 4ch (H), 4ch (M)

PVDM2-16 = 16ch (G), 6ch (H), 8ch (M)

PVDM2-32 = 32ch (G), 12ch (H), 16ch (M)

PVDM2-48 = 48ch (G), 18ch (H), 24ch (M)

PVDM2-64 = 64ch (G), 24ch (H), 32ch (M)

G=g711     H=G723.1,G728, G729, Gt29b, iLBC      M= G711, G729a, G729ab, G726, G722, Fax Relay

PVDM2-16 is one DSP chip (32=2, 48=3, 64=4)
PVDM2-8 is one DSP chip but less processing capacity than the DSP on the 16.
PVDM2-8 contains one TNETV2505GGW DSP; other PVDM2 modules contain 1 to 4 TNETV2510GGW DSPs (referred to C5510 in command outputs)

Codec Complexity and Flex Mode:

You can configure each DSP separately as either medium complexity, high complexity, or flex mode (C5510 only).Configure with voice-card x.  Then codec complexity (flex | high | medium). The DSP treats all calls according to its configured complexity, regardless of the actual complexity of the codec of the call. A resource with configured complexity equal or higher than the actual complexity of the incoming call must be available, or the call will fail.

3725 with NM-HDV in slot 0
!
Gateway#conf t
Gateway(config)#voice-card 0
Gateway(config-voicecard)#codec complexity ?
high    Set codec complexity high. High complexity, lower call density.
medium  Set codec complexity medium. Mid range complexity and call  density.
<cr>
Gateway(config-voicecard)#end

2811 with PVDM2-16 installed on main board.
!
GW_2811#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
GW_2811(config)#voice-card 0
GW_2811(config-voicecard)#codec complexity ?
flex    Set codec complexity Flex. Flex complexity, higher call density.
high    Set codec complexity high. High complexity, lower call density.
medium  Set codec complexity medium. Mid range complexity and call density.

GW_2811(config-voicecard)#end
GW_2811#

For example, if a call requires a high-complexity codec but the DSP resource is configured for medium complexity mode, the call will fail. However, if a medium-complexity call is attempted on a DSP configured for high complexity mode, then the call will succeed and Cisco IOS will allocate a high-complexity mode resource.

Voice cards that do not have C5510 DSPs can be configured only for medium or high complexity. Voice cards that are equipped with C5510 DSPs have an additional complexity option called flex complexity. Setting the codec complexity to medium or high sets the number of voice terminations per DSP to a static number. Flex mode has an advantage when calls of multiple codecs must be supported on the same hardware because flex mode can support more calls than when the DSPs are configured as medium or high complexity. However, flex mode does allow oversubscription of the resources, which introduces the risk of call failure if all resources are used. With flex mode it is possible to have fewer DSP resources than with physical TDM interfaces.

DSP Sharing & Farming:

DSP sharing and DSP farming has been used interchangeably. Cisco IOS dspfarm command is used for both DSP sharing and DSP farming. The DSP farming term was originally used to describe using DSPs as media resources for CallManager. DSP sharing allows C5510 DSPs to terminate a voice call from a voice port that is located in another hardware slot. This can reduce the possibility of oversubscription when using flex complexity. It can also make it easier to add DSPs to an existing gateway. It is physically much easier to add PVDM2s to an NM-HDV2 than it is to add them to the main board of an ISR.

  • A local DSP is on the same voice card as the voice port.
  • A remote DSP is on a different voice card than the voice port.
  • The DSPs on the main board of an ISR are local to the High-Performance WAN Interface Card (HWIC) and Extension Voice Module (EVM) slots and are remote to the NM slots.
  • DSP sharing supports only voice termination not transcoding.
  • DSP sharing is supported on T1/E1 interfaces only.
  • DSP sharing is supported on PVDM2s that are installed on the main board of 2800 and 3800 ISRs.
  • DSP sharing is supported on NM-HDV2s that are installed in a 2800, 3700, or 3800 router.
  • All voice cards that share DSPs must have synchronized clocks.

You should configure all voice cards that share DSPs for the same complexity.
GW_2811(config)#voice-card 0
GW_2811(config-voicecard)#dspfarm
GW_2811(config-voicecard)#end

Please refer to configuration for IOS Transcoding and Hardware Conferencing.

Transcoding & MTP Resources:

Transcoding can be configured on following devices:

  • WS-X6608-T1/E1
  • WS-SVC-CMM-ACT
  • PVDM installed in NM-HDV
  • PVDM2s installed in NM-HDV2
  • PVDM2s installed in ISRs
  • NM-HD-1V/2V/2VE (C5510)
  • 1751/1760

Maximum number of transcoding sessions per device:

Device {Max Sessions}

WS-6608-T1/E1 {24 per port, 192 per module}
WS-SVC-CMM-ACT {64}
C549 {4}
C549 in 1751/1760  {2}
C5510 medium complexity {8}
C5510 high complexity {6}
c5510 flex complexity {16*}

* It is only possible to support 16 transcoding sessions when you are transcoding between two low- complexity codecs. Because this situation is rare, the practical maximum number of transcoding sessions per DSP is 8.

Note: Software-based MTPs can support two voice streams with the same packetization rates. If the voice streams use different packetization rates, a DSP is required. The number of software-based MTP sessions is CPU bound and varies per router platform. You can configure only the C5510 DSP to provide hardware-based MTP services. Each DSP can support 16 MTP sessions. If a call requires MTP services and no MTP is configured, a transcoder is used if available.

Conferencing:

You need to consider only one factor when calculating conference bridge DSP requirements: the number of conferences required.For example, the C5510 supports two mixed-mode conferences with up to eight participants each. Therefore, it is technically accurate to say that the C5510 supports 16 conference participants. But this does not mean we can have 4 conferences of 4 participants each. Number of DSPs required depends on number of Conferences. Particpants per conference are irrelevant.

Device {Max Conference – Max participant}

C549                               {1 – 6}
C5510 (G.711 only)           {8 – 8}
C5510 (G.729a/G.729)     {2 – 8}

E1 Card & PVDM:

How many DSPs/PVDM are required as per E1?

As a rule of thumb always consider One PVDM2-64 for 2 E1s. Each E1 takes up 30 channels (2×30 = 60 > 64). If you are using 1 x E1 then you may use one PVDM2-32.

A PVDM-12 or PVDM2 (32 or higher) can provide voice termination, transcoding, and conferencing simultaneously. The restriction on conferencing is per DSP, not per PVDM. The gateway does track the number of voice ports that are allocated to prevent oversubscription of DSPs. Even though the DSPs are not assigned to a specific voice port, the number of DSPs available for other purposes has been reduced.

You can also use Cisco DSP Calculator to find out DSP resources needed as per requirement.

Useful Commands:

sh voice dsp voice

show voice dsp group all

show dspfarm all

Show dspfarm dsp active

Gateway Outputs:

This is from a gateway which is using on-board PVDM-12 chips.

Show diag#

Slot 2:
High Density Voice Port adapter
Port adapter is analyzed
Port adapter insertion time unknown
EEPROM contents at hardware discovery:
Hardware Revision        : 1.1
Top Assy. Part Number    : 800-03567-01
Board Revision           : E0
Deviation Number         : 0-0
Fab Version              : 02
PCB Serial Number        : JAB04390KNG
RMA Test History         : 00
RMA Number               : 0-0-0-0
RMA History              : 00
Product (FRU) Number     : NM-HDV=
EEPROM format version 4
EEPROM contents (hex):
0x00: 04 FF 40 00 CC 41 01 01 C0 46 03 20 00 0D EF 01
0x10: 42 45 30 80 00 00 00 00 02 02 C1 8B 4A 41 42 30
0x20: 34 33 39 30 4B 4E 47 03 00 81 00 00 00 00 04 00
0x30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

HDV SIMMs: Product (FRU) Number: PVDM-12
SIMM slot 0: Empty.
SIMM slot 1: Empty.
SIMM slot 2: PVDM-12 SIMM present.
SIMM slot 3: PVDM-12 SIMM present.
SIMM slot 4: PVDM-12 SIMM present.
.

GWY01#sh voice dsp

DSP  DSP             DSPWARE CURR  BOOT                         PAK     TX/RX
TYPE NUM CH CODEC    VERSION STATE STATE   RST AI VOICEPORT TS ABORT  PACK COUNT
==== === == ======== ======= ===== ======= === == ========= == ===== ============
C549 007 01 {medium}  4.1.45 IDLE  idle      0  0 2/0:15    01     0 95382631/933
51746
02 {medium}  4.1.45 IDLE  idle         0 2/0:15    02     0 47552148/467
89172
03 {medium}  4.1.45 IDLE  idle         0 2/0:15    03     0 20910677/206
87231
04 {medium}  4.1.45 IDLE  idle         0 2/0:15    04     0 8394645/8321
251
C549 008 01 {medium}  4.1.45 IDLE  idle      0  0 2/0:15    05     0 3004228/3000
106
02 {medium}  4.1.45 IDLE  idle         0 2/0:15    06     0 983950/97893
8
03 {medium}  4.1.45 IDLE  idle         0 2/0:15    07     0 538659/54259
5
04 {medium}  4.1.45 IDLE  idle         0 2/0:15    08     0 2102367/2139
512
C549 009 01 {medium}  4.1.45 IDLE  idle      0  0 2/0:15    09     0 8154416/8309
524
02 {medium}  4.1.45 IDLE  idle         0 2/0:15    10     0 23548128/239
63817
03 {medium}  4.1.45 IDLE  idle         0 2/0:15    11     0 56429286/574
41003
04 {medium}  4.1.45 IDLE  idle         0 2/0:15    12     0 106057197/10
7984725

This is from another gateway using PVDM2-32 & PVDM2-16:

GW_WCH_01#sh voice dsp group all

DSP groups on slot 0:
dsp 1:
State: UP, firmware: 4.4.24
Max signal/voice channel: 16/16
Max credits: 240
Group: FLEX_GROUP_VOICE, complexity: FLEX
Shared credits: 150, reserved credits: 0
Signaling channels allocated: 16
Voice channels allocated: 6
Credits used: 90
Voice channels:
Ch01: voice port: 0/0/0:15.29, codec: g711ulaw, credits allocated: 15
Ch02: voice port: 0/0/0:15.3, codec: g711alaw, credits allocated: 15
Ch03: voice port: 0/0/0:15.1, codec: g711alaw, credits allocated: 15
Ch04: voice port: 0/0/0:15.2, codec: g711alaw, credits allocated: 15
Ch05: voice port: 0/0/0:15.4, codec: g711alaw, credits allocated: 15
Ch06: voice port: 0/0/0:15.31, codec: g711alaw, credits allocated: 15

dsp 2:
State: UP, firmware: 4.4.24
Max signal/voice channel: 16/16
Max credits: 240
Group: FLEX_GROUP_VOICE, complexity: FLEX
Shared credits: 225, reserved credits: 0
Signaling channels allocated: 16
Voice channels allocated: 1
Credits used: 15
Voice channels:
Ch01: voice port: 0/0/0:15.5, codec: g711alaw, credits allocated: 15

dsp 5:
State: UP, firmware: 4.4.24
Max signal/voice channel: 16/16
Max credits: 240
Group: FLEX_GROUP_VOICE, complexity: FLEX
Shared credits: 240, reserved credits: 0
Signaling channels allocated: 2
Voice channels allocated: 0
Credits used: 0

DSP groups on slot 1:
This command is not applicable to slot 1

DSP groups on slot 2:
This command is not applicable to slot 2

0 DSP resource allocation failure

GW_WCH_01#sh voice dsp

DSP  DSP                DSPWARE CURR  BOOT                         PAK     TX/RX
TYPE NUM CH CODEC       VERSION STATE STATE   RST AI VOICEPORT TS ABORT  PACK COUNT
==== === == ======== ========== ===== ======= === == ========= == ===== ============

—————————-FLEX VOICE CARD 0 ——————————
*DSP VOICE CHANNELS*
DSP   DSP                DSPWARE CURR  BOOT                         PAK   TX/RX
TYPE  NUM CH CODEC       VERSION STATE STATE   RST AI VOICEPORT TS ABRT PACK COUNT
===== === == ======== ========== ===== ======= === == ========= == ==== ============
C5510 001 01 g711alaw     4.4.24 busy  idle      0  0 0/0/0:15  01    0    3128/3041
C5510 001 02 g711alaw     4.4.24 busy  idle      0  0 0/0/0:15  02    0  10125/10293
C5510 001 03 g711alaw     4.4.24 busy  idle      0  0 0/0/0:15  03    0    1432/1215
*DSP SIGNALING CHANNELS*
DSP   DSP                DSPWARE CURR  BOOT                         PAK   TX/RX
TYPE  NUM CH CODEC       VERSION STATE STATE   RST AI VOICEPORT TS ABRT PACK COUNT
===== === == ======== ========== ===== ======= === == ========= == ==== ============
C5510 001 01 {flex}       4.4.24 alloc idle      0  0 0/1/1     06    0         18/0
C5510 001 02 {flex}       4.4.24 alloc idle      0  0 0/1/0     06    0        442/0
C5510 001 03 {flex}       4.4.24 alloc idle      0  0 0/1/3     02    0         18/0
C5510 001 04 {flex}       4.4.24 alloc idle      0  0 0/1/2     02    0        110/0
————————END OF FLEX VOICE CARD 0 —————————-

GW_WCH_01#sh voice dsp active

DSP  DSP                DSPWARE CURR  BOOT                         PAK     TX/RX
TYPE NUM CH CODEC       VERSION STATE STATE   RST AI VOICEPORT TS ABORT  PACK COUNT
==== === == ======== ========== ===== ======= === == ========= == ===== ============

—————————-FLEX VOICE CARD 0 ——————————
*DSP ACTIVE VOICE CHANNELS*
DSP      DSPWARE           VOX DSP               SIG DSP            PAK   TX/RX
TYPE     VERSION CODEC    NUM CH TS VOICEPORT SLT NUM CH TS RST AI ABRT PACK COUNT
===== ========== ======== === == == ========= === === == == === == ==== ============
C5510 4.4.24 g711alaw 001 01 01 0/0/0:15  000 001 05 01   0  0    0  15825/15801
C5510 4.4.24 g711alaw 001 02 02 0/0/0:15  000 001 06 02   0  0    0  22822/23053
C5510 4.4.24 g711alaw 001 03 03 0/0/0:15  000 001 07 03   0  0    0  14129/14030
C5510 4.4.24 g711alaw 001 04 04 0/0/0:15  000 001 08 04   0  0    0    6865/5661
C5510 4.4.24 g711alaw 001 05 05 0/0/0:15  000 001 09 05   0  0    0    4636/4588
C5510 4.4.24 g711alaw 002 01 06 0/0/0:15  000 001 10 06   0  0    0    3141/3180
————————END OF FLEX VOICE CARD 0 —————————-

Transcoding SessionsWS-6608-T1/E1 {24 per port, 192 per module}

WS-SVC-CMM-ACT {64}

C549 {4}

C549 in 1751/1760  {2}

C5510 medium complexity {8}

C5510 high complexity {6}

c5510 flex complexity {16*}

* It is only possible to support 16 transcoding sessions when you are transcoding between two low- complexity codecs. Because this situation is rare, the practical maximum number of transcoding sessions per DSP is 8.

If there is already a MOH file running at the CME router, follow the below steps to change it to a new one.

Sh flash:

55        7200 Dec 09 2008 10:53:52 Pulse1.raw
56        4000 Dec 09 2008 10:53:54 Ring1.raw
57        4000 Dec 09 2008 10:53:54 Ring2.raw
58        4000 Dec 09 2008 10:53:54 Ring3.raw
59        4000 Dec 09 2008 10:53:54 Ring4.raw
60        4000 Dec 09 2008 10:53:56 Ring5.raw
61        4000 Dec 09 2008 10:53:56 Ring6.raw
62        4000 Dec 09 2008 10:53:56 Ring7.raw
63         495 Dec 09 2008 10:53:56 RingList.xml
64       10800 Dec 09 2008 10:53:58 Sax1.raw
65       14160 Dec 09 2008 10:53:58 Sax2.raw
66       16080 Dec 09 2008 10:53:58 Vibe.raw
67           0 Jan 05 2009 13:28:42 configs
68       21903 Jan 05 2009 13:29:24 configs/config-050109-upgrade
69     1209168 May 19 2010 15:34:26 MOH2010.wav
70     1219613 Jun 08 2010 14:45:44 Delawarenew.wav

telephony-service
sdspfarm units 4
sdspfarm tag 1 CFP001e7a78c7d0
conference hardware
no auto-reg-ephone
load 7936 cmterm_7936.3-3-15-0
load 7941 SCCP41.8-3-3S
load 7961 SCCP41.8-3-3S
max-ephones 42
max-dn 144
ip source-address 10.95.254.3 port 2000
timeouts interdigit 5
network-locale GB
time-zone 21
date-format dd-mm-yy
voicemail 35090
max-conferences 8 gain -6
call-forward pattern .T
call-forward system redirecting-expanded
moh flash:Delawarenew.wav
multicast moh 239.0.2.1 port 2000 route 10.95.254.3

dn-webedit
time-webedit
transfer-system full-consult
transfer-pattern 9.T
secondary-dialtone 9

Upload the file:

1.       Copy the music file onto the flash of the router by using

command to run at the router # copy tftp://x.x.x.x/new_file.wav flash:

2.       Enable

3.       Conf terminal

4.       telephony-service

5.       no moh flash:Delawarenew.wav

6.       moh MOHJuly2010.wav

7.       multicast moh 239.1.1.1 port 2000

8.       create cnf-files

9.       exit

Verify:

UK-CME#sh ephone summ

hairpin_block:
ephone-1[0] Mac:001E.138C.D8D8 TCP socket:[9] activeLine:0 REGISTERED
mediaActive:0 offhook:0 ringing:0 reset:0 reset_sent:0 debug:0  primary_dn: 20*
IP:10.95.254.116 7961  keepalive 63119  1:20 2:1 3:3
sp1:35089 sp2:907789690073#

ephone-2[1] Mac:0021.A087.2538 TCP socket:[20] activeLine:0 REGISTERED
mediaActive:0 offhook:0 ringing:0 reset:0 reset_sent:0 debug:0  primary_dn: 134*
IP:10.95.254.125 7941  keepalive 176020  1:134

ephone-3[2] Mac:001D.A266.CD0B TCP socket:[4] activeLine:0 REGISTERED
mediaActive:0 offhook:0 ringing:0 reset:0 reset_sent:0 debug:0  primary_dn: 3*
IP:10.95.254.111 7961  keepalive 170599  1:3 2:18
sp1:35076 sp2:35066 sp3:35068 sp4:35065

.

.

.

.

.

Max Conferences 8 with 0 active (8 allowed)
Skinny Music On Hold Status
Active MOH clients 0 (max 210), Media Clients 0, B-ACD Clients 0
File flash:MOHJuly2010.wav type WAVE Media_Payload_G711Ulaw64k  160 bytes
Moh multicast on 239.0.2.1 port 2000 via 10.95.254.3

MOH file uploaded on Pub under MOH Audio source with number # 5.

Customer came back saying that he cannot hear the new announcement as per the new file. I tried to select the file under UDP, Phone and even at Service parameter but nothing worked. I could see the file fine at the Publisher. I then ran some RTMT stats and found that Phone is requesting for MOH file but it cannot find it. Why it cannot find it? the file is there at Publisher. I decided to check the Subscibers to see if the file is there as well. The reason I didn’t check that before was I thought it would be replicated. When I checked the Subscibers there was no MOH file, the one I uploaded at Publisher. I had to load MOH file on each server to make it work.

Take home point – If you upload a MOH file then upload it on all MOH servers otherwise it won’t work.

Upload the music file

1:    First have your music file recorded as an 8 Khz, 8 bit, mono ulaw encoded WAV file.

2:    The next step is to get your music file on to the Call Manager server.

Copy your music file in to this folder on your call manager server ‘c:\Program Files\Cisco\MOH\DropMOHAudioSourceFilesHere’.

When you place your music file in that folder it will disappear after a short while.
The Call Manager scans this directory for files and when it finds on it will convert the audio and store it in the Call Manager database.
So don’t be concerned when you look and there is nothing in that folder!

Create a music audio source in Call Manager

3:    Log in to the Call Manager administrator web page.

4:    From the ‘Service’ menu choose ‘Media Resource’, ‘music on hold audio source’.

5:    Click on ‘add new source’, this is on the top left as a link.

6:    Choose a stream number (the next one free is 3).

7:    Select your music file in the MOH Audio Source File drop down list.

8:    Place a name for the music source in the ‘MOH Audio Source Name’.

9:    check the ‘Play continuously (repeat)’ box. DO NOT check ‘allow multicasting’.

10:    Click on the ‘Insert’ button near the top of the page

11:    Click ‘Reset MOH Servers’ button at the bottom of the page.
Don’t worry this will not interrupt any services that your users are using.

Assign the music source to the phones in the Common Profile settings

12:    From the ‘Device’ menu choose ‘Device Settings’, ‘Common Profile’.

13:    Click on the ‘Find’ button.

14:    Click on ‘CMP_BRA_BRADFORD’.

15:    You will find 2 drop down lists, ‘Network MOH Source’ and ‘User MOH Source’.
Choose the music you want played from each drop down list.

16:    Click on ‘Update’.

17:    This next step should be done outside of normal hours as it will drop any active calls and reset all of your phones.
Click on ‘Reset Devices’, a warning message will appear giving you the option of proceeding or cancelling.

Proceed only when you are sure it will not disrupt service, in order for the phones to accept their new setting they will all need to reboot.


MOH Issues and Resolution

Posted: June 29, 2010 in Media Resources

There are quite a few issues which you may come across while configuring Music on Hold.

As of SRST/ITS 3.0 an IOS branch gateway has the capability to function as a multicast Music on Hold (MoH) resource. This allows for a distributed MoH design where MoH at remote sites is provided by the local gateway, which can save valuable bandwidth by not having to stream MoH across the WAN.

The MoH capabilities of IOS are very simple. IOS can be configured to permanently multicast RTP packets from an audio file stored locally on flash. This multicasting/streaming is not under the control of CCM, in fact CCM is not even aware of the fact that an IOS MoH resource exists in the network. By configuring IOS MoH to multicast to the same multicast IP address and port as that used by CCM, we can simply block multicast packets originated by CCM, and phones and gateways at a remote site will instead pickup the identical packets being multicast by the local branch gateway.

Note that IOS MoH works for multicast MoH only. Unicast MoH is not supported.

CUCM Checks:

  • The Communications Manager configuration must be designed appropriately.  This involves enabling multicast MoH, and configuring Media Resource Groups (MRG) and Media Resource Group Lists (MRGL) to control which devices get multicast and which get unicast MoH. It also involves assigning Regions so that g711 is used whenever an IOS MoH resource is being invoked.
  • On the “Music On Hold (MOH) Server Configuration” tick the Enable Multicast Audio Sources on this MOH Server box. Note that this MoH server can still unicast MoH, we are just expanding it’s capabilities to include multicast MoH. Specify a base for the IP multicast address and port numbers. For example IP address 239.1.1.1 and port 16384.
Inc. Multicast on IP Address Inc. Multicast on Port Number
Audio Stream Codec Dst. IP Address Dst. Port Dst. IP Address Dst. Port
1 G.711 ulaw 239.1.1.1 16384 239.1.1.1 16384
1 G.711 Alaw 239.1.1.2 16384 239.1.1.1 16385
1 G.729 239.1.1.3 16384 239.1.1.1 16386
1 Wideband 239.1.1.4 16384 239.1.1.1 16387
2 G.711 ulaw 239.1.1.5 16384 239.1.1.1 16388
2 G.711 Alaw 239.1.1.6 16384 239.1.1.1 16389
2 G.729 239.1.1.7 16384 239.1.1.1 16390
2 Wideband 239.1.1.8 16384 239.1.1.1 16391
  • On the “Music On Hold (MOH) Audio Source Configuration” select audio source number 1. Tick the Allow Multicasting box. This will allow this audio source to be used for multicast MoH. Note that it can still be used simultaneously for unicast MoH.
  • It is important to realize that only a single audio source can be used throughout the network when IOS MoH is used.. Even if you have 500 sites and only one site is using IOS MoH you are subject to this restriction.
  • Place the MRGL with Multicast MOH Group in Device Pool or Remote Gateway
  • IOS MoH supports G.711 only. So it is critical that CCM be configured to open up a G711 MoH connection when a device at the remote branch is placed on hold.
  • First test the MOH from CUCM. Even with an IOS MoH resource present the CCM MoH configuration that we have just put together must work. If the WAN is multicast enabled then placing a remote IPhone and/or gateway on hold is the ultimate test to validate the configuration.  If the WAN is not multicast enabled then it will not be possible for the CCM MoH server to stream MoH to the remote device. In this case the second best test is to place an IPhone on the same subnet as the CCM MoH server and verify that Moh can be heard. Since the phone and MoH server are on the same subnet no multicast routing capabilities in the network are required.
  • Use perfmon to verify that the MoH you are hearing is provided via multicast and not unicast. Since unicast MoH is enabled by default it is easy to mistakenly conclude that multicast MoH is working when in fact it is not. Monitor the MOHMulticastResourceActive and MOHUnicastResourceActive counters under the Cisco MOH Device performance object. The multicast counter must be the one incrementing in order for IOS MoH to later work.

IOS & Gateway Checks:

  • The IOS MoH gateway must be running 12.2(15)ZJ2, or 12.3(2nd)T and later when available.
  • Copy the desired MoH audio file to flash on the gateway. The MOH file can be in .wav or .au file format, but must contain 8-bit 8 kHz data, such as a-law or u-law data format.  A known working MoH audio file (music-on-hold.au) is included in its-3.0.1.zip and srst-3.0.zip, which can be downloaded from http://www.cisco.com/cgi-bin/tablebuild.pl/ip-key
  • Configure the music on hold commands as described in previous MOH section.

Troubleshoot IOS MoH to PSTN:

  • If the PSTN caller on hold hears tone on hold (ToH) instead of MoH, then one can conclude that a configuration exists on the CCM side. CCM has failed to activate MoH and has used ToH as a last resort. In this case use the trouble shooting guidelines described in the CCM section.
  • If the PSTN caller on hold hears complete silence, then one can conclude that the problem lies on the IOS or network side. In this case CCM has successfully completed the multicast MoH handshaking with the GW, but the gateway is failing to pick up the locally generated multicast RTP stream. In this case use the ‘show ccm-manager music-on-hold’ command to troubleshoot as described below.

HQ#show ccm-manager music-on-hold

Current active multicast sessions : 1

Multicast Address RTP Port Number Packets In/Out Codec Incoming Interface
239.1.1.1 16387 326/326 42 G711ulaw L
  • If no MoH streams are shown by this command then CCM has failed to provide the gateway with MoH. In this case you’ll normally hear tone on hold instead. The typical cause for this is CCM not having an appropriate MoH resource available. This could be because the required codec is has not been enabled on CCM (check the service parameters). Or it could be because no MRGL has been assigned to the gateway, or if one has been assigned then it has insufficient resources. Check the Event Viewer for error message
  • The IP address and port number above is the MoH source that IOS has been directed to listen to by CCM. Make sure that these match those configured in IOS MoH with the multicast moh command.
  • The ‘show ccm-manager music-on-hold’ command shows only PSTN connections on hold. It does not show multicast streams going to IPhones on hold. When an IPhone is placed on hold, and the MoH is sourced from an IOS gateway, the MoH signaling is directly between CCM and IPhone. In this scenario the IOS gateway plays no role other then to blindly stream multicast RTP packets to the IPhone.
  • Keep in mind that hearing MoH does not necessarily mean that multicast IOS MoH is working as expected. If the PSTN caller hears MoH, but ‘show ccm-manager music-on-hold’ shows no active multicast streams, then the MoH is coming from a unicast. This can be confirmed by checking the MoH perfmon counters as discussed earlier.
  • Check that the remote IP address is MOH Multicast IP

HQ#show call active voice | include RemoteMedia
RemoteMediaIPAddress=239.1.1.1
RemoteMediaPort=16384

Troubleshoot IOS MoH to IP Phones:

  • When an IPhone is placed on hold, and the MoH is sourced from an IOS gateway, the MoH signaling takes place directly between CCM and IPhone.
  • The IOS gateway places no other role than to blindly stream multicast RTP packets to the IPhone.  So other than verifying that the IOS gateway is streaming multicast RTP packets out the Ethernet interface where the IPhones reside, there is no other troubleshooting that can be performed on the gateway.
  • In order to verify that CCM is correctly signaling the IPhone to listen for multicast MoH, place the IPhone on hold. Then check the MOHMulticastResourceActive and MOHUnicastResourceActive counters under the Cisco MOH Device performance object. The multicast counter must be the one incrementing in order for IOS MoH to later work.
  • If MoH signaling looks OK, but no MoH is heard, connect a sniffer to the PC port on the back of the port. If the IPhone and IOS MoH gateway are connected to the same subnet then multicast RTP packets should be seen here at all times, even when the IPhone is not placed on hold. If IPhone and IOS MoH gateway are not connected to the same subnet then, then multicast RTP packets are only seen when the IPhone is placed on hold and sends an IGMP join to the closest router.

Music on hold is a very useful feature in Call manager which is used for streaming music when you put a PSTN phone or an internal IP phone on hold.

I will discuss briefly how it is configured and how you may use CUCM to stream music from remote gateways.

  1. Go to Media Resources > Music on Hold Source
  2. Check the box ‘Allow Multicasting’ 
  3. Go to Media Resources > Music on Hold Server
  4. Select the device pool – DP-MOH (This device pool should have a region REG-MOH which has G711 codec with all other regions
  5. Create a MRG and select the MOH Server in it – don’t forget to check the box ‘Use Multicast for MOH Audio’
  6. Select the MRG in an MRGL
  7. Assign the MRGL to a device pool and place the gateway in the same device pool
  8. Check IP Voice Media Streaming App (IPVMA) is activated
  9. At the gateway, configure the following

ip multicast routing

Int Loopback 0
ip address 10.10.110.2
ip pim sparse-dense-mode

Int vlan 300
ip address 10.10.201.1
ip pim sparse-dense-mode

(Vlan 300 is voice vlan)

ccm-manager music-on-hold

telephony-service
max-ephone 2
max-dn 2
ip source-address 10.10.210.1 port 2000
moh music-on-hold.au
multicast moh 239.1.1.1 port 16384 route 10.10.110.2 10.10.210.1
create cnf-files

Note: Telephony-service command is very important for the router flash to stream MOH. Even if you are not using SRST, there must be telephony-service or call-manager-fallback command for MOH. Also, the ‘ip source-address’ and ‘max-eph’ ‘max-dn’ is essential.

Verification:

R2#sh flash
-#- –length– —–date/time—— path
1     58084804 Jan 21 2009 12:15:48 c2800nm-adventerprisek9_ivs-mz.124-20.T1.bin
2          720 Feb 11 2009 19:58:34 VLAN.DAT
3          720 Jun 12 2010 09:09:10 vlan.dat
4       496521 Feb 12 2010 18:19:06 music-on-hold.au

4665344 bytes available (59346944 bytes used)

Check that ‘music-on-hold.au’ is on flash.

Do a show ephone summary and check if MOH file is active:

R2#sh ephone summary

hairpin_block:
Max 2, Registered 0, Unregistered 0, Deceased 0 High Water Mark 3, Sockets 0
ephone_send_packet process switched 0

Max Conferences 8 with 0 active (8 allowed)
Skinny Music On Hold Status
Active MOH clients 0 (max 210), Media Clients 0, B-ACD Clients 0
File music-on-hold.au type AU Media_Payload_G711Ulaw64k  160 bytes
Moh multicast on 239.1.1.1 port 16384 via 10.10.110.2
via 10.10.201.1

Do a debug ephone moh and check if router is streaming MOH:

R2#deb ephone moh

Jun 28 23:07:43.299: MoH route If Loopback0 46 10.10.110.2 via 10.10.110.2
Jun 28 23:07:43.299: MoH route If Vlan240 ETHERNET 10.10.201.1 via ARP
R2#
Jun 28 23:07:48.747: MoH route If Loopback0 46 10.10.110.2 via 10.10.110.2
Jun 28 23:07:48.747: MoH route If Vlan240 ETHERNET 10.10.201.1 via ARP
R2#
Jun 28 23:07:50.551: ifs_read flash:music-on-hold.au end of file at 490557 read 5964 = 496521
Jun 28 23:07:50.555: moh tail fill from 24 at 0x4A73816C length 2036

During a HELD call, issue command ‘show ccm-manager music-on-hold’ … this will show the ports/interfaces used for Music on hold streaming.

R2#sh ccm-manager music-on-hold
Current active multicast sessions : 1
Multicast       RTP port   Packets       Call   Codec    Incoming
Address         number     in/out        id              Interface
===================================================================
239.1.1.1         16384   508/508          1    g711ulaw  Lo0

Also you can check the multicast Interface 239.1.1.1 status by using following command:

R2#sh ip mroute
IP Multicast Routing Table
Flags: D – Dense, S – Sparse, B – Bidir Group, s – SSM Group, C – Connected,
L – Local, P – Pruned, R – RP-bit set, F – Register flag,
T – SPT-bit set, J – Join SPT, M – MSDP created entry,
X – Proxy Join Timer Running, A – Candidate for MSDP Advertisement,
U – URD, I – Received Source Specific Host Report,
Z – Multicast Tunnel, z – MDT-data group sender,
Y – Joined MDT-data group, y – Sending to MDT-data group,
V – RD & Vector, v – Vector
Outgoing interface flags: H – Hardware switched, A – Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:01:01/00:01:59, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Vlan240, Forward/Sparse-Dense, 00:01:01/00:00:00

(*, 224.0.1.40), 02:14:08/00:02:52, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Loopback0, Forward/Sparse-Dense, 02:14:08/00:00:00

Also when the call is on hold:

R2#sh call active voice | i RemoteMedia
RemoteMediaIPAddress=239.1.1.1
RemoteMediaPort=16384

If the remote media IP address shows up as 0.0.0.0 then there is a good chance that you have encountered CSCdz00697.

I will discuss MOH issues in another section.

To make use of DSP resources for a Conference Call, we will have to enable Conference Bridge at the gateway.

Configure the following at the gateway:

voice-card 0
dspfarm
dsp services dspfarm

sccp local Loopback0
sccp ccm 10.10.210.10 identifier 2 priority 2 version 5.0.1
sccp ccm 10.10.210.11 identifier 1 priority 1 version 5.0.1
sccp
!
sccp ccm group 1
bind interface Loopback0
associate ccm 1 priority 1
associate ccm 2 priority 2
associate profile 1 register HQ-conf  << Name must match at CUCM
!
dspfarm profile 1 conference
codec g729r8
maximum sessions 2
associate application SCCP
no shut  << Very Important

At CUCM under Media Resources  > Conference Bridge

Conference Bridge

After adding the Conference Bridge, add it under Media Resource Group and then to MRGL.

Add the MRGL under particular device pool or Gateway.

Verification:

Show sccp conn

show dspfarm all