* @copyright Deakin University 2007,2008 * @package queXS * @subpackage admin * @link http://www.deakin.edu.au/dcarf/ queXS was writen for DCARF - Deakin Computer Assisted Research Facility * @license http://opensource.org/licenses/gpl-2.0.php The GNU General Public License (GPL) Version 2 * */ /** * Configuration file */ include ("../config.inc.php"); /** * Database file */ include ("../db.inc.php"); /** * XHTML functions */ include ("../functions/functions.xhtml.php"); global $db; $a = false; if (isset($_POST['operator'])) { $operator = $db->qstr($_POST['operator'],get_magic_quotes_gpc()); $firstname = $db->qstr($_POST['firstname'],get_magic_quotes_gpc()); $lastname = $db->qstr($_POST['lastname'],get_magic_quotes_gpc()); $chat_user = $db->qstr($_POST['chat_user'],get_magic_quotes_gpc()); $chat_password = $db->qstr($_POST['chat_password'],get_magic_quotes_gpc()); $time_zone_name = $db->qstr($_POST['Time_zone_name'],get_magic_quotes_gpc()); $extension = ""; if (FREEPBX_PATH != false) { //Generate new extension from last one in database and random password $sql = "SELECT SUBSTRING_INDEX(extension, '/', -1) as ext FROM extension ORDER BY ext DESC LIMIT 1"; $laste = $db->GetRow($sql); $extensionn = "1000"; $extension = "'IAX2/1000'"; //increment if exists if (!empty($laste)) { $extensionn = $laste['ext'] + 1; $extension = "'IAX2/$extensionn'"; } //generate random 8 length password $extensionnp = ""; $length = 12; $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; for ($i = 0; $i < $length; $i++) $extensionnp .= $chars[(rand() % strlen($chars))]; //quote for SQL $extensionp = "'$extensionnp'"; } $supervisor = 0; $temporary = 0; $refusal = 0; $voip = 0; $chat = 0; if (isset($_POST['supervisor']) && $_POST['supervisor'] == "on") $supervisor = 1; if (isset($_POST['refusal']) && $_POST['refusal'] == "on") $refusal = 1; if (isset($_POST['temporary']) && $_POST['temporary'] == "on") $temporary = 1; if (isset($_POST['voip']) && $_POST['voip'] == "on") $voip = 1; if (isset($_POST['chat_enable']) && $_POST['chat_enable'] == "on") $chat = 1; if (!empty($_POST['operator'])) { $sql = "INSERT INTO operator (`operator_id` ,`username` ,`firstName` ,`lastName`, `Time_zone_name`,`voip`,`chat_enable`,`chat_user`,`chat_password`) VALUES (NULL , $operator, $firstname , $lastname, $time_zone_name, $voip, $chat, $chat_user, $chat_password);"; if ($db->Execute($sql)) { $oid = $db->Insert_ID(); if (FREEPBX_PATH !== false) { //add extension $sql = "INSERT INTO extension (`extension`,`password`,`current_operator_id`) VALUES ($extension, $extensionp, $oid)"; $db->Execute($sql); //Generate new extension in freepbx include_once("../functions/functions.freepbx.php"); freepbx_add_extension($extensionn, $_POST["firstname"] . " " . $_POST["lastname"], $extensionnp); } else if (!empty($_POST['extension_id'])) { $sql = "UPDATE extension SET current_operator_id = $oid WHERE extension_id = " . intval($_POST['extension_id']); $db->Execute($sql); } if (HTPASSWD_PATH !== false && HTGROUP_PATH !== false) { //Get password and add it to the configured htpassword include_once("../functions/functions.htpasswd.php"); $htp = New Htpasswd(HTPASSWD_PATH); $htg = New Htgroup(HTGROUP_PATH); $htp->addUser($_POST['operator'],$_POST['password']); $htg->addUserToGroup($_POST['operator'],HTGROUP_INTERVIEWER); if ($supervisor) $htg->addUserGroup(HTGROUP_ADMIN); } $a = T_("Added:") . " " . $operator; if (FREEPBX_PATH !== false) $a .= "
" . T_("FreePBX has been reloaded for the new VoIP extension to take effect"); if ($temporary) { $db->Execute(" INSERT INTO operator_skill (operator_id,outcome_type_id) VALUES ('$oid','1')"); $db->Execute(" INSERT INTO operator_skill (operator_id,outcome_type_id) VALUES ('$oid','5')"); //and appointment } if ($supervisor) $db->Execute(" INSERT INTO operator_skill (operator_id,outcome_type_id) VALUES ('$oid','2')"); if ($refusal) $db->Execute(" INSERT INTO operator_skill (operator_id,outcome_type_id) VALUES ('$oid','3')"); } else { $a = T_("Could not add operator. There may already be an operator of this name:") . " $operator "; } } } xhtml_head(T_("Add an operator")); if ($a) { ?>

GetAll($sql); $sql = "SELECT extension_id as value, extension as description FROM extension WHERE current_operator_id IS NULL"; $ers = $db->GetAll($sql); ?>

.

"; display_chooser($rs,"Time_zone_name","Time_zone_name",false,false,false,false,array("value",get_setting("DEFAULT_TIME_ZONE"))); ?>

"; display_chooser($ers,"extension_id","extension_id",true,false,false,false); ?>

:

:

" />