{"id":1142,"date":"2008-08-07T22:32:24","date_gmt":"2008-08-07T22:32:24","guid":{"rendered":"http:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm"},"modified":"2009-09-17T15:20:31","modified_gmt":"2009-09-17T15:20:31","slug":"customising-a-cisco-79xx-ip-phone-directory-services","status":"publish","type":"post","link":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm","title":{"rendered":"Customising a Cisco 79xx IP Phone: directory services"},"content":{"rendered":"<p>I&#8217;m still working on customising the <a mce_href=\"https:\/\/www.markwilson.co.uk\/blog\/2008\/07\/configuring-a-cisco-ip-phone-for-voip-using-sip.htm\" href=\"https:\/\/www.markwilson.co.uk\/blog\/2008\/07\/configuring-a-cisco-ip-phone-for-voip-using-sip.htm\">the Cisco 7940 I use with SIP firmware for VoIP calls<\/a> and one of the items that&#8217;s now working well is the directory services functionality.<\/p>\n<p>At the most basic level, the <code>directory_url<\/code> directive may be set in one of the SIP configuration files (either SIPDefault.cnf or SIP<i>macaddress<\/i>.cnf), for example:<\/p>\n<p><code>directory_url: \u00e2\u20ac\u009dhttp:\/\/<i>webserver<\/i>\/directory.xml\u00e2\u20ac\u009d<\/code><\/p>\n<p>The contents of the directory.xml file are actually quite simple:<\/p>\n<p><code>&lt;CiscoIPPhoneDirectory&gt;<br \/>&nbsp;&nbsp;&lt;Title&gt;IP Telephony Directory&lt;\/Title&gt;<br \/>&nbsp;&nbsp;&lt;Prompt&gt;People reachable via VoIP&lt;\/Prompt&gt;<br \/>&nbsp;&nbsp;&lt;DirectoryEntry&gt;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Name&gt;Bob&lt;\/Name&gt;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Telephone&gt;1234&lt;\/Telephone&gt;<br \/>&nbsp;&nbsp;&lt;\/DirectoryEntry&gt;<br \/>&nbsp;&nbsp;&lt;DirectoryEntry&gt;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Name&gt;Joe&lt;\/Name&gt;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Telephone&gt;1357&lt;\/Telephone&gt;<br \/>&nbsp;&nbsp;&lt;\/DirectoryEntry&gt;<br \/>&nbsp;&nbsp;&lt;DirectoryEntry&gt;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Name&gt;Operator&lt;\/Name&gt;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Telephone&gt;0&lt;\/Telephone&gt;<br \/>&nbsp;&nbsp;&lt;\/DirectoryEntry&gt;<br \/>&lt;\/CiscoIPPhoneDirectory&gt;<\/code><\/p>\n<p>The trouble with this is that it&#8217;s just a static file.  If I have a large directory, then I need to keep it up-to-date.  That&#8217;s where a directory service comes into play.  The <a mce_href=\"http:\/\/web.csma.biz\/apps\/xml_xmldir.php\" href=\"http:\/\/web.csma.biz\/apps\/xml_xmldir.php\">Open 79xx XML Directory<\/a> looks useful but it&#8217;s another application to install and manage on my infrastructure.  I already have a directory (Microsoft Active Directory), so I thought it would be great if a piece of code could query the AD and output the file in a format that the 7940 understands.<\/p>\n<p>Luckily I found such a piece of code, courtesy of <a mce_href=\"http:\/\/lists.digium.com\/pipermail\/asterisk-users\/2004-March\/031604.html\" href=\"http:\/\/lists.digium.com\/pipermail\/asterisk-users\/2004-March\/031604.html\">a message posted to the Asterisk Users forum back in 2004 by Jeff Gustafson<\/a>:<\/p>\n<p><code>&lt;?php<br \/>$ds=ldap_connect(\"ldapserver\");&nbsp;&nbsp;\/\/ must be a valid LDAP server!<\/code><\/p>\n<p><code><\/p>\n<p>if ($ds) {<br \/>&nbsp;&nbsp;$r=ldap_bind($ds);&nbsp;&nbsp;\/\/ this is an \"anonymous\" bind, typically read-only access<\/p>\n<p>&nbsp;&nbsp;$sr=ldap_search($ds, \"ou=People,dc=domainname,dc=com\",<br \/>\"telephoneNumber=*\");<br \/>&nbsp;&nbsp;echo \"&lt;CiscoIPPhoneDirectory&gt;\\n\";<br \/>&nbsp;&nbsp;echo \"&lt;Title&gt;IP Telephony Directory&lt;\/Title&gt;\\n\";<br \/>&nbsp;&nbsp;echo \"&lt;Prompt&gt;People reachable via VoIP&lt;\/Prompt&gt;\\n\";<\/p>\n<p>&nbsp;&nbsp;$info = ldap_get_entries($ds, $sr);<\/p>\n<p>&nbsp;&nbsp;for ($i=0; $i&lt;$info[\"count\"]; $i++) {<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo \"&lt;DirectoryEntry&gt;\\n\";<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo \"&lt;Name&gt;\" . $info[$i][\"cn\"][0] . \"&lt;\/Name&gt;\\n\";<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo \"&lt;Telephone&gt;\" . $info[$i][\"telephonenumber\"][0] .<br \/>\"&lt;\/Telephone&gt;\\n\";<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo \"&lt;\/DirectoryEntry&gt;\\n\";<br \/>&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;echo \"&lt;\/CiscoIPPhoneDirectory&gt;\";<br \/>&nbsp;&nbsp;ldap_close($ds);<\/p>\n<p><\/code><\/p>\n<p><code>} else {<br \/>&nbsp;&nbsp;echo \"error\";<br \/>}<br \/>?&gt;<\/code><\/p>\n<p>Jeff&#8217;s code is great (my PHP skills are certainly not good enough to have written this myself) but Active Directory has an attribute for IP phone numbers (ipPhone), so I made a couple of edits to change the phone prompts and to make the LDAP query search on the ipPhone attribute:<\/p>\n<p><code>&lt;?php<br \/>$ds=ldap_connect(\"<i>domaincontroller<\/i>.<i>domainname<\/i>.<i>tld<\/i>\");&nbsp;&nbsp;\/\/ must be a valid LDAP server!<\/code><\/p>\n<p><code><\/p>\n<p>if ($ds) {<br \/>&nbsp;&nbsp;$r=ldap_bind($ds); \/\/ this is an \"anonymous\" bind, typically read-only access<\/p>\n<p>&nbsp;&nbsp;$sr=ldap_search($ds, \"ou=<i>directorycontainer<\/i>,dc=<i>domainname<\/i>,dc=<i>tld<\/i>\",<br \/>\"ipphone=*\");<br \/>&nbsp;&nbsp;echo \"&lt;CiscoIPPhoneDirectory&gt;\\n\";<br \/>&nbsp;&nbsp;echo \"&lt;Title&gt;IP Telephony Directory&lt;\/Title&gt;\\n\";<br \/>&nbsp;&nbsp;echo \"&lt;Prompt&gt;Active Directory Users&lt;\/Prompt&gt;\\n\";<\/p>\n<p>&nbsp;&nbsp;$info = ldap_get_entries($ds, $sr);<\/p>\n<p>&nbsp;&nbsp;for ($i=0; $i&lt;$info[\"count\"]; $i++) {<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo \"&lt;DirectoryEntry&gt;\\n\";<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo \"&lt;Name&gt;\" . $info[$i][\"displayname\"][0] . \"&lt;\/Name&gt;\\n\";<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo \"&lt;Telephone&gt;\" . $info[$i][\"ipphone\"][0] .<br \/>\"&lt;\/Telephone&gt;\\n\";<br \/>&nbsp;&nbsp;&nbsp;&nbsp;echo \"&lt;\/DirectoryEntry&gt;\\n\";<br \/>&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;echo \"&lt;\/CiscoIPPhoneDirectory&gt;\";<br \/>&nbsp;&nbsp;ldap_close($ds);<\/p>\n<p><\/code><\/p>\n<p><code>} else {<br \/>&nbsp;&nbsp;echo \"error\";<br \/>}<br \/>?&gt;<\/code><\/p>\n<p>I still needed a couple of tweaks to get this working though &#8211; not to the script, just to: the webserver I used to serve it; to Active Directory; and finally to the phone configuration.<\/p>\n<p>First up, you need a web server with PHP installed (I used <a mce_href=\"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/installing-php-5-on-iis-6.htm\" href=\"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/installing-php-5-on-iis-6.htm\">PHP 5.2.6 on IIS 6.0<\/a>).  This also needs the LDAP extension to be enabled by uncommenting <code>extension=php_ldap.dll<\/code> in php.ini.  The extensions folder (e.g. C:\\<i>phpinstallationfolder<\/i>\\<i>extensionfolder<\/i>) also needs to be appended to the <code>%path%<\/code> system variable.<\/p>\n<p>The script is actually for a generic LDAP directory (nothing wrong with that) but recent versions of Active Directory do not allow anonymous access by default.  <a mce_href=\"http:\/\/www.petri.co.il\/anonymous_ldap_operations_in_windows_2003_ad.htm\" href=\"http:\/\/www.petri.co.il\/anonymous_ldap_operations_in_windows_2003_ad.htm\">Daniel Petri has a detailed article on anonymous LDAP operations in Windows 2003 AD<\/a> and that gave me the information that I needed to open up the parts of the directory that I wanted the script to read &#8211; basically: setting the 7th bit of the dsHeuristics flag on CN=Directory Service,CN=Windows NT,CN=Services,DC=<i>domainname<\/i>,DC=<i>tld<\/i> to <code>2<\/code> on the forest root domain; waiting for replication to complete; granting ANONYMOUS LOGON read access on the appropriate objects and List Contents access on the OU that contains the object(s).  Alternatively, it should be possible to edit the script to use an authenticated logon (and sorting by surname wouldn&#8217;t go amiss either) but it&#8217;s getting late now and that will have to wait for another day!  In the meantime, <a mce_href=\"http:\/\/grimsy.blogspot.com\/2007\/06\/spa942-personal-directory-with-ldap.html\" href=\"http:\/\/grimsy.blogspot.com\/2007\/06\/spa942-personal-directory-with-ldap.html\">Geoff Jacobs&#8217; post on creating a personal directory for the Linksys SPA942 using LDAP<\/a> should provide some inspiration.<\/p>\n<p>Last, but by no means least, the directory_url directive needs to be edited to reflect the name of the PHP script instead of the original static XML, for example:<\/p>\n<p><code>directory_url: \u00e2\u20ac\u009dhttp:\/\/<i>webserver<\/i>\/directory.php\u00e2\u20ac\u009d<\/code><\/p>\n<p>In order to pick up the changes, <a mce_href=\"https:\/\/www.markwilson.co.uk\/blog\/2008\/07\/useful-things-to-know-about-cisco-ip-phone-software.htm\" href=\"https:\/\/www.markwilson.co.uk\/blog\/2008\/07\/useful-things-to-know-about-cisco-ip-phone-software.htm\">the phone will need a reset<\/a>.<\/p>\n<p>Now, when I access the external directory from the phone using the directory button and option 5, I&#8217;m presented with a list of contacts from Active Directory.  Furthermore, because the web server uses dynamic content, the details are as current as the directory server that it refers to.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m still working on customising the the Cisco 7940 I use with SIP firmware for VoIP calls and one of the items that&#8217;s now working well is the directory services functionality. At the most basic level, the directory_url directive may be set in one of the SIP configuration files (either SIPDefault.cnf or SIPmacaddress.cnf), for example: &hellip; <a href=\"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Customising a Cisco 79xx IP Phone: directory services<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[],"tags":[159,102],"class_list":["post-1142","post","type-post","status-publish","format-standard","hentry","tag-ipt","tag-active-directory"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Customising a Cisco 79xx IP Phone: directory services - markwilson.it<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Customising a Cisco 79xx IP Phone: directory services - markwilson.it\" \/>\n<meta property=\"og:description\" content=\"I&#8217;m still working on customising the the Cisco 7940 I use with SIP firmware for VoIP calls and one of the items that&#8217;s now working well is the directory services functionality. At the most basic level, the directory_url directive may be set in one of the SIP configuration files (either SIPDefault.cnf or SIPmacaddress.cnf), for example: &hellip; Continue reading Customising a Cisco 79xx IP Phone: directory services\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm\" \/>\n<meta property=\"og:site_name\" content=\"markwilson.it\" \/>\n<meta property=\"article:published_time\" content=\"2008-08-07T22:32:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2009-09-17T15:20:31+00:00\" \/>\n<meta name=\"author\" content=\"Mark Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@markwilsonit\" \/>\n<meta name=\"twitter:site\" content=\"@markwilsonit\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mark Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2008\\\/08\\\/customising-a-cisco-79xx-ip-phone-directory-services.htm#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2008\\\/08\\\/customising-a-cisco-79xx-ip-phone-directory-services.htm\"},\"author\":{\"name\":\"Mark Wilson\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"headline\":\"Customising a Cisco 79xx IP Phone: directory services\",\"datePublished\":\"2008-08-07T22:32:24+00:00\",\"dateModified\":\"2009-09-17T15:20:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2008\\\/08\\\/customising-a-cisco-79xx-ip-phone-directory-services.htm\"},\"wordCount\":587,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"keywords\":[\"IP Telephony\",\"Microsoft Active Directory\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2008\\\/08\\\/customising-a-cisco-79xx-ip-phone-directory-services.htm#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2008\\\/08\\\/customising-a-cisco-79xx-ip-phone-directory-services.htm\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2008\\\/08\\\/customising-a-cisco-79xx-ip-phone-directory-services.htm\",\"name\":\"Customising a Cisco 79xx IP Phone: directory services - markwilson.it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#website\"},\"datePublished\":\"2008-08-07T22:32:24+00:00\",\"dateModified\":\"2009-09-17T15:20:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2008\\\/08\\\/customising-a-cisco-79xx-ip-phone-directory-services.htm#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2008\\\/08\\\/customising-a-cisco-79xx-ip-phone-directory-services.htm\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/2008\\\/08\\\/customising-a-cisco-79xx-ip-phone-directory-services.htm#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Customising a Cisco 79xx IP Phone: directory services\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/\",\"name\":\"markwilson.it\",\"description\":\"get-info -class technology | write-output &gt; \\\/dev\\\/web\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/98f61365e7c39d6be942174b8c4de468\",\"name\":\"Mark Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\",\"width\":800,\"height\":800,\"caption\":\"Mark Wilson\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.markwilson.co.uk\\\/blog\\\/uploads\\\/image-4.png?fit=800%2C800&ssl=1\"},\"description\":\"A Chartered IT Professional, with recent experience in technology leadership, IT strategy and practice management roles, Mark Wilson is an Enterprise Architect in the Advisory and Management Group at risual. During a career spanning more than two decades, Mark has gained widespread recognition as an expert in his field including both industry and national press exposure. In addition to certifications from Microsoft, VMware, Red Hat, The Open Group and Axelos, Mark held a Microsoft Most Valuable Professional (MVP) award for three years and is now part of the MVP Reconnect programme. Mark is also well-known on social media and maintains an award-winning blog.\",\"sameAs\":[\"http:\\\/\\\/www.markwilson.co.uk\\\/\",\"https:\\\/\\\/www.instagram.com\\\/markwilsonuk\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/markawilson\\\/\",\"https:\\\/\\\/x.com\\\/markwilsonit\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCWHlZCoHRTocdvtrOJ2IL4A\"],\"url\":\"https:\\\/\\\/www.markwilson.co.uk\\\/blog\\\/author\\\/mark-wilson\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Customising a Cisco 79xx IP Phone: directory services - markwilson.it","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm","og_locale":"en_GB","og_type":"article","og_title":"Customising a Cisco 79xx IP Phone: directory services - markwilson.it","og_description":"I&#8217;m still working on customising the the Cisco 7940 I use with SIP firmware for VoIP calls and one of the items that&#8217;s now working well is the directory services functionality. At the most basic level, the directory_url directive may be set in one of the SIP configuration files (either SIPDefault.cnf or SIPmacaddress.cnf), for example: &hellip; Continue reading Customising a Cisco 79xx IP Phone: directory services","og_url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm","og_site_name":"markwilson.it","article_published_time":"2008-08-07T22:32:24+00:00","article_modified_time":"2009-09-17T15:20:31+00:00","author":"Mark Wilson","twitter_card":"summary_large_image","twitter_creator":"@markwilsonit","twitter_site":"@markwilsonit","twitter_misc":{"Written by":"Mark Wilson","Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm#article","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm"},"author":{"name":"Mark Wilson","@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"headline":"Customising a Cisco 79xx IP Phone: directory services","datePublished":"2008-08-07T22:32:24+00:00","dateModified":"2009-09-17T15:20:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm"},"wordCount":587,"commentCount":6,"publisher":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"keywords":["IP Telephony","Microsoft Active Directory"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm","url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm","name":"Customising a Cisco 79xx IP Phone: directory services - markwilson.it","isPartOf":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#website"},"datePublished":"2008-08-07T22:32:24+00:00","dateModified":"2009-09-17T15:20:31+00:00","breadcrumb":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-directory-services.htm#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.markwilson.co.uk\/blog"},{"@type":"ListItem","position":2,"name":"Customising a Cisco 79xx IP Phone: directory services"}]},{"@type":"WebSite","@id":"https:\/\/www.markwilson.co.uk\/blog\/#website","url":"https:\/\/www.markwilson.co.uk\/blog\/","name":"markwilson.it","description":"get-info -class technology | write-output &gt; \/dev\/web","publisher":{"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.markwilson.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/www.markwilson.co.uk\/blog\/#\/schema\/person\/98f61365e7c39d6be942174b8c4de468","name":"Mark Wilson","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","url":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1","width":800,"height":800,"caption":"Mark Wilson"},"logo":{"@id":"https:\/\/i0.wp.com\/www.markwilson.co.uk\/blog\/uploads\/image-4.png?fit=800%2C800&ssl=1"},"description":"A Chartered IT Professional, with recent experience in technology leadership, IT strategy and practice management roles, Mark Wilson is an Enterprise Architect in the Advisory and Management Group at risual. During a career spanning more than two decades, Mark has gained widespread recognition as an expert in his field including both industry and national press exposure. In addition to certifications from Microsoft, VMware, Red Hat, The Open Group and Axelos, Mark held a Microsoft Most Valuable Professional (MVP) award for three years and is now part of the MVP Reconnect programme. Mark is also well-known on social media and maintains an award-winning blog.","sameAs":["http:\/\/www.markwilson.co.uk\/","https:\/\/www.instagram.com\/markwilsonuk\/","https:\/\/www.linkedin.com\/in\/markawilson\/","https:\/\/x.com\/markwilsonit","https:\/\/www.youtube.com\/channel\/UCWHlZCoHRTocdvtrOJ2IL4A"],"url":"https:\/\/www.markwilson.co.uk\/blog\/author\/mark-wilson"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1132,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/08\/customising-a-cisco-79xx-ip-phone-ringtones.htm","url_meta":{"origin":1142,"position":0},"title":"Customising a Cisco 79xx IP Phone: Ringtones","author":"Mark Wilson","date":"Friday 1 August 2008","format":false,"excerpt":"In my recent post on configuring a Cisco IP phone for VoIP using SIP, the RINGLIST.DAT file pointed to a file called CTU.raw - a custom ringtone for my phone. I hadn't realised at the time but CTU is something to do with the TV series \"24\" and had been\u2026","rel":"","context":"In \"IP Telephony\"","block_context":{"text":"IP Telephony","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/ipt"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1130,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/07\/configuring-a-cisco-ip-phone-for-voip-using-sip.htm","url_meta":{"origin":1142,"position":1},"title":"Configuring a Cisco IP phone for VoIP using SIP","author":"Mark Wilson","date":"Tuesday 29 July 2008","format":false,"excerpt":"One of my projects at home has involved trying to get a variety of telephony systems to work together so that I can make voice over IP (VoIP) or plain old telephone service (POTS) as necessary to get the best call rates. In truth, it's probably not about getting the\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/technology"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1190,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/09\/microsoft-unified-communications-part-3-putting-it-all-together.htm","url_meta":{"origin":1142,"position":2},"title":"Microsoft Unified Communications: part 3 (putting it all together)","author":"Mark Wilson","date":"Tuesday 9 September 2008","format":false,"excerpt":"Over the last few days, I've been describing the Microsoft view on Unified Communications (UC), based on a presentation given recently by James O'Neill. In the first two posts in this series based on James' presentation, I outlined the business need for unified communications and some of the Microsoft technologies\u2026","rel":"","context":"In \"Microsoft Exchange\"","block_context":{"text":"Microsoft Exchange","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/exchange"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1815,"url":"https:\/\/www.markwilson.co.uk\/blog\/2010\/05\/configuring-a-cisco-ip-phone-for-voip-using-sip-revisited.htm","url_meta":{"origin":1142,"position":3},"title":"Configuring a Cisco IP phone for VoIP using SIP &#8211; revisited","author":"Mark Wilson","date":"Friday 14 May 2010","format":false,"excerpt":"A couple of years ago, I blogged about getting my Cisco 7940G IP Phone working with SIP firmware and an external VoIP provider (in my case, it was Sipgate).\u00a0 I also wanted to get a couple more Cisco IP Phones working - the Cisco IP Communicator softphone and a 7911G\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.markwilson.co.uk\/blog\/topic\/technology"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1192,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/09\/microsoft-unified-communications-part-4-a-brief-note-on-cisco-qos-and-codecs.htm","url_meta":{"origin":1142,"position":4},"title":"Microsoft Unified Communications: part 4 (a brief note on Cisco, QoS and codecs)","author":"Mark Wilson","date":"Wednesday 10 September 2008","format":false,"excerpt":"As might be expected for a series of blog posts about the Microsoft view of Unified Communications (UC), it is heavily biased towards Microsoft products but I wanted to take a brief look at another major player in the unified communications space - Cisco. It should be said that I\u2026","rel":"","context":"In \"IP Telephony\"","block_context":{"text":"IP Telephony","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/ipt"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1294,"url":"https:\/\/www.markwilson.co.uk\/blog\/2008\/11\/recording-voip-calls-using-wireshark.htm","url_meta":{"origin":1142,"position":5},"title":"Recording VoIP calls using Wireshark","author":"Mark Wilson","date":"Tuesday 25 November 2008","format":false,"excerpt":"Gary Marshall writes about how the UK Government plans to pour billions of pounds (as if they weren't wasting enough money already) into recording all of our telephone calls. Well, funnily enough, I want to do the same thing... and it turns out to be remarkably easy - at least\u2026","rel":"","context":"In \"Telephony\"","block_context":{"text":"Telephony","link":"https:\/\/www.markwilson.co.uk\/blog\/tag\/telephony"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=1142"}],"version-history":[{"count":0,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1142\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=1142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=1142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markwilson.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=1142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}