Thursday, March 14, 2013

Customizing Outlook Address book template/IP Phone field


By default, the IP phone filed is not enabled in outlook address book. You can add IP phone field by editing details template on Exchange server.

Please see this article -Step by step 0n Exchange 2007
https://www.simple-talk.com/sysadmin/exchange/customizing-the-outlook-address-book/


Please see the same article here from the above link .
------------------------------------------------------
To start the Details Template Editor in Exchange 2007 RTM:
  • On the taskbar, click Start, and then click Run.
  • Type “mmc” in the Open field.
  • On the Console menu bar, click File, and then click Add/Remove Snap-in.
  • In Add/Remove Snap-in, on the Standalone tab, click Add.
  • In Add Standalone Snap-in, select Details Templates Editor from the list of available stand-alone snap-ins, and then click Add.
  • Click Close to close the Available Snap-ins dialog box, and then click OK on the Add/Remove Snap-in dialog box.
To start the Details Template Editor in Exchange 2007 SP1 or SP2 or Exchange 2010 either use the method above, or:
  • Launch the Exchange Management Console
  • Select Toolbox in the console tree
  • Double-click Details Template Editor in the results pane

Figure – Exchange Details Template Editor
Note: In order to use the Details Template Editor you need to be delegated the Exchange Organization Administrator role.
In my case I needed to edit the English User template – to open the template for editing double-click it and the template editor window is shown.

Figure – Editing the English User template
The template editor is divided into three panes: the toolbox pane on the left, the designer pane in the centre, and the properties pane on the right.  New fields can be added to the template by selecting the appropriate element type in the toolbox pane, placing the element in the designer pane, and linking it to an object attribute in the properties pane.  The properties pane can also be used for fine-grained control over the size and position of elements as well as tab order and text size.
Note: The template editor does not include any undo functionality – you cannot undo any changes made in the editor, but the template can be reverted back to default settings.  Templates are restored by right-clicking the template to be restored and selecting “Restore”.
The object attributes which can be displayed on a template are limited to those provided by Microsoft.  While it is technically possible to extend the set of attributes by modifying the Active Directory schema, doing so is not supported by Microsoft.  If additional attributes which are not in the standard set are required the supported method of displaying the data is to use one of the fifteen Exchange extension attributes.
In my case I wanted to use the Active Directory attribute IpPhone, which had already been populated with the IP telephone numbers for our staff.  As this attribute is not one included in the standard set I had to copy the data to another attribute which could be used.  To do this I copied the data from the IpPhone attribute on each user record in AD to the Exchange extension attribute extensionAttribute1.  The easiest way to do this in the Exchange Management Shell is with a short script.
This script will copy the value of the IpPhone attribute to the Exchange extensionAttribute1 attribute for all enabled user objects:
# Script to copy the IpPhone attribute the extensionAttribute1 attribute
# Written by Ben Lye - 07 December 2009

# Find the users in AD using an ADSI search method
$searcher = new-object DirectoryServices.DirectorySearcher([ADSI]"")

# Filter for enabled user accounts with a value in the IpPhone attribute $searcher.filter = "(&(IpPhone=*)(objectCategory=person)(!(useraccountcontrol:1.2.840.113556.1.4.803:=2)))"

# Return the sorted results
$objects = $searcher.findall() | Sort-Object -Property cn

# Loop through all the objects that the search returned
ForEach ($object in $objects) {

       # Store some attribute values into variables
       $ipphone = $object.properties.ipphone
       $extensionattribute1 = $object.properties.extensionattribute1
       $dn = $object.properties.distinguishedname
       $adspath = $object.properties.adspath

       # If IpPhone is not equal to extensionAttribute1 then process this object 
       If ($ipphone -ne $extensionattribute1) {
              # Get the ADSI object
              $adsiobject = [ADSI]"$adspath"

              # Set the attribute
              $adsiobject.extensionattribute1 = $ipphone

              # Commit the changes
              $adsiobject.SetInfo()

              # Output what just changed
              Write-Host $dn ":" $extensionAttribute1 "-->" $IpPhone
       }
}
Once the data is in an attribute which can be exposed via the details templates, then modifying the templates is relatively easy.  An existing element can be re-labelled and linked to the new data, or a new element can be added.  When modifying or adding elements, you must match the element type to the AD field type – single-valued elements (checkbox or edit box) must be used for single-valued AD attributes (such as primary telephone number fields), and multi-valued attributes (listbox, multivalued dropdown and multivalued listbox) should be used for multi-valued AD attributes (such as ‘other’ telephone number fields).  Mismatching single and multi-valued elements and AD attributes will result in data not displaying.
I decided to replace “Assistant” on the “General” tab of the user details with the new IP phone number.  To complete my changes I opened the English user details template, changed the label text from “Assistant” to “IP phone”, and changed the AttributeName property of the element from “ms-Exch-Assistant-Name” to “ms-Exch-Extension-Attribute-1”.

Figure – Editing the elements
After saving the change to the template the changes are immediately available to Outlook clients which are not in cached-mode.  Cached-mode clients will need to wait for the offline address book to be updated and a full download of the offline address book to occur (which by default in Outlook 2007 is only attempted once in a 13-hour period).  The server update of the offline address book can be forced to run by running Get-OfflineAddressBook | Update-OfflineAddressBook and Get-ClientAccessServer | Update-FileDistributionService -Type OAB in the Exchange Management Shell.
Once the server-side update has run and the client has downloaded the new templates the changes will be visible in the address book.

Figure – The new details template in Outlook
Editing the details templates is relatively easy, but like all things Exchange careful planning will make implementing the changes much easier.  When planning for template changes it’s important to know what type of data you intend to add to the templates, and understand that while not all data in AD can be exposed directly to the Outlook Address Book there are workarounds available.
 ------------------------------------------------
Please see the article on Exchange 2010 for modifying details template:

http://technet.microsoft.com/en-us/library/bb124525.aspx

Source from Ben Lye article https://www.simple-talk.com/sysadmin/exchange/customizing-the-outlook-address-book/

please use it based on your knowledge. This site and I are not responsible for any of your actions and results.

Have a nice day!



No comments:

Post a Comment