|
|
|
|
@ -228,965 +228,6 @@ function ListFiles($dir) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function switch_select_destination($select_type, $select_label, $select_name, $select_value, $select_style, $action='', $onchange='', $text_append=' ...') {
|
|
|
|
|
//select_type can be ivr, dialplan, call_center_contact or bridge
|
|
|
|
|
global $text, $config, $db, $domain_uuid;
|
|
|
|
|
|
|
|
|
|
//remove special characters from the name
|
|
|
|
|
$select_id = str_replace("]", "", $select_name);
|
|
|
|
|
$select_id = str_replace("[", "_", $select_id);
|
|
|
|
|
|
|
|
|
|
if (if_group("superadmin")) {
|
|
|
|
|
echo "<script>\n";
|
|
|
|
|
echo "var Objs;\n";
|
|
|
|
|
echo "\n";
|
|
|
|
|
echo "function changeToInput".$select_id."(obj){\n";
|
|
|
|
|
echo " tb=document.createElement('INPUT');\n";
|
|
|
|
|
echo " tb.type='text';\n";
|
|
|
|
|
echo " tb.name=obj.name;\n";
|
|
|
|
|
echo " tb.className='formfld';\n";
|
|
|
|
|
echo " tb.setAttribute('id', '".$select_id."');\n";
|
|
|
|
|
echo " tb.setAttribute('style', '".$select_style."');\n";
|
|
|
|
|
if ($onchange != '') {
|
|
|
|
|
echo " tb.setAttribute('onchange', \"".$onchange."\");\n";
|
|
|
|
|
echo " tb.setAttribute('onkeyup', \"".$onchange."\");\n";
|
|
|
|
|
}
|
|
|
|
|
echo " tb.value=obj.options[obj.selectedIndex].value;\n";
|
|
|
|
|
echo " document.getElementById('btn_select_to_input_".$select_id."').style.visibility = 'hidden';\n";
|
|
|
|
|
echo " tbb=document.createElement('INPUT');\n";
|
|
|
|
|
echo " tbb.setAttribute('class', 'btn');\n";
|
|
|
|
|
echo " tbb.setAttribute('style', 'margin-left: 4px;');\n";
|
|
|
|
|
echo " tbb.type='button';\n";
|
|
|
|
|
echo " tbb.value=$('<div />').html('◁').text();\n";
|
|
|
|
|
echo " tbb.objs=[obj,tb,tbb];\n";
|
|
|
|
|
echo " tbb.onclick=function(){ Replace".$select_id."(this.objs); }\n";
|
|
|
|
|
echo " obj.parentNode.insertBefore(tb,obj);\n";
|
|
|
|
|
echo " obj.parentNode.insertBefore(tbb,obj);\n";
|
|
|
|
|
echo " obj.parentNode.removeChild(obj);\n";
|
|
|
|
|
echo " Replace".$select_id."(this.objs);\n";
|
|
|
|
|
echo "}\n";
|
|
|
|
|
echo "\n";
|
|
|
|
|
echo "function Replace".$select_id."(obj){\n";
|
|
|
|
|
echo " obj[2].parentNode.insertBefore(obj[0],obj[2]);\n";
|
|
|
|
|
echo " obj[0].parentNode.removeChild(obj[1]);\n";
|
|
|
|
|
echo " obj[0].parentNode.removeChild(obj[2]);\n";
|
|
|
|
|
echo " document.getElementById('btn_select_to_input_".$select_id."').style.visibility = 'visible';\n";
|
|
|
|
|
if ($onchange != '') {
|
|
|
|
|
echo " ".$onchange.";\n";
|
|
|
|
|
}
|
|
|
|
|
echo "}\n";
|
|
|
|
|
echo "</script>\n";
|
|
|
|
|
echo "\n";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//default selection found to false
|
|
|
|
|
$selection_found = false;
|
|
|
|
|
|
|
|
|
|
echo " <select name='".$select_name."' id='".$select_id."' class='formfld' style='".$select_style."' onchange=\"".$onchange."\">\n";
|
|
|
|
|
|
|
|
|
|
//display a default select label (specified explicitly or from the language file) if no selected value is passed in
|
|
|
|
|
if ($select_value == '' && $select_label != '' && $select_label != ' ') {
|
|
|
|
|
$options[] = "<option value=''>".$select_label."</option>";
|
|
|
|
|
$options[] = "<option value='' disabled='disabled'></option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_value == '' && $select_label == '' && $text['label-select_destination'] != '') {
|
|
|
|
|
$options[] = "<option value=''>".$text['label-select_destination']."</option>";
|
|
|
|
|
$options[] = "<option value='' disabled='disabled'></option>";
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$options[] = "<option value=''></option>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//call center queues
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/call_center/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_call_center_queues ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "order by queue_name asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Call Center'>";
|
|
|
|
|
$previous_call_center_name = "";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$queue_name = $row["queue_name"];
|
|
|
|
|
$queue_name = str_replace('_${domain_name}@default', '', $queue_name);
|
|
|
|
|
$queue_extension = $row["queue_extension"];
|
|
|
|
|
if ($previous_call_center_name != $queue_name) {
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "transfer:".$queue_extension." XML ".$_SESSION["context"] ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer ".$queue_extension." XML ".$_SESSION["context"]
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$queue_extension." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$queue_extension." ".$queue_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:".$queue_extension." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$queue_extension." ".$queue_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
$previous_call_center_name = $queue_name;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//call flows
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/call_flows/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_call_flows ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "order by call_flow_extension asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Call Flows'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$call_flow_name = $row["call_flow_name"];
|
|
|
|
|
$call_flow_extension = $row["call_flow_extension"];
|
|
|
|
|
$call_flow_context = $row["call_flow_context"];
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "transfer ".$call_flow_extension." XML ".$call_flow_context ||
|
|
|
|
|
$select_value == "transfer:".$call_flow_extension." XML ".$call_flow_context ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer ".$call_flow_extension." XML ".$call_flow_context
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$call_flow_extension." XML ".$call_flow_context."' ".(($selected) ? "selected='selected'" : null).">".$call_flow_extension." ".$call_flow_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:".$call_flow_extension." XML ".$call_flow_context."' ".(($selected) ? "selected='selected'" : null).">".$call_flow_extension." ".$call_flow_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement, $call_flow_extension);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//call groups
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/extensions/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select distinct(call_group) from v_extensions ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and call_group <> '' ";
|
|
|
|
|
$sql .= "order by call_group asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$x = 0;
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$previous_call_group_name = "";
|
|
|
|
|
$options[] = "<optgroup label='Call Group'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$call_groups = $row["call_group"];
|
|
|
|
|
$call_group_array = explode(",", $call_groups);
|
|
|
|
|
foreach ($call_group_array as $call_group) {
|
|
|
|
|
$call_group = trim($call_group);
|
|
|
|
|
if ($previous_call_group_name != $call_group) {
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "bridge:group/".$call_group."@".$_SESSION['domain_name'] ||
|
|
|
|
|
$select_value == "menu-exec-app:bridge group/".$call_group."@".$_SESSION['domain_name']
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:bridge group/".$call_group."@".$_SESSION['domain_name']."' ".(($selected) ? "selected='selected'" : null).">".$call_group."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='bridge:group/".$call_group."@".$_SESSION['domain_name']."' ".(($selected) ? "selected='selected'" : null).">".$call_group."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
$previous_call_group_name = $call_group;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$x++;
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//conference centers
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/conference_centers/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_conference_centers ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "order by conference_center_name asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Conference Centers'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$name = $row["conference_center_name"];
|
|
|
|
|
$extension = $row["conference_center_extension"];
|
|
|
|
|
$description = $row["conference_center_description"];
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "transfer ".$extension." XML ".$_SESSION['context'] ||
|
|
|
|
|
$select_value == "transfer:".$extension." XML ".$_SESSION['context'] ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer ".$extension." XML ".$_SESSION['context']
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$extension." XML ".$_SESSION['context']."' ".(($selected) ? "selected='selected'" : null).">".$name." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:".$extension." XML ".$_SESSION['context']."' ".(($selected) ? "selected='selected'" : null).">".$name." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
unset ($prep_statement);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//conferences
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/conferences/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_conferences ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "order by conference_name asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Conferences'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$name = $row["conference_name"];
|
|
|
|
|
$extension = $row["conference_extension"];
|
|
|
|
|
$description = $row["conference_description"];
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "transfer ".$extension." XML ".$_SESSION['context'] ||
|
|
|
|
|
$select_value == "transfer:".$extension." XML ".$_SESSION['context'] ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer ".$extension." XML ".$_SESSION['context']
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$extension." XML ".$_SESSION['context']."' ".(($selected) ? "selected='selected'" : null).">".$name." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:".$extension." XML ".$_SESSION['context']."' ".(($selected) ? "selected='selected'" : null).">".$name." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//extensions
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/extensions/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr" || $select_type == "call_center_contact") {
|
|
|
|
|
$sql = "select * from v_extensions ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and enabled = 'true' ";
|
|
|
|
|
$sql .= "order by extension asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Extensions'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$extension = $row["extension"];
|
|
|
|
|
$context = $row["user_context"];
|
|
|
|
|
$description = $row["description"];
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "user/".$extension."@".$_SESSION['domains'][$domain_uuid]['domain_name'] ||
|
|
|
|
|
$select_value == "transfer:".$extension." XML ".$context ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer ".$extension." XML ".$context
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$extension." XML ".$context."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:".$extension." XML ".$context."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "call_center_contact") {
|
|
|
|
|
$options[] = "<option value='user/".$extension."@".$_SESSION['domains'][$domain_uuid]['domain_name']."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement, $extension);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//fax extensions
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/fax/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_fax ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "order by fax_extension asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='FAX'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$fax_name = $row["fax_name"];
|
|
|
|
|
$extension = $row["fax_extension"];
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "transfer ".$extension." XML ".$_SESSION["context"] ||
|
|
|
|
|
$select_value == "transfer:".$extension." XML ".$_SESSION["context"] ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer ".$extension." XML ".$_SESSION["context"]
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$extension." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$fax_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:".$extension." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$fax_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement, $extension);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//fifo queues
|
|
|
|
|
/*
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/fifo/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_dialplan_details ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and dialplan_detail_type = 'fifo' ";
|
|
|
|
|
$sql .= "and dialplan_detail_data not like '%@${domain_name} in%' ";
|
|
|
|
|
$sql .= "order by dialplan_detail_data asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Queues (FIFO)'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$dialplan_uuid = $row["dialplan_uuid"];
|
|
|
|
|
//get the extension number using the dialplan_uuid
|
|
|
|
|
$sql = "select dialplan_detail_data as extension_number ";
|
|
|
|
|
$sql .= "from v_dialplan_details ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and dialplan_uuid = '".$dialplan_uuid."' ";
|
|
|
|
|
$sql .= "and dialplan_detail_type = 'destination_number' ";
|
|
|
|
|
$tmp = $db->query($sql)->fetch(PDO::FETCH_ASSOC);
|
|
|
|
|
$extension_number = $tmp['extension_number'];
|
|
|
|
|
$extension_number = ltrim($extension_number, "^");
|
|
|
|
|
$extension_number = ltrim($extension_number, "\\");
|
|
|
|
|
$extension_number = rtrim($extension_number, "$");
|
|
|
|
|
unset($tmp);
|
|
|
|
|
|
|
|
|
|
//get the extension number using the dialplan_uuid
|
|
|
|
|
$sql = "select * ";
|
|
|
|
|
$sql .= "from v_dialplans ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and dialplan_uuid = '".$dialplan_uuid."' ";
|
|
|
|
|
$tmp = $db->query($sql)->fetch(PDO::FETCH_ASSOC);
|
|
|
|
|
$dialplan_name = $tmp['dialplan_name'];
|
|
|
|
|
$dialplan_name = str_replace("_", " ", $dialplan_name);
|
|
|
|
|
unset($tmp);
|
|
|
|
|
|
|
|
|
|
$fifo_name = $row["dialplan_detail_data"];
|
|
|
|
|
$fifo_name = str_replace('@${domain_name} in', '', $fifo_name);
|
|
|
|
|
$option_label = $extension_number.' '.$dialplan_name;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$selected = ("menu-exec-app:transfer ".$row["dialplan_detail_data"] == $select_value) ? true : false;
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$extension_number." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$option_label."</option>";
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$selected = ("transfer:".$extension_number." XML ".$_SESSION["context"] == $select_value) ? true : false;
|
|
|
|
|
$options[] = "<option value='transfer:".$extension_number." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$option_label."</option>";
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//gateways
|
|
|
|
|
if (if_group("superadmin")) {
|
|
|
|
|
$sql = "select v_gateways.gateway_uuid, v_gateways.gateway, v_domains.domain_name from v_gateways ";
|
|
|
|
|
$sql .= "inner join v_domains on v_gateways.domain_uuid=v_domains.domain_uuid ";
|
|
|
|
|
$sql .= "where enabled = 'true' ";
|
|
|
|
|
$sql .= "order by gateway asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
$tmp_selected = '';
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr" || $select_type == "call_center_contact" || $select_type == "bridge") {
|
|
|
|
|
$options[] = "<optgroup label='Gateways'>";
|
|
|
|
|
}
|
|
|
|
|
foreach($result as $row) {
|
|
|
|
|
switch ($select_type) {
|
|
|
|
|
case "dialplan":
|
|
|
|
|
$default_value = 'bridge:sofia/gateway/'.$row['gateway_uuid'].'/';
|
|
|
|
|
$selected = (strpos($select_value, $default_value) === 0) ? true : false;
|
|
|
|
|
$value = ($selected) ? $select_value : $default_value.$text_append;
|
|
|
|
|
$flag = ($selected && $select_value != $default_value.$text_append) ? "*" : null;
|
|
|
|
|
$options[] = "<option value='".$value."' ".(($selected) ? "selected='selected'" : null).">".$row['gateway']."@".$row['domain_name']." ".$flag."</option>";
|
|
|
|
|
break;
|
|
|
|
|
case "bridge":
|
|
|
|
|
$default_value = 'sofia/gateway/'.$row['gateway_uuid'].'/';
|
|
|
|
|
$selected = (strpos($select_value, $default_value) === 0) ? true : false;
|
|
|
|
|
$value = ($selected) ? $select_value : $default_value.$text_append;
|
|
|
|
|
$flag = ($selected && $select_value != $default_value.$text_append) ? "*" : null;
|
|
|
|
|
$options[] = "<option value='".$value."' ".(($selected) ? "selected='selected'" : null).">".$row['gateway']."@".$row['domain_name']." ".$flag."</option>";
|
|
|
|
|
break;
|
|
|
|
|
case "ivr":
|
|
|
|
|
$default_value = 'menu-exec-app:bridge sofia/gateway/'.$row['gateway_uuid'].'/';
|
|
|
|
|
$selected = (strpos($select_value, $default_value) === 0) ? true : false;
|
|
|
|
|
$value = ($selected) ? $select_value : $default_value.$text_append;
|
|
|
|
|
$flag = ($selected && $select_value != $default_value.$text_append) ? "*" : null;
|
|
|
|
|
$options[] = "<option value='".$value."' ".(($selected) ? "selected='selected'" : null).">".$row['gateway']."@".$row['domain_name']." ".$flag."</option>";
|
|
|
|
|
break;
|
|
|
|
|
case "call_center_contact":
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/conference_centers/app_config.php")) {
|
|
|
|
|
$default_value = 'sofia/gateway/'.$row['gateway_uuid'].'/';
|
|
|
|
|
$selected = (strpos($select_value, $default_value) === 0) ? true : false;
|
|
|
|
|
$value = ($selected) ? $select_value : $default_value.$text_append;
|
|
|
|
|
$flag = ($selected && $select_value != $default_value.$text_append) ? "*" : null;
|
|
|
|
|
$options[] = "<option value='".$value."' ".(($selected) ? "selected='selected'" : null).">".$row['gateway']."@".$row['domain_name']." ".$flag."</option>";
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr" || $select_type == "call_center_contact") {
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
unset($prep_statement, $sql, $result, $value, $default_value, $flag);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//xmpp
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/xmpp/app_config.php")) {
|
|
|
|
|
if (if_group("superadmin") && $select_type == "bridge") {
|
|
|
|
|
$sql = "select v_xmpp.xmpp_profile_uuid, v_xmpp.profile_name, v_domains.domain_name from v_xmpp ";
|
|
|
|
|
$sql .= "inner join v_domains on v_xmpp.domain_uuid=v_domains.domain_uuid ";
|
|
|
|
|
$sql .= "where enabled = 'true' ";
|
|
|
|
|
$sql .= "order by profile_name asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
unset ($prep_statement, $sql);
|
|
|
|
|
$tmp_selected = '';
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='XMPP Gateways'>";
|
|
|
|
|
foreach($result as $row) {
|
|
|
|
|
$selected = ('dingaling/'.$row['profile_name'].'/' == $select_value) ? true : false;
|
|
|
|
|
$options[] = "<option value='dingaling/".$row['profile_name']."/' ".(($selected) ? "selected='selected'" : null).">".$row['profile_name']."@".$row['domain_name']."</option>";
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset($sql, $result);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//hunt groups
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/hunt_groups/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_hunt_groups ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and hunt_group_enabled = 'true' ";
|
|
|
|
|
$sql .= "and ( ";
|
|
|
|
|
$sql .= "hunt_group_type = 'simultaneous' ";
|
|
|
|
|
$sql .= "or hunt_group_type = 'sequence' ";
|
|
|
|
|
$sql .= "or hunt_group_type = 'sequentially' ";
|
|
|
|
|
$sql .= ") ";
|
|
|
|
|
$sql .= "order by hunt_group_extension asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Hunt Groups'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$extension = $row["hunt_group_extension"];
|
|
|
|
|
$hunt_group_name = $row["hunt_group_name"];
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "transfer ".$extension." XML ".$_SESSION["context"] ||
|
|
|
|
|
$select_value == "transfer:".$extension." XML ".$_SESSION["context"] ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer ".$extension." XML ".$_SESSION["context"]
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$extension." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$hunt_group_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:".$extension." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$hunt_group_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement, $extension);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//ivr menus
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/ivr_menu/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_ivr_menus ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and ivr_menu_enabled = 'true' ";
|
|
|
|
|
$sql .= "order by ivr_menu_extension asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='IVR Menu'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$extension = $row["ivr_menu_extension"];
|
|
|
|
|
$extension_name = $row["ivr_menu_name"];
|
|
|
|
|
$extension_label = $row["ivr_menu_name"];
|
|
|
|
|
$extension_name = str_replace(" ", "_", $extension_name);
|
|
|
|
|
if (count($_SESSION["domains"]) > 1) {
|
|
|
|
|
$extension_name = $_SESSION['domains'][$row['domain_uuid']]['domain_name'].'-'.$extension_name;
|
|
|
|
|
}
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "ivr ".$extension_name ||
|
|
|
|
|
$select_value == "ivr:".$extension_name ||
|
|
|
|
|
$select_value == "menu-exec-app:ivr ".$extension ||
|
|
|
|
|
$select_value == "transfer ".$extension." XML ".$_SESSION["context"] ||
|
|
|
|
|
$select_value == "transfer:".$extension." XML ".$_SESSION["context"] ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer ".$extension." XML ".$_SESSION["context"]
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$extension." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$extension_label."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:".$extension." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$extension_label."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement, $extension);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//languages
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$options[] = "<optgroup label='Language'>";
|
|
|
|
|
}
|
|
|
|
|
$tmp_lang_options = array(
|
|
|
|
|
'nl' => 'Dutch',
|
|
|
|
|
'en' => 'English',
|
|
|
|
|
'fr' => 'French',
|
|
|
|
|
'it' => 'Italian',
|
|
|
|
|
'de' => 'German',
|
|
|
|
|
'pt-pt' => 'Portuguese (Portugal)',
|
|
|
|
|
'pt-br' => 'Portuguese (Brazil)',
|
|
|
|
|
'es' => 'Spanish');
|
|
|
|
|
foreach ($tmp_lang_options as $tmp_lang_option_abbr => $tmp_lang_option_name) {
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "menu-exec-app:set default_language=".$tmp_lang_option_abbr ||
|
|
|
|
|
$select_value == "set:default_language=".$tmp_lang_option_abbr
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = " <option value='menu-exec-app:set default_language=".$tmp_lang_option_abbr."' ".(($selected) ? "selected='selected'" : null).">".$tmp_lang_option_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = " <option value='set:default_language=".$tmp_lang_option_abbr."' ".(($selected) ? "selected='selected'" : null).">".$tmp_lang_option_name."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset($tmp_lang_options);
|
|
|
|
|
|
|
|
|
|
//recordings
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/recordings/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_recordings ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "order by recording_name asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Recordings'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$recording_name = $row["recording_name"];
|
|
|
|
|
$recording_filename = $row["recording_filename"];
|
|
|
|
|
$path_mod = ($_SESSION['recordings']['storage_type']['text'] != 'base64') ? $_SESSION['switch']['recordings']['dir']."/" : null;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$execute_method = 'lua:';
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$execute_method = 'menu-exec-app:lua ';
|
|
|
|
|
}
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == $execute_method."streamfile.lua ".$_SESSION['switch']['recordings']['dir']."/".$recording_filename ||
|
|
|
|
|
$select_value == $execute_method."streamfile.lua ".$recording_filename
|
|
|
|
|
) ? true : false;
|
|
|
|
|
$options[] = "<option value='".$execute_method."streamfile.lua ".$path_mod.$recording_filename."' ".(($selected) ? "selected='selected'" : null).">".$recording_name."</option>";
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//phrases
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/phrases/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_phrases where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Phrases'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$selected = ($select_value == "phrase:".$row["phrase_name"].".".$domain_uuid) ? true : false;
|
|
|
|
|
$options[] = "<option value='phrase:".$row["phrase_name"].".".$domain_uuid."' ".(($selected) ? "selected='selected'" : null).">".$row["phrase_name"]."</option>";
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//ring groups
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/ring_groups/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_ring_groups ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and ring_group_enabled = 'true' ";
|
|
|
|
|
$sql .= "order by ring_group_extension asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Ring Groups'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$extension = $row["ring_group_extension"];
|
|
|
|
|
$context = $row["ring_group_context"];
|
|
|
|
|
$description = $row["ring_group_description"];
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "transfer ".$extension." XML ".$context ||
|
|
|
|
|
$select_value == "transfer:".$extension." XML ".$context ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer ".$extension." XML ".$context
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$extension." XML ".$context."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:".$extension." XML ".$context."' ".(($selected) ? "selected='selected'" : null).">".$extension." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//time conditions
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/time_conditions/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_dialplan_details ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$x = 0;
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
switch ($row['dialplan_detail_type']) {
|
|
|
|
|
case "hour":
|
|
|
|
|
case "minute":
|
|
|
|
|
case "minute-of-day":
|
|
|
|
|
case "time-of-day":
|
|
|
|
|
case "mday":
|
|
|
|
|
case "mweek":
|
|
|
|
|
case "mon":
|
|
|
|
|
case "yday":
|
|
|
|
|
case "year":
|
|
|
|
|
case "wday":
|
|
|
|
|
case "week":
|
|
|
|
|
$time_array[$row['dialplan_uuid']] = $row['dialplan_detail_type'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$options[] = "<optgroup label='Time Conditions'>";
|
|
|
|
|
foreach($time_array as $key=>$val) {
|
|
|
|
|
$dialplan_uuid = $key;
|
|
|
|
|
//get the extension number using the dialplan_uuid
|
|
|
|
|
$sql = "select dialplan_detail_data as extension_number ";
|
|
|
|
|
$sql .= "from v_dialplan_details ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and dialplan_uuid = '".$dialplan_uuid."' ";
|
|
|
|
|
$sql .= "and dialplan_detail_type = 'destination_number' ";
|
|
|
|
|
$sql .= "order by extension_number asc ";
|
|
|
|
|
$tmp = $db->query($sql)->fetch(PDO::FETCH_ASSOC);
|
|
|
|
|
$extension_number = $tmp['extension_number'];
|
|
|
|
|
$extension_number = ltrim($extension_number, "^");
|
|
|
|
|
$extension_number = ltrim($extension_number, "\\");
|
|
|
|
|
$extension_number = rtrim($extension_number, "$");
|
|
|
|
|
unset($tmp);
|
|
|
|
|
|
|
|
|
|
//get the extension number using the dialplan_uuid
|
|
|
|
|
$sql = "select * ";
|
|
|
|
|
$sql .= "from v_dialplans ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and dialplan_uuid = '".$dialplan_uuid."' ";
|
|
|
|
|
$tmp = $db->query($sql)->fetch(PDO::FETCH_ASSOC);
|
|
|
|
|
$dialplan_name = $tmp['dialplan_name'];
|
|
|
|
|
$dialplan_name = str_replace("_", " ", $dialplan_name);
|
|
|
|
|
unset($tmp);
|
|
|
|
|
|
|
|
|
|
$option_label = $extension_number.' '.$dialplan_name;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$selected = ("menu-exec-app:transfer ".$extension_number." XML ".$_SESSION["context"] == $select_value) ? true : false;
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ".$extension_number." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$option_label."</option>";
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$selected = ("transfer:".$extension_number." XML ".$_SESSION["context"] == $select_value) ? true : false;
|
|
|
|
|
$options[] = "<option value='transfer:".$extension_number." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$option_label."</option>";
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
unset ($prep_statement);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//voicemail
|
|
|
|
|
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/voicemails/app_config.php")) {
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$sql = "select * from v_voicemails ";
|
|
|
|
|
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
|
|
|
|
$sql .= "and voicemail_enabled = 'true' ";
|
|
|
|
|
$sql .= "order by voicemail_id asc ";
|
|
|
|
|
$prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
|
$prep_statement->execute();
|
|
|
|
|
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
if (count($result) > 0) {
|
|
|
|
|
$options[] = "<optgroup label='Voicemail'>";
|
|
|
|
|
foreach ($result as &$row) {
|
|
|
|
|
$voicemail_id = $row["voicemail_id"];
|
|
|
|
|
$description = $row["voicemail_description"];
|
|
|
|
|
$selected = (
|
|
|
|
|
$select_value == "voicemail default \${domain_name} ".$voicemail_id ||
|
|
|
|
|
$select_value == "voicemail:default \${domain_name} ".$voicemail_id ||
|
|
|
|
|
$select_value == "transfer:*99".$voicemail_id." XML ".$_SESSION["context"] ||
|
|
|
|
|
$select_value == "menu-exec-app:transfer *99".$voicemail_id." XML ".$_SESSION["context"]
|
|
|
|
|
) ? true : false;
|
|
|
|
|
if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer *99".$voicemail_id." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$voicemail_id." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:*99".$voicemail_id." XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">".$voicemail_id." ".$description."</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//other
|
|
|
|
|
if ($select_type == "dialplan" || $select_type == "ivr") {
|
|
|
|
|
$options[] = "<optgroup label='Other'>";
|
|
|
|
|
//set the default value
|
|
|
|
|
$selected = '';
|
|
|
|
|
//check voicemail
|
|
|
|
|
$selected = ($select_value == "transfer:*98 XML ".$_SESSION["context"] || $select_value == "menu-exec-app:transfer *98 XML ".$_SESSION["context"]) ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:*98 XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">check voicemail</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer *98 XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">check voicemail</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//company directory
|
|
|
|
|
$selected = ($select_value == "transfer:*411 XML ".$_SESSION["context"] || $select_value == "menu-exec-app:transfer *411 XML ".$_SESSION["context"]) ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:*411 XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">company directory</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer *411 XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">company directory</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//record
|
|
|
|
|
$selected = ($select_value == "transfer:*732 XML ".$_SESSION["context"] || $select_value == "menu-exec-app:transfer *732 XML ".$_SESSION["context"]) ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:*732 XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">record</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer *732 XML ".$_SESSION["context"]."' ".(($selected) ? "selected='selected'" : null).">record</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//advanced
|
|
|
|
|
if (if_group("superadmin")) {
|
|
|
|
|
//answer
|
|
|
|
|
$selected = ($select_value == "answer" || $select_value == "menu-exec-app:answer") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='answer' ".(($selected) ? "selected='selected'" : null).">answer</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:answer' ".(($selected) ? "selected='selected'" : null).">answer</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//hangup
|
|
|
|
|
$selected = ($select_value == "hangup" || $select_value == "menu-exec-app:hangup") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='hangup' ".(($selected) ? "selected='selected'" : null).">hangup</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:hangup' ".(($selected) ? "selected='selected'" : null).">hangup</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//info
|
|
|
|
|
$selected = ($select_value == "info" || $select_value == "menu-exec-app:info") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='info' ".(($selected) ? "selected='selected'" : null).">info</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:info' ".(($selected) ? "selected='selected'" : null).">info</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//bridge
|
|
|
|
|
$selected = ($select_value == "bridge" || $select_value == "bridge:" || $select_value == "menu-exec-app:bridge") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='bridge:' ".(($selected) ? "selected='selected'" : null).">bridge</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:bridge ' ".(($selected) ? "selected='selected'" : null).">bridge</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//db
|
|
|
|
|
$selected = ($select_value == "db" || $select_value == "db:" || $select_value == "menu-exec-app:db") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='db:' ".(($selected) ? "selected='selected'" : null).">db</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:db ' ".(($selected) ? "selected='selected'" : null).">db</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//export
|
|
|
|
|
$selected = ($select_value == "export" || $select_value == "export:" || $select_value == "menu-exec-app:export") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='export:' ".(($selected) ? "selected='selected'" : null).">export</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:export ' ".(($selected) ? "selected='selected'" : null).">export</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//global_set
|
|
|
|
|
$selected = ($select_value == "global_set" || $select_value == "global_set:" || $select_value == "menu-exec-app:global_set") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='global_set:' ".(($selected) ? "selected='selected'" : null).">global_set</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:global_set ' ".(($selected) ? "selected='selected'" : null).">global_set</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//group
|
|
|
|
|
$selected = ($select_value == "group" || $select_value == "group:" || $select_value == "menu-exec-app:group") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='group:' ".(($selected) ? "selected='selected'" : null).">group</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:group ' ".(($selected) ? "selected='selected'" : null).">group</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//javascript
|
|
|
|
|
$selected = ($select_value == "javascript" || $select_value == "javascript:" || $select_value == "menu-exec-app:javascript") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='javascript:' ".(($selected) ? "selected='selected'" : null).">javascript</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:javascript ' ".(($selected) ? "selected='selected'" : null).">javascript</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//lua
|
|
|
|
|
$selected = ($select_value == "lua" || $select_value == "lua:" || $select_value == "menu-exec-app:lua") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='lua:' ".(($selected) ? "selected='selected'" : null).">lua</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:lua ' ".(($selected) ? "selected='selected'" : null).">lua</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//perl
|
|
|
|
|
$selected = ($select_value == "perl" || $select_value == "perl:" || $select_value == "menu-exec-app:perl") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='perl:' ".(($selected) ? "selected='selected'" : null).">perl</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:perl ' ".(($selected) ? "selected='selected'" : null).">perl</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//reject
|
|
|
|
|
$selected = ($select_value == "reject" || $select_value == "menu-exec-app:reject") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='reject' ".(($selected) ? "selected='selected'" : null).">reject</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:reject' ".(($selected) ? "selected='selected'" : null).">reject</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//set
|
|
|
|
|
$selected = ($select_value == "set" || $select_value == "set:" || $select_value == "menu-exec-app:set") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='set:' ".(($selected) ? "selected='selected'" : null).">set</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:set ' ".(($selected) ? "selected='selected'" : null).">set</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//sleep
|
|
|
|
|
$selected = ($select_value == "sleep" || $select_value == "sleep:" || $select_value == "menu-exec-app:sleep") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='sleep:' ".(($selected) ? "selected='selected'" : null).">sleep</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:sleep ' ".(($selected) ? "selected='selected'" : null).">sleep</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
//transfer
|
|
|
|
|
$selected = ($select_value == "transfer" || $select_value == "transfer:" || $select_value == "menu-exec-app:transfer") ? true : false;
|
|
|
|
|
if ($select_type == "dialplan") {
|
|
|
|
|
$options[] = "<option value='transfer:' ".(($selected) ? "selected='selected'" : null).">transfer</option>";
|
|
|
|
|
}
|
|
|
|
|
else if ($select_type == "ivr") {
|
|
|
|
|
$options[] = "<option value='menu-exec-app:transfer ' ".(($selected) ? "selected='selected'" : null).">transfer</option>";
|
|
|
|
|
}
|
|
|
|
|
if ($selected) { $selection_found = true; }
|
|
|
|
|
}
|
|
|
|
|
$options[] = "</optgroup>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//custom
|
|
|
|
|
if (!$selection_found && $select_value != '') {
|
|
|
|
|
array_unshift($options,
|
|
|
|
|
"<option value='".$select_value."' selected='selected'>".$select_value."</option>",
|
|
|
|
|
"<option value='' disabled='disabled'></option>"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//output options
|
|
|
|
|
if (sizeof($options)>0) {
|
|
|
|
|
echo implode("\n",$options);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
echo " </select>\n";
|
|
|
|
|
if (if_group("superadmin")) {
|
|
|
|
|
echo "<input type='button' id='btn_select_to_input_".$select_id."' class='btn' name='' alt='back' onclick='changeToInput".$select_id."(document.getElementById(\"".$select_id."\"));this.style.visibility = \"hidden\";' value='◁'>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function save_setting_xml() {
|
|
|
|
|
global $db, $domain_uuid, $host, $config;
|
|
|
|
|
|
|
|
|
|
|