This short lab in the Phoning it in series will go over the basics of using soft Cisco IP Phones to a Cisco Unity Express router. Since I don’t have a CUE module I’m using a INE rack rental for this.
First things first lets configure the CUCME router so that it can handle SIP and Skinny phones. The CUE module likes to use NTP so let’s make the router a NTP master.
Branch03-RTR(config)#ntp master
Next we’ll configure the configure SIP CME
Branch03-RTR(config)#voice register global Branch03-RTR(config-register-global)# mode cme Branch03-RTR(config-register-global)# source-address 11.11.11.3 port 5060 Branch03-RTR(config-register-global)# max-dn 10 Branch03-RTR(config-register-global)# max-pool 10 Branch03-RTR(config-register-global)# authenticate register Branch03-RTR(config-register-global)# timezone 6 Branch03-RTR(config-register-global)# ntp-server 11.11.11.3 mode unicast Branch03-RTR(config-register-global)# create profile
And also the voice service so SIP can register.
Branch03-RTR(config)# voice service voip Branch03-RTR(conf-voi-serv)# allow-connections h323 to h323 Branch03-RTR(conf-voi-serv)# allow-connections h323 to sip Branch03-RTR(conf-voi-serv)# allow-connections sip to h323 Branch03-RTR(conf-voi-serv)# allow-connections sip to sip Branch03-RTR(conf-voi-serv)#$redundancy 0 hs-redundancy 0 fallback none Branch03-RTR(conf-voi-serv)# sip Branch03-RTR(conf-serv-sip)# bind control source-interface Loopback0 Branch03-RTR(conf-serv-sip)# bind media source-interface Loopback0 Branch03-RTR(conf-serv-sip)# registrar server
The CUE module is initially configured with the interface sm command. To get started we need to give the interface an IP like normal, this acts as the CUE default gateway. Then we have to give Unity Express itself and tell it the default gateway with the service-module commands.
Branch03-RTR(config)#interface sm1/0 Branch03-RTR(config-if)#ip add 11.11.3.1 255.255.255.0 Branch03-RTR(config-if)#service-module ip address 11.11.3.254 255.255.255.0 Branch03-RTR(config-if)#service-module ip default-gateway 11.11.3.1 Branch03-RTR(config-if)#no shut Oct 10 15:15:44.447: %LINK-3-UPDOWN: Interface SM1/0, changed state to up Oct 10 15:15:45.447: %LINEPROTO-5-UPDOWN: Line protocol on Interface SM1/0, changed state to up
Next we need to tell the router how to reach the CUE IP address by giving it a /32 static route that points to the module.
Branch03-RTR(config)#ip route 11.11.3.254 255.255.255.255 sm1/0
Then we can connect to the CUE module like so
Branch03-RTR#service-module sm1/0 session
If you are using a rack rental like I am you will want to start by factory defaulting the module so you aren’t bothered by other labs that have been done on the box.
First tell the module to go offline
CUE# offline !!!WARNING!!!: If you are going offline to do a backup, it is recommended that you save the current running configuration using the 'write' command, prior to going to the offline state. Putting the system offline will disable management interfaces. Are you sure you want to go offline?[confirm]
Then reset it to factory default
CUE(offline)# restore factory default !!!WARNING!!!: This operation will cause all configuration and data on the system to be erased. This operation is not reversible. Do you wish to continue?[confirm] Restoring the system. Please wait .....done System will be restored to factory default when it reloads. Press any key to reload:k System reloading .... CUE(offline)# MONITOR SHUTDOWN...
Once the module boots back up it will take you through a startup wizard that I would recommend running through.
Welcome to Cisco Service Engine Setting the system time from hardware clock ********** rc.aesop **************** Populating resource values from /etc/sm_rsrc_file Populating resource values from /etc/default_rsrc_file Populating resource values from /etc/products/cue/default_rsrc_file Populating resource values from /etc/products/cue/sm_rsrc_file Push button monitor started Processing manifests . . . . . . . . . . . complete ==> Management interface is eth0 ==> Management interface is eth0 Serial Number: FOC14454M1V Disk /dev/md0 doesn't contain a valid partition table Disk /dev/sdc doesn't contain a valid partition table INIT: Entering runlevel: 2 ********** rc.post_install **************** IMPORTANT:: IMPORTANT:: Welcome to Cisco Systems Service Engine IMPORTANT:: post installation configuration tool. IMPORTANT:: IMPORTANT:: This is a one time process which will guide IMPORTANT:: you through initial setup of your Service Engine. IMPORTANT:: Once run, this process will have configured IMPORTANT:: the system for your location. IMPORTANT:: IMPORTANT:: If you do not wish to continue, the system will be halted IMPORTANT:: so it can be safely removed from the router. IMPORTANT:: Do you wish to start configuration now (y,n)? y Are you sure (y,n)? y Enter Hostname (my-hostname, or enter to use se-11-11-3-254): CUE01 Enter Domain Name (mydomain.com, or enter to use localdomain): testlab.com IMPORTANT:: DNS Configuration: IMPORTANT:: IMPORTANT:: This allows the entry of hostnames, for example foo.cisco.com, instead IMPORTANT:: of IP addresses like 1.100.10.205 for application configuration. In order IMPORTANT:: to set up DNS you must know the IP address of at least one of your IMPORTANT:: DNS Servers. Would you like to use DNS (y,n)?n WARNING: If DNS is not used, IP addresses will be required. Are you sure (y,n)? y Enter IP Address of the Primary NTP Server (IP address, or enter for 11.11.3.1): Found server 11.11.3.1 Enter IP Address of the Secondary NTP Server (IP address, or enter to bypass): 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 #? 2 Please select a country. 1) Anguilla 28) Haiti 2) Antigua & Barbuda 29) Honduras 3) Argentina 30) Jamaica 4) Aruba 31) Martinique 5) Bahamas 32) Mexico 6) Barbados 33) Montserrat 7) Belize 34) Nicaragua 8) Bolivia 35) Panama 9) BQ 36) Paraguay 10) Brazil 37) Peru 11) Canada 38) Puerto Rico 12) Cayman Islands 39) St Barthelemy 13) Chile 40) St Kitts & Nevis 14) Colombia 41) St Lucia 15) Costa Rica 42) St Martin (French part) 16) Cuba 43) St Pierre & Miquelon 17) CW 44) St Vincent 18) Dominica 45) Suriname 19) Dominican Republic 46) SX 20) Ecuador 47) Trinidad & Tobago 21) El Salvador 48) Turks & Caicos Is 22) French Guiana 49) United States 23) Greenland 50) Uruguay 24) Grenada 51) Venezuela 25) Guadeloupe 52) Virgin Islands (UK) 26) Guatemala 53) Virgin Islands (US) 27) Guyana #? 11 Please select one of the following time zone regions. 1) Newfoundland Time, including SE Labrador 2) Atlantic Time - Nova Scotia (most places), PEI 3) Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971 4) Atlantic Time - New Brunswick 5) Atlantic Time - Labrador - most locations 6) Atlantic Standard Time - Quebec - Lower North Shore 7) Eastern Time - Quebec - most locations 8) Eastern Time - Ontario - most locations 9) Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973 10) Eastern Time - Thunder Bay, Ontario 11) Eastern Time - east Nunavut - most locations 12) Eastern Time - Pangnirtung, Nunavut 13) Central Standard Time - Resolute, Nunavut 14) Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut 15) Central Time - central Nunavut 16) Central Time - Manitoba & west Ontario 17) Central Time - Rainy River & Fort Frances, Ontario 18) Central Standard Time - Saskatchewan - most locations 19) Central Standard Time - Saskatchewan - midwest 20) Mountain Time - Alberta, east British Columbia & west Saskatchewan 21) Mountain Time - west Nunavut 22) Mountain Time - central Northwest Territories 23) Mountain Time - west Northwest Territories 24) Mountain Standard Time - Creston, British Columbia 25) Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia 26) Pacific Time - west British Columbia 27) Pacific Time - south Yukon 28) Pacific Time - north Yukon #? 20 The following information has been given: Canada Mountain Time - Alberta, east British Columbia & west Saskatchewan Therefore TZ='America/Edmonton' will be used. Is the above information OK? 1) Yes 2) No #? 1 Local time is now: Mon Oct 10 09:27:56 MDT 2016. Universal Time is now: Mon Oct 10 15:27:56 UTC 2016. executing app post_install Enter Call Agent 1) Cisco Unified Communications Manager (CUCM) -- default 2) Cisco Unified Communications Manager Express (CUCME) #? 2 Setting Call Agent to CUCME executing app post_install done INIT: Switching to runlevel: 4 INIT: Sending processes the TERM signal ==> Starting CDP STARTED: ntp_startup.sh STARTED: LDAP_startup.sh STARTED: SQL_startup.sh STARTED: dwnldr_startup.sh STARTED: HTTP_startup.sh STARTED: probe STARTED: fndn_udins_wrapper STARTED: superthread_startup.sh STARTED: /usr/wfavvid/run-wfengine.sh STARTED: /usr/bin/launch_ums.sh Waiting 49 ... IMPORTANT:: IMPORTANT:: Administrator Account Creation IMPORTANT:: 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. IMPORTANT:: Enter administrator user ID: (user ID): admin Enter password for admin: (password): Confirm password for admin by reentering it: (password): SYSTEM ONLINE CUE01#exit
At this point we are done with the CUE command line, while you can setup a mailbox with CLI, it tends to be more efficient to use the web interface. Though you can see what we have done by looking at show run from within the CUE session at the end of the lab.
Open up a web browser and go to http://11.11.3.1/
Go to System -> Call-In Numbers
Click Add, select voicemail and enter in the extension that will be used for voicemail and then click add.
Next off to Voicemail -> Message Waiting Indicators and check Subscribe and Unsolicited Notify
Subscribe Notify – This means that CUCME will register with Unity Express to retrieve MWI notifications when a voicemail message arrives.
Unsolicited Notify – This method simply has CUE send a SIP Notify message when a message is received.
Outcalling – This is an older method for SCCP where the on and off state for MWI each have a extension on the system. The respective extension is called to turn the MWI on or off as needed.
We won’t bother looking at outbound today since it isn’t that interesting.
With the system setup out of the way, lets add some mailboxes. You can integrate CUE with CUCME so you can import users from the router but entering in things manually will suite our purposes just fine for today.
Once you add the user it will take you to the Add new mailbox page as long as the Create Mailbox check box is checked.
We’ll go ahead and add the rest of our phones.
Back on the router, we’ll tell the DNs to forward missed calls to the voicemail extension 8001. We’ll also enable MWI on SIP.
Branch03-RTR(config)#voice register dn 1 Branch03-RTR(config-register-dn)#call-forward b2bua busy 8001 Branch03-RTR(config-register-dn)#call-forward b2bua noan 8001 Branch03-RTR(config-register-dn)#call-forward b2bua unregistered 8001 Branch03-RTR(config-register-dn)#mwi
Branch03-RTR(config)#voice register dn 2 Branch03-RTR(config-register-dn)#call-forward b2bua busy 8001 Branch03-RTR(config-register-dn)#call-forward b2bua noan 8001 Branch03-RTR(config-register-dn)#call-forward b2bua unregistered 8001 Branch03-RTR(config-register-dn)#mwi
Then we’ll enable the changes with the create profile command.
Branch03-RTR(config)#voice register global Branch03-RTR(config-register-global)#create profile Branch03-RTR(config-register-global)#reset
For our SCCP phones we can use a template to do the same thing.
Note: we don’t need to use a template but it is a bit cleaner.
Branch03-RTR(config)#ephone-dn-template 1 Branch03-RTR(config-ephone-dn-template)#call-forward busy 8001 Branch03-RTR(config-ephone-dn-template)#call-forward noan 8001 timeout 20 Branch03-RTR(config-ephone-dn-template)#exit Branch03-RTR(config)#ephone-dn 1 Branch03-RTR(config-ephone-dn)#ephone-dn-template 1 Branch03-RTR(config-ephone-dn)#ephone-dn 2 Branch03-RTR(config-ephone-dn)#ephone-dn-template 1
Earlier we talked about the subscribe types for a router to talk to CUE, that is configured under sip-ua with the mwi-server command. If you want to use unsolicited add the unsolicited keyword to the end.
Branch03-RTR(config)#sip-ua Branch03-RTR(config-sip-ua)#mwi-server ipv4:11.11.3.254
The voicemail button itself is configured with the voicemail command under telephony-service or voice register global
Branch03-RTR(config)#telephony-service Branch03-RTR(config-telephony)#voicemail 8001 Branch03-RTR(config-telephony)#create cnf-files Creating CNF files
Branch03-RTR(config)#voice register global Branch03-RTR(config-register-global)#voicemail 8001 Branch03-RTR(config-register-global)#create profile
Lastly we need to add a dial-peer that sends calls to extension 8001 to the CUE module.
Branch03-RTR(config)#dial-peer voice 8001 voip Branch03-RTR(config-dial-peer)# destination-pattern 8001 Branch03-RTR(config-dial-peer)# session protocol sipv2 Branch03-RTR(config-dial-peer)# session target ipv4:11.11.3.254 Branch03-RTR(config-dial-peer)# dtmf-relay sip-notify Branch03-RTR(config-dial-peer)# codec g711ulaw Branch03-RTR(config-dial-peer)# no vad
At this point you should be able to make a test call and leave a voicemail. If everything is happy you should get a voicemail notification and be able to check your message.
You can also log into the user web inbox to check messages the url is: http://11.11.3.1/user
That is it for tonight, next time we’ll look more into dial-peers and translation patterns etc before moving on to the big UC servers 🙂