| How to Disable Corporate Directory in CUCM 7.x |
|
The request to disable or restrict access to the corporate directory is actually quite reasonable and not uncommon. One common scenario is that the customer wants to restrict access to an internal/corporate directory from a common area phone. This request can be simply hide the Corporate Directory, hide the Personal Directory, or disable the button entirely. In pre-CUCM7x systems you can't accomodate all of these requests but in CUCM7x you have much more flexibility. We'll talk about the general process flow first and then discuss the pre- and post-CUCM7x options.
What is the corporate directory? The Corporate Directory is a Cisco feature that allows users to search a repository of names and phone numbers. By default it is an application that runs on the CUCM cluster which uses data stored in the "enduser" table. You can check out the data in your "enduser" table by issuing the following query via AXL/SOAP or at the command shell: admin:run sql select firstname,lastname,telephonenumber from enduser Data displayed in the default Corporate Directory application uses the "enduser" database table even when you have DirSync enabled. Data is replicated from your corporate LDAP to the "enduser" table. How does the phone access the corporate directory? When a user selects the directories button on the Cisco IP phone it is actually using a URL provided by the CUCM configuration to pull an XML document from a designated location. By default this is an application hosted on one of the CUCM cluster nodes. However, this is not required. You can write your own Corporate Directory application. As long as the application can provide a properly formatted XML document to the IP phone, you are in business. How does one disable the corporate directory in pre-CUCM7x versions? In a pre-CUCM7x build, if you wanted to disable the corporate directory for all phones, you simply go to System>Enterprise Parameters and scroll down to the Phone URL Parameters section and delete the URL you find in the URL Directories parameter. Click on save, reset the phones, and Corporate Directory is no more. This will also remove the Personal Directory option provided in CUCM 5x and later releases. In most cases, you don't want to disable the Directories URL for all phones but only specific groups of phones. In this case, you have two options. Option 1: Delete the Directory URL setting in Enterprise Parameters and then specify the valid Directory URL at the device level for phones you want to have it enabled on. The default is "disabled" so, if a phone has no URL defined in the device config, it uses the default. Option 2: With the Enterprise Parameters set to use the valid URL, you can put a bogus setting on the phone configuration page for phones you want to restrict. I have looked through some forum threads and some people like to actually put a bogus URL like: http://1.1.1.1/bogus.html or http://nodirectory or something equally trivial. This method doesn't work so well for me. I mean, it achieves the same end goal but there is a side effect. The phone will actually try to resolve and connect to the URL. So, what you see on the phone is something like this:
Notice the erroneous request and resulting timeout. This is somewhat annoying to me. You can avoid this, at least in CUCM 6x and relevant phone firmware. If you specify a URL like "disable" or "heythere" then you can actually avoid the "Host Not Found" error. Why? Well, my guess (I didn't write the firmware) is that the phone recognizes an invalid URL and just ignores it without kicking out an error message to the screen. So, what about CUCM 7x? In CUCM 7x, I found that quite a few things have changed. I messed around in the lab a little to understand the "new" behavior and I learned quite a bit. First, in CUCM 7x the various directories like Missed Calls, Received Calls, Placed Calls, etc. are now IP Phone Services. You can see them by going to Device>Device Settings>Phone Services:
Would you look at that! ...What am I looking at? Basically, think of each menu item you would normally see in the "Directories" menu as a service. You can now configure them individually. One may think that they can assign/unassign directory features like they would say Extension Mobility. It isn't that straight forward, at least by default. You will notice that there is a parameter in the tabular view called "Enterprise Subscription". This is a key attribute. When an IP Phone Service is setup as an Enterprise Subscription, this means that it is automatically assigned to all phones. In otherwords you can't "unassign" the service. At least not in one step. Also, you can only toggle the Enterprise Subscription parameter when you create an IP Phone Service. So, services like Corporate Directory (which are "configured" on system build) are already enabled as an Enterprise Subscription. We'll come back to this in a moment. There is another, related feature that we should understand a little before playing around with the new toys. I believe the feature is 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 configuration controlling how phones behave is controlled at a system-wide level with a new Enterprise Parameter called "Service Provisioning". This parameter can also be controlled at a device level via the "Common Phone Profile" setting on an IP phone. The default behavior is to use Internal Service Provisioning which means:
When this parameter is set to use External Service Provisioning, the device will use the URL parameters as they would in pre-CUCM7x builds. So, Internal is the new method and External is the old method. You can also configure the "Service Provisioning" parameter to do both. I haven't played with that much yet. So, lets say you wanted to disable the Personal Directory feature from all phones in the cluster, how would you proceed? This is easy, go to Device>Device Settings>Phone Services. Click on Personal Directory and toggle the "Enable" option off. Click on Save and then Update Subscriptions. Of course, you need to soft restart IP phones for it to take effect. Once you are done, no phone in the cluster will have access to the Personal Directory. What if you wanted to disable it on only a few phones? This is slightly tougher. By default, phones use Internal Service Provisioning. Which means that the Directory URL is ignored. Further, when using the Directory URL (i.e. "External Service Provisioning") you don't have the option to just filter out the Personal Directory (unless, of course, you are custom building the application - different topic). Further, the Personal Directory has the Enterprise Subscription flag enabled and you can't disable it. This isn't a huge deal, simply do the following:
This method applies to all of the directory Phone Services. So, if you wanted to disable the Corporate Directory you can do this using the same methodology. Now, one of the problems I have heard people complain about is that they want to disable the Directories button completely. I saw this on a Netpro thread recently and when I mocked the scenario up in my lab I experienced the issue the user was having. The solution is found in the understanding of how the "Service Provisioning" parameter works with the Phone Services. Let's say you have 2000 phones and you want to disable the Directories button a 20 of them. There are a few approaches but I like the following best.
Notice that we are specifying External Service Provisioning for this common profile. Now, proceed to assign this profile to an IP phone.
So, what have we accomplished. We basically have told the target phone to not use the Enterprise Subscription Phone Services and to use the Messages and Directory URLs instead. Does this accomplish our goal? Assuming you have the default configuration applied for the Enterprise Parameters URL settings then you have fallen short of your goal. Since we have told the phone to use the External Service URLs it will behave like a pre-CUCM7x phone. Which means, the device settings URL for Directory must be considered. By default, this field is blank. Which does not mean "disabled", it simply means use the Enterprise Parameters. Now, the Enterprise Parameters will still have the xmldirectory.jsp URL configured by default. So, when you go to the phone with the "External URL Phone Profile" configured and hit the directories button, you still pull down the Directories menu. To "fix" this, go to the System>Enterprise Parameters and delete the URL Directories parameter. Restart the IP phone and now when you hit the Directories button you will see a message "No Services Available" at the bottom of the phone screen and no menu is displayed. Now, you have successfully disabled the Directories button. Missed Calls/Received Calls/Placed Calls (Added 8/31/2010) Some readers noted that when they enabled a custom corporate directory Missed Calls, Received Calls, and Placed Calls would no longer be presented as menu options. This is by design. The developer will need to modify their back-end application to accommodate presentation of these directory URLs:
A snippet of Java code from one of my corporate directory applications:
These URLs essentially tell the phone to load a local "application". IOW, you won't see the phone try to resolve these URLs to a network entity. The directories are still stored on the phone itself.
Comments (59)
![]() written by Dan Williams, November 19, 2009
It is everything I was hoping to learn and more! Thanks for taking the time to share this with all of us in the field!
Dan written by Anas, January 25, 2010
Hi, I want to set contact list in Cisco IP phone can you help me to do this
Thanks Anas written by Georges Mansour, July 07, 2010
Hi guys,
Does any one have the url link for missed calls and placed calls and received calls like the url for the corporate directory? Regards, written by Greg Given, August 17, 2010
I have setup an external xml file and it works as expected for directory lookups. however when sepcifying external url my missed calls and placed calls go away. how can I confugre this so they stay and we have access to an external url for directories?
written by Chris Kaleth, January 11, 2011
Bill...great post! We are getting around to UCM 8.x and this helped alot! I'm still stumped on how to get the Placed/Misses/Received calls to display when I have the corporate directory configured as a external URL. Where does the developer come into play and where exactly are they developing?
When I changed the common profile config to "external" I lost Placed/Missed/Received. When I changed it to "both" I had 2 corporate directories and the placed/missed/received. Also, do I need to add the external URL in the Enterprise Services or just the Corporate Directory Phone service or both? written by Bo , March 28, 2011
Hi Bill,
Great article! What if I want to add a second corporate directory? What will happen to a phone that subscribes to both corporate directories? Thank you, Bo written by Jim, April 01, 2011
Anyone knows how to configure custom external directories for CUCM. I need to be able to point different phones to different directories, and have these directories be hardcoded to search by department, and let the user enter first name and last name as search criteria. I know how to change the directory url for the phone, but I need help with the actual building of the script. The main difference for each search is the department, which will equal the tenant company name. Any help would be appreciated guys.
written by Norberto, April 11, 2011
Hello William:
I need to get missed calls, by executing an url o an ws. I saw one comment where you say that is an url "Application:Cisco/MissedCalls", but ¿how can invoke this? best regards. written by Paul, April 13, 2011
Where I am, even executives have cubicles so anyone can see their calls if they poke around their phone directories after hours. I can disable the button for a single user at a time by using the Common Phone Profile> Services Provisioning> External URL method, then delete the Enterprise Parameters> URL Directories url. Great.
BUT, this also forces the voicemail button to use the Enterprise Parameters> URL Messages url. I can not find ANYWHERE what that url should be for CUCM 7.1 with CUE 7.0. The other option (as I see it) is to remove all the other directories as enterprise subscriptions, rebuild them as non enterprise subscriptions, and then subscribe all phones BUT the executives to them. Any insight? Thanks! Paul written by Norberto, April 13, 2011
Hi Bill, thanks in advance.
I can't understant how invoke this url, since i guess it's a relative one (Application:Cisco/MissedCalls). I'm invoking many services, for example: https://:/realtimeservice/services/RisPort https://:/axl/ But I can't find any request to get missed calls from specified device. I don't know in what context I can use this url (Application:Cisco/MissedCalls) since I need do it from an application written in c#. I was trying to use the server url https://:/Cisco/MissedCalls?device=xxxxxx or the phone url http://phone_ip/Cisco/MissedCalls May be, I am misunderstanding the concept. Please help me Best regards. written by Norberto, April 14, 2011
Hi Bill, I have another question.
Please, tell me if there is a way to trap external inbound calls, lookup the number in a local directory and display the message with last, first name in the target phone. thx in advance regards. ps: is this the right blog to post? written by james, May 09, 2011
Hi Bill, thanks for the detail step outlined to remove directory services, after following the steps the Message button also has no Service Configured. What the url for the message. I think it needed since the Service provision is now set to External.
Thanks James written by Baten, May 13, 2011
Hi Bill,
I am wondering if there is a way to hide specific user's extension number in corporate directory or the the user itself. For example the CFO does not want his extension to be diplayed in the corporae directory. The user should be able to authenticate against ad . CUCM version is 8.03x. Thanks in advance. Baten written by Michele, May 18, 2011
Hi Bill!
Very interesting and useful post! Just a question, is the corporate directory usable also for the external calls? I mean having external calls informations ( IE first name last name number ) displayed on the phone by the mean of the corporate directory in MissedReceivedPlaced calls? Thanks. written by hythim, May 20, 2011
If we use the "both" option in service provisioning, and delete the URL Directories
The mssg button i think will still work cause of using internal service provisioning but will the Directories button will still work cause the phone still see the internal written by imagimatrix, July 14, 2011
hi,
thanks about your blog, it's helps me to understand more about CUCM. I want to disable Directory Button, I tried to do all steps on a virtual CUCM 7.1 with a CIPC, but still appear it. do you think this is becouse I using a virtual machine or a CIPC? Thanks. written by Norberto, September 09, 2011
Hi Bill, I get the script "number to name" from ciscoxmlservices.com and it works. The script recover from an URL the name of the caller if exists.
Now, my problem is the screen area in which the caller information is displayed, i mean, its too small and its not enoght to display first and last caller names even other information. Do you know a way to increase o configure the screen phone for caller information? best regards Norberto written by John, October 17, 2011
Bill,
Great article with great comments and answers. I just wanted to share my experience as it seems others have run into the same issues I was experiencing. My environment is CUCM 7.1.5 with an external LDAP server used for the Corporate Directory lookup function. I went from CallManager 4.2 to CUCM 7.1.5 and noticed that the Corporate Directory lookup function was not working as expected. In CallManager 4.x, the Corporate Directory Lookup function was invoked using URLs (at the device level for subsets of the phones and at the enterprise parameter level for all other phones). In CUCM 7.1.5, the Services Provisioning parameter at the device level (i.e. - as specified in the Common Phone Profile Configuration - Phone Personalization Information section - Services Provisioning - "default") and at the enterprise parameter level (under the Enterprise Parameters Configuration section - "internal") both use internal services provisioning. So, from the Corporate Directory Lookup function standpoint, this means that CUCM will look at the corporate directory built on the CUCM servers (i.e. - the end user database). The directory menu displayed when pressing the directories button on the phone shows the following: 1. Missed Calls 2. Received Calls 3. Placed Calls 4. Corporate Directory I found that this (what is being displayed) is being controlled via the Phone Services under (Device - Device Settings - Phone Services). Those services that have the Enterprise Subscription flag = true and the Service Type = Directories under the service itself, will be displayed when pressing the Directories button. To hide any of these services, uncheck the "Enable" box. The above-mentioned description covers the scenario when service provisioning is being performed “internally”. When service provisioning is done “externally” (i.e. – by specifying “external” in the Common Phone Profile for Services Provisioning), I saw one option under the directory menu display and that was for the Corporate Directory, so the directory menu displayed when pressing the directories button on the phone shows the following: 1.Corporate Directory This provided the correct (i.e. – accessing the LDAP server by using the URLs) Corporate Directory Lookup Function, but obviously, I was missing the other 3 directory menu entries (i.e. – Missied Call, Received Calls, and Placed Calls). Next I tried, specifying “both” in the Common Phone Profile at the device level. This resulted in the directory menu displaying the following: 1. Received Calls 2. Placed Calls 3. Corporate Directory 4. Corporate Directory Option 3 actually provides an “internal” search of the Corporate Directory – using the end user database on the CUCM servers Option 4 actually provides an “external” search of the Corporate Directory – using the LDAP server via the URLs. So now I had to get rid of option 3 and get back the original option 1 – Missed Calls. To accomplish this I unchecked the “Enable” box in the Service Information section of the Corporate Directory Phone service. So now I have what I wanted. So when the user presses the Directory Button, the following is displayed: 1. Missed Calls 2. Received Calls 3. Placed Calls 4. Corporate Directory And the Corporate Directory Lookup Function is using the “external” LDAP server. In summary, what I had to do to accomplish this is: 1.Change the “Services Provisioning” in the Phone Personalization Information section of the Common Phone Profile Configuration from “default” to “both” – Note that the “Services Provisioning” parameter in the Enterprise Parameters Configuration section (under Systems – Enterprise Parameters) is not modified and still has the value of “internal” 2.Uncheck the “Enable” box for both the Corporate Directory and the Personal Directory (under Device – Device Settings – Phone Services”) to hide them from being displayed when the user presses the Directories button – note that it is hiding the “internal” Corporate Directory option and is displaying the “external” Corporate Directory option. 3.Make sure that the “Service Type” for Missed Calls is “Directories” and not “Standard IP Phone Service” I hope this helps others Thanks, John written by ehsan, October 24, 2011
hi..
i have cucm 8.5.....i have problem,and i need help... when i want use personal directory i have '' host not found '' error ... tanx for help me . written by Sandy, November 17, 2011
Hi Bill,
Great article, I was trying to achieve the same using the below method. Let me know if I am missing something. I am trying to remove the capability of viewing numbers via the Corporate directory feature for some phones. So I created a new Phone service named it as Corporate, gave the same default service URL path as that of Corporate Directory (Corporate Directory: "Application:Cisco/CorporateDirectory") and did not select the Enterprise subscription option. Then on the phones where I don't want the Corporate directory feature, I selected "related links-Subscribe/Unsubscribe" option and from there I wanted to select the new Corporate phone service that I created. However I could not find this new service listed, only the existing default ones were there. What could be wrong? written by Dave, February 13, 2012
Under directories, you can clear the missed/received/placed calls by simply pressing the CLEAR softkey. Does anyone know how to remove this option from the end user?
written by Baktha Muralidharan, March 10, 2012
Thanks for the great blog!. Really cleared up this whole area of service provisioning for me!
Have one last question/doubt however, and would appreciate if you can help with it- - I configured a common phone profile with BOTH - applied the profile to the phone - removed the directories URL from enterprise parameters - reset the phone since I have the services provisioning set to BOTH, shouldn't the phone now use the internal provisioning (namely, enterprise subscription to Application:Cisco/CorporateDirectory)? I am finding that, if I delete the directories URL in the enterprise parameters page, corporate directory menu item goes away from the directories page on the phone. [I do see Missed Calls, Received Calls, Placed Calls, and Personal Directory] Thanks in advance, /Baktha written by Laurentiu, March 22, 2012
hi, i want to disable corporate directory feature for some of the phones in my network. i found this post verry verry helpfull. i understood that i have to :
- Take note of all of the parameters for the Corporate Directory service - Delete the Corporate Directory service - Add a new server called Corporate Directory and add in all of the parameters except the Enterprise Subscription flag, make sure this is turned off - Now, update the Subscriptions on an individual phone so they are subscribed to the Corporate Directory service you just created but i have a question though, and because i do not have a test environment, a lab, I want to be sure first before making any mistakes : if I delete the Corporate directory which has the Enterprise Subscription flag on, what will happen to the phones that I do not update the subscription on ? theese would be the ones I want to have access to Corporate Directory feature and I don't want to affect them. thank's a lot, appreciate if you can answer my question. Laurentiu written by Subbin, April 02, 2012
Hi Bill,
This article helped me to disable directory from couple of phones. But at the same time the VoiceMail (Messages) Button lost it link to Unity too. By providing an external link under the device in Messages, helps to reach the voice mail box of the user, but only on 2 clicks. Is there a way to resolve this. Such that the voicemail (Messages) button is not affected, or a way to restore the standard settings for the Messages (Voicemail) button of the phone. Thanks a lot. Subbin written by carlos segura, April 03, 2012
i did all the steps I have deleted the url on the enterprise parameters and this phone still getting that info I tested with a 7940 and it works just fine but i having problems with this one.
I want to disable all that info on this 7937 but i'm not able to do it..please help written by Michael Sears, April 08, 2012
Great Article. I have a greater understanding of how things work. I do have a problem that I'm struggling with. I'm trying to meet the following requirements for a customer. Hope you can make a few suggestions.
Staff is going out of town and asks technical support to disable the directories button for privacy purpose. Directory button removed from SB Phone 1 when you select directories button needs to show that there are “No Services Configured”. written by Jeff McHugh, April 16, 2012
Anyone know how to get a second clusters directory onto a phone? We have 2 clusters and I figured I could subscribe the 2nd clusters directory as a service on the phone, but no luck. Anyone ever do this? Seems like it should be easy, but ...
written by Jeff McHugh, April 16, 2012
Thanks Bill, I was seeing what you mentioned in your first paragraph, your fix in the 2nd paragraph worked, thanks a million!
For my edification, where did you find that URL? Also, would it be possible to put this 2nd clusters directory under the DIRECTORIES button on the phone? written by Jeff McHugh, April 16, 2012
Thanks Bill, do you have contact info for someone @ Chesapeake to reach out to regarding the app?
written by Jeff McHugh, April 16, 2012
Thanks Bill, do you have contact info for someone I can reach out to regarding the app?
written by Will, May 08, 2012
Bill,
We recently ran into something odd while trying to add custom items on the directory. We set our common profile to "both" and added a custom Personal Directory, White Pages, and Corporate Directory. On 69xx phones and the IPCOMM, duplicate items were replaced with our custom ones. On 79xx phones, the items were added so that we had two Personal Directory and Corporate Directory entries. Not sure why the phones act differently, but should I assume the best workaround would be to either: a) unsubscribe the enterprise services that we are replacing (and create dupes w/o the enterprise subscription for any onesy-twosy phones that won't use the custom script) b) or set the common profile for external and add the missed calls, placed calls, received calls to our directory script? Thanks, Will written by NoName, May 11, 2012
I have played with the Directories features on the CUCM, following people's recommendations here. But to be honest, the whole design is lame. I am sorry Cisco. For a simple directory feature, it cannot be that complicated. The other thing I found you will get different results with different phone models and different firmwares. Very frustrating. Cannot be worse.
Write comment
|












Recently I fielded a request from a customer to explain how they could restrict access to the Corporate Directory and Personal Directory from an IP phone. I checked into it and found that CUCM 7.x introduces a few changes that actually allows administrators to properly address requests like this one.






I have a custom Script that was working and after the upgrade no longer worked. I just disabled the Coporate Directory by unchecking the enable box and reset my phones to get it to work.
I do not have the Service Provisioning External URL Option in the 7.1.2 version. Atleast I ahve not found it.
Thanks fo the Article.....