CICD – Ch7 – Enabling Telephony Features with CME
Configuring Voice Network Directory
- IP Phones support a local directory
- Updates from CME as devices get configured
- Names are entered under ephone-dn configuration
- Used for both building the local directory (internal phone directory) and caller ID information
ephone-dn1dual-line number 2001 name Phone One ephone-dn2 number 2022 name Super Man ephone-dn3 number 2033 name Super Women
IP Phones allow you to search the directory. You can do this by tapping the directories button on the phone. It’ll bring up a new display where you can see Missed Calls, Received Calls, Placed Calls and Local Directory (along with some more)
In Local Directory you can search for first name / last name and directly dial from the search. The search sorts alphabetically by first name. This can be changed:
CME(config)#telephony-service CME(config-telephony)#dir CME(config-telephony)#directory ? entry Define new directory entry first-name-first first name is first in ephone-dn name field last-name-first last name is first in ephone-dn name field CME(config-telephony)#directory en CME(config-telephony)#directory entry ? <1-250> Directory entry tag clear clear all directory entries CME(config-telephony)#directory entry 1 ? WORD A sequence of digits representing dir. number CME(config-telephony)#directory entry 1 95550123 name John Doe CME(config-telephony)# CME(config-telephony)#directory las CME(config-telephony)#directory last-name-first ? <cr> CME(config-telephony)#directory last-name-first CME(config-telephony)#
Configuring Call Forwarding
Call forwarding allows a user to forward any call coming into their extension and have it be sent to another number of their choosing (within parameters of COR)
2 Methods for configuring
- From the IP Phone – End user method
- User chooses CFwdAll softkey and enters the phone number they want to forward calls to. If external make sure to enter the access key to get to PSTN
- From CME CLI – CME Administrator method
CME(config)#ephone-dn 40 CME(config-ephone-dn)#call-f CME(config-ephone-dn)#call-forward ? all forward all calls busy forward call on busy max-length max number of digits allowed for CFwdAll from IP phone night-service forward call on activated night-service noan forward call on no-answer CME(config-ephone-dn)#call-forward all ? WORD A sequence of digits CME(config-ephone-dn)#call-forward all 91234567 ? <cr> CME(config-ephone-dn)#call-forward all 91234567 CME(config-ephone-dn)#
Call-forward Pattern to support H.450.3
H.450.3 standard allows CME to redirect call directly to the final destination. Without this standard a call could come into CME be routed to a remote gateway at site A where the extension lives and then call forwarded to the cfwd destination that exists at site B
With H.450.3 enabled we can bypass the hairpinning affect at site A where CME will directly send the call to the cfwd destination at site B
CCNP Track goes into this standard in much more detail
CME(config)#telephony-service CME(config-telephony)#call-forward ? pattern H.450.3/SIP match calling-party number forwarding pattern. This is used to enable remote party redirect forwarding with H.450.3/SIP. Default is local rotary forwarding only. system Define call forward system parameters. CME(config-telephony)#call-forward pattern ? WORD A sequence of digits (including wildcards) - representing calling-party number. Use '.T' to enable remote party redirect forwarding for all VoIP calling-party numbers. CME(config-telephony)#call-forward pattern 44..
Use H.450.3 standard for any call-forward matching 4400-4499
Configuring Call Transfer
Transferring a call allows you to forward a call that came into you to another person. You do this by tapping on the Trnsfer softkey on the phone and entering the extension to send the call to.
3 Transfer modes exist
- Allows you to talk to receiving caller before completing the transfer
- Default in CME
- Requires dual line configuration
- Based on H.450.2 standard – prevent hairpinning
- Immediately transfer to call to the dialed extension
- Works on single line configuration
- Based on H.450.2 standard – prevent hairpinning
- Cisco proprietary method of the consult transfer. Works similar to H.450 standard, only difference is when operating with non-Cisco phones in the network
CME(config)#telephony-service CME(config-telephony)#tran CME(config-telephony)#transfer-? transfer-digit-collect transfer-pattern transfer-system CME(config-telephony)#transfer-sys CME(config-telephony)#transfer-system ? full-blind Perform call transfers without consultation using H.450.2 or SIP REFER standard methods full-consult Perform H.450.2/SIP call transfers with consultation using second phone line if available, fallback to full-blind if second line unavailable. This is the recommended mode for most systems. See also 'supplementary-service' commands under 'voice service voip' and dial-peer. local-consult Perform call transfers with local consultation using second phone line if available, fallback to blind for non-local consultation/transfer target. Uses Cisco proprietary method. CME(config-telephony)#transfer-system full-consult CME(config-telephony)#
By default – Cisco only allows transfers within the internal system. This is done to help prevent toll fraud. To allow transfers to outside world use the transfer-pattern command or go under advanced features in CCP.
CME(config-telephony)#transfer-pattern ? WORD digit string pattern for permitted non-local call transfers CME(config-telephony)#transfer-pattern
Configuring Call Park
Call park allows you to pick up a call that has been placed on hold. Calls on hold are only allowed the be answered again on the original phone. Parking the call works by using a free ephone-dn in the CME config that hasn’t been assigned to a phone and has specifically designated as a call park slot
Park softkey on the phone
Once a call is parked the phone will display an extension. Any other phone may dial this extension to answer the parked call. Can also use the PickUp softkey and dial the park number to retrieve from
CME(config)#ephone-dn 30 CME(config-ephone-dn)#number 3000 CME(config-ephone-dn)#name Park CME(config-ephone-dn)#park-slot CME(config-ephone-dn)#park-slot ? directed Configure this park slot to be used for directed park reservation-group Reserve this park slot for the exclusive use of the phone with the same reservation group reserved-for Reserve this park slot for the exclusive use of the phone with the extension indicated by the transfer target extension number timeout Set call park timeout <cr> CME(config-ephone-dn)#park-slot CME(config-ephone-dn)#park-slot timeout ? <0-65535> Specify the park timeout (seconds) before the call is returned to the number it was parked from CME(config-ephone-dn)#park-slot timeout 60 ? limit Set call park timeout count limit CME(config-ephone-dn)#park-slot timeout 60 li CME(config-ephone-dn)#park-slot timeout 60 limit ? <1-65535> Specify the number of park timeout cycles before the call is disconnected CME(config-ephone-dn)#park-slot timeout 60 limit 2 ? notify Define additional extension number to notify for park timeout recall recall transfer back to originator phone after timeout transfer Transfer to originator or specified destination after timeout limit exceeded <cr> CME(config-ephone-dn)#park-slot timeout 60 limit 2 recall ? alternate Transfer to alternate target if original target is busy retry Set recall/transfer retry interval if target is in use <cr> CME(config-ephone-dn)#park-slot timeout 60 limit 2 recall CME(config-ephone-dn)#
Park-slot command functions
- reservered-for <dn> – allows to reserve the call park slot for a DN, other phones cannot use this call park slot
- timeout <seconds> – Number of seconds CME will wait before notifying the phone that parked the call
- limit <count> – Limit the number of timeout intervals
- notify <dn> – Notify a different DN than the phone that parked the call
- recall – cause the call to ring back to original phone that parked the call
- alternate <dn> – allows to transfer destination
- retry <seconds> – Amount of time before CME attempts to transfer a parked call again
Configuring Call Pickup
Allows you to answer another ringing phone in the org from your local phone. This is done by using the PickUp softkey while the other phone is ringing. PickUp groups can be created to divide the phones out. Based on the group the phone is assigned to you can call PickUp for that group
By default phones managed by CME a user can pickup other ringing phones. Can disable this under the telephony-services with the no service directed-pickup
Doing this sets the PickUp softkey to work for local group pickup
3 methods to answer ringing phones
- Directed PickUp
- Press PickUp softkey and dial the DN of the ringing phone. CME transfers the call to the phone you are on
- Local Group PickUp
- PickUp a call in the same PickUp Group, use the GPickUp softkey
- Other Group PickUp
- Answer another groups ringing phone by using the GPickUp softkey and dialing the DN
Allows phones to have a speakerphone ‘tether’ between them. The deployment of intercoms works through speed-dial and auto-answer speed-dial configuration.
Example: Admin Assistant can press the button configured for intercom (speed-dial button) which will dial the Execs phone which is setup for auto-answer. The call is answered muted and the Exec can unmute to respond
To prevent users from mis-dialing the intercom, use something that cannot be dialed from other IP phones
CME#conf t Enter configuration commands, one per line. End with CNTL/Z. CME(config)#ephone-dn 20 CME(config-ephone-dn)#number A200 ? no-reg Set E164 not register secondary secondary dn number <cr> CME(config-ephone-dn)#number A200 CME(config-ephone-dn)#name Assistant CME(config-ephone-dn)#intercom ? WORD A sequence of digits - representing intercom/auto-call extension to call <cr> CME(config-ephone-dn)#intercom A201 ? barge-in Allow intercom calls received on this DN to force other calls into the call HOLD state to allow the incoming intercom call to immediately connect without waiting label Define a text label for the intercom no-auto-answer Disable intercom auto-answer no-mute Disable intercom mute-on-answer ptt Define intercom push-to-talk <cr> CME(config-ephone-dn)#intercom A201 label Manager ? ptt Define intercom push-to-talk <cr> CME(config-ephone-dn)#intercom A201 label Manager CME(config-ephone-dn)#exit CME(config)# CME(config)#ephone-dn 21 CME(config-ephone-dn)#number A201 CME(config-ephone-dn)#intercom A200 label ? WORD Intercom text label, use quoted string if including spaces CME(config-ephone-dn)#intercom A200 label Assistant CME(config-ephone-dn)#exit CME(config)# CME(config)#ephone 20 CME(config-ephone)#mac-address cccc.cccc.cccc CME(config-ephone)#type 7975 CME(config-ephone)#button 2:20 CME(config-ephone)# CME(config-ephone)# CME(config-ephone)#exit CME(config)#ephone 21 CME(config-ephone)#mac-add CME(config-ephone)#mac-address bbbb.bbbb.bbbb CME(config-ephone)#type 7965 CME(config-ephone)#button 2:21 CME(config-ephone)# CME(config-ephone)# CME(config-ephone)#restart restarting BBBB.BBBB.BBBB CME(config-ephone)#end CME# CME#
Similar to intercom except that it only provides one-way automatic path for communication. Broadcast a message
This works by assigning an ephone-dn as a paging number. Calls into the paging DN will broadcast to the phones that have been assigned to the paging group. Phones are only allowed to be assigned to one group, but you can create a paging number that pages multiple paging groups.
CME Paging can be unicast or multicast. CME limits a unicast paging group to 10 phones. Multicast is outside of the scope of the CCNA. The note for multicast is that you must enable to the network to route multicast within the network. When I get back to my CCIE studies I’ll write up a post specifically on the different types of multicast.
CME#conf t Enter configuration commands, one per line.End with CNTL/Z. CME(config)#ephone-dn 25 CME(config-ephone-dn)#number 2525 CME(config-ephone-dn)#paging CME(config-ephone-dn)#exit CME(config)#ephone 10 CME(config-ephone)#paging-dn 25 Set phone's mac address or device-id first CME(config-ephone)#mac-add acac.acac.acac CME(config-ephone)#paging-dn 25 CME(config-ephone)#exit CME(config)#ephone 11 CME(config-ephone)#mac-add caca.caca.caca CME(config-ephone)#paging-dn 25 CME(config-ephone)#
CME(config)#ephone-dn 26 CME(config-ephone-dn)#number 2626 CME(config-ephone-dn)#paging ip 22.214.171.124 port 2626 CME(config-ephone-dn)#
Configuring After-Hours Call Blocking
After hours call blocking allows for a range of times to be defined as specific after hours. This can then be used to list number patterns that are not allowed during those times. Calls made during that time will receive a reorder tone and then disconnected.
Exceptions to the rule can be made by creating a back-door. A PIN can be entered on the phone to allow a call to be made. The time is configurable in CME to say how long the PIN is good for
- Define day and/or hours of the day that are considered off hours
- Specific patterns that will be blocked for the times in step 1
- Create exemption policy if required
Configuring CDRs and Call Accounting
Call Detail Records (CDR) contain information about calls coming into, out and between phones on the network. CDR contains all the information to find who called who and how long the conversation lasted
CME logs CDR to ram and/or syslog. RAM is not the best because it can all be lost if the router reboots. RAM is also a limited resource on the router.
I do not have a syslog server in my lab, but will sent to a fake address for configuration purposes
CME(config)#logging 126.96.36.199 CME(config)#gw-accounting syslog ? stats Enable stats as part of accounting. <cr> CME(config)#gw-accounting syslog CME(config)#
CDR could be used for billing purposes (track who’s calling LD, international, etc), and do a charge back model. CME can make this easier by flagging these calls in CDR with an Accounting code.
Users would press an Acct softkey on the phone, enter a PIN (accounting code) to allow them to dial out to long distance or international phones. After the user presses the Acct softkey, an Acct prompt appears at the bottom of the phone, where the user can enter the accounting code followed by the pound key (#). Entering this number during the ring out or connected call state does not interrupt the call in any way. After the user enters the account code, CME flags the CDR records with the account number dialed. This allows for easy filtering and accurate billing to each department.
Configuring Music on Hold
CME can stream MOH from an audio file that is located on the routers flash. MOH can be either unicast or multicast. CME supports G.711 or G.729 codecs for MOH.
G.711 is recommended for MOH as G.729 would require DSP resources for transcoding
CME(config)#telephony-service CME(config-telephony)#moh ? WORD music-on-hold filename containing G.711 A-law or u-law 8KHz encoded audio file (.wav or .au format). The file must be loaded into the routers flash memory, e.g., flash:/moh.au or flash:/audio/moh.au The minimum supported file size is 100 Kb. CME(config-telephony)#moh flash:moh.wav CME(config-telephony)#multicast moh ? A.B.C.D Define music-on-hold IP multicast address from flash CME(config-telephony)#multicast moh 188.8.131.52 port 2222 CME(config-telephony)#
Configuring Single Number Reach (SNR)
SNR allows a call to come into a single phone number and ring multiple phone destinations. You can link multiple numbers to a parent number (office extension for example). When a call comes into your office DN, if you do not answer at the desk phone it can start to ring your cell phone as well and if no answer the call is transferred to corp voicemail.
If the call was picked up on the cell phone and you get back to your desk you can “move” the call to the deskphone by hanging up on the cell and continuing the call on the desk phone.
Vice versa, you can be on a call on your desk phone and press the Mobility softkey to move the call to your cell phone without dropping the call.
When configuring SNR in the real world make sure you have enough PSTN trunks available as SNR will use 2 channels (1 for the inbound call to the desk, 1 for the outbound to the cell).
SNR is enabled on a DN by DN basis
Configuring Hunt Groups
Hunt groups allow you to call a specific number and have multiple phones ring in a configured sequence.
Hunt groups are configured by creating a pilot number (ephone-hunt, pilot sub-command). The pilot number is what a person would call into that would then start ringing the phones configured in the hunt group in a specific order.
Types of Hunt Groups
- Longest Idle – Round Robin distribution. Phones are run in a listed order, starting with the phone that has the longest on-hook
- Peer – Round robin distribution. Extensions are rung in a listed order. Starts with the number after the one last answered a call
- Parallel – All phones ring simultaneously
- Sequential – Strict top-down ordered list. First phone always get the new call unless it is already busy or answer within the timeout period
If no answer is made from the Hunt Pilot the following options are available
- Forward to a pilot number of another hunt group
- Voicemail pilot
- Any ephone-dn
- Back to ephone-dn that transferred the call to the hunt pilot
Configure Night Service
Night service is a specialized afterhours call forwarding system. Night service defines one or more extensions that are eligible for night service that will ring during this time.
Configuring Shared ephone-dn
Shared ephone-dn is putting the same ephone-dn on one or more ephones
Extension Mobility in CME
Extension Mobility allows users to log into any IP Phone configured for extension mobility. This allows users to sit at different desks and still use their own extension. These settings follow the users who logs in with Ext Mobility – extension, Caller ID, speed dials, etc.
Ext Mobility is configured by creating logout profiles. This defines which extension a phone will have when a user logs out of the phone.
Users profiles must include their extension, caller ID and speed dials when setting up Ext Mobility. Ext Mobility prompts users to login with their username and a password using the keypad.