Archive for the ‘UNITY-VOICEMAIL’ Category

I have looked around a lot of documents and came through various documents and finally couldn’t find what I was after. Then after reading heaps of crap, I made a short doc which really  shrinks down the VPIM.

Basic Concept:
VPIM :  Based on SMTP & MIME (Multi-Purpose Internet Mail Extension)

Message content components:

  • spoken name
  • forwarded fax and text messages.
  • vCard (phone number, text name and email address)

VPIM Addresses:

Dial ID vs. Location

  • – Primary Location (Default Location)
  • – Delivery Locations

Voice Connector:  This encodes Voice mail into VPIM format.

VPIM Subscriber??
[VPIM:<Delivery Location Dial ID>_<Remote Mailbox Number]

– Select only [Exchange 2000 or Exchange 2003 VPIM Connector]


Routing group
Routing group connector

CUE settings:

hostname CUE

ip domain-name
ip name-server <DNS-Server-IP>

network location id 408
email domain (put your actual <Exch-Domain-Name> here)
name “Unity”
voicemail extension-length 4
end location

network location id XXX (where XXX = sitec location ID)
email domain (CUE IP)
name “CUE”
voicemail extension-length 8
end location

network local location id XXX <Sitec location ID>
Primary Locations
– for Domain Name(SMTP)
– Dialing Domain leave blank.
– Update Addressing Options = Global directory / Global directory

Delivery Locations

– [SMTP domain name] = (CUE IP)
– Check [Sender’s recorded name]
– Check [Sender’s vCard]

Troubleshooting commands:
show network locations
show network detail location id
show network detail local
show network queues

How to send vpim  messages:

  1. Press  message button on your phone
  2. option#2 – saying something is leaving messages (that’s how we send vpim message), follow the Cisco IVR lady.
  3. You need to dial location ID# then phone number for example 408+phone number where 408 is HQ site vpim site “Id”

Hope this helps to some folks who are struggling with VPIM mystery!

Cheers, Push


This blog is written based on the my experience with CUE/Unity and VPIM practice. This is 100% based on practice, so the folk are looking for theoretical approach, please visit Also I must mention that these are personal notes which I made for myself and may not be appropriate your approach.

CUE ip =
CME ip =
NTP server;

SITEC phone#1 = 5001
SITEC phone#2 = 5002
HQ phone#1 = 3001
CME to CUE VM pilot = 4444

CME Config;

I am assuming youv’e alredy created a SIP voip dialpeer cme to CUE. Also created 2 MWI-on/off DNs on CME, incoming called number of mwi-on/off under cme-cue sip-voip-dialpeer. Now lets straight hop onto CUE module. Please note, 10 minutes doesn’t include above CME setup and DNS for VPIM.
step#1: configure the cue module itself
config t
interface Service-Engine0/0
description ====== AIM CUE Module ======
ip unnumbered FastEthernet0/0.102
service-module ip address
service-module ip default-gateway

ip route Service-Engine0/0 <— a must

thats all.

Step#2; CUE initial setup

Rack02R3#service-module service-Engine 0/0 sess
Trying 2066 … Open

Site C router
Please answer y or n.

IMPORTANT:: DNS Configuration:
IMPORTANT:: This allows the entry of hostnames, for example, inste
IMPORTANT:: of IP addresses like for servers used by CUE.  In order
IMPORTANT:: to configure DNS you must know the IP address of at least one of you

Would you like to use DNS for CUE (y,n)?y

WARNING: If DNS is not used CUE will require the use
WARNING: of IP addresses.

Are you sure (y,n)? y

Enter IP Address of the Primary NTP Server
(IP address, or enter for

Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa            4) Arctic Ocean     7) Australia       10) Pacific Ocean
2) Americas          5) Asia             8) Europe
3) Antarctica        6) Atlantic Ocean   9) Indian Ocean
#? 5 <————————————————
Please select a country.
1) Afghanistan           18) Japan                 35) Philippines
2) Armenia               19) Jordan                36) Qatar
3) Azerbaijan            20) Kazakhstan            37) Russia
4) Bahrain               21) Korea (North)         38) Saudi Arabia
5) Bangladesh            22) Korea (South)         39) Singapore
6) Bhutan                23) Kuwait                40) Sri Lanka
7) Brunei                24) Kyrgyzstan            41) Syria
8) Cambodia              25) Laos                  42) Taiwan
9) China                 26) Lebanon               43) Tajikistan
10) Cyprus                27) Macao                 44) Thailand
11) Georgia               28) Malaysia              45) Turkmenistan
12) Hong Kong             29) Mongolia              46) United Arab Emirates
13) India                 30) Myanmar (Burma)       47) Uzbekistan
14) Indonesia             31) Nepal                 48) Vietnam
15) Iran                  32) Oman                  49) Yemen
16) Iraq                  33) Pakistan
17) Israel                34) Palestine
#? 13 <———————————————-

The following information has been given:


Therefore TZ=’Asia/India’ will be used.
Local time is now:      Tue Aug 12 19:14:46 GMT 2008.
Universal Time is now:  Tue Aug 12 11:14:46 UTC 2008.
Is the above information OK?
1) Yes
2) No
#? 1 <——————–type
Configuring the system. Please wait…
Changing owners and file permissions.
Change owners and permissions complete.
INIT: Switching to runlevel: 4
INIT: Sending processes the TERM signal
STARTED: ${ROOT}/usr/wfavvid/run
STARTED: probe

waiting 202 …

IMPORTANT:: Create an administrator account. With this account,
IMPORTANT:: you can log in to the Cisco Unity Express GUI and
IMPORTANT:: run the initialization wizard.

Enter administrator user ID:
(user ID): administrator      ^H^H
administrator  is not a valid user ID.
A valid user ID:
1) must start with a letter
2) may contain letters, numbers, hyphens, underscores or dots
3) must end with a letter or a number
4) must contain no fewer than 2 characters
5) must contain no more than 31 characters
Enter administrator user ID:
(user ID): administrator
Enter password for :
Confirm password for  by reentering it:

sTEP#1 create a ccn subsystem sip
CUE#config t
CUE(config)# ccn subsystem sip
CUE(config-sip)# gateway address
CUE(config-sip)# enable
CUE(config-sip)# end

Step#4#2 create a ccn trigger sip

CUE(config)# ccn trigger sip phonenumber 4444
Adding new trigger
CUE(config-trigger)# enabled
CUE(config-trigger)# application voicemail
CUE(config-trigger)# end

Step#5 create users on CUE,  associate them with their phones and create Voice mailbox for them.

CUE(config)# username sitec1 create
CUE(config)# username sitec1 phonenumber 5001<–sitec phone1
CUE(config)# username sitec2 create
CUE(config)# username sitec1 phonenumber 5002<–sitec phoen2
CUE(config)# groupname sales create <—-how to create a GDM
CUE(config)# groupname sales phonenumber 5555
CUE(config)# groupname sales member sitec1
CUE(config)# groupname sales member sitec2
CUE(config)# voicemail callerid <—this is a must
CUE(config)# voicemail mailbox owner sitec1
CUE(config-mailbox)# no tutorials
CUE(config-mailbox)# no tutorial
CUE(config-mailbox)# end

CUE(config)# voicemail mailbox owner sitec2
CUE(config-mailbox)# no tutorial
CUE(config-mailbox)# end

CUE(config)# voicemail mailbox owner sales
CUE(config-mailbox)# no tuto
CUE(config-mailbox)# end
CUE(config)# exit
CUE# username sitec1 pin 12345 <–these are pin#
CUE# username sitec2 pin 12345 <–these are pin#
CUE# wr

note, I prectice the CLI only and it hardly took 5 minutes to do everything.

Trick#1: Never use GUI [unless specified to do so]. You’ll know why not to use once u get caught into the the CUE GUI lunch! [its just $1400 lunch + GST damn!!]

Trick#2: CME only support 1 alternate extension so if there is a requirement for more
than 1 , use voice translation profile on CME dialpeer pointing to CME (incoming/outgoing).

Trick#3: by default mwi-on/off are 8000/8001 in CUE system. If needs to be modify them then in CUE
just do ‘show run’ on cue module and u will see below output, just copy into notepad modify
them according to your need and paste back into the cue;

ccn application ciscomwiapplication
description “ciscomwiapplication”
maxsessions 6
script “setmwi.aef”
parameter “CallControlGroupID” “0”
parameter “strMWI_OFF_DN” “8001” <———-
parameter “strMWI_ON_DN” “8000” <—————-
end application

CUE to Unity VPIM Networking

VPIM is an industry standard protcol for integrating differnt voicemail systems. Cisco CUE supports – CUE to CUE vpim networking without any DNS server, also  CUE to unity. CUE to unity vpim integration must have a DNS server.

The other typical scenario could be CUE without any DNS server [since CUE vpim networking can work without DNS. CUE assumes MX record being a site email address.] and unity uses DNS server.

Basic idea of vpim is to save the expensive T1 timeslots to send VoiceMAIL and instead send it via internet or an IP network. For example, if you are sending a VM from Australia to Paris, normally it will go via GSM/TDM
network, but if VPM or similar protocol is being used at GSM/cellular operator’s MSC they can route that
perticular Voice message via internet to Paris. So end of the day it comes to cut the cost of an expensive

Its pretty easy task. Lets assume, you’ve;

CUE dns =
CUE domain;
Unity domain;

CUE phones DN# 5001 5002
CCM phones DN# 6001 6002
Unity network location id# 100
CUE network location id# 200

Scenario/what we are trying to achieve here; VPIM between HQ and siteC users should work and vice-versa.

CUE side config
make sure you put DNS address during initial CUE configuration screen. if u didn’t do it that time
u can do later on by using ip name server <dns ip> in config t mode.

Step#2 create 2 locations, one for CUE and one for Unity.

CUE# config t
Enter configuration commands, one per line.  End with CNTL/
CUE(config)# network location id 100 <———-for unity
CUE(config-location)# name Unity
CUE(config-location)# email domain
CUE(config-location)# enable
CUE(config-location)# end
CUE(config)# network location id 200 <—- for CUE
CUE(config-location)# name CUE
CUE(config-location)# enable
CUE(config-location)# email domain
CUE(config-location)# end

Now make CUE as a local domain on CUE module itself;

CUE(config)# network local location id 200
Thats all on CUE, now below are what needs to be done on Unity;

Unity Configuration;

It took me a while to work out I need a license on Unity. I was able to arrange a demo license
from our local Cisco-AM. So if u don’t have u may get it the license in that way to practice for the voicelab.

So here we go, the steps are below;

1. Make sure that you’ve VPIM license installed on Unity. VPIM networking is a special feature of Cisco unity which needs a  valid [**shrug**] licsense to run vpim. U can use Unity SA web interface to check the license.

2.  Since I am using unity server as a DNS server for both CUE and Unity VPIM networking, I added as a IP alias in Unity TCP/IP property. Just to keep the IP addie separate. U can use the existing IP but I like to keep things separate. Also should be reacheble from CME.

DNS prepration; – Create 2 zones in Unity DNS;
a. – add A and MX record, put ip addie of cue in these records.
b. – add  A and MX records, put ip add of unity in these records
c. Make sure you’ve installed Unity Schema from unity CD#1. If this is not installed you’
would not be able to create vpim locations. unity will let you add the location but when u
click on ok at the end of location creation, it will return with nothing.
d. Make sure you’ve installed unity voicemail connector, otherwise when u try adding the
unity location, u won’t see the vpim protocol options.
e. Make sure your unity server and CUE module has a DNS ip addie

3.   Add the unity local locations for HQ itself. Put an email domain as Assign ID=100. Don’t forget to click on Address option and select “global address” option.

4. Add  Delivery location for SITEC/CUE.  Assign vpim 200 as a VPIM ID. email
The final CUE config should looks like something to this; please don’t worry about all other fucking craps in the below config. Just pay attention what you’ve just done in the above steps.

CUE# sh run
Generating configuration:

clock timezone Asia/INDIA

hostname CUE

ip domain-name localdomain

ntp server

software download server url “” credentials hidden ”

groupname Administrators create
groupname Broadcasters create
groupname sales create

username administrator create
username sitec1 create
username sitec2 create

groupname sales phonenumber “5555”

username sitec1 phonenumber “5002”

groupname Administrators member administrator
groupname sales member sitec1
groupname sales member sitec2
groupname Administrators privilege superuser
groupname Administrators privilege ManagePrompts
groupname Administrators privilege broadcast
groupname Administrators privilege local-broadcast
groupname Administrators privilege ManagePublicList
groupname Administrators privilege ViewPrivateList
groupname Administrators privilege vm-imap
groupname Broadcasters privilege broadcast

restriction msg-notification min-digits 1
restriction msg-notification max-digits 30
restriction msg-notification dial-string preference 1 pattern * allowed

backup server url “” credentials hidden “EWlTygcMhYm

calendar biz-schedule systemschedule
open day 1 from 00:00 to 24:00
open day 2 from 00:00 to 24:00
open day 3 from 00:00 to 24:00
open day 4 from 00:00 to 24:00
open day 5 from 00:00 to 24:00
open day 6 from 00:00 to 24:00
open day 7 from 00:00 to 24:00
end schedule

ccn application autoattendant
description “autoattendant”
maxsessions 6
script “aa.aef”
parameter “busOpenPrompt” “AABusinessOpen.wav”
parameter “operExtn” “0”
parameter “welcomePrompt” “AAWelcome.wav”
parameter “disconnectAfterMenu” “false”
parameter “busClosedPrompt” “AABusinessClosed.wav”
parameter “allowExternalTransfers” “false”
parameter “holidayPrompt” “AAHolidayPrompt.wav”
parameter “businessSchedule” “systemschedule”
parameter “MaxRetry” “3”
end application

ccn application ciscomwiapplication
description “ciscomwiapplication”
maxsessions 6
script “setmwi.aef”
parameter “CallControlGroupID” “0”
parameter “strMWI_OFF_DN” “8001”
parameter “strMWI_ON_DN” “8000”
end application

ccn application msgnotification
description “msgnotification”
maxsessions 6
script “msgnotify.aef”
parameter “logoutUri” “http://localhost/voicemail/vxmlscripts/mbxLogou
parameter “DelayBeforeSendDTMF” “1”
end application

ccn application promptmgmt
description “promptmgmt”
maxsessions 1
script “promptmgmt.aef”
end application

ccn application voicemail
description “voicemail”
maxsessions 6
script “voicebrowser.aef”
parameter “uri” “http://localhost/voicemail/vxmlscripts/login.vxml&#8221;
parameter “logoutUri” “http://localhost/voicemail/vxmlscripts/mbxLogou
end application

ccn engine
end engine

ccn subsystem jtapi
ccm-manager address
end subsystem

ccn subsystem sip
gateway address “” <======cme router eth0/0 ip addie
end subsystem

ccn trigger sip phonenumber 4444
application “voicemail”
maxsessions 6
end trigger

network location id “100”
email domain
name “Unity”
voicemail broadcast vpim-id vpim-broadcast
voicemail vpim-encoding dynamic
end location

network location id “200”
email domain
name “CUE”
voicemail broadcast vpim-id vpim-broadcast
voicemail vpim-encoding dynamic
end location

network local location id 200

voicemail callerid
voicemail default mailboxsize 2964
voicemail broadcast recording time 300
voicemail mailbox owner “sales” size 2964
end mailbox

voicemail mailbox owner “sitec1” size 2964
end mailbox

voicemail mailbox owner “sitec2” size 2964
end mailbox



CUE voicemail testing:
1. CUE testing is easy – make a call from 5001 to 5002 , leave a VM for 5002. You should check MWI on 5002 should lit up once  u left the VM. press MSG button on 5002 and see if you can log into the 5002’s mailbox.
2. if there is an issue use ‘debug ccsip inout’ and see whats the issue is.
3. In most cases, the issue is with number of dots you put in your mwi-on/off config. Make sure there are enough dots (…. 4 dots after mwi number). Also incoming called number should be in one of the voip dial peer. I normally put everything on one dialpeer which is pointing to CUE.

VPIM testing;

1. Test from CME phone 5001 to hq phone 3001 – Hit MESG button on CME phone, select option#2 (send VM), follow the instruction and do what Cisco lady tells u, then when that lady says dial, then dial vpimID(100) + hq-ext-number(3001).
so in a nutshell, to leave a message form 5001 to 3001, you need to go to voicemail option of 5001 and then dial the destination vpim location id (e..g 100 in this case) followed by the destination phone number e..g 3001. Once the message is left, you should see MWI lamp on 3001.

Common VPIM gochas!!

1. In Unity server the most common issue I have seen with first timer – When adding delivery locations with destination type “VPIM”, it won’t show you any error message but the added new delivery location won’t appear in the list, however if you add the destination type non-vpim i.e. SMTP, unity will show that in the list.

On one of the Cisco doc it says that “It has been identified as a but and this bug has been fixed in next release! damn what a fake statement!”

In practical, the solution was I forgot to install the voice connector and fucking microsoft Active directory SCHEMA. Both can be installed from the disk#1 of Unity installation media. AFter that no more issue with creating the vpim delivery location.

2. One WAY message; wankers complains that they’ve one way voicemail message. e.g. cue to unity works but unity to cue doesn’t. hehe… Most likely you need to check the MX record entry in the DNS zone file. DNS should be configured properly. Its damn easy, yo don’t really need to be a expert in the learning Microsoft crap. I have also tested this wtih a LINUX bind DNS server – works great for me.

3. Message arriving late – in your exchange server configuration option  on unity server , make sure the retry time of smtp is set minimum time. Also schema is okay there. Check your voicemail connector statistics on exchangeserver admin page.

I would strongly recommend to use the debug commands on CUE to troubleshoot the DNS or message arriving late issues.  there is a command on CUE u can use to see what the F*** happening inside the CUE which gives you fair bit of idea of if it is dns issue or what.

-Pushkar Bhatkoti
CCIE voice# 21569

—–Stupid guide to Cisco Unity installation on VMWARE ESX server—–


It took me3 days to completely understand the installation process of Cisco unity 4.0(5).

I am glad that finally I made it working without anyone helping me. The CCIE voice online forums/groups are useless and most of them are dead as a DEAD SEA in Israel 🙂
Cisco documentation is totally vague and adds more confusion.

I thought this might help someone who would be in the same shoes as I was.

PS: the notes made when I was doing troubleshooting and installation.

Unity installation notes:
Time: IT took 9-10 hours (From the scratch)

Hardware requirement: P4 / 1 gig ram minimum. RAM is a crucial thing.

1. Install the vanilla version of win2k ( on my Dual Xeon/4gig ram, it took 23 minutes)
2. After Win2K installation,  make sure the DTS service is enabled (in services<controlpannel)
3. Install Win2K active directory
Type dcpromo command on command prompt and make your server as  a PDC.
After reboot, check if it shows primary server using “Net accounts command” in DOS prompt.

🙂 Inky, Pinky, Blinky and Clyde
4. FQDNS –>next>domain netbios name? Type unity1
Also install DNS server – say yes to the bloody Microsoft popup box.
( I hate it).

5. Fix your server’s DNS prefix (tcpip-advance-dns option)
i set it to

6. Pop in ms exchange 2000 CD now. It’s a must without it unity can not function
I wasted 3 days on this thought that unity will work
Make sure exchange 200 installs without any error (must)

7. Take a snapshot of this if you re using ESX server
8. Restart the server after loading exchange server 2000

9. No pop-in the unity service pack CD into the cream. Run the CUSPA file.
It will guide you further, it includes upgrade to internet explorer to 6.x and install the all service packs required.

10. Install the Exchange 2000 Post-Service Pack 3 Rollup. (From unity update CD)
11. Install Microsoft exchange 2000 roll over the patch (from unity update CD)
(Make sure DTC services in services.msc is still started, if not started start it before you run service pack 3)
The above all exercise will take approx 2-3 hours

12.  Now time to pop in the monster card in (Cisco unity cd#1)
Click on install. vbs in the CD directory. (Oh, excuse me.. The poor pizza boy is in the door, so just have to answer him first….  i should see “select your language”

yeahHungry now!! Let me see what’s going on while I was receiving the Pizza.

no… Nothing happens.. Because I forget to install the CA.
So install the ssl certificates….. Go to control panel > add/remove> certificates

13. Now pop the CD again…. oh god, the Pizza is getting cold.
Tell you honestly, I am sick of changing the cards all the time. It’s freaking annoying….
Anyhow, I have to get on with it….
Now the CD is in
Oops, returns with the error “Create and set permissions for Windows accounts”
So I have to do what this Mr. Billy gates says………..

14.  Run the Cisco Unity Permissions Wizard to set permissions for the accounts.
Just click on the link given in the popup windows.

Oops………. Now another window popup’d
Run the Cisco Unity Permissions Wizard to set permissions for the accounts.
Fark it………I am really going to throw it out of windows………………..
Pizza is also getting cold…………………

Ok, I have to do what it’s suggesting where the hell is the unity permission wizard…. Push now goes back to the RTFM.

So set the schema first
frakin it took 10 minutes to google on the internet to find out this option.

Here are the steps:
To Extend the Active Directory Schema for Cisco Unity

Step 1 Confirm that all domain controllers are online. (The Active Directory schema extensions replicate only when all domain controllers are online.)

Step 2 On the computer that has the schema master role (typically the first DC/GC in the forest), log on to Windows as a user who is a member of the Schema Admins group.

Step 3 On Cisco Unity DVD 1 or CD 1, browse to the directory ADSchemaSetup, and double-click ADSchemaSetup.exe.

Step 4 In the Active Directory Schema Setup dialog box, check the Exchange 2000 or Exchange 2003 Directory Monitor check box.

Step 5 If you plan to use VPIM Networking or Cisco Unity Bridge Networking, check the applicable check boxes.

Step 6 Click OK.

Step 7 When the schema extension has finished, Ldif.log and Ldif. errs files are saved to the desktop. View the contents of the files to confirm that the extension completed successfully.
You should see the script run successful…. Message… Hurry now we should back to installing the permission wizard (step 14)

15. So repeat the step 14, I was able to run the wizard successful, easy… Next.. Next and when it asks you about any accounts
Just select “administrator”.
Don’t waste your time, just do next… Next…. Next and finish….

16. Now run the real Cisco unity program (the screen with 7 setups steps)…. n-joy from now……..all trouble is gone…
Now it started at 4:17pm lets see when it asks me 2nd CD…. Must be run for 4-5 hrs… Boring….
Let me get stuck on my pizza now….

Oh, just woke up and saw that it’s asking for 2nd DVD of Unity………...after 20 minutes it asked for the first disk of unity. Well, I had to pop-in the first one to copy with this silly billy gates………

17. Finally unity showed me the prompt “setup finished, would you like to reboot” i just said “YES”

18. Let me arrange the license file now…..

19. Keep going next to another section installation… It’s smooth now…
When it comes to ask you to import existing AD users, I created 3 users — unity1/unity2/unity3
Alternatively, you can import using an ldif file.
20. Go through the password hardening……… I put xxxxx@xCiscoxxxxx@xCisco
21. Finally, run UTIM and connect to call the manager. Hurry………………... You should see the unity button on tray turned to green

22. Integrate it to CCM.

Finished about 9pm, started at 4:15 (means it took bloody 5 hours. 15 minutes)…
Enjoy………… That’s all


Cheers, Push

Keywords: Stupid guide to Cisco unity, How to install Cisco unity for ccie lab, Cisco unity 4. X installation, how to configure Cisco unity. How to install Cisco unity on VMware ESX server