Unicall para Asterisk 1.4

Despues de una pequeña discusión en asterisk-users , decidí poner manos a la obra sobre un TODO que ya tenía un par de meses en mi lista. Adaptar el driver de unicall para Asterisk 1.4, dado que steve underwood no ha tenido tiempo/interés de hacerlo. Así que hace un par de semanas me tomé un sábado, y con la ayuda de tato de neocenter.com al fin quedó listo para ser probado ( nosotros solo probamos con un par de llamadas ).

Los fuentes pueden ser encontrados aqui:

Unicall para Asterisk 1.4

se ven,

This entry was posted in asterisk, voip. Bookmark the permalink.

85 Responses to Unicall para Asterisk 1.4

  1. moy says:

    Joel: astunicall ya no esta soportado, deberias estar usando openr2.

  2. joel says:

    hola Moises ¡¡
    espero que estes bien ¡¡

    instala un centos le hice un yum update y llego al kernel 2.6.18-194.17.1.el5 trate de instalar los paquetes de astunicall-1.4.21.2-0.1.tar.gz y no pude instalar tuve muchos problemas con Libunicall-0.0.6, asi que tuve que volver a tras con el kernel al 2.6.18-194.11.3.el5 y funciono

    saludos ¡¡

  3. Moises Silva says:

    http://www.libopenr2.org es la mejor fuente, ahi existen ligas a donde bajar las cosas. Unicall ya no tiene su desarrollo activo y OpenR2 ya fue incluido en Asterisk 1.6.2

  4. Horacio Vazquez says:

    Hola Moy soy nuevo en Asterrisk, en donde puedo encontrar informacion para instalar un E1 de telmex en Mexico, ya vi tus parches pero como los aplico y que programas deberia bajar.

    Tengo ahorita la ultima version de asterisk, la ultima version de dadhi. Y tengo una tarjeta Sangoma.

    Te agradeceria me indicaras por donde empezar

  5. moy says:

    En system.conf configuras igual que un enlace MFC R2, spans con hdb3 y cas:1101

    Sin embargo, ni openr2 ni unicall soportan DTMF R2. Acabo de agregar una variante de DTMF R2 en un branch de openr2, pero dudo que funcione en Venezuela, la variante parece distinta segun he visto.

    La opcion probablemente mas costeable es que hables con Movistar y les digas que te cambien a MFC R2, tengo entendido que es posible y sin costo.

    La otra opcion es que pagues por el desarrollo de DTMF R2 para la variante de Movistar, mi estimado es de alrededor de 1,500USD.

    Saludos,

  6. creiher says:

    Hola Moy,
    Tengo un servicio E1 completo de Movistar (Venezuela) conectado a Asterisk a traves de una Sangoma A101. Ya pude configurar con exito el contexto de llamadas entrantes utilizando el tutorial y la libreria openr2 por lo cual quedo agradecido. Ahora bien Movistar me informó que mis llamadas salientes son a través de señalización DTFM y no tengo idea de cómo configurar mi system.conf y chan_dahdi.conf para ese propósito.

  7. Fabian says:

    olvidé poner que en los logs veo este tipo de cosas…

    [Sep 14 15:52:57] WARNING[1630] chan_unicall.c: Unicall/1 Whoa…. I’m owned but found (24) in read [0xa33b710, 0xa33b710]…
    [Sep 14 17:38:49] WARNING[1630] chan_unicall.c: Unicall/1 Whoa…. I’m owned but
    found (24) in read [0xa29b2c0, 0xa29b2c0]…
    [Sep 14 17:58:45] ERROR[1630] chan_unicall.c: Unicall/2 protocol error. Cause 32773

  8. moy says:

    Como te comente, debes usar la lista asterisk-r2 para preguntas. Por otro lado, Unicall para R2 en Asterisk esta practicamente muerto, deberias usar http://www.libopenr2.org/

  9. Fabian says:

    Hola a todos,

    Les escribo desde Córdoba Argentina, estoy usando Unicall para conectar mi Asterisk 1.4.21 a una trama R2 de Telecom.

    Si bien las llamadas se establecen y finalizan correctamente, tengo problemas de cortes súbitos de las llamadas, a veces a los 3 minutos o a los 5….no hay ningún patrón….

    Desde la telco me dicen que ellos observan microcortes cuando conecto la trama a mi Asterisk.

    Alguna experiencia similar o sugerencia???

    Desde ya muchas gracias!

  10. garcia.ronald.d says:

    Hola a todos,

    Ramón pudiste resolver lo de las llamadas salientes del asterisk a través de DTMF con CANTV?

    Gracias

  11. moy says:

    Que tal,

    Tu pregunta es bastante general. La respuesta rapida es si, si se puede.

    Y por otro lado, el proceso se describe en varios sitios web, usa google para ello. Si te interesa que te de consultoria puedes contactame a mi correo, moises.silva en el correo de google (gmail)

    Para soporte gratuito puedes usar la lista de asterisk (asterisk-users) o algun otro foro en español.

    Saludos,

  12. srdebazan says:

    Buenas tardes MOY
    Me puedes decir si es posible configurar una tarjeta de lineas digitales y una de lineas analogicas con el asterisk? y si es asi como tendria que hacerlo

  13. moy says:

    no tienes el parametro group=2 en ningun lado. Probablemente estas confundido con callgroup=2. El parametro callgroup no es lo mismo que group. Lee la documentacion en doc/zapata.conf.sample o doc/chan_dahdi.conf.sample

    En fin, solo agrega el parametro group=2 antes de los canales del 32 al 62 y ya debe funcionar.

    Tambien tienes como opcion usar chan_zap o chan_dahdi con soporte para R2 usando OpenR2 como está descrito en http://www.libopenr2.org

  14. srdebazan says:

    Moy
    Quiero configurar 2 grupos de toncales en unicall como lo puedo hacer ya que solo me deja sacar llamadas por el g1

    espero me puedas ayudar ya que los enlaces en la e1 que tengo son para diferentes propositos

    esta es la configuracion en unicall

    callgroup=1
    pickupgroup=1
    accountcode=4321
    context=intertel
    group=1
    channel=>1-15
    channel=>16-31
    skip time slot 16

    callgroup=2
    pickupgroup=2
    accountcode=1234
    context=maxcom
    trunkgroup=2
    channel=>32-46
    channel=>48-62
    ;skip time slot 47

    y en extensions esta asi
    exten=>_1XXXXXXXX ,1,Dial(unicall/g2/${EXTEN:1},20) ;Numero Local

    saludos

  15. moy says:

    intenta con ITU

    Si no te funciona contactame por msn o google talk (moises punto silva en gmail punto com) para ver si implementamos tu variante

  16. jetm says:

    Tengo un Elastix 1.1 en Nicaragua con un E1.

    Existe un protocolvariant= para este país? o Será posible usar otra variente?

  17. moy says:

    cambiate a openr2 🙂 (www.libopenr2.org)

    En su defecto, provee de mas información para saber que sucede.

  18. mario_nissan says:

    Hola a todos,

    Estoy teniendo un problema con R2 y Maxcom con una TE122P de Digium, pues sucede que cada vez que Maxcom pierde el enlace y lo restaura nos vemos en la necesidad de re-iniciar el servidor en lugar de que automáticamente vuelva a funcionar. ¿Se les ocurre alguna solución?

    Gracias.
    Saludos!

  19. Elasmex says:

    Hola Moy

    Revisando el Blog ya no veo las preguntas que te realice con respecto al Unicall en Elastix…

    ¿Qué paso ?

    Saludos

  20. moy says:

    No entiendo tu pregunta. Qué es un contexto de salida?

  21. hugo says:

    Hola Moy, como sabes instalé Unicall para que asterisk 1.4 pudiera manejar la linea E1 con MFCR2 y me funciona sin problmas. Sin embargo instale un tarificador qeu tiene asociado contexto de salida. En el caso las troncales SIP uno puede facilmente asignarle el contexto de salida pro la FreePBX, sin embargo para unicall tengo una troncal personalizada q no me lo permite. En el unicall.conf yo definí dos grupos uno para los entrantes y uno para los salientes y pensé que a cada grupo podia asgnarle un contexto correspondiente, pero solo me agarra el contexto entrante asignado al grupo 1. Puedes por favor orientarme en como le asigno un contexto de salida a Unicall?
    De antemano muchas gracias por tu respuesta.

  22. caznar01 says:

    Moy, mis disculpas. Me habian quedado unos include viejos (esos no los habia tenido en cuenta) en el /usr/local/include/unicall. Borre el directorio, levanto los mismos desde donde correspondia y compilo sin problemas.
    Gracias de nuevo.

    Saludos,
    Claudio

  23. moy says:

    definitivamente es un error de tu ambiente, puedes comprobarlo facilmente abriendo el archivo /usr/include/unicall/unicall-private.h

    Ahi debes tener 2 lineas importantes:

    typedef int (uc_delete_t)(uc_t *uc);

    y poco mas abajo

    uc_delete_t *xx_delete;

  24. caznar01 says:

    Moy, gracias por tu pronta respuesta. Antes de compilar tengo la precausion de borrar librerias anteriores y correr los configure seteando el prefix en /usr.

    Lo he vuelto a hacer (borrar los /usr/lib/libunicall.a/la/so/so.0/so.0.0.1) y recompilado la libunicall con el mismo resultado. Alguna idea?

    Saludos cordiales,
    Claudio

  25. moy says:

    seguramente tienes una versión incorrecta de libunicall instalada en el sistema. Asegurate de borrar cualquier versión vieja de unicall borrando /usr/lib/libunicall* y /usr/local/lib/libunicall*

    La rutina delete_context la agregué yo, versiones originales de libunicall obtenidas de soft-switch.org seguramente no contienen tal rutina.

    Saludos,

  26. caznar01 says:

    Estimado, estoy intentando compilar distintas versiones de ASTUNICALL (1.4.16 & 1.4.18) y siempre tropiezo con el mismo error con las libs de MFCR2:

    make all-am
    make[1]: Entering directory `/usr/src/astunicall-1.4.18-0.2/unicall-0.0.5pre1/libmfcr2-0.0.3′
    if /bin/sh ./libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/libxml2 -g -O2 -MT mfcr2.lo -MD -MP -MF “.deps/mfcr2.Tpo” -c -o mfcr2.lo mfcr2.c; \
    then mv -f “.deps/mfcr2.Tpo” “.deps/mfcr2.Plo”; else rm -f “.deps/mfcr2.Tpo”; exit 1; fi
    gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/libxml2 -g -O2 -MT mfcr2.lo -MD -MP -MF .deps/mfcr2.Tpo -c mfcr2.c -fPIC -DPIC -o .libs/mfcr2.o
    mfcr2.c:109: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘delete_context’
    mfcr2.c:191: error: ‘delete_context’ undeclared here (not in a function)
    mfcr2.c:192: warning: initialization from incompatible pointer type
    mfcr2.c:193: warning: initialization from incompatible pointer type
    mfcr2.c:194: warning: initialization from incompatible pointer type
    mfcr2.c:195: warning: initialization from incompatible pointer type
    mfcr2.c:196: warning: initialization from incompatible pointer type
    mfcr2.c:197: warning: initialization from incompatible pointer type
    mfcr2.c:198: warning: initialization from incompatible pointer type
    mfcr2.c:199: warning: initialization from incompatible pointer type
    mfcr2.c:200: warning: initialization from incompatible pointer type
    mfcr2.c:201: warning: initialization from incompatible pointer type
    mfcr2.c:203: warning: excess elements in struct initializer
    mfcr2.c:203: warning: (near initialization for ‘protocol_descriptor’)
    make[1]: *** [mfcr2.lo] Error 1
    make[1]: Leaving directory `/usr/src/astunicall-1.4.18-0.2/unicall-0.0.5pre1/libmfcr2-0.0.3′
    make: *** [all] Error 2

    No soy experto en “C” y la verdad es que no encuentro como solucionarlo.

    Saludos.

  27. moy says:

    Es correcto. No hay problema sin compilas sin –prefix=/usr, pero puede existir problema si algunos paquetes los compilas con –prefix y otros sin el prefijo.

  28. moy says:

    link:
    Es preferible que instales haciendo

    ./configure –prefix=/usr
    make
    make install

    De esa forma las librerias serán instaladas en /usr y NO en /usr/local como es el default y así no tendrás que modificar nada en /etc/ld.so.conf

    Si no deseas hacerlo, OK, pero no necesitas poner include en la segunda linea.

    No, zaptel/zaptel.h debe funcionar si ya tienes los headers de zaptel instalados en /usr/include/zaptel/zaptel.h , el path /usr/include es buscado por default.

    Saludos

  29. moy says:

    Es un error de mis pruebas 🙂

    No cambie el include. Debes cambiar linux/zaptel.h por zaptel/zaptel.h y listo.

    Saludos

  30. adrianfm says:

    Saludos Moy, estuve en el taller de Asterisk que diste en CONSOL 2006, apenas voy retomando Asterisk encontré en tu blog el paquete que hiciste para Asterisk con R2 lo descargue y empecé a instalar, pero me quede atorado al compilar libmfcr2.

    mfcr2.c:55:26: error: linux/zaptel.h: No such file or directory

    Intente compilar la versión de zaptel 1.4.9, pero igual tuve errores.

    Que versión puedo utilizar?

  31. hugo says:

    Hola moy, gracias por tu respuesta.
    Efectivamente al tratar de arrancar el asterisk con asterisk -vvvc es que me daba el error que te comente. Como te dije anteriormete estoy haciendo la instalacion en Trixbox 2.2.9, para lograrlo desinstale el asterisk 1.2 que trae, e instale el que viene en astunicall-1.4 junto con los demas paquetes. Ademas hice las siguientes configuraciones:

    zaptel.conf

    span=1,1,0,cas,hdb3
    cas=1-15:1101
    dchan=16
    cas=17-31:1101
    loadzone=us
    defaultzone=us

    unicall.conf

    channels]
    usecallerid=yes
    hidecallerid=no
    callwaitingcallerid=yes
    threewaycalling=yes
    transfer=yes
    cancallforward=yes
    callreturn=yes
    echocancel=yes
    echocancelwhenbridged=yes
    echotraining=yes
    rxgain=0.0
    txgain=0.0
    group=1
    callgroup=1
    pickupgroup=1
    immediate=no
    musiconhold=default
    protocolclass=mfcr2
    protocolvariant=ar,10,10
    protocolend=cpe
    group = 1
    context= e1-incoming
    channel => 1-15
    channel => 17-31
    ;skip time slot 16

    Al ejecutar UC show channels desde el CLI me muestra todos los canales configurados y en Idle. Para configurar los canales unicall como ruta de salida cree una troncal personalizada en la freePBX con nombre Unicall/g1/${EXTEN} y configure esta troncal como ruta de salida, sin embargo cuando trato de llamar en el CLI aparece un error de unable channel.
    De acuerdo a esto me surge la duda si me falto algo por hacer para que puedan salir las llamadas por la E1. Una vez mas, muy agradecido por tu disposicion de ayudar y por tu tiempo.

Leave a Reply to moy Cancel reply

Your email address will not be published. Required fields are marked *

*