Procedimiento: Implementar funciones .Net en IVRs

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

En algunas ocasiones, los métodos facilitados por el diseñador de Ivrs no son suficientes para la implementación de nuestro Ivr, ya sea por la complejidad del requerimiento, o bien porque las herramientas del diseñador no lo contemplan. Para salvar esta situación, es posible implementar funciones desarrolladas en .Net e importarlas en Ondata, para que luego puedan ser invocadas por nuestro IVR. Esto nos amplia las posibilidades de integración de nuestro IVR de forma exponencial, ya que las posibilidades de desarrollo brindadas por la plataforma .Net es muy amplia.

Arquitectura

Basicamente, el que va a brindar los servicios para que podamos integrar nuestras funciones contenidas en una dll con nuestra IVR, va a ser Ondata, que va a disponibilizar estas funciones a ONNET quien va a ser el que va a ejecutar el IVR durante una llamada. El esquema de acceso seria similar a esto:

Arquitectura - IVR -- Dll.png

Implementacion en Ondata

Por un lado, vamos a tener una serie de requisitos que debe cumplir nuestro dll para poder ser importado por Ondata:

  • La dll debe tener un namespace
  • La dll debe tener una clase publica y estática
  • La dll debe tener al menos un método publico y estático

Una vez publicada la dll hay que modificar dos archivos que se encuentran en la carpeta IVR_PLUGINS que se encuentra en la carpeta del servicio de ondata (d:\hermes_net_vX\ondata\service por defecto en el servidor ACD). Estos archivos son: IVR_EXTERNAL_FCT.DEF y IVR_EXTERNAL_FCT.CS.

IVR_EXTERNAL_FCT.DEF : En este archivo deberemos hacer la importacion de nuestra dll, colocando la ruta absoluta para que ondata pueda importarla. Por ejemplo: d:\sources\dll_personalizadas\accesoEstrambotico.dll
IVR_EXTERNAL_FCT.CS: Este archivo contiene los metodos que serán invocados luego por el IVR. En este archivo se deberá declarar el metodo y dentro de este, se deberá realizar el llamado a la clase estatica y al metodo estatico definidos en la dll, pasando los parametros correspondientes.

para detalles sobre la creacion de la dll, carga en ondata y pruebas:

Utilizar una DLL en un IVR.pdf


Ejecución de funciones personalizadas desde el IVR

Una vez importada la dll y definidos los métodos para ejecutar la dll, desde una funcion de usuario en el editor de ivr debemos utilizar el siguiente código:

$WEB_IVR_SYNCSCRIPT= IVRLIB_CALL_BACKGRD(Función a llamar,(variables separadas por @|@”),Variable donde cargar el resultado);
VDAC_SYNC($WEB_IVR_SYNCSCRIPT);

IVR_CALL_BACKGRD: Es la que realiza el acceso a la función definida en ondata. Como parámetros va a recibir el nombre de la función como string, los parámetros de la misma, entre paréntesis separados por @|@; y la variable en la que luego vamos a recuperar el resultado de la función.
VDAC_SYNC: Va a ser la encargada de ejecutar la definición realizada por la función anterior. Luego de esta ejecución deberíamos tener el resultado en nuestra variable de resultado.