Todas las colecciones
Telefonía IP / Videoconferencia
3CX
3CX – Accediendo a una base de datos desde una aplicación de voz CFD
3CX – Accediendo a una base de datos desde una aplicación de voz CFD
Daniel Anchondo avatar
Escrito por Daniel Anchondo
Actualizado hace más de una semana

En este Capítulo

  • Introducción

  • Paso 1: crea el proyecto

  • Paso 2: pide el PIN al usuario

  • Paso 3: Valide el PIN contra la base de datos

  • Paso 4: verifique el resultado de la base de datos y decida la ruta del flujo de llamadas en función de ese

  • Paso 5: compila e implementa a la central telefónica 3CX

Introducción

En este artículo, explicaremos cómo usar el componente Acceso a la base de datos para consultar una base de datos de SQL Server desde una aplicación de voz creada con el Diseñador de flujo de llamadas 3CX (anteriormente VAD). El CFD también admite bases de datos PostgreSQL, y este artículo también se puede aplicar a ese caso, con cambios mínimos.

El proyecto para esta aplicación se instala junto con el Diseñador de flujo de llamadas 3CX, en la carpeta “Documents \ 3CX Call Flow Designer Demos”. Solo necesita cambiar la ubicación y las credenciales de acceso a la base de datos. Esta aplicación pedirá un PIN al usuario, validará los datos ingresados en la base de datos y transferirá la llamada a una extensión específica solo cuando el PIN sea válido. Comencemos.

Paso 1: crea el proyecto

Primero, necesitamos crear un nuevo proyecto. Abra el CFD y vaya a “Archivo> Nuevo> Proyecto”, seleccione la carpeta donde desea guardarlo e ingrese un nombre para el proyecto. En este caso, lo llamaremos “DatabaseAccessDemo”.

Paso 2: pide el PIN al usuario

Podemos pedir un PIN usando un componente de Entrada de usuario. Para agregar este componente a nuestra aplicación:

Arrastre un componente de Entrada de usuario desde la caja de herramientas y suéltelo en la superficie de diseño del flujo de llamada “Principal”. A continuación, seleccione el componente agregado, vaya a la ventana Propiedades y cámbiele el nombre a “requestPIN”.

Haga doble clic en el componente Entrada de usuario para abrir el cuadro de diálogo de configuración. Establezca las siguientes propiedades:

  • Configure las “Indicaciones iniciales” con un archivo WAV que invite al usuario a ingresar un Número de identificación personal. Por ejemplo, “Ingrese su número de identificación personal”.

  • Configure los “Avisos subsiguientes”, con un archivo WAV que brinde información más detallada sobre lo que el usuario necesita ingresar, ya que este mensaje solo se reproducirá cuando el usuario ingrese dígitos inválidos o no tenga dígitos. Por ejemplo, “Ingrese su número de identificación personal. Recuerde que solo los dígitos entre 0 y 9 son válidos, y deben tener entre 3 y 6 dígitos “.

  • Configure los “Indicadores de tiempo de espera” con un archivo WAV que explique que no se detectó ningún dígito. Por ejemplo, “Lo sentimos, no recibimos ningún dígito”.

  • Configure los “Indicadores de dígitos inválidos” con un archivo WAV que explique que los dígitos ingresados ​​no son válidos. Por ejemplo, “Lo siento, su entrada no es válida”.

  • Configure las otras opciones como se muestra en la siguiente captura de pantalla.

Presione OK para guardar los cambios.

Paso 3: Valide el PIN contra la base de datos

Ahora necesitamos validar el PIN ingresado por el usuario contra la base de datos. Para ello, debemos agregar un nuevo componente de Acceso a la base de datos a la rama “Entrada válida” del componente de Entrada del usuario, cambiarle el nombre a “validar PIN” y hacer doble clic en el componente para abrir el cuadro de diálogo de configuración. Complete los campos de la siguiente manera:

  • Para el campo “Tipo de base de datos”, seleccione “SqlServer”.

  • Seleccione “Configurar cada propiedad por separado”, para que podamos ingresar la dirección IP del servidor, el puerto, la base de datos, el nombre de usuario y la contraseña. También es posible configurar una cadena de conexión.

  • Para el campo “Servidor”, ingrese el nombre del servidor o la dirección IP. Tenga en cuenta que este campo es una expresión, por lo que para ingresar un valor constante necesita usar comillas.

  • Para el campo “Puerto” ingrese el número de puerto donde la base de datos está escuchando solicitudes, o puede dejarlo vacío para usar el valor predeterminado.

  • Para los campos “Nombre de usuario” y “Contraseña”, ingrese las credenciales para conectarse a la base de datos. Estos campos son expresiones, por lo que para ingresar un valor constante necesitas usar comillas.

  • Para el campo “Tipo de extracto”, utilizaremos el valor “Escalar”, ya que queremos obtener un único valor de la base de datos: la cantidad de registros de clientes con el código ingresado.

  • El valor de 30 segundos para el tiempo de espera se puede dejar o cambiar si lo considera conveniente.

  • Antes de completar el campo “Declaración SQL”, debemos agregar un parámetro a la lista Parámetros: el código PIN ingresado por el usuario. Este parámetro se usará más adelante para construir la declaración SQL. Ingrese “id” para el nombre y la expresión “requestPIN.Buffer” para el valor, es decir, los dígitos ingresados ​​por el usuario.

  • Ahora tenemos que ingresar el comando SQL para recuperar la información requerida de la base de datos, en el campo “Declaración SQL”. Usaremos el botón a la derecha de ese campo para insertar el valor del parámetro “id” en el lugar correcto. La declaración SQL será:

SELECT count(*) FROM customers WHERE id={0}

Paso 4: verifique el resultado de la base de datos y decida la ruta del flujo de llamadas en función de ese

 Ahora que el componente Acceso a la base de datos está configurado correctamente, necesitamos verificar el valor devuelto por la base de datos y decidir aceptar el PIN del cliente o no. Para hacer esto, necesitamos un componente “Crear una condición” con dos ramas, una para el caso de validación exitosa y otra para el caso de error de validación.

Agregue el componente Crear una condición arrastrándolo de la caja de herramientas al diseñador, y cambie su nombre a “validateDatabaseResult”. Cambie el nombre de las dos ramas a “éxito” y “error”, para los casos de éxito y falla en la validación, respectivamente. El flujo principal debe verse como en la captura de pantalla a continuación.

Para ejecutar la rama de “éxito”, la base de datos debe devolver el valor 1, indicando que hay un registro con el PIN ingresado por el usuario. Esto significa que debe cumplirse la siguiente condición, y debemos configurarla para el “éxito” (esta condición se puede crear fácilmente usando el Editor de expresiones):

EQUAL (validatePIN.ScalarResult, 1)

Una vez que esta condición esté configurada para la rama de “éxito”, agregue componentes Prompt Playback a todas las rutas de llamada posibles (validación exitosa, error de validación y entrada no válida al ingresar el PIN). Finalmente, transfiera la llamada a un operador en el caso de una validación exitosa, utilizando un componente de transferencia. El flujo de llamadas se verá en la siguiente captura de pantalla.

Paso 5: compila e implementa a la central telefónica 3CX

 El proyecto está listo. Solo tenemos que compilarlo y subirlo a nuestro servidor de la Central Telefónica 3CX. Para hacer esto:

  1. Vaya a Build> Build All. El CFD creará el archivo “DatabaseAccessDemo.tcxvoiceapp”.

  2. Vaya a la Consola de administración de 3CX> Colas de llamadas, cree una nueva cola, configúrela con nombre y extensión, marque la opción Aplicaciones de voz y cargue el archivo creado por el CFD en el paso anterior.

  3. Guarde los cambios en la cola. La aplicación de voz está lista para usar. Realiza una llamada a la extensión configurada, ingresa tu PIN y, si está validado, debes transferirlo a la extensión del operador.

¿Ha quedado contestada tu pregunta?