CME: CUE+VPIM+VOICEMAIL in 10 Minutes Using CLI only

Posted: August 15, 2008 in CUE, LAB TIPS, UNITY UM|VM
Tags: ,

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

  1. bla says:

    blah, it’s shorter and clearer to read it from Cisco site.
    I am glad however that you figure it out for yourself.

  2. Robert says:

    Hi Push,

    what are these debug commands of CUE? Until now i was not able to find any documentation on this commands.



  3. Bala says:


    Could you please explain why we should not use CUI for CUE configuration ? please

  4. attempt2 says:


    Hats off to you. The cisco document for this stuff is so shitty…everytime i tried reading it…i found myself on JUPITOR.

    Keep Posting

  5. […] lab time with GUI  because every single minute counts in 8-hour long exam. I will attempt to take Pushkar’s approach a bit further by incorporating additional configuration tasks  as well as verification and […]

  6. pushkarbhatkoti says:

    Just to let you know why you shouldn’t use GUI – It’s time saver using CLI. Also you don’t have to initialize the web server and troubleshoot the web server related issues to configure CUE.

    Think about – what will happen if your web gui is not working? You will loose the lab – for sure 😦

    so why to risk yourself and not to get used to some pain to configure the router/cue using cli?


  7. chorus line says:

    It’s not my first time to pay a quick visit this
    web page, i am browsing this web page dailly and take nice data from here every day.

Leave a Reply , I will reply ASAP

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s