Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VERSIONAMIENTO
Los Elastix Web Services nos permiten obtener cierta información o realizar alguna acción
sobre un servidor elastix.
Para probar los Elastix Web Services se debe seguir los siguientes pasos:
1. Elastix 2.0.4 >= beta1
2. Tener habilitado los repositorios beta.
3. Ejecutar en una consola de linux el comando:
yum update elastix-*
ESCENARIOS
Básicamente se han planteado dos escenarios para el uso de los Elastix Web Services: en
PHP y en Javascript.
Escenario PHP
Lo primero que se debe hacer es crear un arreglo con con las opciones SOAP. Estas
opciones debe tener el usuario para el login y su password, ya que la información
adquirida o modificación son sólo para el usuario que se envía. Un ejemplo del arreglo
con las opciones SOAP sería el siguiente:
Luego de esto debemos crear un objeto de tipo SoapClient para ello haremos uso de la
clase existente de PHP SoapClient la cual recibe como parámetro la url donde se
encuentra el Elastix Web Service y el arreglo con las opciones de SOAP que ya
previamente lo hemos definido.
Una vez inicializado el objeto SoapClient debemos crear un objeto tipo SoapParam el cual
recibe un arreglo con los parámetros de entrada que recive el Elastix Web Service que
vamos a invocar, este arreglo debe tener como clave el nombre del parámetro, y como
segundo parámetro el nombre del método que vamos a invocar.
Ahora se obtiene los datos utilizando el objeto SoapClient creado previamente, invocando
a su método.
En la Figura 4 la variable $resultado es un objeto que tiene como atributo los valores de
los parámetros de salida que fueron devueltos por el método invocado, en este ejemplo
De esta forma obtenemos los datos que nos proporciona el Elastix Web Service, o se
ejecuta el método deseado.
Hay que tener una consideración con un método de Elastix Web Services que es
justamente el mostrado anteriormente (downloadVoicemail) ya que si queremos que nos
aparezca el diálogo para descarga debemos hacer lo siguiente:
Finalmente debemos encerrar todo dentro de un try catch, ya que el Elastix Web Service
nos puede devolver una excepción tipo SoapFault en caso de que hubiese cualquier tipo
de error, y si queremos que nos imprima una descripción del mensaje podemos hacer lo
siguiente:
Figura 6. Script Final de como usar un método de un Elastix Web Service en PHP
Escenario Javascript
Lo primero que hay que tener en cuenta, al querer hacer uso de un Elastix Web Service
usando javascript son las restricciones que tienen los browsers para realizar peticiones
(requests hacia un servidor). La principal de todas es “same origin policy” la cual nos
indica que los browser solo pueden hacer peticiones a un servidor que se encuentre en su
mismo dominio y al mismo puerto (80 para Apache). Por lo tanto si queremos que
nuestras peticiones funcionen sin necesidad de usar un Proxy, debemos tener el archivo
javascript en el mismo servidor al cual se le hará la petición.
Teniendo en cuenta esa consideración, ahora necesitamos un Soap Client, para lo cual
existen muchos plug in ya sea javascript o jquery, pero la que se utilizó fue la siguiente de
jquery: http://plugins.jquery.com/files/jquery.soapclient.js.txt
• url: url donde se encuentra el Elastix Web Service (cuidado con “same origin
policy”).
• methode: nombre del método que se va a invocar.
• username: nombre de usuario para autenticación SOAP.
• password: password de username para autenticación SOAP.
• error: función que se ejecutará en caso de haber un error en jQuery.SOAPClient.
• data: parámetros de entrada que recibe el método del Elastix Web Service. Estos
son recibidos como objetos.
• success: función que se ejecutará si es que la petición en jQuery.SOAPClient fue
exitosa. Esta función recibe el xml de respuesta como objeto y como string.
Teniendo este objeto XML necesitamos parsearlo para obtener los datos que nos
interesan. Como se puede observar en la figura 8 los parámetros de salida del Elastix
Web Service se encuentran dentro de tags, pero estos tienen un prefijo que para este
caso es ns1:, este prefijo en ocasiones puede variar dependiendo del browser o del tipo
de programación realizada para crear el WSDL. Por lo tanto para ser lo más genéricos
posible se crea una expresión regular para obtener ese prefijo.
Ya con el prefijo podemos empezar a parsear el XML y crear un arreglo con los datos. En
este caso los datos de cada extensión se encuentran dentro del tag extension el cual es
un parámetro de salida por lo que lo podemos identificar siempre sin ningún problema.
Figura 9. Ejemplo de parseo de objeto XML obtenido como respuesta del Elastix Web Service