Integración CRM. Monitorizar extensiones. Generar PopUps

Es fundamental en los call centers, que cuando suena el teléfono del agente, se le abra un popup con la información del cliente que está llamando en ese instante. Hay varias formas de lograrlo, pero una de las más interesantes por su sencillez es utilizar el FOP (Flash Operator Panel), de Nicolás Gudiño.

De hecho, en la versión 0.27, ha incluido un nuevo control flash (comunicator.swf), que elimina la parte gráfica, y se convierte en un simple interfaz entre nuestro asterisk y el código javascript de nuestra página. Este control es ideal para integrar en aplicaciones CRM (Customer Relationship Management), como puede ser SugarCRM.

Lo que voy a mostrar en este post son los requisitos mínimos para que esto funcione. Voy a eliminar todo lo superfluo, de modo que sea más fácil de integrar con cualquier aplicación ya existente, que es lo que de verdad nos dará la utilidad a este sistema.

Instalar/Actualizar FOP a la versión 0.27

La última versión de FreePBX ya incorpora esta versión. Si no está instalada, tendremos que descargarnosla de http://www.asternic.org/, y reemplazar los siguientes ficheros:

  • op_server.pl
  • operator_panel.swf
  • op_lang*

Tendremos que añadir unas líneas a op_buttons.cfg:

[AUTO/SIP/.*]
Context =${CONTEXT}
Extension=${CHANNEL}
Label =${CHANNEL}
Icon =1
Starting_Position=1
Server=1
Panel_Context=popup

Con esto crearemos un nuevo contexto (popup) para nuestro monitor de extensiones.
También añadiremos las siguientes líneas a op_server.cfg

[popup]
flash_dir=/var/www/html/popuptest/

De forma que nos guarde en ese directorio un fichero (variablesPOPUP.txt) con la información sobre nuestras extensiones.

Instalar los scripts

Creamos el directorio /var/www/html/popuptest y descomprimimos en él el siguiente fichero: popup-sample-v1.tgz

mkdir /var/www/html/popuptest
cd /var/www/html/popuptest
tar -zxvf /ruta/al/fichero/popup-sample-v1.tgz

Abrimos el navegador, y nos vamos a http://1.2.3.4/popuptest (sustituir 1.2.3.4 por la IP de vuestra máquina). Nos pide la extensión a monitorizar. En la siguiente página, si hacemos o recibimos llamadas en esa extensión, debería actualizarse en tiempo real su estado.

Si, además, queremos que en las llamadas entrantes se nos abra un popup a otra página, que nos haga por ejemplo una búsqueda en una base de datos, editamos el fichero monitor.php y definimos la variable popupurl:

var popupurl=null; //Si esta null, no haremos popup
popupurl="http://192.168.0.1/buscarnumero/find.php?q=";

Recargamos la página, y probamos a recibir una llamada. Si todo ha ido bien, y el navegador permite el popup, debería abrirnos la dirección http://192.168.0.1/buscarnumero/find.php?q=XXXXX, siendo XXXXX el número de teléfono que nos llama.

Conclusion

He intentado reducir el ejemplo a su mínima expresión, para que sea más sencillo adaptarlo a una aplicación real. La versión completa está en los fuentes del FOP. Revisad el fichero js/operator.js, porque ahí está el meollo de la cuestión ;)

Saludos
Julián J. Menéndez

Escrito por julianjm el 5/07/2007. | Comments (6)
Tags: , , , ,