Issue
Code backup
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
header("Content-type: text/xml");
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>';
|
||||
echo '<PhoneDirectory>';
|
||||
|
||||
$db = new SQLite3('/var/lib/asterisk/astdb.sqlite3');
|
||||
|
||||
$results = $db->query('SELECT * FROM astdb;');
|
||||
|
||||
while ($row = $results->fetchArray()) {
|
||||
//find
|
||||
$find='/cidname/';
|
||||
|
||||
if(strpos($row['key'], $find)!==false) {
|
||||
echo '<DirectoryEntry>';
|
||||
echo '<Name>'.htmlspecialchars($row['value']).'</Name>';
|
||||
echo '<Telephone>'.str_replace($find, '', $row['key']).'</Telephone>';
|
||||
echo '</DirectoryEntry>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '</PhoneDirectory>';
|
||||
?>
|
||||
@@ -0,0 +1,119 @@
|
||||
-- from asteriks
|
||||
|
||||
<?php
|
||||
header ("content-type: text/xml");
|
||||
$xtn = array_key_exists('xtn', $_GET) ? $_GET['xtn'] : NULL;
|
||||
$mode = array_key_exists('mode', $_GET) ? $_GET['mode'] : NULL;
|
||||
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
|
||||
if (!@include_once(getenv('FREEPBX_CONF') ? getenv('FREEPBX_CONF') : '/etc/freepbx.conf')) {
|
||||
include_once('/etc/asterisk/freepbx.conf');
|
||||
}
|
||||
// -----
|
||||
switch ($mode) {
|
||||
case "extensions":
|
||||
echo directoryShow("extensions", $url, $xtn);
|
||||
break;
|
||||
case "groups":
|
||||
echo directoryShow("groups", $url, $xtn);
|
||||
break;
|
||||
case "personal":
|
||||
echo directoryShow("personal", $url, $xtn);
|
||||
break;
|
||||
default:
|
||||
echo directoryMenu($url, $xtn);
|
||||
}
|
||||
// -----
|
||||
function directoryMenu($url, $xtn) {
|
||||
$menudata = array(
|
||||
array('Internal Phonebook', "$url?mode=extensions")
|
||||
,array('Ring groups', "$url?mode=groups")
|
||||
,array('Personal contacts', "$url?mode=personal&xtn=$xtn")
|
||||
);
|
||||
$xml = new SimpleXMLElement('<CiscoIPPhoneMenu/>');
|
||||
$xml -> addChild('Prompt', 'Select a directory');
|
||||
|
||||
foreach ($menudata as $menuitem) {
|
||||
$menuItem = $xml -> addChild('MenuItem');
|
||||
$menuItem -> addChild('Name', $menuitem[0]);
|
||||
$menuItem -> addChild('URL', $menuitem[1]);
|
||||
}
|
||||
return ($xml->asXML());
|
||||
}
|
||||
// -----
|
||||
function directoryShow($mode, $url, $xtn) {
|
||||
global $db;
|
||||
switch ($mode) {
|
||||
case "extensions":
|
||||
$sql = "SELECT name, extension FROM users WHERE name NOT LIKE '%FAX%' AND extension < 400 ORDER BY name";
|
||||
$title = "Internal directory";
|
||||
$prompt = "Select a name";
|
||||
break;
|
||||
case "groups":
|
||||
$sql = "SELECT description, grpnum FROM ringgroups WHERE grpnum < 599 ORDER BY description";
|
||||
$title = "Department directory";
|
||||
$prompt = "Select a group";
|
||||
break;
|
||||
case "personal":
|
||||
$sql = "
|
||||
SELECT
|
||||
CONCAT(contactmanager_group_entries.displayname, ' (', contactmanager_entry_numbers.type,')') AS 'name'
|
||||
,contactmanager_entry_numbers.number AS 'extension'
|
||||
FROM contactmanager_groups
|
||||
LEFT JOIN contactmanager_group_entries ON contactmanager_groups.id = contactmanager_group_entries.groupid
|
||||
LEFT JOIN contactmanager_entry_numbers ON contactmanager_group_entries.id = contactmanager_entry_numbers.entryid
|
||||
WHERE contactmanager_groups.name = '$xtn'
|
||||
ORDER BY contactmanager_group_entries.displayname
|
||||
";
|
||||
$title = "Personal contacts";
|
||||
$prompt = "Select a name";
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
$results = $db->getAll($sql, DB_FETCHMODE_ORDERED);
|
||||
$numrows = count($results);
|
||||
$endoflist = false;
|
||||
$xml = new SimpleXMLElement('<CiscoIPPhoneDirectory/>');
|
||||
$xml -> addChild('Title', $title);
|
||||
$xml -> addChild('Prompt', $prompt);
|
||||
|
||||
$page = array_key_exists('page', $_GET) ? $_GET['page'] : 0;
|
||||
$count = $page * 32;
|
||||
|
||||
for ($row=$count; $row <= $count+31; $row++) {
|
||||
if (is_null($results[$row][0])) {
|
||||
$endoflist = true;
|
||||
} else {
|
||||
$endoflist = false;
|
||||
$directoryEntry = $xml -> addChild('DirectoryEntry');
|
||||
$directoryEntry -> addChild('Name', $results[$row][0]);
|
||||
$directoryEntry -> addChild('Telephone', $results[$row][1]);
|
||||
}
|
||||
}
|
||||
$softkey = $xml -> addChild('SoftKeyItem');
|
||||
$softkey -> addChild('Name', 'Exit');
|
||||
$softkey -> addChild('URL', 'SoftKey:Exit');
|
||||
$softkey -> addChild('Position', '1');
|
||||
|
||||
$softkey = $xml -> addChild('SoftKeyItem');
|
||||
$softkey -> addChild('Name', 'Dial');
|
||||
$softkey -> addChild('URL', 'SoftKey:Dial');
|
||||
$softkey -> addChild('Position', '2');
|
||||
|
||||
if ($page > 0) {
|
||||
$softkey = $xml -> addChild('SoftKeyItem');
|
||||
$softkey -> addChild('Name', 'Prev');
|
||||
$softkey -> addChild('URL', 'SoftKey:Exit');
|
||||
$softkey -> addChild('Position', '3');
|
||||
}
|
||||
|
||||
if (!$endoflist) {
|
||||
$softkey = $xml -> addChild('SoftKeyItem');
|
||||
$softkey -> addChild('Name', "Next");
|
||||
$softkey -> addChild('URL', "$url?mode=$mode&page=".++$page);
|
||||
$softkey -> addChild('Position', '4');
|
||||
}
|
||||
return ($xml->asXML());
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user