'app-queueprio,' . $row['queueprio_id'] . ',1', 'description' => $row['description']);
}
return $extens;
}
function queueprio_getdest($exten) {
return array('app-queueprio,'.$exten.',1');
}
function queueprio_getdestinfo($dest) {
global $active_modules;
if (substr(trim($dest),0,14) == 'app-queueprio,') {
$exten = explode(',',$dest);
$exten = $exten[1];
$thisexten = queueprio_get($exten);
if (empty($thisexten)) {
return array();
} else {
$type = isset($active_modules['queueprio']['type'])?$active_modules['queueprio']['type']:'setup';
return array('description' => sprintf(_("Queue Priority: %s"),$thisexten['description']),
'edit_url' => 'config.php?display=queueprio&type='.$type.'&extdisplay='.urlencode($exten),
);
}
} else {
return false;
}
}
function queueprio_get_config($engine) {
global $ext;
switch ($engine) {
case 'asterisk':
foreach (queueprio_list() as $row) {
$ext->add('app-queueprio',$row['queueprio_id'], '', new ext_noop('Changing Channel to queueprio: '.$row['queue_priority'].' ('.$row['description'].')'));
$ext->add('app-queueprio',$row['queueprio_id'], '', new ext_setvar('_QUEUE_PRIO',$row['queue_priority']));
$ext->add('app-queueprio',$row['queueprio_id'], '', new ext_goto($row['dest']));
}
break;
}
}
/** Get a list of all queueprio
*/
function queueprio_list() {
global $db;
$sql = "SELECT queueprio_id, description, queue_priority, dest FROM queueprio ORDER BY description ";
$results = $db->getAll($sql, DB_FETCHMODE_ASSOC);
if(DB::IsError($results)) {
die_freepbx($results->getMessage()."
Error selecting from queueprio");
}
return $results;
}
function queueprio_get($queueprio_id) {
global $db;
$sql = "SELECT queueprio_id, description, queue_priority, dest FROM queueprio WHERE queueprio_id = ".$db->escapeSimple($queueprio_id);
$row = $db->getRow($sql, DB_FETCHMODE_ASSOC);
if(DB::IsError($row)) {
die_freepbx($row->getMessage()."
Error selecting row from queueprio");
}
return $row;
}
function queueprio_add($description, $queue_priority, $dest) {
global $db;
$sql = "INSERT INTO queueprio (description, queue_priority, dest) VALUES (".
"'".$db->escapeSimple($description)."', ".
"'".$db->escapeSimple($queue_priority)."', ".
"'".$db->escapeSimple($dest)."')";
$result = $db->query($sql);
if(DB::IsError($result)) {
die_freepbx($result->getMessage().$sql);
}
}
function queueprio_delete($queueprio_id) {
global $db;
$sql = "DELETE FROM queueprio WHERE queueprio_id = ".$db->escapeSimple($queueprio_id);
$result = $db->query($sql);
if(DB::IsError($result)) {
die_freepbx($result->getMessage().$sql);
}
}
function queueprio_edit($queueprio_id, $description, $queue_priority, $dest) {
global $db;
$sql = "UPDATE queueprio SET ".
"description = '".$db->escapeSimple($description)."', ".
"queue_priority = '".$db->escapeSimple($queue_priority)."', ".
"dest = '".$db->escapeSimple($dest)."' ".
"WHERE queueprio_id = ".$db->escapeSimple($queueprio_id);
$result = $db->query($sql);
if(DB::IsError($result)) {
die_freepbx($result->getMessage().$sql);
}
}
function queueprio_check_destinations($dest=true) {
global $active_modules;
$destlist = array();
if (is_array($dest) && empty($dest)) {
return $destlist;
}
$sql = "SELECT queueprio_id, dest, description FROM queueprio ";
if ($dest !== true) {
$sql .= "WHERE dest in ('".implode("','",$dest)."')";
}
$results = sql($sql,"getAll",DB_FETCHMODE_ASSOC);
$type = isset($active_modules['queueprio']['type'])?$active_modules['queueprio']['type']:'setup';
foreach ($results as $result) {
$thisdest = $result['dest'];
$thisid = $result['queueprio_id'];
$destlist[] = array(
'dest' => $thisdest,
'description' => sprintf(_("Queue Priority: %s"),$result['description']),
'edit_url' => 'config.php?display=queueprio&type='.$type.'&extdisplay='.urlencode($thisid),
);
}
return $destlist;
}
?>