Una forma diferente de tarjetas prepago VoIP con Asterisk y A2billing

Asterisk
Asterisk

Uno de los grandes beneficios de los sistemas VoIP, es que se pueden implementar por medio del uso del software de licencia libre u «open source» (Asterisk y A2billing), con lo que es posible tener un servidor de voz con muchas funciones de PBX o tarificación, sin tener que de gastar mucho en grandes y sofisticados equipos.

Esta vez voy a indicar los puntos necesarios para que nuestro servidor de voz Asterisk, con un sistema de billing con el software libre u open source A2billing, nos sirva como plataforma de tarjetas de comunicaciones prepago.

A2billing
A2billing

Esta descripción es una alternativa al uso normal  que se hace de Asterisk y A2billing como sistema para tarjetas prepago.

En este caso no se va a usar un número DID como punto de ingreso a la plataforma, sino que vamos a tener un número dentro del mismo Asterisk, haciendo las veces del DID; de esta forma, quienes usan las tarjetas, deben tener acceso a los terminales, extensiones o cuentas SIP de la PBX, por ejemplo con teléfonos ubicados donde se encuentran las cabinas telefónicas.

El siguiente es el escenario de esta configuración:

1. Alguien marca al número 1234 desde una extensión de la PBX IP.
2. El IVR le pregunta a la persona por su número PIN.
3. La persona teclea su número PIN.
4. El IVR dice el saldo de la tarjeta, e invita a marcar el número telefónico de destino deseado.
5. La persona marca el número telefónico deseado.
6. El IVR dice los minutos que tiene para llamar al número marcado, de acuerdo a la tarifa a ese destino.
7. La comunicación se establece entre las partes.
8. Si la llamada no se completa satisfactoriamente, o la llamada se termina y el usuario permanece en línea sin colgar, el IVR le consulta al usuario si desea continuar llamando a otro número de destino
9. La persona finalmente cuelga y termina su proceso de llamadas.

Lo que primero se debe hacer es  registrar una marcación específica que salga de la PBX y vuelva a ingresar como si viniera de un DID externo, para eso se ejecutan los siguientes cambios en Asterisk (FreePBX):

1. En el menu Trunks se crea una troncal custom, en este caso se nombra como «loopback»:

Sistema prepago de llamadas con Asterisk y A2billing

Escribimos al final la siguiente cadena de texto en «Custom Dial String»:

Custom Dial String :   A2B/$OUTNUM$@from-trunk

voip

2. En Outbound routes, se crea una ruta saliente para llevar una marcación especial a la troncal creada en el punto anterior; en este caso vamos a usar la marcación 1234, que va a salir por la troncal «loopback»:

llamadas voip

plataforma prepago

3. En el el servidor de la PBX-IP en Asterisk, en el archivo
/etc/asterisk/extensions_custom.conf

Se agregan las siguientes líneas:

[macro-dialout-trunk-predial-hook]

exten => s,1,GotoIf($[«${OUT_${DIAL_TRUNK}:4:4}» = «A2B/»]?custom-freepbx-a2billing,${OUTNUM},1:2)
exten => s,2,MacroExit

[custom-freepbx-a2billing]
exten => _X.,1,Set(CDR(accountcode)=)
exten => _X.,n,AGI(a2billing.php,${OUT_${DIAL_TRUNK}:8})
exten => _X.,n,Hangup()

y se reinicia el servicio de Asterisk
service asterisk restart 

4. En A2billing se configura el agi_conf1, o se puede crear un agi_conf2 si la A2billing ya tiene  servicios funcionales con agi_conf1 y no se quiere que esta nueva configuración afecte a la actual en producción. Entonces se cambian los siguientes parámetros:

answer_call=yes
use_dnid=no
say_balance_after_auth=yes
cid_enable=no

5. Ahora se crea la extensión en FreePBX desde donde se va a hacer la llamada al sistema de tarjetas (en este ejemplo, es desde donde se va a llamar al 1234 para acceder a la plataforma prepago.)

Esta línea debe estar registrada en el siguiente contexto:
conext=from-internal

6. Cuando se registran las demás cuentas SIP (tarjetas de llamada prepago o usuarios sip del A2billing), el contexto que debe quedar registrado es:
context=a2billing

7. Para probar nuestro sistema,  desde la extensión creada en el punto 5:
7.1. Se marca 1234
7.2. Cuando la plataforma  solicita el PIN, tecleamos el Account Number de la cuenta SIP del A2billing.
La plataforma nos dice el saldo de la cuenta y nos pide que marquemos a un número de destino.
7.3. Marcamos el número deseado, la plataforma nos dice los minutos que tenemos disponibles para esa comunicación, de acuerdo al saldo y al costo hacia ese destino.
7.4. Se establece la comunicación.
7.5. Hablamos por unos segundos y podemos colgar la llamada.

8. Ahora ingresamos a A2billing y podemos verificar en el CDR que la llamada se haya registrado con su duración y costo, y que de igual modo haya descontado el costo total de la llamada a la tarjeta prepago o PIN.

Si encontramos que la llamada al exterior no sale, se debe poner en el agi-conf1, el siguiente parámetro:

asterisk_version=1_6.

Esta es una forma alternativa de uso del sistema prepago de Asterisk y A2billing, que generalmente se usa con un número público (DID) de acceso a la plataforma, pero ésta opción puede llegar a ser útil bajo un esquema de operación especial, que requiera que las comunicaciones desde las extensiones no se realicen directamente, sino mediante pines prepago.

Esta integración entre Asterisk y A2billing para obtener un sistema de tarjetas prepago para cabinas telefónicas, está siendo usado actualmente en el programa de gobierno de Colombia, del Ministerios de las Tecnologías de la Información, en el proyecto Kioscos Vive Digital (KVD). Esta integración fue realizada con el apoyo tecnológico de ITSoftware SAS.

Si te ha gustado este artículo, por favor no te olvides de compartirlo en las redes sociales.  Thks  🙂

3 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.