diff --git a/modules/campaign_monitoring/index.php b/modules/campaign_monitoring/index.php
index 132872e..ef383e6 100755
--- a/modules/campaign_monitoring/index.php
+++ b/modules/campaign_monitoring/index.php
@@ -73,6 +73,13 @@ function _moduleContent(&$smarty, $module_name)
function manejarMonitoreo_HTML($module_name, $smarty, $sDirLocalPlantillas)
{
+//obtenemos la extension actual del usuario activo
+global $arrConf;
+ $pDB = new paloDB($arrConf['issabel_dsn']['acl']);
+ $pACL = new paloACL($pDB);
+$user = $_SESSION['issabel_user'];
+$extension = $pACL->getUserExtension($user);
+
$smarty->assign("MODULE_NAME", $module_name);
$smarty->assign(array(
'title' => _tr('Campaign Monitoring'),
@@ -106,6 +113,7 @@ function manejarMonitoreo_HTML($module_name, $smarty, $sDirLocalPlantillas)
'ETIQUETA_MAX_DURAC_LLAM' => _tr('Maximum Call Duration'),
'ETIQUETA_PROMEDIO_DURAC_LLAM' => _tr('Average Call Duration'),
'ETIQUETA_OCULTAR_AGENTES' => _tr('Hide Offline Agents'),
+ 'EXTENSION_USUARIO' => _tr($extension)
));
return $smarty->fetch("file:$sDirLocalPlantillas/informacion_campania.tpl");
diff --git a/modules/campaign_monitoring/libs/escuchar_agente.php b/modules/campaign_monitoring/libs/escuchar_agente.php
new file mode 100644
index 0000000..642937a
--- /dev/null
+++ b/modules/campaign_monitoring/libs/escuchar_agente.php
@@ -0,0 +1,59 @@
+getUserExtension($issabel_user);
+//usamos solo la primera extensión como la valida para escuchar aunque el usuario tenga varias extensiones segun ampliacion codigo hgmnetwork.com 20-01-2019
+$array_extensiones=explode(";",$extension_verificada);
+$extension=$array_extensiones[0];//la primera por defecto
+//echo " la extension verificada es $extension_escucha y el id de usuario de sesion es $issabel_user
";
+//a la extension le quitamos el SIP/ o AGENT/ y dejamos solo el numero
+$extension=preg_replace("/(SIP\/|AGENT\/i)/","",$extension);//dejamos solo el numero
+//echo "
la extension del usuario es $array_extensiones[0] y la del usuario actual es ".$_GET['agente']."
";
+//lo mismo con el agente
+$agente =trim($_GET['agente']);
+$agente=preg_replace("/(SIP\/|AGENT\/)/i","",$agente);//dejamos solo el numero
+
+#permit=127.0.0.1/255.255.255.0,xxx.xxx.xxx.xxx ;(the ip address of the server this page is running on)
+$strHost = "127.0.0.1";
+
+#specify the username you want to login with (these users are defined in /etc/asterisk/manager.conf) o en manager_custom.conf
+#por defecto usamos el usuario de php que viene
+$strUser = "phpconfig";
+
+#specify the password for the above user
+$strSecret = "php[onfig";
+
+$oSocket = fsockopen($strHost, 5038, $errnum, $errdesc) or die("Connection to host failed libs/escuchar_agente.php");
+
+$from = $extension;//quien escucha
+ $to = $agente;//quien es escuchado el agente
+ fputs($oSocket, "Action: Login\r\n");
+ fputs($oSocket, "UserName: $strUser\r\n");
+ fputs($oSocket, "Secret: $strSecret\r\n\r\n");
+ $wrets=fgets($oSocket,128);
+ fputs($oSocket, "Action: Originate\r\n" );
+fputs($oSocket, "CallerId: Whisper Agente: $agente\r\n");
+ //fputs($oSocket, "Channel: SIP/".$from."\r\n" );
+ fputs($oSocket, "Channel: local/".$from."\r\n" );
+ fputs($oSocket, "Application: ChanSpy\r\n" );
+ fputs($oSocket, "Data: SIP/".$to."\r\n\r\n" );
+ $wrets=fgets($oSocket,128);
+ sleep(3);
+
+fclose($oSocket);
+echo "Realizando Whisper al Agente $agente y a la extensión $extension";
diff --git a/modules/campaign_monitoring/themes/default/informacion_campania.tpl b/modules/campaign_monitoring/themes/default/informacion_campania.tpl
index f69d7c1..7c8766c 100755
--- a/modules/campaign_monitoring/themes/default/informacion_campania.tpl
+++ b/modules/campaign_monitoring/themes/default/informacion_campania.tpl
@@ -138,7 +138,7 @@
{literal}{{#view tagName="tbody"}}
{{#each agentes}}
- | {{canal}} |
+ OnClick="javascript:escuchar(this.innerHTML,'{/literal}{$EXTENSION_USUARIO}{literal}');"> {{canal}} |
{{estado}} |
{{numero}} |
{{troncal}} |
@@ -184,4 +184,4 @@ function toggleOffline(){
elem.style.display = 'none';
}
}
-
\ No newline at end of file
+
diff --git a/modules/campaign_monitoring/themes/default/js/javascript.js b/modules/campaign_monitoring/themes/default/js/javascript.js
index fa9de52..1962550 100644
--- a/modules/campaign_monitoring/themes/default/js/javascript.js
+++ b/modules/campaign_monitoring/themes/default/js/javascript.js
@@ -534,4 +534,34 @@ function mostrar_mensaje_error(s)
$('#issabel-callcenter-error-message').fadeOut();
}, 5000);
});
-}
\ No newline at end of file
+}
+
+function escuchar(agente,extension){
+ //reemplazamos cualquier etiqueta dejando solo el texto del agente por ejemplo SIP/agente o A/agente Agent/agente SIP/5001 A/5001
+ const regex = /(<([^>]+)>)/ig;
+ var agente = agente.replace(regex, '');
+ //ahora quitamos el espacio inicial o cualquiera
+ var agente = agente.replace(' ', '');
+
+ $.ajax({
+ url: "/modules/campaign_monitoring/libs/escuchar_agente.php",
+ type: "get", //send it through get method
+ data: {
+ agente: agente,
+ extension: extension,
+ },
+
+ success: function(response) {
+ //Do Something
+ console.log(response);
+ },
+ error: function(xhr) {
+ //Do Something to handle error
+ console.log('error escuchar_agente.php');
+ console.log(xhr);
+ alert("Se ha producido un error al intentar escuchar al adengte.")
+ }
+ });
+
+
+};