Changing Cisco Presence SIP and DNS Domain

I’ve had to go through the process of changing the DNS and SIP Proxy domains on all of our IM&P. Sifting through the documentation can be a bit daunting/confusing. Here is a quick bullet point list on how to go about that exercise. If you are only wanting to change the DNS domain simply skip the step to change the SIP domain.


  • Add DNS Records and remove or disable old DNS entries
  • Verify dns from CLI (“utils network host [hostname]” and “utils network host [ip-address]”)
  • Disable HA
  • Delete any inter-cluster peers (“Presence > Inter-Clustering”)
  • Run the following commands from CLI on both Servers: utils service stop Cisco Config Agent
    utils service stop Cisco Intercluster Sync Agent
    utils service stop Cisco Client Profile Agent
    utils service stop Cisco Presence Engine
    utils service stop Cisco OAM Agent
    utils service stop Cisco SIP Proxy
    utils service stop Cisco Sync Agent
    utils service stop Cisco XCP Router
    utils service stop Cisco Presence Datastore
    utils service stop Cisco SIP Registration Datastore
    utils service stop Cisco Login Datastore
    utils service stop Cisco Route Datastore
    utils service stop Cisco XCP Config Manager
  • Change the IM and Presence Domain to (“System > Cluster Topology > Settings”)
  • Update the Node Name from each server to the new FQDN (“System > Cluster Topology” – Select Subcluster and then the node to be changed.)
  • In CUCM Change the application server names to reflect the new FQDN (“System > Application Server”)
  • Change the DNS Domain from the CLI on both servers (“set network domain [new.domain]”)
  • Reboot Pub and wait for all services to start – this can take 30min to an hour (verify services with “utils service list”)
  • Reboot Sub and wait for all services to start – this can take 30min to an hour (verify services with “utils service list”)
  • Verify new domain setting on both servers (“show network eth0”)
  • Reset database replication from pub (“utils dbreplication reset all”)
  • Verify replication re-establishes (“utils dbreplication runtimestate” and utils dbreplication status)
  • Regenerate Certificates ( OS Administration > Security > Generate New)
  • Reset Tomcat on both servers (“utils service reset Cisco Tomcat”)
  • Re-Enable HA (“System > Cluster Topology > Select Subcluster”)
  • Add Inter-Cluster Peer (Presence > Inter-Clustering > New”) Reset any needed services
  • Test Client Connectivity with new server settings ( Should work with server set to Automatic if proper SRV DNS records are deployed)

Jabber Deskphone Control for 6900, 8900, 9900 and DX650 Phones

I have recently begun deploying both the 9900 series phones and the fancy DX650 to some in our environment. Many use Jabber desk phone control as their primary means of dialing and answering their phone. With the new model phones I set up the usual permissions but found the CTI control through Jabber was failing.

After doing some forum fishing I found that for Jabber Deskphone control to work on the 8900’s, the 9900’s and the DX650 the end user must be put in the “Standard CTI Allow Control of Phones supporting Connected Xfer and Conf” group in addition to the Standard CTI Enable group.

For 6900 series phones the end user must be placed in the “Standard CTI Allow Control of Phones Supporting Rollover Mode” group

Cisco VoIP Features

I needed to put together a list of available call manager features along with a high level description of what they are/do. I couldn’t find something that met my needs so I created it and thought I would pass it along in case it would help anyone else out. Obviously this not a comprehensive list and is customized for my purposes but it does cover many of the basic features.

  • Voicemail
    User Voicemail – Users can be assigned a voicemail box to which callers will leave messages when the phone is not answered. Voicemail greetings can be customized to use a system generated pronunciation of the users name, a recorded user’s name, or a fully recorded custom greeting. When a message is left by a caller the message waiting indicator on the phone will be lit.
    General Mailbox – A general mailbox allows a voice mailbox to be shared among a group of users for common access. Each member of the group has access to retrieve messages from the voicemail box.
  • Auto Attendant
    An auto attendant can be used to present callers with prerecorded options for selecting which departments or persons they would like to reach. Auto attendant options can allow a caller to directly dial a desired extension, transfer from the auto attendant menu to a preconfigured extension, or be setup in a hierarchical structure of options to guide the caller to a specific selection.
  • Jabber
    Jabber is a multi-featured communications client that enables several different ways of communicating with others.
    Presence – A user’s current status can be displayed on other Jabber clients. Presence states can be based off of a user’s calendar, idle time, WebEx meeting attendance, phone use and other custom messages.
    Chat –Jabber serves as an instant message client to facilitate chat sessions between two or more users
    Desktop Video – Users with webcam installed on their PCs can use Jabber to launch video calls between themselves and other video enabled users.
  • Conferencing
    Users on a phone call can set up ad-hoc conferences with up to 8 participants without having to use a dedicated conference number. When two users are on a call together, they can use the “Conf” softkey to dial and add other participants. 
  • Speed Dials
    Per location speed dials can be configured by Infrastructure Support.
    Individual Speed Dials (Abbreviated Dial) can be configured by the end user. 
  • Call Park/Directed Call Park
    Call Park – When on an active call, a user selects Call Park and a number is chosen by the phone system for the park. The park number is displayed on the phone for later retrieval. The call can be retrieved from the park, by a user dialing the call park number from any phone within the location.
    Directed Call Park – When on an active call, a user selects Directed Call Park and dials a pre-configured number at which to park the call for later retrieval. The call is retrieved by a user dialing the pre-configured number from any phone within the location.
  • Call Pickup Groups
    Call Pickup – Phones are placed into call pickup groups by Infrastructure Support. When a call comes inbound to a phone within the pickup group, any other phone within that group can pick up the ringing call by pressing the “Call Pickup” softkey and then the “Answer” softkey.
    Group Pickup – Phones are placed into call pickup groups by Infrastructure Support. When a call comes inbound to a phone in a different call pickup group, a user can answer the ringing call by pressing the “Group Pickup” softkey, dialing a preconfigured group number and pressing the “Answer” softkey.
  • Single Number Reach
    End users can configure an alternate number, such as a cell phone that also rings when calls come inbound to their primary phone. The ringing of the alternate number can be scheduled for time of day and access lists can be configured to only allow or deny calls from certain numbers.
  • Device Mobility
    When single number reach is enabled with a mobile phone, a user can start a call on their VoIP phone and seamlessly transfer the call to their mobile phone. Inversely, when a comes inbound to their VoIP phone and the user answers it by picking it up on their mobile phone, the user can seamlessly transfer the call back to their VoIP phone.



Echo Analysis on Analog Gateways

Here is a really great article about Echo Cancellation etc. for Cisco Gateways.

Sox > Audacity

Far and away the best Global Knowledge teacher I ever had introduced me to this handy application.

I had always used audacity to convert WAV files to the proper format for Music on Hold on CUCM. Sox takes what was a convoluted process and makes it as easy as one line in command prompt.

The proper format for the WAV file is:

Encoding: 8-bit CCITT u-Law or a-Law
Data Rate: 8 Kbps
Sample Rates: 8 kHz, 16 kHz, 32 kHz, 48 kHz
Audio Sample Size: 16-bit PCM
Channels: 1

Now for the wonderfully easy part:

Download Sox here:

Install and run from a command prompt window

The proper syntax for conversion is:
sox.exe c:\PathToOldFileFormat.wav -r 8000 -c 1 -b 8 -e mu-law c:\PathToOutputOfNewFileFormat.wav

Voila! Upload the new file to your favorite Music on hold audio source or UCCX prompt directory and enjoy!

MeetMe UCCX Script

After our migration to a Cisco VoIP system we decided to save some money and migrate our conferencing off of a paid conference bridge to use MeetMe exclusively for our conferences. Of course MeetMe is what is and although it is very easy to operate and convenient it isn’t exactly loaded in the bells and whistles department.  It has no audio front end or passcode requirement capabilities and provides no way of holding a call if a conference hasn’t been started by the organizer.

There are several solutions floating around the interwebs to fix some of the limitations. Some use unity and some utilize UCCX for an audio front end. I have taken several of the ideas that use UCCX and tweaked/compiled those for the solution posted here.

This UCCX script allows for up to 30 MeetMe numbers with a passcode validation for those who join. It will check to see if the meeting has been started and place the caller on hold if it has not. If you configure an audio stream for it you can play MoH for those on hold. Once the conference is started by the organizer each participant will be taken off hold and placed into conference.

Step-by-Step the script will work like this:
1.       Users will call the DID set up for external conference users
2.       The DID is pointed via a CTI route point  to the UCCX trigger of the MeetMe application
3.       The UCCX application begins the script, welcomes the caller and prompts for the conference ID
4.       If the conference ID is incorrect it will prompt 3 times before ending the call
5.       After the conference ID is verified it will prompt for the corresponding passcode
6.       If the passcode is incorrect it will prompt 3 time before ending the call
7.       Once the passcode is verified it will attempt to place the caller into the conference
8.       If the conference is not active it will play an audio prompt telling the caller to wait and play MoH
9.       Every 10 seconds it loop through the script to check if the conference is active
10.   Once the conference is active it will place the caller in conference and the script will end

Each of the Meeting ID’s and Passwords are set as parameters and can be set from the Application Management page.

The port group should be set to the numeric ID of the UCCX Telephony Call Control Group you want to use.


The Script and audio files are – Here

It is clunky and long but functional.

The audio files are to be placed in en-US\MeetMe\

This solution is designed on CUCM 8.6 and UCCX 8.5

A shoutout to WIKLUNDS who gave me the foundation for this script HERE