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.") + } + }); + + +};