IVR: Consumir webservices

De Vocalcom.latam Wiki
Saltar a: navegación, buscar

Al momento de implementar un IVR puede surgir el requerimiento de acceder a datos via WebServices, dentro del editor de IVRs esta funcionalidad no esta disponible de forma directa, por lo que podemos implementar diferentes estrategias para consumirlos según nuestras necesidades. Vamos a definir tres formas de hacerlo, pudiendo utilizarse otras segun la creatividad de cada uno. Cada una tiene sus desventajas, por lo que no hay implementación definitiva:

Comando llamar una URL

Dentro de la lista de comandos, en la sección Llamadas y funciones de usuario podemos encontrar el comando Llamar una URL.- Es un comando de parametrización simple, donde indicaremos una URL y la variable que recibirá la respuesta. Esta respuesta será todo el response del webServer, incluyendo toda la estructura XML de la respuesta. Luego de recibir la respuesta, funciones posteriores deberían manejar la variable para encontrar el resultado deseado. Para esto se pueden usar las funciones de cadena STR_STR (para buscar cadenas particulares); luego STR_LEFT y STR_RIGHT para cortar la misma. (Mas info sobre funciones de cadena aqui)
La gran desventaja de este método, mas allá de su simplicidad, es que limita la implementacion a webServices que acepten parámetros por GET, ya que solo podremos ponerlos en el URL de llamada. La otra desventaja es el tamaño de la respuesta, ya que webServices con resultados "grandes" hacen difícil de manejar el resultado.

Comando Llamar a Assembly.NET

También dentro de los comandos de Llamadas y funciones de usuario podemos encontrar el comando Llamar a Assembly.Net. Básicamente esto es invocar una función externa definida dentro de una dll desarrollada en .Net, lo que da gran flexibilidad a la hora de implementar, ya que las posibilidades de solución a diferentes escenarios en .Net son muy grandes. Como desventaja, evidentemente esta el desarrollo de la dll, que requiere skilles de programación mínimas.

Para mas info de como implementar una dll, se puede ver en este articulo: Procedimiento: Implementar funciones .Net en IVRs

Utilizando OnWS

Este método es un procedimiento heredado de la versión 3 de la herramienta, si bien su implementación no esta aconsejado, para algunos casos en particular es practico. Si el webService a consumir esta implementado en .net (como todos los ws de hermes.net) se puede consumirlos de forma simple con OnWS. Tanto en v4 como en v5. Para esto hay que agregar en el config.ini de onnet y lanzar la aplicación, y luego desde el ivr invocar los métodos particulares. Como gran desventaja de este método tenemos la poca flexibilidad de la aplicación para acceder a ws desarrollados en otros entornos de desarrollo. Para mas info de como implementar OnWS, se puede ver este articulo: Procedimiento: Configuración ONWS