diff --git a/app/call_center/app_languages.php b/app/call_center/app_languages.php index 550ffc5215..083d707003 100644 --- a/app/call_center/app_languages.php +++ b/app/call_center/app_languages.php @@ -35,16 +35,6 @@ $text['title-call_center_agent_status']['pt-pt'] = "Estado do Agente do Call Center"; $text['title-call_center_agent_status']['fr-fr'] = "Etat de l'agent"; - $text['title-call_center_tiers']['en-us'] = "Call Center Tiers"; - $text['title-call_center_tiers']['es-cl'] = "Niveles de Centro de Llamados"; - $text['title-call_center_tiers']['pt-pt'] = "Níveis do Call Center"; - $text['title-call_center_tiers']['fr-fr'] = "Tiers"; - - $text['title-call_center_tier_add']['en-us'] = "Call Center Tier Add"; - $text['title-call_center_tier_add']['es-cl'] = "Agregar Nivel de Centro de Llamados"; - $text['title-call_center_tier_add']['pt-pt'] = "Adicionar Nível ao Call Center"; - $text['title-call_center_tier_add']['fr-fr'] = "Ajouter un Tier"; - $text['title-call_center_tier_edit']['en-us'] = "Call Center Tier Edit"; $text['title-call_center_tier_edit']['es-cl'] = "Editar Nivel de Centro de Llamados"; $text['title-call_center_tier_edit']['pt-pt'] = "Editar Nível do Call Center"; @@ -85,16 +75,6 @@ $text['header-call_center_agent_status']['pt-pt'] = "Estado do Agente do Call Center"; $text['header-call_center_agent_status']['fr-fr'] = "Etat de l'agent"; - $text['header-call_center_tiers']['en-us'] = "Call Center Tiers"; - $text['header-call_center_tiers']['es-cl'] = "Niveles de Centro de Llamados"; - $text['header-call_center_tiers']['pt-pt'] = "Níveis do Call Center"; - $text['header-call_center_tiers']['fr-fr'] = "Tiers"; - - $text['header-call_center_tier_add']['en-us'] = "Call Center Tier Add"; - $text['header-call_center_tier_add']['es-cl'] = "Agregar Nivel de Centro de Llamados"; - $text['header-call_center_tier_add']['pt-pt'] = "Adicionar Nível ao Call Center"; - $text['header-call_center_tier_add']['fr-fr'] = "Ajouter un Tier"; - $text['header-call_center_tier_edit']['en-us'] = "Call Center Tier Edit"; $text['header-call_center_tier_edit']['es-cl'] = "Editar Nivel de Centro de Llamados"; $text['header-call_center_tier_edit']['pt-pt'] = "Editar Nível do Call Center"; @@ -115,11 +95,6 @@ $text['description-call_center_agent_status']['pt-pt'] = "Lista todas as chamadas do Call Center com a opção de alterar o estado de um ou mais agentes."; $text['description-call_center_agent_status']['fr-fr'] = "Liste tous les agents du centre d'appel avec la possibilité de modifier l'état d'un ou plusieur agent."; - $text['description-call_center_tiers']['en-us'] = "List all tiers. Tiers assign agents to queues."; - $text['description-call_center_tiers']['es-cl'] = "Lista todos los niveles. Los niveles asignan agentes a las colas."; - $text['description-call_center_tiers']['pt-pt'] = "Lista todos os níveis. Os níveis atribuem agentes às filas."; - $text['description-call_center_tiers']['fr-fr'] = "Liste tous les Tiers. Les Tiers permettent d'affecter les agents aux queues."; - $text['label-queue_name']['en-us'] = "Queue Name"; $text['label-queue_name']['es-cl'] = "Nombre de Cola"; $text['label-queue_name']['pt-pt'] = "Nome da Fila"; @@ -169,6 +144,11 @@ $text['label-record_template']['pt-pt'] = "Gravar Template"; $text['label-record_template']['fr-fr'] = "Modèle d'enregistrement"; + $text['label-tiers']['en-us'] = "Tiers"; + $text['label-tiers']['es-cl'] = "Niveles de Centro de Llamados"; + $text['label-tiers']['pt-pt'] = "Níveis do Call Center"; + $text['label-tiers']['fr-fr'] = "Tiers"; + $text['label-time_base_score']['en-us'] = "Time Base Score"; $text['label-time_base_score']['es-cl'] = "Puntuación basada en tiempo"; $text['label-time_base_score']['pt-pt'] = "Pontuação baseada no tempo"; @@ -335,6 +315,11 @@ $text['description-record_template']['pt-pt'] = "Introduza um template de gravação. \$\${base_dir}/recordings/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}/\${uuid}.wav"; $text['description-record_template']['fr-fr'] = "Entrer un modèle d\'enregistrement. \$\${base_dir}/recordings/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}/\${uuid}.wav"; + $text['description-tiers']['en-us'] = "Tiers assign agents to queues."; + $text['description-tiers']['es-cl'] = "Lista todos los niveles. Los niveles asignan agentes a las colas."; + $text['description-tiers']['pt-pt'] = "Lista todos os níveis. Os níveis atribuem agentes às filas."; + $text['description-tiers']['fr-fr'] = "Liste tous les Tiers. Les Tiers permettent d'affecter les agents aux queues."; + $text['description-time_base_score']['en-us'] = "Select the time base score."; $text['description-time_base_score']['es-cl'] = "Seleccione el tiempo base"; $text['description-time_base_score']['pt-pt'] = "Seleccione o tempo base "; @@ -400,7 +385,7 @@ $text['description-description']['pt-pt'] = "Introduza uma descrição, se desejar."; $text['description-description']['fr-fr'] = ""; - $text['description-agent_name']['en-us'] = "Select the agents name."; + $text['description-agent_name']['en-us'] = "Select the agent name."; $text['description-agent_name']['es-cl'] = "Seleccione el nombre del agente."; $text['description-agent_name']['pt-pt'] = "Seleccione o nome dos agentes."; $text['description-agent_name']['fr-fr'] = ""; diff --git a/app/call_center/call_center_queue_edit.php b/app/call_center/call_center_queue_edit.php index 3e2c329da7..bb79ed18b9 100644 --- a/app/call_center/call_center_queue_edit.php +++ b/app/call_center/call_center_queue_edit.php @@ -83,6 +83,51 @@ else { $queue_cid_prefix = str_replace("/", "", $queue_cid_prefix); } +//delete the tier (agent from the queue) + if ($_REQUEST["delete_type"] == "tier" && strlen($_REQUEST["delete_uuid"]) > 0 && permission_exists("call_center_tier_delete")) { + //set the variables + $call_center_queue_uuid = check_str($_REQUEST["id"]); + $tier_uuid = check_str($_REQUEST["delete_uuid"]); + //get the agent details + $sql = " + select + agent_name, + queue_name + from + v_call_center_tiers + where + domain_uuid = '".$domain_uuid."' and + call_center_tier_uuid = '".$tier_uuid."' + "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach ($result as &$row) { + $agent_name = $row["agent_name"]; + $queue_name = $row["queue_name"]; + break; //limit to 1 row + } + unset ($prep_statement); + //delete the agent from freeswitch + //get the domain using the $domain_uuid + $tmp_domain = $_SESSION['domains'][$domain_uuid]['domain_name']; + //setup the event socket connection + $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); + //delete the agent over event socket + if ($fp) { + //callcenter_config tier del [queue_name] [agent_name] + $cmd = "api callcenter_config tier del ".$queue_name."@".$tmp_domain." ".$agent_name."@".$_SESSION['domains'][$domain_uuid]['domain_name']; + $response = event_socket_request($fp, $cmd); + } + //delete the tier from the database + if (strlen($tier_uuid)>0) { + $sql = "delete from v_call_center_tiers where domain_uuid = '".$domain_uuid."' and call_center_tier_uuid = '".$tier_uuid."'"; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + unset($sql); + } + } + if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { $msg = ''; @@ -188,8 +233,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { } $_SESSION["message"] = $text['message-add']; - header("Location: call_center_queues.php"); - return; } //if ($action == "add") if ($action == "update") { @@ -229,9 +272,72 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { } $_SESSION["message"] = $text['message-update']; - header("Location: call_center_queues.php"); - return; } //if ($action == "update") + + //add agent/tier to queue + $agent_name = check_str($_POST["agent_name"]); + $tier_level = check_str($_POST["tier_level"]); + $tier_position = check_str($_POST["tier_position"]); + + if ($agent_name != '') { + //add the agent + //setup the event socket connection + $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); + //add the agent using event socket + if ($fp) { + //get the domain using the $domain_uuid + $tmp_domain = $_SESSION['domains'][$domain_uuid]['domain_name']; + /* syntax: + callcenter_config tier add [queue_name] [agent_name] [level] [position] + callcenter_config tier set state [queue_name] [agent_name] [state] + callcenter_config tier set level [queue_name] [agent_name] [level] + callcenter_config tier set position [queue_name] [agent_name] [position] + */ + //add the agent + $cmd = "api callcenter_config tier add ".$queue_name."@".$tmp_domain." ".$agent_name."@".$tmp_domain." ".$tier_level." ".$tier_position; + $response = event_socket_request($fp, $cmd); + usleep(200); + //agent set level + $cmd = "api callcenter_config tier set level ".$queue_name."@".$tmp_domain." ".$agent_name."@".$tmp_domain." ".$tier_level; + $response = event_socket_request($fp, $cmd); + usleep(200); + //agent set position + $cmd = "api callcenter_config tier set position ".$queue_name."@".$tmp_domain." ".$agent_name."@".$tmp_domain." ".$tier_position; + $response = event_socket_request($fp, $cmd); + usleep(200); + } + + //add tier to database + $call_center_tier_uuid = uuid(); + $sql = "insert into v_call_center_tiers "; + $sql .= "("; + $sql .= "domain_uuid, "; + $sql .= "call_center_tier_uuid, "; + $sql .= "agent_name, "; + $sql .= "queue_name, "; + $sql .= "tier_level, "; + $sql .= "tier_position "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + $sql .= "'$domain_uuid', "; + $sql .= "'$call_center_tier_uuid', "; + $sql .= "'$agent_name', "; + $sql .= "'$queue_name', "; + $sql .= "'$tier_level', "; + $sql .= "'$tier_position' "; + $sql .= ")"; + $db->exec(check_sql($sql)); + unset($sql); + + //syncrhonize configuration + save_call_center_xml(); + } + + //redirect + header("Location: call_center_queue_edit.php?id=".$call_center_queue_uuid); + return; + } //if ($_POST["persistformvar"] != "true") } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) @@ -318,7 +424,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { echo " \n"; echo " \n"; } - echo " \n"; + echo " \n"; echo "\n"; echo "\n"; echo "
| ".$text['label-agent_name']." | \n"; + echo "".$text['label-tier_level']." | \n"; + echo "".$text['label-tier_position']." | \n"; + echo "\n"; + echo " |
| ".$field['agent_name']." | \n"; + echo "".$field['tier_level']." | \n"; + echo "".$field['tier_position']." | \n"; + echo ""; + if (permission_exists('call_center_tier_edit')) { + echo "".$v_link_label_edit.""; + } + if (permission_exists('call_center_tier_delete')) { + echo "".$v_link_label_delete.""; + } + echo " | \n"; + echo "
| \n"; + echo " "; + echo " | \n"; + echo "\n"; + echo " \n"; + echo " | \n"; + echo "\n"; + echo " \n"; + echo " | \n"; + echo ""; + echo " \n"; + echo " | \n"; + echo "
| ".$text['header-call_center_tier_add']." | \n"; - } - if ($action == "update") { - echo "".$text['header-call_center_tier_edit']." | \n"; - } + echo "".$text['header-call_center_tier_edit']." | \n"; echo ""; - echo " "; + echo " "; echo " \n"; echo " | \n"; echo "
| \n"; - if ($action == "update") { - echo " \n"; - } - echo " \n"; - echo " | \n"; - echo "|||
| \n"; + echo " \n"; + echo " \n"; + echo " | \n"; + echo "|||
| \n";
- echo " "; - - echo "
\n";
- echo " ";
- echo "
"; - echo " "; - - echo " | ";
- echo "|||||||||||||||||||