CIPC is a great tool for troubleshooting voice, but it kind of requires a sound card to work, which a VM doesn’t provide and sometimes that’s all you have. To get magic audio inside a VM that has no sound hardware, you can create a virtual sound card. It’s removed from the gui for some reason, but not that difficult. Just RDP to the VM and redirect the audio to your desktop!

Edit the .vmx file and add the following code: (it helps if you’re in notepad++ so the format is right)

sound.present = “TRUE”
sound.allowGuestConnectionControl = “FALSE”
sound.virtualDev = “hdaudio”
sound.fileName = “-1”
sound.autodetect = “TRUE”

The problem with dialing from Cisco Jabber is that contacts that are synced from Outlook and/or AD need to be dialed from both Jabber and Mobile phones.

Instead of adding a “9” or pstn prefix to your Outlook contacts or in Active Directory, CUCM can automatically prepend your PSTN prefix when dialing from Jabber.

First, add the application dial rules in CUCM under Call Routing, Dial Rules, Application Dial Rules – Notice “Number Begins With” is blank

Next, you’ll need to grab the file “cmterm-cupc-dialrule-wizard-0.1.cop.sgn” from the Jabber for Windows admin pack, upload to your CUCM cluster and restart tftp services.

class-map match-all Voice
match ip dscp ef
match protocol rtp
class-map match-any Signaling
match protocol h323
match protocol rtcp
match protocol rtsp
match protocol sip
match protocol skinny
!
policy-map QoS-Policy-1
class Voice
set dscp ef
priority percent 30
class Signaling
set dscp cs3
bandwidth percent 5
class class-default
fair-queue

interface Outside
bandwidth xxxxxx <– be sure to define bandwidth kilobits
service-policy output QoS-Policy-1

TRIAD Telecom Specific Settings

voice class sip-profiles 1
request INVITE sip-header Allow-Header modify “.UPDATE,.” “..”
request REINVITE sip-header Allow-Header modify “.UPDATE,.” “..”
response 200 sip-header Allow-Header modify “.UPDATE,.” “..”
response 180 sip-header Allow-Header modify “.UPDATE,.” “..”

WINDSTREAM Specific Settings – (where 22.33.44.55 is local sip handoff)

sip
pass-thru content sdp

voice class sip-profiles 1
request INVITE sip-header Allow-Header modify “.UPDATE,.” “..”
request REINVITE sip-header Allow-Header modify “.UPDATE,.” “..”
response 200 sip-header Allow-Header modify “.UPDATE,.” “..”
response 180 sip-header Allow-Header modify “.UPDATE,.” “..”
request ANY sdp-header Connection-Info modify “0.0.0.0” “22.33.44.55”
request ANY sdp-header Audio-Connection-Info modify “0.0.0.0” “22.33.44.55”
request ANY sdp-header Audio-Attribute modify “inactive” “active”

dial-peer voice 5000 voip
description SIP INBOUND
preference 1
destination-pattern 91022209..$
session protocol sipv2
session target ipv4:10.20.1.1
incoming called-number 91039209..$
voice-class sip profiles 1
dtmf-relay rtp-nte
codec g711ulaw
clid strip name
no vad

dial-peer voice 6000 voip
description SIP 10DIG OUTBOUND
destination-pattern [2-9]………
no modem passthrough
session protocol sipv2
session target sip-server
voice-class sip early-offer forced
voice-class sip profiles 1
dtmf-relay rtp-nte
codec g711ulaw
fax rate disable
fax protocol t38 version 0 ls-redundancy 2 hs-redundancy 0 fallback cisco
ip qos dscp cs5 media
ip qos dscp cs4 signaling
no vad

In CUCM, sip redundancy is provided by either route groups/route lists or srv records.
The only method for sip redundancy on CME systems are srv records.

==================================
ip host losangeles.domain.com 216.82.225.202
ip host newyork.domain.com 216.82.224.202

ip host _sip._udp.sipgroup.domain.com srv 1 50 5060 losangeles.domain.com
ip host _sip._udp.sipgroup.domain.com srv 2 50 5060 newyork.domain.com

ip domain lookup
ip name-server 10.3.0.1
ip domain name domain.com

sip-ua
sip-server dns:sipgroup.domain.com
================================

This example will use los angeles all the time unless unreachable, then use new york,
If I were to set both priorities to 1, they would load balance. The 50 is weight, so you could set 60/40 or whatever..