This site is curently being worked on. Some parts may be missing or not fully functional.
The address of this site has been changed from stefan.gofferje.net to www.gofferje.net. Please update your bookmarks.

This is a little PHP script to display the internal caller id database of an asterisk as phonebook on a Cisco IP phone.


<?php
  
#############################################################################
  #                                                                           #
  # directory.php                                                             #
  #                                                                           #
  # Display Asterisk database CID records on Cisco 7940/60 IP phones          #
  #                                                                           #
  # Please store all external nos w/ full prefix/areacode                     #
  #                                                                           #
  # (w) 2005 by Stefan Gofferje, License: GPL                                 #
  #                                                                           #
  # Inspired by Asterisk CID scripts by Philipp von Klitzing                  #
  #                                                                           #
  # Don't forget to modify /etc/sudoers:                                      #
  #  wwwrun  ALL=(ALL)       NOPASSWD:   /usr/sbin/asterisk                   #
  #                                                                           #
  #############################################################################
  #                                                                           #
  # If _AKZ is defined, any no. in the db beginning with _NATIONAL will       #
  # be prefixed with _AKZ in the phone directory.                             #
 
  
define (_AKZ,"0");      #Prefix to dial an external no.
                          #[de] Amtskennziffer
  
define (_NATIONAL,"0"); #Prefix for national calls

  #                                                                           #
  #############################################################################
  
  
header("Content-type: text/xml");
  
header("Connection: close");
  
header("Expires: -1");
?>

<CiscoIPPhoneDirectory>
<Title>Asterisk CID Directory</Title>
<Prompt>Please Select</Prompt>

<?php
  set_time_limit
(5);
  
exec("sudo /usr/sbin/asterisk -rx \"database show cidname\"",$var);

  for (
$i=0;$isizeof($var);$i++) {
    if (
preg_match("/^\/cidname\/(\d+)[[:space:]]+:[[:space:]]+(.+)/",$var[$i],$res)) {
      
$entry[$i][name]=$res[2];
      
$entry[$i][no]=$res[1];
      if (
defined("_AKZ")) if (strncmp($entry[$i][no],_NATIONAL,1)==0$entry[$i][no]=_AKZ.$entry[$i][no];
    }
  }
  
sort($entry);
  for (
$i=0;$isizeof($entry);$i++) {
    print 
"<DirectoryEntry>\n";
    print 
"<Name>".utf8_encode($entry[$i][name])."</Name>\n";
    print 
"<Telephone>".$entry[$i][no]."</Telephone>\n";
    print 
"</DirectoryEntry>\n";
  }
?>

<SoftKeyItem>
  <Name>Dial</Name>
  <URL>SoftKey:Dial</URL>
  <Position>1</Position>
  </SoftKeyItem>
<SoftKeyItem>
  <Name>Return</Name>
  <URL>SoftKey:Exit</URL>
  <Position>3</Position>
</SoftKeyItem>
</CiscoIPPhoneDirectory>