Archive for the ‘IP Phones & ATAs’ Category

You may have come across this that though you are logged into your profile through Extension mobility but when you try to access your “Personal Directory” you will be prompted for a userid and pin. Unfortunately, this is by design and cannot be changed. There is a workaround to escape entering userid and pin which I found after getting several requests from customers. If you are among one of those who is annoyed with this then following is the procedure to get rid of it. You will need Admin rights on Call manager to make these changes.

  1. Create a new phone service for Personal directory named PAB
  2. Use this URL http://server-name-or-ipaddr:8080/ccmpd/​pab​
  3. Add the Parameters “name” “pin” and “userid” with no default value (Case sensitive)
  4. Now go to the phone and Subscribe to “PAB”
  5. In the name field enter Phone MAC address with SEP like SEPAABBCCDD9876
  6. In the pin field enter user pin
  7. In the user id enter user id of that user
  8. Click Subscribe and save
  9. Reset the phone

This will now add a  new service called “PAB” under services so you can go in Service and select “PAB” to go directly into Personal directory and the system will not ask you userid and pin.

You may also add this service to a button on the phone. Just add a Service URL type on your phone from “button template” and then you can access PD from that button.

You may also ask users to subscribe to this service by logging into CCMUSER and then adding this service from Device > Services.

The same procedure applies for FASTDIALS except the following changes:

  1. Name the new Service FastDials
  2. The URL is http://server-name-or-ipaddr:8080/ccmpd/​fd
  3. Add only “pin” and “userid” in Parameters
  4. Subscriber Phone or user to this service

Here are screenshots from my Communicator as how this service will appear:

A customer reported an issue with their 7941 phone. The issue was they plugged in a new 7941 all configured at Call manager and it was showing “Error pass Limit” as follows:

This sort of error normally comes when you have one of the following conditions:

  • Too many unassigned directory numbers in Call manager i.e. not assigned to any phone or any extension mobility profile
  • No Extension assigned to the phone
  • The Busy Trigger and maximum calls on the line are not correct (normally you configure max calls: 4 and busy trigger: 2)

For this particular issue I found no extension was assigned to it so I assigned an unassigned DN and the issue was resolved.

With the missed call logging for shared lines feature, the administrator can configure Cisco Unified Communications Manager Administration, or the phone user can configure Cisco Unified CM User Options, so Cisco Unified Communications Manager logs missed calls in the call history to a specified shared line appearance on a phone.

This will only work if users who are sharing the number are logged in using Extension mobility.

You can configure it here under extension number by going into each phone:

If the box is checked, missed calls will be logged and if it is not checked then missed calls won’t be logged.

I was looking into this customer issue where they upgraded from Call manager 4.x to 7.x and almost all users on 7912 phone lost their speed dials.

I checked the phones and CCMUSER page and found that the dials where there but they are not able to access it.

Created a new Softkey template including “AbbrDial” at “off Hook” mode. Reset the phones and asked them to check.

Customer came back saying they cannot see “AbbrDial” Softkey. All settings in Call manager were fine but for some reason they were not able to see the Abbreviated Dial Softkey.

I checked the firmware for 7912 and it was CP7912080003SCCP070409A.

I decided to upgrade the firmware for 7912 to the latest one CP7912080004SCCP080108A. I loaded the new firmware, restarted TFTP, reset the phones and it all started working fine.

Later I came to know that it’s a kind of a bug that if you upgrade from CCM 4.x to 7.x then your 7912 phones will have issues in AbbrDial Softkey. If you come across this issue, upgrade the firmware and you will be good.

The Cisco Unified IP Phone 7931 includes 24 buttons that can be assigned to lines and call features. A 3-color LED provides call status information for each line.

The line buttons are numbered 24-1 from top to bottom. The numbers do not appear on the phone.

There are two ways how the top four buttons can be programmed.

configure terminal
ephone template 15
button-layout set phone-type [1 | 2]**

ephone 3
ephone-template 15

** Specifies which fixed set of feature buttons appears on a Cisco Unified IP Phone 7931G that uses a template in which this is configured.

•1—Includes two predefined feature buttons: button 24 is Menu and button 23 is Headset.

•2—Includes four predefined feature buttons: button 24 is Menu; button 23 is Headset; button 22 is Directories; and button 21 is Messages

More on 7931 and CME here.

How you can restrict access to corporate directory?

If you remember, corporate directory is accessible globally from a cluster and restricting its access needs some configuration changes. In pre-CUCM 7.x you cannot accommodate it at individual level but in CUCM7.x you have flexibility.

You can run a sql command to access corporate directory information from ‘enduser’ table.

admin:run sql select userid,firstname,lastname,telephonenumber from enduser
userid firstname lastname telephonenumber
====== ========= ======== ===============
hqph1            hqph1
hqph2            hqph2
br1ph1           br1ph1
br1ph2           br1ph2
JTAPI            JTAPI

In Pre-CUCM 7.x build you can disable corporate directory by following these steps:

  • Go to Enterprise parameters and go down in Phone URL parameters and delete the URL. Click save and reset the phones.

But  if you want to restrict few users then you will have to delete the URL from Enterprise parameters and enter manually under each phone the URL of Services (under External Data Locations Information). You may use Bulk Admin tool to speed up the process (Bulk Admin > Phones > Update phones > Query).

In CUCM7.x and later various directories like Missed calls, Received calls etc are now IP phone services as you can see below:

An IP phone service if setup as Enterprise Subscription, it is accessible automatically from every phone in the cluster. There are some services which are ‘enterprise’ enabled and cannot be changed easily. In CUCM 7.x there is a new feature called “Enhanced Service Provisioning”.  It basically allows an administrator to set a parameter which tells a phone to get service configurations either internally (using TFTP config file) or externally (using service URLs).

The behavior of phones is controlled by enterprise parameter ‘Service Provisioning’.

This can also be controlled from Device > Device settings > Common Phone Profile:

The default under common phone profile is to use Service Provisioning which means Message/Directories URL Parameters are not used and Phone services are provisioned using IP phone services. When the Parameter is set to external that would use URLs from Enterprise parameters and Internal is default.

To disable Personal directory across the cluster you may do by un-checking the checkbox from Enable field under Device > Device settings > Phone services. This will disable Personal directory across each Phone. What if we want to do this for few phones? By default phones use internal service provisioning which means Directory URL is ignored. Also, if we use external service provisioning we wont get a separate link for Personal directory. The personal directory has ‘Enterprise Subscription’ flag enabled. So, to provision few phones for Personal directory, you may have to delete and re-create Personal directory service with same parameters but by NOT enabling enterprise subscription. You may then go in each phone and subscribe it to Personal directory. You can also do this from Bulk Admin > Phones > update Phones.

If we want to disable ‘directories’ button for some phones in a cluster then we can do by configuring a separate common phone profile and selecting External URL in there. We then need to delete the ‘URL directories’ to completely disable the button.

Fax machines connected to ATA were not working.

The first thing I checked on the gateway…is fax-relay was being used or fax protocol cisco was configured? Fax-relay is NOT supported by ATA.

This is what I found at the Voice gateway:
voice service voip
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
supplementary-service h450.12
fax protocol cisco

I found the reason why faxes were not working. Fax protocol cisco was used which enabled default fax-relay.

I configured the following:

voice service voip
fax protocol none {or could have configured modem passthrough nse codec g711ulaw}

dial-peer voice 40 voip
description **Outgoing Call to SIP Trunk**
translation-profile outgoing SIP-CALLS-OUT
preference 1
destination-pattern 9.T
voice-class codec 1
voice-class sip dtmf-relay force rtp-nte
session protocol sipv2
session target sip-server
dtmf-relay rtp-nte
fax rate disable <<<<<<
no vad


dial-peer voice 50 voip
description **Incoming Call from SIP Trunk**
translation-profile incoming SIP-CALLS-IN
preference 1
redirect ip2ip
voice-class codec 1
voice-class sip dtmf-relay force rtp-nte
session protocol sipv2
session target sip-server
incoming called-number .%
dtmf-relay rtp-nte
fax rate disable <<<<<<
no vad

Everything started working!

ATA 186 – 2 x voice ports + 1 x RJ-45 10BaseT port

ATA 188 – 2x voice ports +  2 x RJ-45 10/100BaseT port

The Cisco ATA supports two modes of fax services, in which fax signals are transmitted using the G.711 codec. It cannot support fax relay. ATA is accessed by web through http://<ipaddress_of_ata>/dev

•Fax pass-through mode—Receiver-side Called Station Identification (CED) tone detection with automatic G.711A-law or G.711µ-law switching.
•Fax mode—The Cisco ATA is configured as a G.711-only device.

Fax Pass-through Mode: Fax pass-through mode allows for maximum codec flexibility because users may set up a voice call using any voice codec, then renegotiate to a G.711 codec for the fax session. To use fax pass-through mode, first configure the Cisco ATA and supporting Cisco gateways to support the Cisco-proprietary G.711fax upspeed method. Then, disable fax relay on the far-end gateway—either for the entire gateway or for the dial peer engaged in the fax call with the Cisco ATA.

This requires configuration of two parameters at the ATA i.e. AudioMode & ConnectMode.

Audio Mode: The AudioMode parameter is a 32-bit value. The lower 16 bits apply to the Phone 1 port of the Cisco ATA and the upper 16 bits apply to the Phone 2 port of the Cisco ATA.

To configure Phone 1 for Fax pass through:

0xXXXX0015 => xxxx.xxxx.xxxx.xxxx 0000.0000.0001.0101

•Bit 0 = 1—Enables G.711 silence suppression (VAD)
•Bit 2 = 1—Enables Fax CED tone detection and switchover upon detection
•Bit 4 = 1, Bit 5 = 0—DTMF transmission method = out-of-band through negotiation
•Bit 6 = Bit 7 = 0—Hookflash transmission method = disable sending out hookflash

Connect Mode: The ConnectMode parameter is a 32-bit value. The parameter settings apply to both lines of the Cisco ATA. Configure ConnectMode after configuring AudioMode for fax pass-through mode. Cisco Recommends a value of 0x90000400.

0x90000400 => 1001.0000.0000.0000.0000.0100.0000.0000

•Bit 2,7-15 are important for Fax-pass through (made bold above)

•Bit 2 = 0—Uses RTP payload number 126/127 for fax upspeed to G.711m-law/G.711A-law. Set this value to 1 if you want to use RTP payload number 0/8 for fax upspeed.
•Bit 7 = 0—Disables fax pass-through redundancy. Set this bit to 1 to enable redundancy. With redundancy enabled, the Cisco ATA sends each packet twice. Because of bandwidth and transmission time costs, use this option only if network quality is poor and all other gateways used in the network support this feature.
•Bits {12, 11, 10, 9, 8} = {0, 0, 1, 0, 0}—Sets the offset to NSE payload-type number 96 to 4. Setting the offset to 4 results in the Cisco ATA sending an NSE payload-type value of 100 by default. Valid offset values range from 2 to 23 (NSE payload type value of 98 to 119). Set this value to match the value for your Cisco gateways.
Most Cisco MGCP-based gateways, such as Cisco 6608, use NSE payload type 101 by default. Most Cisco H.323/SIP-based gateways use NSE payload type 100 by default.
•Bit 13 = 0—Uses G.711m-law for fax pass-through upspeed. Set this bit to 1 to use G.711A for fax pass-through upspeed.
•Bit 14 = Bit 15 = 0—Enables fax pass-through mode using the Cisco proprietary method (recommended). Set both of these bits to 1 to disable fax pass-through mode.

To configure Fax pass through on the IOS gateway, follow these steps:

voice service voip
modem passthrough nse codec g711ulaw
fax rate disable  {this disables the default fax relay}



voice service voip
modem passthrough nse codec g711alaw

dial-peer voice 500 voip
incoming called-number .
destination-pattern 550
session target ipv4:
fax rate disable
codec g729r8


voice service voip
fax protocol pass-through g711ulaw

dial-peer voice 2000 voip
fax rate disable
fax protocol pass-through g711alaw

mgcp call-agent service-type mgcp version 0.1
mgcp modem passthrough voip mode nse
mgcp package-capability rtp-package
mgcp fax t38 inhibit  {disable fax relay}


Note: If you need to configure fax pass-through to work with Cisco CallManager (CCM), you must use the modem passthrough nse command. The fax protocol pass-through command does not work with CCM, which relies on NSE information.

Sample configuration for a FAX machine connected to FXS port.

Fax connected to FXS Port:

voice-port 0/1/0
cptone GB
description ### Admin Fax 0209001 ###

dial-peer voice 50 pots
description ### Admin Fax 209001 ###
destination-pattern 9001
progress_ind alert enable 8
progress_ind progress enable 8
progress_ind connect enable 8
fax rate disable
port 0/1/0

I was looking into this issue for a customer where a Conference phone, Cisco 7936, was not registering to Call manager.

When I looked the MAC address of it in Call manager, it was in the status of ‘unregistered’ and there was an IP address assigned to it as well.

This suggests that it somehow reached to Call manager but then got unregistered OR this phone was registered to Call manager some time in back.

There were some other 7936 phones as well which were all registered fine.

I asked them to do a factory reset of the 7936 phone which they did but no joy. After that I asked them to disable DHCP and manually assign TFTP address but even that didn’t resolve the issue. Phone was stuck in a loop ‘TFTP server not found’.

Surprising bit was that both Call manager and Phone could ping each other that means there was no network issue. I asked them to hook another 7936 to the same port to see if that makes any difference. The other 7936 phone got registered fine. This proved the port was also fine.

I decided to jump onto the access switch where this phone is connected and see what messages it is sending. That proved a nightmare as we only had information regarding their main Inbound/outbound gateway. I had to track it down all the way from that gateway to distribution switches to that one particular access switch which was showing this MAC address connected to its port. I ran commands like debug tftp events and debug tftp packet but I didn’t see any response from the phone.

Frustrated I was, decided to google the issue. I found out that it’s a bug which has been hitting this phone.

Bug id# CSCsg95361

7936 phones fail to upgrade to a different load when upgrade is attempted immediately after re-registration to CCM. This situation happens when the phones unregister first due to callmanager getting restarted or upgraded.

The 7936 phones running either cmterm_7936.3-3-1-0.bin or cmterm_7936.3-3-2-0.bin loads can fail to upgrade to new load if the phones first unregister from CCM, followed by re-registration and firmware upgrade attempt.

Change the default load on the CCM to cmterm_7936.3-3-3-0.bin or newer and upgrade the 7936 phones without stopping CCM service first. If the phones experience this problem due to proactive workaround not performed, power cycling the phone recovers them in most cases.

In my case, nothing resolved the issue so I asked the customer to raise a RMA request with Cisco.

Also read this Field notice:

I don’t remember how many times I came across customers complaining that their phones are either x minutes ahead or x minutes behind the normal time.

This is what I do whenever I come across time issues. This is for applicance based Call manager (5.x, 6.x, 7.x, 8.x)

  • Go to OS Admin > Settings > NTP server
  • Is there any NTP Server? If there is an IP address mentioned then try to Ping that IP from OS Admin > Services > Ping
  • Most of the time customers add the CUCM IP address as NTP address. This is not correct. Under OS Admin > NTP server – it should point to a NTP server within the network.
  • Find the gateway which is accessible from CUCM
  • Go to that Gateway and setup NTP as follows:
Router# Conf t
Router# clock timezone GMT 0
Router# clock summer-time BST recurring last Sun Mar 2:00 last Sun Oct 2:00
Router# ntp server (or use

There are several NTP servers where you can point your gateway.

List :
Do ping the IP address from gateway to make sure it is reachable.

TIP: Some low-end routers, such as the 1600 and 1700 series, don’t support the full NTP protocol. They support only a stripped-down version called SNTP. SNTP is a client-only version of NTP and can be configured with the sntp server command.

Also run the following commands to check Synchronization:

Sh ntp status
sh ntp association

Router# show ntp status

Clock is synchronized, stratum 4, reference is

nominal freq is 250.0000 Hz, actual freq is 249.9990 Hz, precision is 2**19
reference time is AFE2525E.70597B34 (00:10:22.438 PDT Mon Jul 5 1993)
clock offset is 7.33 msec, root delay is 133.36 msec
root dispersion is 126.28 msec, peer dispersion is 5.98 msec

Router#show ntp associations

address            ref clock         st      when    poll   reach   delay   offset    disp
~       5       29      1024   377     4.2     -8.59     1.6
+~     5       69      128    377     4.1     3.48      2.3
*~     2       32      128    377     7.9     11.18     3.6
* master (synced), # master (unsynced), + selected, – candidate, ~ configured

The poll field represents the polling interval (in seconds) between NTP poll packets. As the NTP server and client are better synced and there aren’t dropped packets, this number increases to a maximum of 1024. The offset field is the calculated offset (in milliseconds) between the client and server time. The client slows down or speeds up its clock to match the server’s time value. The offset decreases toward zero over time. It probably will never reach zero since the packet delay between the client and server is never exactly the same, so the client NTP can’t ever exactly match its clock with the server’s. Additional details about the output field are explained in the Basic System Management Commands document.

If there’s an asterisk (*) next to a configured peer, then you are synced to this peer and using them as the master clock. As long as one peer is the master then everything is fine. However, the key to knowing that NTP is working properly is looking at the value in the reach field.

A pound sign (#) displayed next to a configured peer in the show ntp associations command output indicates that the router isn’t syncing with the peer even though NTP request and response packets are being exchanged. In this case, check the output of the show ntp associations detail command or the NTP debugs to see why the clocks aren’t syncing. You can use the show ntp associations detail  and show ntp status  commands to obtain additional information regarding the state of NTP.

I remember there was this one customer where I had to leave for several hours before the gateway sycnhed with external NTP server.

ACL is also important if you want to restrict access to your Router NTP clock. If you don’t put an ACL then your router is also acting as a NTP server for any external source. Although its not a major issue but a sophisticated attacker may access your gateway.

This is how you can configure an ACL:

To provide time services only to internal systems. Lets say internal network is 192.168.1.x.

1. Configure an ACL to restrict access to internal systems:

2. Configure NTP to use the ACL with the ntp access-group serve-only command:

RouterOne#config terminal
Enter configuration commands, one per line.  End with CNTL/Z.

Router#ntp server

Router#access-list 21 permit
Router#access-list 21 deny any
Router#ntp access-group serve-only 21

  • Once the gateway is synched you can check the time at gateway by doing show clock
  • Add the loopback IP address of this gateway under OS Admin > NTP server of CUCM
  • The CUCM will show – The NTP server is accessible
  • Go to CUCM Admin > System > Phone NTP Reference > Enter the Loopback IP of gateway
  • Go to CUCM Admin > System > Date/Time Group and add NTP reference
  • The Phones will Synch after sometime
  • If you want to do it immediately then restart the device or reset the D/T group (this will reset all devices so make sure customer is aware of it)