jueves, 11 de abril de 2013

Usuario para ver CDRs sin permisos de administrador en Elastix

Elastix es un proyecto opensource muy interesante, logrando mediante la integración de varios otros proyectos una solución de comunicaciones unificadas. Si bien su core es Asterisk, también logra funcionalidades extra integrando Hylafax, Openfire, Postfix, entre otros y por supuesto desarrollo interno y de la comunidad hacia este proyecto.

Posee un sistema de reportes muy bueno, si leemos la historia del proyecto su comienzo fue como un sistema de reportería para Asterisk y no como un sistema de comunicaciones unificadas. También maneja un esquema de usuarios/permisos en el cual permite generar distintos grupos con diferentes accesos a cada uno de los features.

Una de las cosas que entiendo le hace falta es poder generar un usuario/grupo para ver los reportes de llamadas sin necesidad de darle permisos de administrador. Si bien se puede crear, este puede ver únicamente los registros de la extensión asignada y no de todas las extensiones.


Por que necesitaría un usuario ver todos los reportes y no ser administrador?

Esta es una pregunta que me la hicieron en algún momento. Es sencillo de explicar con un ejemplo.
Supongamos que instalamos Elastix en una empresa, en la cual uno de los gerentes quiere tener reportes de cuantas llamadas entrantes/salientes tiene cada uno de sus empleados, así como también el detalle puntual de a donde llama cada uno. Como administrador del equipo no me daría confianza darle acceso a la configuración completa del sistema si lo que necesita ver es un simple reporte.

Existe alguna solución alternativa?

Por supuesto que si, es opensource!.

Como lo hago?

Antes que nada unas aclaraciones, esto no es un manual de Elastix, por lo que no verán detalles puntuales de la configuración del mismo.

Como siempre en toda modificación, solo comparto mi experiencia, yo lo probé en versiones 2.2, 2.3 y 2.4 de Elastix. Si van a aplicar modificaciones de código, lo hacen bajo su propio riesgo.

Ahora los pasos necesarios:

  • Crear un grupo de usuarios en Elastix, en mi caso el grupo se llama "Reportes" y asignarle los permisos de acuerdo a las necesidades.
  • Crear un usuario que sea miembro de este grupo pero que no tenga ninguna extensión asignada.

  • Ahora se debe modificar el código de una de las clases PHP.
    • Realizar copia del archivo "/var/www/html/libs/paloSantoACL.class.php" para tenerlo en caso de tener que hacer un rollback.
    • Editar el archivo original "/var/www/html/libs/paloSantoACL.class.php" y buscar la función "isUserAdministratorGroup", aparecerá de la siguiente forma:


    • Modificar la función, agregando un chequeo al array de grupos para ver si el usuario pertenece al grupo que creé anteriormente, cuidado el grupo debe coincidir con el creado anteriormente.

Eso es todo, intentar ingresar al sistema con el usuario creado y verificar los CDRs.

lunes, 8 de abril de 2013

Widescreen en Linux

Desde hace varios años poseo monitores cuya resolución nativa es widescreen, en mi caso 1360x768. En una de mis PCs tengo una tarjeta de video i915 la cual siempre me funciono correctamente, incluso en dicha resolución.
Este equipo es mi PC de LAB, por lo que han pasado infinidad de distros por ella. Pero aquí me he encontrado con algunos problemas, en todas las ultimas distros no me permite seleccionar una resolución de pantalla mayor a 1024x768, obviamente al intentar colocar una resolución 4:3 a un monitor 16:9 se ve realmente mal.

También me sucedió que al actualizar una distro (Debian 6 a Debian 7 (testing)), cuando inicia X me devolvió infinidad de errores, lo gracioso de esto es que en la versión anterior (Debian 6) me reconocía esta resolución desde la instalación sin aplicar ningún workarround.



Como agrego la nueva resolución?

Bueno esto va a depender un poco de la distro que posean en su equipo, en el siguiente ejemplo trabajaremos sobre Debian 7, luego de que me dejara de funcionar tras la actualización.

  • Ejecutar el comando xrandr, con este comando verificamos que realmente la resolución no este configurada, así como también el nombre del dispositivo, en este ejemplo el dispositivo es llamado VGA1.

  • Utilizamos el comando cvt para calcular los valores VESA y así poderlos configurar posteriormente. En este caso calculamos para una resolución de 1360x768.

  • Ahora ya tenemos todos los datos para generar el archivo con la configuración para nuestra nueva resolución. El mismo se debe colocar dentro del directorio xorg.conf.d, la ubicación del mismo va a depender de la distro, pero generalmente se encuentra en "/etc/X11/xorg.conf.d/" o "/usr/share/X11/xorg.conf.d", en algunas distros nuevas no existe este directorio por lo que van a tener que configurarlo en el init de lightdm o gdm dependiendo lo que utilicen.
    En mi caso utilizando Debian 7, genere un archivo con el nombre "00-monitor.conf" dentro del directorio "/usr/share/X11/xorg.conf.d", en el cual configuro los valores de ModeLine y dispositivo que obtuvimos anteriormente.

Luego de generar el archivo reiniciamos la PC y levantará la nueva resolución, podemos verificar nuevamente con un xrandr y al veremos disponible/seleccionada.