Cisco Unity Dial By Name Fails after Upgrade Using COBRAS
Closed     Case # 10040     Affiliated Job:  New Trier Township District 2031
Opened:  Thursday, August 5, 2010     Closed:  Thursday, August 5, 2010
Total Hit Count:  15005     Last Hit:  Thursday, December 26, 2024 3:51:19 AM
Unique Hit Count:  4825     Last Unique Hit:  Thursday, December 26, 2024 3:51:19 AM
Case Type(s):  Development, Server
Case Notes(s):  All cases are posted for review purposes only. Any implementations should be performed at your own risk.

Project:
We had a consultant on site to take our Cisco VoIP solution and migrate us from version 6 to version 8, in the process of upgrading Unity, using the COBRAS (Cisco Unified Backup and Restore Application Suite), the Dial By Name directory stopped working. New users added into Unity worked; however, imported/restored users did not. The consultant contacted Cisco and at layer 3 support no resolution could be found for this function in the phone system.

Outcome:
On the basis of the imported users not working and the new ones being available in the directory listing, I reviewed a new and imported user in the database to see what was different. The two fields "DtmfNameFirstLast" & "DtmfNameLastFirst" were populated for new users but NULL for imported users. In further review of the entries in the new users, it was obvious this field represents the letter to number on a telephone keypad. i.e. ABC is #2, DEF is #3. etc. So I created a SQL script to populate these fields for the existing users based on the "FirstName" & "LastName" fields in Unity. NOTE: I removed any special characters & spaces (i.e. -, ', &) that I found in our directory listing - you will want to add in any others you may have in yours when performing this query.

  UPDATE Subscriber
  SET
    DtmfNameFirstLast = CASE WHEN DtmfNameFirstLast IS NULL THEN
      REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
          SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE(UPPER(FirstName + LastName), ' ', ''),'&',''),'-',''),'''',''),1,16)
      , 'A', '2'), 'B', '2'), 'C', '2')
      , 'D', '3'), 'E', '3'), 'F', '3')
      , 'G', '4'), 'H', '4'), 'I', '4')
      , 'J', '5'), 'K', '5'), 'L', '5')
      , 'M', '6'), 'N', '6'), 'O', '6')
      , 'P', '7'), 'Q', '7'), 'R', '7'), 'S', '7')
      , 'T', '8'), 'U', '8'), 'V', '8')
      , 'W', '9'), 'X', '9'), 'Y', '9'), 'Z', '9') ELSE DtmfNameFirstLast END,
   
    DtmfNameLastFirst = CASE WHEN DtmfNameLastFirst IS NULL THEN
      REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
      REPLACE(REPLACE(REPLACE(
          SUBSTRING(REPLACE(REPLACE(REPLACE(REPLACE(UPPER(LastName + FirstName), ' ', ''),'&',''),'-',''),'''',''),1,16)
      , 'A', '2'), 'B', '2'), 'C', '2')
      , 'D', '3'), 'E', '3'), 'F', '3')
      , 'G', '4'), 'H', '4'), 'I', '4')
      , 'J', '5'), 'K', '5'), 'L', '5')
      , 'M', '6'), 'N', '6'), 'O', '6')
      , 'P', '7'), 'Q', '7'), 'R', '7'), 'S', '7')
      , 'T', '8'), 'U', '8'), 'V', '8')
      , 'W', '9'), 'X', '9'), 'Y', '9'), 'Z', '9') ELSE DtmfNameLastFirst END



Profile IMG: Footer Left Profile IMG: Footer Right