como configurar a2billing y crear una tarjeta

Discussion in 'Elastix 2.x' started by worldxcomputers, Sep 8, 2009.

  1. worldxcomputers

    Joined:
    Aug 26, 2009
    Messages:
    126
    Likes Received:
    0
    hola tengo que dejar claro que esto lo eh encontrado en Asterisk Peru, esta muy bien explicado, y con esto podeis crear una tarjeta de llamadas, lo unico que es una tarjeta para llamar desde una cuenta sip ( o asi lo entiendo yo ), aunque pone que se puede consultar el saldo sin tener un ordenador cerca, lo cual me hace pensar que es un telefono con gateway, porque no especifica un numero de telefono tipo 900 al que llamar, en fin ya lo vereis.

    un saludo y encantado de aportar.






    Configurar a2billing en menos de 10 minutos
    Esta es una replica del articulo publicado en Ecualug.


    Ya sabemos como instalar a2billing, ahora vamos a configurarlo para que empieze a controlar las tarifas de las llamadas que se realizen desde asterisk.

    Una de las cosas que se tornan mas difíciles (instalarlo es super fácil) es entender como manejar el sistema de facturación. Sabemos que puede mostrarnos el consumo monetario de una llamada realizada por alguna de nuestras extensiones (clientes), pero configurarlo desde su amigable interfaz web es algo confuso las primeras veces.

    No hay mejor manera de explicar un procedimiento que con la práctica, voy a explicar como lograr que a2billing funcione para tarificación del consumo telefónico. Para esto voy a asumir lo siguiente:

    - Tengo instalado y configurado Asterisk;
    - Tengo configurado un proveedor de minutos que usa SIP al que llamare proveedorsip;
    - Mi proveedor NO requiere que se agregen 00 ó 011 antes del código de país;
    - Tengo instalado a2billing y su interfaz de usuario;
    - Para hacer llamadas internacionales mis extensiones agregan el 00 antes del código de país.

    En nuestro archivo de configuracion sip.conf debemos tener las líneas para la configuración del proveedor:


    [proveedorsip]
    username=usuario
    type=peer
    secret=una-clave
    nat=yes
    insecure=very
    host=sip.proveedorsip.com
    fromuser=usuario
    fromdomain=sip.proveedorsip.com
    dtmfmode=info
    disallow=all
    canreinvite=no
    authuser=usuario
    allow=g723
    allow=g729
    allow=alaw

    El procedimiento:
    1.- Crear un proveedor:

    TRUNK --> Create Provider

    He creado el Proveedor ProveedorSIP en donde ingreso detalles informativos del proveedor.

    2.- Agregar un Trunk:

    TRUNK --> Add Trunk

    Un trunk es el canal por donde saldrán las llamadas, podemos tener varios trunks por ejemplo uno para llamadas internacionales, otro para llamadas locales, etc. Estos trunks pueden usar el mismo proveedor pero se diferencian entre ellos por los dígitos que se agregan o eliminan al marcado que envia el cliente, así en este ejemplo debemos agregar 00 para llamadas inernacionales; agregar 5935(yo estoy en Manabí) para las llamadas locales.

    Se ingresan los detalles de la troncal, por ejemplo que prefijo se debe agregar a cada llamada que por esta troncal salga, para ilustrar el ejemplo estos son los datos que ingreso para el Trunk que llamaré internacional-proveedorsip, debo tener en cuenta que a este proveedor enviarle el codigo de pais y el numero de telefono, por ejemplo si voy a llamar a Venezuela el debera recibir 582121234567 y no 00582121234567, el prefijo de marcado varía entre los diferentes proveedores, otros requieren que envies un 011 ó 00 antes del codigo de pais para poder terminar la llamada.

    Mis usuarios marcarán:

    00 + codigo de pais + codigo de area + numero de telefono

    El proveedor podra terminar la llamada si el marcado le llega como:

    codigo de pais + codigo de area + numero de telefono

    Así debería de quedar el trunk en a2billing para que se cumplan los requerimientos anteriores:


    VOIP-PROVIDER ProveedorSIP
    LABEL internacional-proveedorsip
    ADD PREFIX (en este caso no es necesario agregar prefijos)
    REMOVE PREFIX 00
    PROVIDER TECH SIP
    PROVIDER IP proveedorsip
    ADDITIONAL PARAMETER
    FAILOVER TRUNK (no es necesario por ahora)

    La última opción es bastante útil si tenemos mas de un proveedor. Podemos tener varios trunks que hagan terminación a un mismo destino pero con diferentes proveedores, asi si el proveedor A esta sin servicio la llamada puede ser terminada por el proveedor B.

    3.- Creamos un grupo de tarifas (TariffGroup)

    RATECARD --> Create TariffGroup

    TARIFFGROUPNAME Oro
    LC TYPE LCR
    REMOVE INTER PREFIX NO

    Podemos tener varios grupos de tarifas que contendran diferentes precios, por ejemplo podemos tener 3 grupos de tarifas Oro, Plata y Bronce. En Oro van tarifas bien bajas, y en Bronce las altas. Los grupos de tarifas contienen las Ratecard y estas últimas los precios de los destinos. Los grupos de tarifas pueden tener tambien LCR o LCD.

    LCR es Low Cost Routing que quiere decir que escogera de las tarifas que existan a un destino la que nos cuesta menos. LCD es Low Cost Dialing que quiere decir que escogerá la tarifa de venta mas económica para el usuario.

    4.- Crear RATECARD

    RATECARD --> Create new Ratecard

    TARIFFNAME Internacional
    START DATE
    TRUNK internacional-proveedorsip
    DESCRIPTION Tarifas internacionales
    DNID PREFIX all

    Ratecard va a contener Rates (precios) para cada destino, en el ejemplo se ha creado la tarifa llamada Internacional que usara el trunk internacional-proveedorsip para terminar las llamadas.

    5.- Crear tarifas

    RATECARD --> Add Rate

    RATECARD internacional
    DIALPREFIX 001
    DESTINATION Estados Unidos
    BUYING RATE 0.05
    BUYRATE MIN DURATION 6
    BUYRATE BILLING BLOCK 30
    SELLING RATE 0.10
    SELLRATE MIN DURATION 6
    SELLRATE BILLING BLOCK 30
    CONNECT CHARGE 0
    DISCONNECT CHARGE 0
    TRUNK internaciona-proveedorsip

    Seguimos el procedimiento para cada destino que queramos agregar. Hacerlo para todos los paises del mundo sería bastante tedios, para ello existe la opcion de importar un archivo separado por comas (CSV) que hallamos editado en nuestra hoja de calculo favorita. Esta tarea se la logra en:
    RATECARD --> Import RateCard

    El separador de columnas debe ser el ; (punto y coma) ya que si usamos , nos dará error al importar.

    6.- Crear clientes

    CUSTOMERS --> Create Customers

    CARD NUMBER (generado por a2billing)
    CARD ALIAS 123
    WEBui PASSWORD 123
    BALANCE 10
    LANGUAGE SPANISH
    TARIFFGROUP Oro
    SIMULTANEOUS ACCESS INDIVIDUAL ACCESS
    CURRENCY U.S. Dollar (USD)
    LASTNAME Apellido
    FIRSTNAME Nombre
    EMAIL email@mail.da.ru
    ADDRESS Direccion
    CITY Ciudad
    STATE/PROVINCE Provincia
    COUNTRY País
    PHONENUMBER Telefono
    FAXNUMBER Fax
    SIP ACCOUNT Yes
    IAX ACCOUNT Yes

    A2billing nos genera automáticamente el numero de tarjeta, si quieremos darle a nuestro usuario un número que sea más fácil de recordar para el podemos usar el campo CARD ALIAS. En este ejemplo el usuario tiene un crédito de US$10,00 y la cuenta no puede ser usada simultáneamente.

    A cada tarjeta podemos agregarles usuarios adicionales SIP e IAX. Esto se lo logra listando las tarjetas y dando click al botón respectivo (SIP, IAX) en el resultado de listar las tarjetas:


    CUSTOMERS --> List Customers
    Dar click en SIP para crear un usuario SIP
    Dar click en IAX para crear un usuario IAX

    7.- Agregar RATECARD al TARIFFGROUP

    RATECARD --> LIST TARIFFGROUP
    Escoger el tariffgroup Oro y agregar el ratecard internacional

    Ahora debemos probar si nuestra configuración surte efecto. Configuramos un dispositivo SIP o IAX2 para que se registre con los datos de usuario sip ó iax friend y marcamos un número de USA. Si todo esta bien en el CDR veremos registrada la llamada, su Duración y precio.

    Tips:
    * Al editar un cliente no puedes modificar el número de tarjeta porque este campo esta protegido contra escritura, esto implica que una llamada entre usuarios del mismo servidor pueda ser hecha entre números de tarjeta y no entre alias de tarjetas, los números que se aprenden mis usuarios son los alias porque son más sencillos de aprender. Por otra parte en lo personal se me hace mas fácil asignar manualmente el número de tarjeta que será el número de usuario. Para lograrlo debemos editar la linea 199 y eliminar la palabra readonly en el archivo /var/www/a2billing//Public/form_data/FG_var_card.inc la línea en mención nos quedaría mas o menos así:
    Antes:

    "size=20 $maxi readonly maxlength=40",

    Despues:

    "size=20 $maxi maxlength=40",

    * Por defecto a2billing.conf muestra el consumo desde que marcas el numero hasta que cuelgas, muchos al igual que yo deben querer que sea facturado solo el tiempo hablado, es decir desde que la llamada es contestada. Esto se logra modificando el parámetro dialcommand_param para agregar la letra C

    dialcommand_param="|90|HLrC(%timeout%:61000:50000)"

    * Muchos clientes deben querer porder saber su saldo en dinero sin necesidad de tener una computadora cerca, para esto realizamos el siguiente hack:

    cd /var/lib/asterisk/agi-bin
    cp a2billing.php balance.php
    cp -r libs_a2billing balance
    Editamos balance.php y cambiamos todas las referencias de libs_a2billing a balance, de igual manera hacemos con /var/lib/asterisk/agi-bin/balance/Class.A2Billing.php y reemplazamos a2billing.conf por balance.conf


    cd /etc/asterisk/
    5 cp a2billing.conf balance.conf
    Editamos las siguientes opciones en balance.conf

    say_balance_after_auth=YES
    use_dnid=NO
    answer_call=YES
    Finalmente se agrega la siguiente linea en extensions.conf en el contexto que usamos para a2billing:

    7. Add Extentenstion for balance

    exten => *0,1,DeadAGI(balance.php)

    Al marcar *0 desde cualquier equipo registrado en el sistema escucharemos el saldo de la cuenta.
     
  2. hugo_cba

    Joined:
    May 22, 2008
    Messages:
    222
    Likes Received:
    0
    Veo que seguís a full con tu proyecto!

    Excelente aporte!
     
  3. gamba47

    Joined:
    May 28, 2009
    Messages:
    595
    Likes Received:
    0
    Yo lo vi tambien pero no me funciono!

    Lo voy a tener que probar de nuevo.
    Gracias.

    gamba47
     
  4. worldxcomputers

    Joined:
    Aug 26, 2009
    Messages:
    126
    Likes Received:
    0
    cuando me meto algo en mi cabezota, no paro hasta conseguirlo, jajaja
     
  5. worldxcomputers

    Joined:
    Aug 26, 2009
    Messages:
    126
    Likes Received:
    0
    Gracias Hugo, la verdad que me eh dado cuenta que con este tuto solo te dan la idea de montar una tarjeta de prepago con 1 proveedor a la vez, osea me explico, el que lo este haciendo sabra a que me refiero. Cuando quieres hacer una tarjeta internacional y vas a elegir el proveedor que quieras, solo te deja uno y es una putada, ya que uno lo que quiere es tener los mejores precios.

    Se me a ocurrido una buena idea, y que tal si nos hacemos proveedores de nosotros mismos, yo tengo 7 proveedores instalados, funcionando y que tal si me hago una troncal a partir de una extension?, nose si me explico.

    Me hago una extension como un usuario cuando ese usuario llama, segun el destino cobra un proveedor u otro, porque asi lo hemos configurado en A2billing, prefijo xx troncal x, y asi con todas.

    pues una vez hecho esto tenemos los mejores precios de venta al mercado.

    dsede esta cuenta la configuramos como troncal y de ahi a la tarjeta, tal como suena es de puta madre, una tarjeta de lo mas competitiva.

    voy a probar si funciona, un saludo

    para mi gusto esto es un super aporte, pues normalmente estas cosillas cuando uno se da cuenta no se dicen :p jajajaja
     
  6. worldxcomputers

    Joined:
    Aug 26, 2009
    Messages:
    126
    Likes Received:
    0
    Gamba47, una pregunta, eh visto tu perfil, y en el apartado website pone BrazilFW, por casualidad es una distro de manejo para proveedores wireless??, esque llevo buscando eso mucho tiempo, realmente mucho tiempo,hace tiempo eh sido proveedor en una pequeña zona, pero lo tenia chungo porque lo tengo que hacer todo manual e improvisar sobre la marcha, osea, para que el cliente entre hacer filtrados mac, usar mi wifi zone que te informa cada vez que un nuevo cliente quiere entrar, vamos una lista blanca y negra de direcciones ip y direcciones mac, si eso es una distro para manejo pro de proveedor wireless me harias un chico feliz jajajaja, espero tu respuesta ansiosamente, jajaja y gracias . :)
     
  7. jcastellanos

    Joined:
    Feb 10, 2009
    Messages:
    2,404
    Likes Received:
    0
    genial, es exelente base, gracias
     
  8. delfin

    Joined:
    Jun 30, 2009
    Messages:
    14
    Likes Received:
    0
    Yo también me uno a este idea.

    Por favor me pueden recomendar un buen proveedor de VOIP para realizar las llamadas junto con las tarjetas.

    :huh:

    desde ya gracias!
     
  9. worldxcomputers

    Joined:
    Aug 26, 2009
    Messages:
    126
    Likes Received:
    0
    hombre yo si te digo la verdad hago una mezcla de todos, asi saco la mejor tarifa de cada uno, eso si, asegurate que al coger tarifas baratas, tengas buena calidad de llamada, pues si lo que quieres es vender voip, y la calidad no es buena, tendras clientes descontentos, suerte :)
     
  10. zeoneo

    Joined:
    Sep 24, 2009
    Messages:
    549
    Likes Received:
    0
    buenisimo aporte...

    casi no existe informacion de a2billing.

    Nos vemos
     
  11. aebenite

    Joined:
    Aug 2, 2010
    Messages:
    1
    Likes Received:
    0

    Hola tu idea es excelente, de hecho yo la he intentado tambien desde hace un tiempo sin embargo no he logrado hacer que funcione correctamente, te voy a indicar la plataformas con las que cuento:

    1. Asterisk 1.6.0.9-samy-r27
    2. Trixbox v2.8.0.1 ©2008 Fonality
    3. Asterisk2Billing - Version 1.3.3 (Doudou08) - Release : 14 May 2008

    Yo tengo mis propios clientes de venta al menudeo (tarjetas prepagadas) y al dia de hoy todo funciona muy bien tanto para entrada como salida de llamadas en el trixbox y el a2billing me factura perfectamente las llamadas de mis clientes. Ademas se selecciona la mejor tarifa porque cuenta con 4 proveedores VOIP.

    Tengo 2 servidores configurados con las plataformas de la 1 a la 3 listadas anteriormente, en este caso estan dentro de mi misma red local, asi que uno de ellos tiene la IP: 10.1.10.154 (cliente al menudeo) y el otro la IP: 10.1.10.160 (proveedor VOIP).

    Utilize el servidor 10.1.10.160 para simular mi servidor de proveedor VOIP, es decir, para venta de tiempo VOIP. Para esto le configure una cuenta (tarjeta) con su respectivo cliente SIP/IAX para utilizarlo como punto de entrada, es decir, se tiene la intencion de que esta sea la cuenta de venta al mayoreo (arriba de $10.00) para que yo le pueda vender tiempo VOIP al mayoreo a mi cliente.

    Utilize el servidor 10.1.10.154 para simular mi cliente de compras al mayoreo (es decir, el podra a su vez revender este tiempo a sus clientes con sus propias tarifas), de hecho este cliente puede ver su saldo actual accesando a su interfaz de usuario en http://10.1.10.160/A2BCustomer_UI. En este mismo servidor me hice mi propia tarjeta de $5.00 (cliente terminal) para hacer mis pruebas.

    En este mismo servidor de cliente, cree mi respectiva troncal en Trixbox (Asterisk) y a su vez configure la respectiva troncal en el a2billing y ambas interactuan correctamente.

    Hasta aqui todo funciona "bien", ya que cuando marco mi numero telefonico de acceso y me dirige a mi tarjeta (de usuario terminal de $5.00) en este servidor de cliente (10.1.10.154) todo trabaja bien ya que me permite seleccionar mi idioma, me pide mi numero de PIN, me dice mi saldo ($5.00), me pide que marque el numero de destino y me dice el tiempo que puedo hablar. Inmediatamente enruta mi llamada por la troncal que se dirige a mi servidor de proveedor (10.1.10.160) y este efectivamente contesta pero aqui viene el problema: La contestadora del servidor 10.1.10.160 me vuelve a preguntar el numero de PIN (de mi tarjeta configurada en este servidor que es diferente al del servidor 10.1.10.154) y me pregunta todos los demas datos y me pide que vuelva a marcar el numero de destino, al final me da las demas informaciones y efectivamente logra comunicarme con mi numero destino y se factura de manera correcta en el servidor proveedor (10.1.10.160).

    Como se ve, se logra la comunicacion, pero el servidor proveedor no debe volver a preguntar los datos que ya se le pidieron una vez al cliente terminal, sin embargo el a2billing del servidor proveedor debe facturar la llamada de este cliente terminal y todos los demas que esten ligados con esta cuenta (tarjeta) del servidor proveedor para que una vez que se agote el saldo, mi cliente de mayoreo (10.1.10.154) me vuelva a compra tiempo VOIP al servidor proveedor (10.1.10.160).

    Agradeceria mucho el aporte para solucionar este problema y que la llamada del cliente terminal fuera "transparente" (mi servidor proveedor solo debe retransmitir la llamada seleccionando la mejor tarifa de mis proveedores), es decir, que el, solo use su tarjeta (de $5.00) y se comunique con su destino.


    Anexo la configuracion de troncal en el servidor cliente:

    [trixbox2]
    username=0557598599
    type=friend
    secret=6008613072
    host=10.1.10.160
    fromuser=0557598599
    context=a2billing ; change for proper context
    allow=g729 ; we support ulaw,alaw,ilbc,gsm,g723.1,g726,g729a
    trustrpid=yes
    sendrpid=yes
    canreinvite=no


    y mi contexto a2billing es el mismo tanto en el servidor cliente como proveedor:

    [a2billing]
    exten => _X.,1,Answer
    exten => _X.,n,Wait(1)
    exten => _X.,n,DeadAGI(a2billing.php,1)
    exten => _X.,n,Hangup

    Agradeceria el apoyo.
     
  12. Mino

    Joined:
    Sep 20, 2012
    Messages:
    1
    Likes Received:
    0
    Excelente aporte. Gracias Por la info.
    Solo tengo dos preguntas.
    -Como relaciono el troncal creado en el A2billing y el troncal creado en Elastix.
    -Como recargo el cliente.
    Saludos
     
  13. carlosalfonso144

    Joined:
    Aug 2, 2012
    Messages:
    28
    Likes Received:
    0
    Como guia esta una nota, pero la segui y no me funciono, aun que me fue de mucha ayuda para entender en general como funciona.

    Tengo mi elastix, alli tengo troncales para llamada internacional, nacional, celular etc.
    lo que quiero es generarle cuentas a mis clientes para que se conecten a mi servidor y utilicen mis troncales que poseo.

    solo quiero darle a mi cliente, usuario, contraseña y dominio.

    pero al generarlos en el a2biling, y al hacer las pruebas no me regitran las cuentas.

    algun aporte adicional?
     

Share This Page