¡Voxilla ha premiado con el iOS VoIP App Voxie Award al 3CXPhone para iPhone!
January 5, 2012 – 7:40 pm | No Comment

Share3CX se enorgullece en anunciar que Voxilla ha premiado con el iOS VoIP App Voxie Award al 3CXPhone para iPhone. Voxilla está introduciendo los primeros premios Voxie con el objetivo de reconocer a los productos …

Leer la historia completa »
Lanzamientos

Lanzamientos de productos de 3CX

Documentos y FAQ

Documentación de 3CX y preguntas frecuentes

Documentos y FAQ (US)

Documentación de 3CX y preguntas frecuentes (English)

Configuración de Pasarelas

Guías de Configuración de Pasarelas

Configuración de Teléfonos IP

Guías de Configuración de Teléfonos IP

Documentos y FAQ »

Cómo reproducir una secuencia de números con el VAD
January 21, 2012 – 4:03 am | No Comment

El 3CX Voice Application Designer es una herramienta que permite crear aplicaciones de voz fácilmente, diseñando el flujo de la llamada gráficamente con bloques funcionales predefinidos, sin necesidad de programar.

En este artículo mostraremos cómo hacer para reproducir fácilmente una secuencia de números dentro de una aplicación.

Introducción

Muchas veces nos encontramos ante la necesidad de reproducir una secuencia de números con el VAD. Por ejemplo, si queremos solicitar el ingreso de un número por DTMF y luego reproducir el valor ingresado al usuario para su validación:

  1. VAD: Por favor, ingrese su código de cliente
  2. El usuario ingresa 1234 utilizando su teclado telefónico
  3. VAD: El código de cliente ingresado es 1234. Para confirmar presione 1, para ingresar nuevamente presione 2.

Dado que la reproducción de los dígitos puede ser algo que se requiera en distintos puntos de la aplicación, resulta conveniente encapsular esa funcionalidad en un componente. El VAD permite crear componentes que luego pueden ser reutilizados en diferentes partes de la aplicación.

Paso 1: Creando el componente

El componente que necesitamos crear debe poder recibir como parámetro de entrada la secuencia de dígitos, y reproducirlos uno a uno.

Para crear el componente vaya a File -> New -> Component. Utilizaremos el nombre PlayDigits. Al crear el componente, el mismo es abierto automáticamente. Vaya a la ventana de Propiedades y haga clic en el botón a la derecha del ítem “Variables”, de modo de abrir el diálogo de configuración de propiedades, como se muestra en la siguiente figura:

Vamos a necesitar 2 variables:

  • Digits: será una variable pública para que pueda ser completada desde el exterior del componente, es decir desde la parte de la aplicación que va a llamar a este componente. No es necesario configurar un valor inicial, ya que el mismo será inicializado desde el exterior. La accesibilidad debe ser “ReadWrite” para que pueda ser escrito desde el exterior del componente.
  • Index: será una variable privada para uso interno del componente. Esta variable nos permitirá iterar uno a uno los números de la secuencia. La inicializamos en cero para reproducir primero el número que se encuentra en la primera posición.

Luego presionamos el botón OK para guardar las variables creadas.

Ahora necesitamos diseñar el componente en sí. Para esto vamos a necesitar un componente de tipo “Loop” para iterar los números de la secuencia. Dentro del componente “Loop” vamos a agregar un componente de tipo “Prompt Playback” para reproducir el número de esa iteración, y un componente de tipo “Increment Variable” para incrementar la variable Index que creamos anteriormente, de modo de posicionarnos en el próximo número de la secuencia en la próxima iteración del lazo. Nos va a quedar algo como lo que se muestra en la siguiente figura:

Ahora veremos en detalle cómo configurar a cada uno de estos componentes:

  1. Para el componente digitsLoop de tipo “Loop” debemos configurar la propiedad “Condition” con la siguiente expresión:
  2. LESS_THAN(callflow$.Index,LEN(callflow$.Digits))

    Esta propiedad indica la condición que debe cumplirse para continuar iterando. Con el valor propuesto estamos diciendo que la iteración continúe mientras la posición actual (callflow$.Index) sea menor que la longitud de la secuencia de números que nos pasaron como parámetro (LEN(callflow$.Digits)).

  3. Para el componente playDigit de tipo “Prompt Playback” debemos abrir el editor de Prompts para indicar el mensaje a reproducir. En este caso necesitamos reproducir un archivo de audio cuyo nombre será el número y la extensión .WAV. Por ejemplo 0.wav, 1.wav, 2.wav, y así hasta 9.wav. Estos archivos de audio deben ser copiados a la carpeta Audio del proyecto, de modo que sean desplegados junto con los archivos de la aplicación. Para esto agregaremos un prompt de tipo “Dynamic Audio File Prompt” con la siguiente expresión para crear el nombre del archivo:
  4. CONCATENATE(MID(callflow$.Digits,callflow$.Index,1),’.wav’)

    Esta expresión nos permite extraer de la secuencia al número correspondiente a la posición de esta iteración, y concatenarlo a la extensión “.wav”.

  5. Para el componente incrementIndex de tipo “Increment Variable” debemos configurar la propiedad “VariableName” de modo de incrementar a la variable “Index” del componente:

callflow$.Index

Ya tenemos el componente listo. Ahora solo es necesario invocarlo.

Paso 2: Invocando al componente para reproducir dígitos

Ahora que tenemos el componente que nos permite reproducir una secuencia de números, podemos ponerlo en práctica en nuestra aplicación.

Abra el flujo de llamada principal haciendo doble clic sobre el ítem “Main.flow” en el Project Explorer. Agregue un componente de tipo “User Input” para solicitar el ingreso de dígitos al usuario. En la rama “Valid Input” agregue un componente del tipo que acaba de crear, que se encuentra en la barra de herramientas bajo la categoría “User Defined Components”. Debería ver algo como lo siguiente:

Ahora configure la propiedad Digits del componente que acaba de agregar, indicando que debe reproducir los dígitos ingresados por el usuario. Para eso utilice la siguiente expresión:

requestInput.Buffer

De ese modo estamos indicando que los dígitos a reproducir se obtienen del buffer de dígitos del componente “User Input”, es decir los dígitos ingresados por el usuario.

Conclusión

Además de la problemática concreta que resuelve este ejemplo, es interesante ver cómo pueden encapsularse determinados comportamientos comunes a una aplicación dentro de un componente definido por el usuario. Este es un concepto muy poderoso que nos brinda varios beneficios:

  • Permite desarrollar más rápidamente las aplicaciones por contar con bloques reusables.
  • Simplifica el diseño del callflow principal, y evita que el dibujo crezca a un punto donde se torne inmanejable.
  • Hace que la aplicación sea más fácil de comprender y mantener.

Mediante este concepto podemos crear componentes reutilizables que permitan por ejemplo reproducir fechas, reproducir horas, realizar la validación de una entrada de dígitos en forma genérica, etc.

Cómo configurar marcado rápido usando las reglas de salida de la Central Telefónica 3CX
January 12, 2012 – 10:58 pm | No Comment
Cómo configurar marcado rápido usando las reglas de salida de la Central Telefónica 3CX

ShareEsta guía paso a paso describe cómo configurar marcado rápido utilizando las reglas de salida de la Central Telefónica 3CX.

Abra la Consola de Administración de 3CX y navegue hasta las Reglas de Salida.
Seleccione “Agregar Regla …

Anti-Virus bloqueando el Correo de Voz en la Central Telefónica 3CX
January 5, 2012 – 6:22 pm | No Comment
Anti-Virus bloqueando el Correo de Voz en la Central Telefónica 3CX

ShareLa Central Telefónica 3CX necesita poder interactuar con servicios en el servidor donde se encuentra instalada para funcionar correctamente. En algunos casos, el software anti-virus puede hacer que la Central Telefónica 3CX no lo logre. …

Cuando es posible desactivar la resolución STUN
January 4, 2012 – 1:06 am | No Comment
Cuando es posible desactivar la resolución STUN

ShareTal como se describe en este artículo, STUN es la abreviatura de “Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NAT’s)”, es decir cómo hacer que los paquetes UDP atraviesen traductores de …

Configurando notificaciones por correo electrónico
December 27, 2011 – 6:15 pm | No Comment
Configurando notificaciones por correo electrónico

ShareLa Central Telefónica 3CX permite configurar notificaciones de distintos eventos mediante correo electrónico. Esta funcionalidad permite que el administrador de la Central Telefónica 3CX se entere inmediatamente cuando sucede algo importante que requiere su intervención.
A …

Configurando 3CX MyPhone en forma local o remota
December 15, 2011 – 9:11 pm | No Comment
Configurando 3CX MyPhone en forma local o remota

ShareIntroducción
3CX MyPhone es una aplicación basada en Silverlight que puede ser utilizada desde un navegador web o instalada localmente en su computadora para realizar la integración con Microsoft Outlook. Esta guía le mostrará la instalación …

Cómo incrementar la duración máxima de la grabación de los correos de voz en la Central Telefónica 3CX
December 1, 2011 – 7:53 pm | No Comment
Cómo incrementar la duración máxima de la grabación de los correos de voz en la Central Telefónica 3CX

SharePor defecto, la Central Telefónica 3CX permite que las personas que llaman dejen mensajes de voz de hasta 2 minutos de duración. Sin embargo, en algunos casos la gente que llama a su empresa podría …

Importar extensiones a través de la funcionalidad 3CX Active Directory
November 24, 2011 – 8:10 pm | No Comment
Importar extensiones a través de la funcionalidad 3CX Active Directory

ShareLa Central Telefónica 3CX permite descargar todas las configuraciones de usuario actuales desde su servidor Active Directory a través del protocolo LDAP. Todos los datos de usuario, como nombre y apellido, números de teléfono móvil …

Explicación del significado de los campos de encabezado más importantes de un mensaje SIP INVITE
November 18, 2011 – 10:06 pm | No Comment
Explicación del significado de los campos de encabezado más importantes de un mensaje SIP INVITE

ShareEste artículo explica el significado de los campos más importantes incluidos en un mensaje SIP INVITE, que es enviado para establecer una llamada de VoIP. Un mensaje SIP INVITE contiene típicamente entre 4 y 6 …

5-Star Hotel PBX Solution Slashes Hotel Phone Bills
November 16, 2011 – 5:40 pm | No Comment

New 3CX Hotel Module halves hotel phone bills using VoIP and eliminates PBX maintenance costs. London, UK, November 16 2011 – 3CX, international telecommunications developer of Windows-based PBX software, today announced the launch of 3CX Phone System …

New Version of 3CXPhone for iPhone app Available (1.1.4)
November 14, 2011 – 9:37 am | No Comment
New Version of 3CXPhone for iPhone app Available (1.1.4)

We are proud to announce the latest release of 3CXPhone for iPhone, version 1.1.4. This version contains support for iOS 5 and fixes numerous issues when connected remotely (Out of the office). This version has been …