Example #1
0
 function save_call_center_xml()
 {
     global $db, $domain_uuid;
     if (strlen($_SESSION['switch']['call_center']['dir']) > 0) {
         //include the classes
         include "app/dialplan/resources/classes/dialplan.php";
         $sql = "select * from v_call_center_queues ";
         $prep_statement = $db->prepare(check_sql($sql));
         $prep_statement->execute();
         $result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
         $result_count = count($result);
         unset($prep_statement, $sql);
         if ($result_count > 0) {
             foreach ($result as $row) {
                 //set the variables
                 $call_center_queue_uuid = $row["call_center_queue_uuid"];
                 $domain_uuid = $row["domain_uuid"];
                 $dialplan_uuid = $row["dialplan_uuid"];
                 $queue_name = check_str($row["queue_name"]);
                 $queue_extension = $row["queue_extension"];
                 $queue_strategy = $row["queue_strategy"];
                 $queue_moh_sound = $row["queue_moh_sound"];
                 $queue_record_template = $row["queue_record_template"];
                 $queue_time_base_score = $row["queue_time_base_score"];
                 $queue_max_wait_time = $row["queue_max_wait_time"];
                 $queue_max_wait_time_with_no_agent = $row["queue_max_wait_time_with_no_agent"];
                 $queue_tier_rules_apply = $row["queue_tier_rules_apply"];
                 $queue_tier_rule_wait_second = $row["queue_tier_rule_wait_second"];
                 $queue_tier_rule_wait_multiply_level = $row["queue_tier_rule_wait_multiply_level"];
                 $queue_tier_rule_no_agent_no_wait = $row["queue_tier_rule_no_agent_no_wait"];
                 $queue_timeout_action = $row["queue_timeout_action"];
                 $queue_discard_abandoned_after = $row["queue_discard_abandoned_after"];
                 $queue_abandoned_resume_allowed = $row["queue_abandoned_resume_allowed"];
                 $queue_cid_prefix = $row["queue_cid_prefix"];
                 $queue_announce_sound = $row["queue_announce_sound"];
                 $queue_announce_frequency = $row["queue_announce_frequency"];
                 $queue_description = check_str($row["queue_description"]);
                 //replace space with an underscore
                 $queue_name = str_replace(" ", "_", $queue_name);
                 //add each Queue to the dialplan
                 if (strlen($row['call_center_queue_uuid']) > 0) {
                     $action = 'add';
                     //set default action to add
                     $i = 0;
                     //determine the action add or update
                     if (strlen($dialplan_uuid) > 0) {
                         $sql = "select * from v_dialplans ";
                         $sql .= "where dialplan_uuid = '" . $dialplan_uuid . "' ";
                         $prep_statement_2 = $db->prepare($sql);
                         $prep_statement_2->execute();
                         while ($row2 = $prep_statement_2->fetch(PDO::FETCH_ASSOC)) {
                             $action = 'update';
                         }
                         unset($sql, $prep_statement_2);
                     }
                     if ($action == 'add') {
                         //create queue entry in the dialplan
                         $dialplan_name = $queue_name;
                         $dialplan_order = '210';
                         $dialplan_context = $_SESSION['context'];
                         $dialplan_enabled = 'true';
                         $dialplan_description = $queue_description;
                         $app_uuid = '95788e50-9500-079e-2807-fd530b0ea370';
                         $dialplan_uuid = uuid();
                         dialplan_add($domain_uuid, $dialplan_uuid, $dialplan_name, $dialplan_order, $dialplan_context, $dialplan_enabled, $dialplan_description, $app_uuid);
                         //add the dialplan_uuid to the call center table
                         $sql = "update v_call_center_queues set ";
                         $sql .= "dialplan_uuid = '{$dialplan_uuid}' ";
                         $sql .= "where domain_uuid = '{$domain_uuid}' ";
                         $sql .= "and call_center_queue_uuid = '" . $row['call_center_queue_uuid'] . "' ";
                         $db->exec(check_sql($sql));
                         unset($sql);
                     }
                     if ($action == 'update') {
                         //add the dialplan_uuid to the call center table
                         $sql = "update v_dialplans set ";
                         $sql .= "dialplan_name = '" . $queue_name . "', ";
                         $sql .= "dialplan_description = '" . $queue_description . "' ";
                         $sql .= "where domain_uuid = '" . $domain_uuid . "' ";
                         $sql .= "and dialplan_uuid = '" . $dialplan_uuid . "' ";
                         $db->exec(check_sql($sql));
                         unset($sql);
                         //add the dialplan_uuid to the call center table
                         $sql = "delete from v_dialplan_details ";
                         $sql .= "where domain_uuid = '{$domain_uuid}' ";
                         $sql .= "and dialplan_uuid = '{$dialplan_uuid}' ";
                         $db->exec(check_sql($sql));
                         unset($sql);
                     }
                     //group 1
                     $dialplan = new dialplan();
                     $dialplan->domain_uuid = $domain_uuid;
                     $dialplan->dialplan_uuid = $dialplan_uuid;
                     $dialplan->dialplan_detail_tag = 'condition';
                     //condition, action, antiaction
                     $dialplan->dialplan_detail_type = '${caller_id_name}';
                     $dialplan->dialplan_detail_data = '^([^#]+#)(.*)$';
                     $dialplan->dialplan_detail_break = 'never';
                     $dialplan->dialplan_detail_inline = '';
                     $dialplan->dialplan_detail_group = '1';
                     $dialplan->dialplan_detail_order = '010';
                     $dialplan->dialplan_detail_add();
                     unset($dialplan);
                     $dialplan = new dialplan();
                     $dialplan->domain_uuid = $domain_uuid;
                     $dialplan->dialplan_uuid = $dialplan_uuid;
                     $dialplan->dialplan_detail_tag = 'action';
                     //condition, action, antiaction
                     $dialplan->dialplan_detail_type = 'set';
                     $dialplan->dialplan_detail_data = 'caller_id_name=$2';
                     $dialplan->dialplan_detail_break = '';
                     $dialplan->dialplan_detail_inline = '';
                     $dialplan->dialplan_detail_group = '1';
                     $dialplan->dialplan_detail_order = '020';
                     $dialplan->dialplan_detail_add();
                     unset($dialplan);
                     //group 2
                     $dialplan = new dialplan();
                     $dialplan->domain_uuid = $domain_uuid;
                     $dialplan->dialplan_uuid = $dialplan_uuid;
                     $dialplan->dialplan_detail_tag = 'condition';
                     //condition, action, antiaction
                     $dialplan->dialplan_detail_type = 'destination_number';
                     $dialplan->dialplan_detail_data = '^' . $row['queue_extension'] . '$';
                     $dialplan->dialplan_detail_break = '';
                     $dialplan->dialplan_detail_inline = '';
                     $dialplan->dialplan_detail_group = '2';
                     $dialplan->dialplan_detail_order = '010';
                     $dialplan->dialplan_detail_add();
                     unset($dialplan);
                     $dialplan = new dialplan();
                     $dialplan->domain_uuid = $domain_uuid;
                     $dialplan->dialplan_uuid = $dialplan_uuid;
                     $dialplan->dialplan_detail_tag = 'action';
                     //condition, action, antiaction
                     $dialplan->dialplan_detail_type = 'answer';
                     $dialplan->dialplan_detail_data = '';
                     $dialplan->dialplan_detail_break = '';
                     $dialplan->dialplan_detail_inline = '';
                     $dialplan->dialplan_detail_group = '2';
                     $dialplan->dialplan_detail_order = '020';
                     $dialplan->dialplan_detail_add();
                     unset($dialplan);
                     $dialplan = new dialplan();
                     $dialplan->domain_uuid = $domain_uuid;
                     $dialplan->dialplan_uuid = $dialplan_uuid;
                     $dialplan->dialplan_detail_tag = 'action';
                     //condition, action, antiaction
                     $dialplan->dialplan_detail_type = 'set';
                     $dialplan->dialplan_detail_data = 'hangup_after_bridge=true';
                     $dialplan->dialplan_detail_break = '';
                     $dialplan->dialplan_detail_inline = '';
                     $dialplan->dialplan_detail_group = '2';
                     $dialplan->dialplan_detail_order = '030';
                     $dialplan->dialplan_detail_add();
                     unset($dialplan);
                     if (strlen($queue_cid_prefix) > 0) {
                         $dialplan = new dialplan();
                         $dialplan->domain_uuid = $domain_uuid;
                         $dialplan->dialplan_uuid = $dialplan_uuid;
                         $dialplan->dialplan_detail_tag = 'action';
                         //condition, action, antiaction
                         $dialplan->dialplan_detail_type = 'set';
                         $dialplan->dialplan_detail_data = "effective_caller_id_name=" . $queue_cid_prefix . "-\${caller_id_name}";
                         $dialplan->dialplan_detail_break = '';
                         $dialplan->dialplan_detail_inline = '';
                         $dialplan->dialplan_detail_group = '2';
                         $dialplan->dialplan_detail_order = '040';
                         $dialplan->dialplan_detail_add();
                         unset($dialplan);
                     }
                     $dialplan = new dialplan();
                     $dialplan->domain_uuid = $domain_uuid;
                     $dialplan->dialplan_uuid = $dialplan_uuid;
                     $dialplan->dialplan_detail_tag = 'action';
                     //condition, action, antiaction
                     $dialplan->dialplan_detail_type = 'callcenter';
                     $dialplan->dialplan_detail_data = $queue_name . "@" . $_SESSION['domains'][$domain_uuid]['domain_name'];
                     $dialplan->dialplan_detail_break = '';
                     $dialplan->dialplan_detail_inline = '';
                     $dialplan->dialplan_detail_group = '2';
                     $dialplan->dialplan_detail_order = '050';
                     $dialplan->dialplan_detail_add();
                     unset($dialplan);
                     if (strlen($queue_timeout_action) > 0) {
                         $action_array = explode(":", $queue_timeout_action);
                         $dialplan = new dialplan();
                         $dialplan->domain_uuid = $domain_uuid;
                         $dialplan->dialplan_uuid = $dialplan_uuid;
                         $dialplan->dialplan_detail_tag = 'action';
                         //condition, action, antiaction
                         $dialplan->dialplan_detail_type = $action_array[0];
                         $dialplan->dialplan_detail_data = substr($queue_timeout_action, strlen($action_array[0]) + 1, strlen($queue_timeout_action));
                         $dialplan->dialplan_detail_break = '';
                         $dialplan->dialplan_detail_inline = '';
                         $dialplan->dialplan_detail_group = '2';
                         $dialplan->dialplan_detail_order = '060';
                         $dialplan->dialplan_detail_add();
                         unset($dialplan);
                     }
                     $dialplan = new dialplan();
                     $dialplan->domain_uuid = $domain_uuid;
                     $dialplan->dialplan_uuid = $dialplan_uuid;
                     $dialplan->dialplan_detail_tag = 'action';
                     //condition, action, antiaction
                     $dialplan->dialplan_detail_type = 'hangup';
                     $dialplan->dialplan_detail_data = '';
                     $dialplan->dialplan_detail_break = '';
                     $dialplan->dialplan_detail_inline = '';
                     $dialplan->dialplan_detail_group = '2';
                     $dialplan->dialplan_detail_order = '070';
                     $dialplan->dialplan_detail_add();
                     unset($dialplan);
                     //synchronize the xml config
                     save_dialplan_xml();
                     //unset variables
                     unset($action);
                 }
                 //end if strlen call_center_queue_uuid; add the call center queue to the dialplan
             }
             //prepare Queue XML string
             $v_queues = '';
             $sql = "select * from v_call_center_queues ";
             $prep_statement = $db->prepare(check_sql($sql));
             $prep_statement->execute();
             $result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
             $x = 0;
             foreach ($result as &$row) {
                 $queue_name = $row["queue_name"];
                 $queue_extension = $row["queue_extension"];
                 $queue_strategy = $row["queue_strategy"];
                 $queue_moh_sound = $row["queue_moh_sound"];
                 $queue_record_template = $row["queue_record_template"];
                 $queue_time_base_score = $row["queue_time_base_score"];
                 $queue_max_wait_time = $row["queue_max_wait_time"];
                 $queue_max_wait_time_with_no_agent = $row["queue_max_wait_time_with_no_agent"];
                 $queue_tier_rules_apply = $row["queue_tier_rules_apply"];
                 $queue_tier_rule_wait_second = $row["queue_tier_rule_wait_second"];
                 $queue_tier_rule_wait_multiply_level = $row["queue_tier_rule_wait_multiply_level"];
                 $queue_tier_rule_no_agent_no_wait = $row["queue_tier_rule_no_agent_no_wait"];
                 $queue_discard_abandoned_after = $row["queue_discard_abandoned_after"];
                 $queue_abandoned_resume_allowed = $row["queue_abandoned_resume_allowed"];
                 $queue_announce_sound = $row["queue_announce_sound"];
                 $queue_announce_frequency = $row["queue_announce_frequency"];
                 $queue_description = $row["queue_description"];
                 if ($x > 0) {
                     $v_queues .= "\n";
                     $v_queues .= "\t\t";
                 }
                 $v_queues .= "<queue name=\"{$queue_name}@" . $_SESSION['domains'][$row["domain_uuid"]]['domain_name'] . "\">\n";
                 $v_queues .= "\t\t\t<param name=\"strategy\" value=\"{$queue_strategy}\"/>\n";
                 if (strlen($queue_moh_sound) == 0) {
                     $v_queues .= "\t\t\t<param name=\"moh-sound\" value=\"local_stream://default\"/>\n";
                 } else {
                     if (substr($queue_moh_sound, 0, 15) == 'local_stream://') {
                         $v_queues .= "\t\t\t<param name=\"moh-sound\" value=\"" . $queue_moh_sound . "\"/>\n";
                     } elseif (substr($queue_moh_sound, 0, 2) == '${' && substr($queue_moh_sound, -5) == 'ring}') {
                         $v_queues .= "\t\t\t<param name=\"moh-sound\" value=\"tone_stream://" . $queue_moh_sound . ";loops=-1\"/>\n";
                     } else {
                         $v_queues .= "\t\t\t<param name=\"moh-sound\" value=\"" . $queue_moh_sound . "\"/>\n";
                     }
                 }
                 if (strlen($queue_record_template) > 0) {
                     $v_queues .= "\t\t\t<param name=\"record-template\" value=\"{$queue_record_template}\"/>\n";
                 }
                 $v_queues .= "\t\t\t<param name=\"time-base-score\" value=\"{$queue_time_base_score}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"max-wait-time\" value=\"{$queue_max_wait_time}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"max-wait-time-with-no-agent\" value=\"{$queue_max_wait_time_with_no_agent}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"max-wait-time-with-no-agent-time-reached\" value=\"{$queue_max_wait_time_with_no_agent_time_reached}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"tier-rules-apply\" value=\"{$queue_tier_rules_apply}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"tier-rule-wait-second\" value=\"{$queue_tier_rule_wait_second}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"tier-rule-wait-multiply-level\" value=\"{$queue_tier_rule_wait_multiply_level}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"tier-rule-no-agent-no-wait\" value=\"{$queue_tier_rule_no_agent_no_wait}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"discard-abandoned-after\" value=\"{$queue_discard_abandoned_after}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"abandoned-resume-allowed\" value=\"{$queue_abandoned_resume_allowed}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"announce-sound\" value=\"{$queue_announce_sound}\"/>\n";
                 $v_queues .= "\t\t\t<param name=\"announce-frequency\" value=\"{$queue_announce_frequency}\"/>\n";
                 $v_queues .= "\t\t</queue>";
                 $x++;
             }
             unset($prep_statement);
             //prepare Agent XML string
             $v_agents = '';
             $sql = "select * from v_call_center_agents ";
             $prep_statement = $db->prepare(check_sql($sql));
             $prep_statement->execute();
             $result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
             $x = 0;
             foreach ($result as &$row) {
                 //get the values from the db and set as php variables
                 $agent_name = $row["agent_name"];
                 $agent_type = $row["agent_type"];
                 $agent_call_timeout = $row["agent_call_timeout"];
                 $agent_contact = $row["agent_contact"];
                 $agent_status = $row["agent_status"];
                 $agent_no_answer_delay_time = $row["agent_no_answer_delay_time"];
                 $agent_max_no_answer = $row["agent_max_no_answer"];
                 $agent_wrap_up_time = $row["agent_wrap_up_time"];
                 $agent_reject_delay_time = $row["agent_reject_delay_time"];
                 $agent_busy_delay_time = $row["agent_busy_delay_time"];
                 if ($x > 0) {
                     $v_agents .= "\n";
                     $v_agents .= "\t\t";
                 }
                 //get and then set the complete agent_contact with the call_timeout and when necessary confirm
                 //$tmp_confirm = "group_confirm_file=custom/press_1_to_accept_this_call.wav,group_confirm_key=1";
                 //if you change this variable also change app/call_center/call_center_agent_edit.php
                 $tmp_confirm = "group_confirm_file=custom/press_1_to_accept_this_call.wav,group_confirm_key=1,group_confirm_read_timeout=2000,leg_timeout=" . $agent_call_timeout;
                 if (strstr($agent_contact, '}') === FALSE) {
                     //not found
                     if (stristr($agent_contact, 'sofia/gateway') === FALSE) {
                         //add the call_timeout
                         $tmp_agent_contact = "{call_timeout=" . $agent_call_timeout . "}" . $agent_contact;
                     } else {
                         //add the call_timeout and confirm
                         $tmp_agent_contact = $tmp_first . ',call_timeout=' . $agent_call_timeout . $tmp_last;
                         $tmp_agent_contact = "{" . $tmp_confirm . ",call_timeout=" . $agent_call_timeout . "}" . $agent_contact;
                     }
                 } else {
                     //found
                     if (stristr($agent_contact, 'sofia/gateway') === FALSE) {
                         //not found
                         if (stristr($agent_contact, 'call_timeout') === FALSE) {
                             //add the call_timeout
                             $tmp_pos = strrpos($agent_contact, "}");
                             $tmp_first = substr($agent_contact, 0, $tmp_pos);
                             $tmp_last = substr($agent_contact, $tmp_pos);
                             $tmp_agent_contact = $tmp_first . ',call_timeout=' . $agent_call_timeout . $tmp_last;
                         } else {
                             //the string has the call timeout
                             $tmp_agent_contact = $agent_contact;
                         }
                     } else {
                         //found
                         $tmp_pos = strrpos($agent_contact, "}");
                         $tmp_first = substr($agent_contact, 0, $tmp_pos);
                         $tmp_last = substr($agent_contact, $tmp_pos);
                         if (stristr($agent_contact, 'call_timeout') === FALSE) {
                             //add the call_timeout and confirm
                             $tmp_agent_contact = $tmp_first . ',' . $tmp_confirm . ',call_timeout=' . $agent_call_timeout . $tmp_last;
                         } else {
                             //add confirm
                             $tmp_agent_contact = $tmp_first . ',' . $tmp_confirm . $tmp_last;
                         }
                     }
                 }
                 $v_agents .= "<agent ";
                 $v_agents .= "name=\"{$agent_name}@" . $_SESSION['domains'][$row["domain_uuid"]]['domain_name'] . "\" ";
                 $v_agents .= "type=\"{$agent_type}\" ";
                 $v_agents .= "contact=\"{$tmp_agent_contact}\" ";
                 $v_agents .= "status=\"{$agent_status}\" ";
                 $v_agents .= "no-answer-delay-time=\"{$agent_no_answer_delay_time}\" ";
                 $v_agents .= "max-no-answer=\"{$agent_max_no_answer}\" ";
                 $v_agents .= "wrap-up-time=\"{$agent_wrap_up_time}\" ";
                 $v_agents .= "reject-delay-time=\"{$agent_reject_delay_time}\" ";
                 $v_agents .= "busy-delay-time=\"{$agent_busy_delay_time}\" ";
                 $v_agents .= "/>";
                 $x++;
             }
             unset($prep_statement);
             //prepare Tier XML string
             $v_tiers = '';
             $sql = "select * from v_call_center_tiers ";
             $prep_statement = $db->prepare(check_sql($sql));
             $prep_statement->execute();
             $result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
             $x = 0;
             foreach ($result as &$row) {
                 $agent_name = $row["agent_name"];
                 $queue_name = $row["queue_name"];
                 $tier_level = $row["tier_level"];
                 $tier_position = $row["tier_position"];
                 if ($x > 0) {
                     $v_tiers .= "\n";
                     $v_tiers .= "\t\t";
                 }
                 $v_tiers .= "<tier agent=\"{$agent_name}@" . $_SESSION['domains'][$row["domain_uuid"]]['domain_name'] . "\" queue=\"{$queue_name}@" . $_SESSION['domains'][$row["domain_uuid"]]['domain_name'] . "\" level=\"{$tier_level}\" position=\"{$tier_position}\"/>";
                 $x++;
             }
             //set the path
             if (file_exists('/usr/share/examples/fusionpbx/resources/templates/conf')) {
                 $path = "/usr/share/examples/fusionpbx/resources/templates/conf";
             } else {
                 $path = $_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/resources/templates/conf";
             }
             //get the contents of the template
             $file_contents = file_get_contents($path . "/autoload_configs/callcenter.conf.xml");
             //add the Call Center Queues, Agents and Tiers to the XML config
             $file_contents = str_replace("{v_queues}", $v_queues, $file_contents);
             unset($v_queues);
             $file_contents = str_replace("{v_agents}", $v_agents, $file_contents);
             unset($v_agents);
             $file_contents = str_replace("{v_tiers}", $v_tiers, $file_contents);
             unset($v_tiers);
             //write the XML config file
             $fout = fopen($_SESSION['switch']['conf']['dir'] . "/autoload_configs/callcenter.conf.xml", "w");
             fwrite($fout, $file_contents);
             fclose($fout);
             //save the dialplan xml files
             save_dialplan_xml();
             //apply settings
             $_SESSION["reload_xml"] = true;
         }
     }
 }
Example #2
0
         if ($row['num_rows'] == 0) {
             $dialplan_type = "add";
         } else {
             $dialplan_type = "update";
         }
     }
 }
 if ($dialplan_type == "add") {
     //add the dialplan entry for fax
     $dialplan_name = $fax_name;
     $dialplan_order = '310';
     $dialplan_context = $_SESSION['context'];
     $dialplan_enabled = 'true';
     $dialplan_description = $fax_description;
     $app_uuid = '24108154-4ac3-1db6-1551-4731703a4440';
     dialplan_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_name, $dialplan_order, $dialplan_context, $dialplan_enabled, $dialplan_description, $app_uuid);
     //<!-- default ${domain_name} -->
     //<condition field="destination_number" expression="^\*9978$">
     $dialplan_detail_tag = 'condition';
     //condition, action, antiaction
     $dialplan_detail_type = 'destination_number';
     $dialplan_detail_data = '^' . $fax_destination_number . '$';
     $dialplan_detail_order = '010';
     $dialplan_detail_group = '';
     dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data);
     //<action application="answer" />
     $dialplan_detail_tag = 'action';
     //condition, action, antiaction
     $dialplan_detail_type = 'answer';
     $dialplan_detail_data = '';
     $dialplan_detail_order = '020';
Example #3
0
 if (strlen($queue_extension_number) > 0) {
     //--------------------------------------------------------
     //Caller Queue [FIFO in]
     //<extension name="Queue_Call_In">
     //	<condition field="destination_number" expression="^7011\$">
     //		<action application="set" data="fifo_music=$${hold_music}"/>
     //		<action application="answer"/>
     //		<action application="fifo" data="myq in"/>
     //	</condition>
     //</extension>
     //--------------------------------------------------------
     $queue_name = $extension_name . "@\${domain_name}";
     $app_uuid = '16589224-c876-aeb3-f59f-523a1c0801f7';
     $dialplan_uuid = uuid();
     $dialplan_context = $_SESSION['context'];
     dialplan_add($domain_uuid, $dialplan_uuid, $extension_name, $dialplan_order, $dialplan_context, $dialplan_enabled, $dialplan_description, $app_uuid);
     if (strlen($dialplan_uuid) > 0) {
         //set the destination number
         $dialplan_detail_tag = 'condition';
         //condition, action, antiaction
         $dialplan_detail_type = 'destination_number';
         $dialplan_detail_data = '^' . $queue_extension_number . '$';
         $dialplan_detail_order = '000';
         $dialplan_detail_group = '1';
         if (strlen($agent_queue_extension_number) > 0 || strlen($agent_login_logout_extension_number) > 0) {
             $dialplan_detail_break = 'on-true';
         } else {
             $dialplan_detail_break = '';
         }
         dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data, $dialplan_detail_break);
         //set the hold music