Cisco CUCM/CUBE SIP Troubleshooting

Some quick notes on troubleshooting tools in a Cisco SIP Call Manager environment:

Commands on the CUBE router:
show call active voice compact
debug ccsip messages
debug voip ccapi inout

Article on understanding SIP traces:
https://supportforums.cisco.com/document/113271/understanding-sip-traces

SIP call flows and troubleshooting:
https://supportforums.cisco.com/document/71131/basic-sip-call-flows-troubleshooting-commands

Using CUCM RTMT Session Trace:
http://www.ucguerrilla.com/2012/03/cisco-cucm-rtmt-session-trace.html

Using TranslaterX as an additional tool to Session Trace:
https://wiklunds.wordpress.com/2013/06/09/sip-traces-from-cucm-in-transla/

2 Hour Cisco Live breakout on SIP troubleshooting with CUCM and CUBE:
https://www.ciscolive.com/online/connect/sessionDetail.ww?SESSION_ID=6098&tclass=popup

Jabber for iPhone Move to Mobile

I noticed on the Cisco Jabber for iPhone app there is a “Move to Mobile” option when you are on a VoIP call.  This feature did not work for me initially, so here are my steps to get it working.

  1. User Profile: Make sure “Enable Mobility” is checked
  2. Remote Destination Profile: A remote destination profile needs to be created and assigned to the user with their cell number.  I usually have the user sign into the self-care portal and have them create their own profile.  “Enable Move to Mobile” must be checked in the profile.
  3. Device: The TCT phone device for their iPhone needs to have the “Owner User ID” and “Mobility User ID” assigned to the user.  Also, the Transfer to Mobile Network option should be set to “Use Mobility Softkey”

Apparently their are two ways to setup up Move to Mobile, and I found this option (the user receives a call from CUCM once they click “Move to Mobile”) most effective to implement.  You can find both options detailed HERE

Cisco CUCM, CUPS, Unity Upgrade to 10.5.2

I recently upgraded a Cisco Call Manager environment from 10.5.1 to 10.5.2, and since I had to figure out all the upgrade steps, I figured I’d post my process.  I used the upgrade guide found here: Cisco Upgrade Guide

  1. Login to CM Publisher Disaster Recovery System
    1. Backup–>Backup Device–>Add New (if not already present)
    2. Backup–>Manual Backup–>All features–>Start Backup
  2. Login to Unity Disaster Recovery System
    1. Backup–>Backup Device–>Add New (if not already present)
    2. Backup–>Manual Backup–>All features–>Start Backup
  3. Backup all virtual machines (I used XSI backup to do this)
  4. Snapshot all virtual machines within VMware
  5. Stop LDAP sync interval on Call Manager and Unity (I use UDS for IM)
    1. This is recommended so that LDAP doesn’t attempt to sync during the upgrade
  6. Stop Extension Mobility service–>CM Pub and Sub–>Cisco Unified Serviceability
  7. Login to CM Pub, Unity Pub and IM&P Pub
    1. OS Administration–>Software Upgrades–>Remote filesystem (or DVD drive)
      1. Upload new iso and click “Do not reboot after Upgrade”
  8. Wait for the all the Pub’s to load the new ISO
  9. Login to CM Sub, Unity Sub, and IM&P Sub
    1. OS Administration–>Software Upgrades–>Remote filesystem (or DVD drive)
      1. Upload new iso and click “Do not reboot after upgrade”
  10. Login to CM Pub
    1. OS Administration–>Settings–>Version–>Switch Version
    2. Wait for Pub to come back up
  11. Login to CM Sub
    1. OS Administration–>Settings–>Version–>Switch Version
    2. Wait for Sub to come back up
  12. Check database status
    1. SSH to CM Pub: utils dbreplication runtimestate, value should be “2”
  13. Check phone functionality
  14. Check version via cli: show version active
  15. Verify Extension Mobility service is running
  16. Done upgrading Call Manager!
  17. Login to Unity Pub
    1. OS Administration–>Settings–>Version–>Switch Version
  18. Wait for Unity Pub to come back up, try checking voicemail from a phone
  19. Login to Unity Sub
    1. OS Administration–>Settings–>Version–>Switch Version
  20. Check database status
    1. SSH to Unity Pub: utils dbreplication runtimestate, value should be “2”
  21. Done upgrading Unity!
  22. Login to CM Pub and disable IM HA: System–>Presence Redundancy Groups
  23. Login to IM&P Pub
    1. OS Administration–>Settings–>Version–>Switch Version
    2. This server took a while to come back up, it has to wait for the Cisco DB to initialize and then the rest of the services will start up
  24. Wait for IM&P Pub to come back up with all services started
  25. Login to IM&P Sub
    1. OS Administration–>Settings–>Version–>Switch Version
    2. This server also took a while to come back up, it has to wait for the Cisco DB to initialize and then the rest of the services will start up
  26. Check database status
    1. SSH to IM&P Pub: utils dbreplication runtimestate, value should be “2”
  27. Log into CM Pub and turn on HA for IM cluster
    1. HA will take a couple minutes to re-initialize
  28. Done upgrading IM&P!
  29. Re-enable LDAP sync on Call Manager and Unity

The upgrade went pretty smoothly, with only one hiccup.  After I upgraded the Unity Pub, I couldn’t access the Unity Sub webpage in order to switch the version and upgrade.   The webpage just wouldn’t load.  I could have restarted Tomcat and tried to get the webpage working, but I decided to proceed with the upgrade, and switched the version from cli with: utils system switch-version The upgrade was successful and the entire environment is working great!

Cisco IM&P Chat Room Postgres Server

If you want to implement chat rooms/persistent chat or chat logging with Cisco IM and Presence, you need to setup an external postgres server.  The setup is relatively easy (I used a ubuntu server), and can be found HERE 

The problem I came across was that while testing, I created several chat rooms, then deleted the users who owned those chat rooms.  I needed a way to delete those test chat rooms, which needs to be done on the postgres server (since the users no longer existed).  Here are the steps I used:

  1. SSH to postgres server and become the postgres user: su – postgres
  2. As the postgres user, login to the database: psql -d tcmadb
  3. To view the chat rooms stored in the database, run: SELECT room_jid FROM tc_rooms;
  4. I wanted to delete ALL chat rooms previously created, so I truncated the table: TRUNCATE tc_rooms;
  5. All done!  All chat rooms are now deleted.  If you want to delete a specific room, you’ll need to select and delete a specific row instead of truncate

Additional useful postgres database commands:

Show all tables: \dt
To quit: \q
Show all rows in a table: \d+ tablename