axl2-1

AXL – Automatizar tareas en callmanager. Parte 2

Bienvenidos de nuevo a mi blog, hace un tiempo publiqué la primera parte de la saga «AXL – Automatizar tareas en callmanager. Parte 1″ en la cual explicaba un poco por encima de qué va eso del AXL y en qué nos puede ayudar.

En este caso, voy a seguir ampliando la información. En mi caso estoy utilizando Microsoft Excel para comunicarme con el Callmanager ya que es muy sencillo tratar grandes volúmenes de información en hojas Excel.

Inicia sesión para leer mas

Mi idea es la siguiente, una vez que ya sabemos que para realizar acciones sobre Callmanager via AXL solo tenemos que construir la consulta SOAP necesaria y después inyectarla via HTTP vía POST, nos centraremos en cómo diseñar el front end y cómo programaremos el backend.

 axl2-1

En esta imagen podeis ver que he creado varias hojas, cada una para gestionar una parte del Callmanager, usuarios, linegroups, gateways, teclas rapidas y BLFs, teléfonos y datos.

El funcionamiento previsto es el siguiente, si vamos a provisionar terminales, en la pestaña MENU rellenamos los parámetros genéricos que vamos a necesitar aplicar a dichos terminales, por ejemplo, todos los terminales van a ser SIP, o el softkey template «SKT_TELEFONOS».

Lo siguiente que haremos es que Excel disponga de un listado de DevicePool, Calling Search Spaces, Partition, Phone Button Template, Common Phone Profile, CallPickup Groups y sus extensiones, etc, para qué? pues para que mas tarde podamos validar celdas con valores que existan en el Callmanager y no nos de errores de ortografía por ejemplo.

En la hoja Datos es donde recolecto toda esta información:

axl2-2

En esta imagen podéis observar que cada columna contiene la información que hay en Callmanager. Además he añadido una serie de celdas para introducir el nombre del servidor que estamos usando, la IP y las credenciales. En este caso tal vez os llame la atención que la IP sea 127.0.0.1, pero en este caso estoy realizando una redirección del puerto remoto 8443 al puerto 8000 local, por lo que la ip es la local y no la remota.

Para recolectar la información lo que hacemos es lanzar una consulta sql para cada columna para que nos devuelva los resultados, por ejemplo veamos el ejemplo de la partition:

Para probar si estamos haciendo bien la consulta, nos conectamos por CLI al Callmanager y ejecutamos la consulta:

Bien, la consulta es correcta, ahora, debemos generar la estructura SOAP completa que sería así:

Una vez lanzada la consulta SOAP, el servidor nos responderá en formato xml, el cual tiene este contenido:

Para que excel nos represente los datos en la columna correspondiente deberemos seguir estos pasos:

axl2-3

1- Diseño.

2- Origen.

3- Asignaciones XML.

4- Agregar.

5- Creamos un archivo llamado como queráis con extensión .xml, lo editamos y pegamos dentro el siguiente contenido y lo seleccionamos.

6- Abrir.

7- Cambiamos el nombre de la asignación, en mi caso lo llamo rp3_Map (rp=Route Pattern) y aceptamos.

 Con esto acabamos de «mapear» nuestro archivo .xml a Excel, ahora solo tenemos que seleccionar en la parte de la derecha el nombre que le dimos en el paso 7 y se nos mostrará un árbol del contenido del .xml.

En este caso nos aparece un elemento llamado name, que es el campo que hemos solicitado vía SQL antes.

Lo pinchamos y lo arrastramos sobre el encabezado de la columna donde queremos que vuelque los datos:

axl2-4

Para hacer la prueba en el archivo .xml entre las etiquetas <name></name> escribimos algo y guardamos, luego en excel damos sobre el encabezado de la columna boton derecho y «actualizar» y nos debería mostrar lo que escribimos a mano sobre el archivo.

 Y si me copio el Excel y los archivos y me voy a otro PC o a otra ruta?? pues las asignaciones xml dejan de funcionar, así de sencillo, aunque podemos automatizar con un poco de código VBA una forma de actualizar las rutas a los archivos xml.

donde » rp3_Map» es el bnombre que tenga la asignación XML y ThisWorkbook.Path & «\rp3.xml» indica que va a mapear el archivo dp3.xml, que está ubicado en el mismo directorio donde está el Excel.

Con esta parte ya tendríamos la hoja de datos lista para recopilar la información de la centralita.