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:

    Hugo,

    Inicia tu mismo Asterisk. Primero detenlo:

    # service asterisk stop

    Luego inicialo manualmente:

    # astersik -vvvvvvvvvvvvvvvvvvvvvvvvvvc

    Nota la letra C al final para iniciar Asterisk con su respectiva consola, eso debe mostrarte cual es el problema.

  2. hugo says:

    Hola, muchas gracias por tu respuesta moy. Efectivamente me faltaba uno de los paquetes de zaptel, y unos paquetes del kernel para poder intalalrlo. una vez q me descargue esto pude conpilar sin problema libmfcr2.
    Luego de esto tal como me habias dicho compile el zaptel que viene en el paquete y hasta alli no hubo novedad, sin embargo al compilar el asterisk, este me dejo de funcionar, es decir luego de compilar el asterisk, el servicio se cayo. cuando trataba de entrar a la consola asterik me aparecia el siguiente mensaje:
    Unable to connect to remote asterisk (does /var/run/asterisk.ctl exist?)

    Segun mi experiencia esto sucede cuando se compila cualquier cosa que asterik no reconoce ya sea porque no corresponde con la version o porque el archivo esta dañado. No se que podria ser por lo que a continuacion agrego los datos del sistema a ver si alguno de ustedes puedes identificar que podria ser.
    Sistema: Trixbox 2.2.9
    Distribucion: CentOS release 4.6
    Kernel: 2.6.9-34.0.2.ELsmp (SMP)
    Este sistema trae instalado Asterisk 1.1.0.25

    Una vez mas moy, te agradezco la paciencia y disposicion para ayudarme.

  3. moy says:

    No tienes instalado zaptel o la version de zaptel y libmfcr2 que usas son incompatibles. libmfcr2 requiere los headers de zaptel y como puedes ver en el error:

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

    No encuentra el header de zaptel, los demas errores se derivan de eso.

  4. hugo says:

    Hola ramon ya te envie el correo, hola moy, hola a todos, gracias por sus respuestas, segui los consejos dados, sin embargo me seguia saliendo un error pero ahora al tratar de hacerle make a libmfcr2. Hice varios intentos pero no consegui la falla, me cambie de distribucion ahora estoy trabajando con Trixbox2.2.9 que usa centos 4.5 y Asterisk 1.2 pude compilar sin problema spandsp, libsupertone y libunicall pero me dio el mismo error que antes al hacerlo con libmfcr2. Realmente desconozco el motivo del error por lo que a continuacion les muestro la salida obtenida del make a ver si alguno de ustedes reconoce la falla.

    [root@asterisk1 libmfcr2-0.0.3]# make
    make all-am
    make[1]: Entering directory `/usr/src/astunicall-1.2.25-0.1/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
    mkdir .libs
    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:55:26: linux/zaptel.h: No such file or directory
    mfcr2.c: In function `set_mf_signal’:
    mfcr2.c:591: error: `ZT_FLUSH_WRITE’ undeclared (first use in this function)
    mfcr2.c:591: error: (Each undeclared identifier is reported only once
    mfcr2.c:591: error: for each function it appears in.)
    mfcr2.c:592: error: `ZT_FLUSH’ undeclared (first use in this function)
    mfcr2.c: In function `check_event’:
    mfcr2.c:2754: error: `ZT_IOMUX_SIGEVENT’ undeclared (first use in this function)
    mfcr2.c:2754: error: `ZT_IOMUX_READ’ undeclared (first use in this function)
    mfcr2.c:2754: error: `ZT_IOMUX_NOWAIT’ undeclared (first use in this function)
    mfcr2.c:2759: error: `ZT_IOMUX_WRITE’ undeclared (first use in this function)
    mfcr2.c:2772: error: `ZT_IOMUX’ undeclared (first use in this function)
    mfcr2.c:2786: error: `ZT_GETEVENT’ undeclared (first use in this function)
    mfcr2.c:2791: error: `ZT_EVENT_BITSCHANGED’ undeclared (first use in this function)
    mfcr2.c:2794: error: `ZT_EVENT_ALARM’ undeclared (first use in this function)
    mfcr2.c:2795: error: `ZT_EVENT_NOALARM’ undeclared (first use in this function)
    mfcr2.c:2826: error: `ELAST’ undeclared (first use in this function)
    mfcr2.c:3002: error: `ZT_IOMUX_WRITEEMPTY’ undeclared (first use in this function)
    mfcr2.c: In function `create_new’:
    mfcr2.c:3914: error: storage size of ‘p’ isn’t known
    mfcr2.c:3915: error: storage size of ‘b’ isn’t known
    mfcr2.c:3931: error: `ZT_GET_PARAMS’ undeclared (first use in this function)
    mfcr2.c:3937: error: `ZT_SIG_CAS’ undeclared (first use in this function)
    mfcr2.c:3998: error: `ZT_LAW_ALAW’ undeclared (first use in this function)
    mfcr2.c:3998: error: `ZT_LAW_MULAW’ undeclared (first use in this function)
    mfcr2.c:4038: error: `ZT_GET_BUFINFO’ undeclared (first use in this function)
    mfcr2.c: In function `channel_open’:
    mfcr2.c:4211: error: storage size of ‘bi’ isn’t known
    mfcr2.c:4212: error: storage size of ‘g’ isn’t known
    mfcr2.c:4223: error: `ZT_SPECIFY’ undeclared (first use in this function)
    mfcr2.c:4239: error: `ZT_GET_BUFINFO’ undeclared (first use in this function)
    mfcr2.c:4247: error: `ZT_POLICY_IMMEDIATE’ undeclared (first use in this function)
    mfcr2.c:4251: error: `ZT_SET_BUFINFO’ undeclared (first use in this function)
    mfcr2.c:4259: error: `ZT_CHANNO’ undeclared (first use in this function)
    mfcr2.c:4275: error: `ZT_SETGAINS’ undeclared (first use in this function)
    mfcr2.c: In function `channel_set_api_codec’:
    mfcr2.c:4344: error: `ZT_SETLINEAR’ undeclared (first use in this function)
    mfcr2.c:4353: error: `ZT_LAW_ALAW’ undeclared (first use in this function)
    mfcr2.c:4355: error: `ZT_LAW_MULAW’ undeclared (first use in this function)
    mfcr2.c:4402: error: `ZT_SETLAW’ undeclared (first use in this function)
    mfcr2.c: In function `channel_write’:
    mfcr2.c:4443: error: `ELAST’ undeclared (first use in this function)
    mfcr2.c: In function `channel_flush’:
    mfcr2.c:4482: error: `ZT_FLUSH_WRITE’ undeclared (first use in this function)
    mfcr2.c:4483: error: `ZT_FLUSH’ undeclared (first use in this function)
    mfcr2.c: In function `channel_gains’:
    mfcr2.c:4505: error: storage size of ‘g’ isn’t known
    mfcr2.c:4578: error: `ZT_SETGAINS’ undeclared (first use in this function)
    mfcr2.c: In function `channel_echo_cancel’:
    mfcr2.c:4605: error: `ZT_ECHOCANCEL’ undeclared (first use in this function)
    mfcr2.c:4617: error: `ZT_ECHOTRAIN’ undeclared (first use in this function)
    mfcr2.c: In function `channel_switching’:
    mfcr2.c:4636: error: storage size of ‘zi’ isn’t known
    mfcr2.c:4649: error: `ZT_SETCONF’ undeclared (first use in this function)
    mfcr2.c:4661: error: `ZT_CONFMUTE’ undeclared (first use in this function)
    mfcr2.c: In function `abcd_control’:
    mfcr2.c:4696: error: `ZT_SETTXBITS’ undeclared (first use in this function)
    mfcr2.c: In function `check_abcd’:
    mfcr2.c:4716: error: `ZT_GETRXBITS’ undeclared (first use in this function)
    mfcr2.c: In function `check_alarms’:
    mfcr2.c:4731: error: `ZT_SPANINFO’ undeclared (first use in this function)
    mfcr2.c:4731: error: syntax error before “zi”
    mfcr2.c:4733: error: `zi’ undeclared (first use in this function)
    mfcr2.c:4735: error: `ZT_SPANSTAT’ undeclared (first use in this function)
    make[1]: *** [mfcr2.lo] Error 1
    make[1]: Leaving directory `/usr/src/astunicall-1.2.25-0.1/unicall-0.0.5pre1/libmfcr2-0.0.3′
    make: *** [all] Error 2

  5. ramon says:

    Hola Hugo, me puedes contactar por mi correo electronico, puedes hacer click sobre mi nombre y me escribes un correo para ponernos de acuerdo.
    Saludos

  6. moy says:

    Ese error es de una mala instalación de zaptel. Se encuentra fuera del scope de este post discutir una instalación de zaptel.

    Pueden buscarme en la tarde-noche de hoy, darme acceso a su servidor y en unos minutos lo dejo listo.

  7. razc says:

    Hola moy

    Estoy aqui con Carolina probando la instalacion. Primero quisimos probar en otra maquina todo el proceso….bajamos

    borramos todo

    mv zaptel-1.4.9 a /usr/src/zaptel

    ./configure

    make

    make install

    make configure

    y luego quisimos modprobe zaptel…. pero marca FATAL: Module zaptel not found.

    Ya nos perdimos….

  8. moy says:

    Carolina,

    La misma respuesta que le di a Gabriel va para ti.

    El error que tienes es por que tienes unstalada una version de libunicall no compatible con el chan_unicall.c que estás intentando instalar.

    Este paquete:
    http://www.moythreads.com/astunicall/files/astunicall-1.4.9-0.1.tar.gz

    Incluye todo lo que necesitas.

    Desinstala todo lo que hayas instalado previamente ( spandsp, libunicall, libsupertone, libmfcr2 etc ).

    Si siguen con problemas después de intentar con el paquete, contactenme por MSN moises.silva at gmail dot com

    Saludos,

  9. carolina says:

    hola moy,
    estoy tratando de instalar una E1 en un centos 5, ya baje y compile el zaptel,libpri —el libsupertone,libunicall,libmfcr2 y spansp los baje del link que tienes al inicio del blog—- y todo compila muy bien el problema es despues de instalar el parche y tratar de compilar el asterisk, el caso es que me marca el mismo error que a gabriel. Ahora baje el astunicall que mencionas pero igual me marca un errror al compilar el asterisk, el error es el siguiente:
    [LD] chan_unicall.c -> chan_unicall.o
    chan_unicall.c: In function handle_uc_event:
    chan_unicall.c:2641: error: UC_EVENT_DIALEDNUMBER undeclared (first use in this function)
    chan_unicall.c:2641: error: (Each undeclared identifier is reported only once
    chan_unicall.c:2641: error: for each function it appears in.)
    make[1]: *** [chan_unicall.o] Error 1
    make: *** [channels] Error 2

    Ya tengo semanas tratando de instalar el asterisk para la E1 y como vez no lo he logrado, agradeceria mucho si me pudieras ayudar.
    Gracias

  10. carolina says:

    hola moy,
    estoy tratando de instalar una E1 ya instale el zaptel,libpri,libsupertone,libunicall,libmcrf2, pero al compilar el asterisk este no compila, tengo el mismo error que gabriel al compilarlo, estoy trabajando con asterisk 1.4 ya baje el astunicall pero ahora tengo este otro error al compilar mi asterisk

    [LD] chan_unicall.c -> chan_unicall.o
    chan_unicall.c: In function âhandle_uc_eventâ:
    chan_unicall.c:2641: error: âUC_EVENT_DIALEDNUMBERâ undeclared (first use in this function)
    chan_unicall.c:2641: error: (Each undeclared identifier is reported only once
    chan_unicall.c:2641: error: for each function it appears in.)
    make[1]: *** [chan_unicall.o] Error 1
    make: *** [channels] Error 2

    no se si estoy haciendo algo mal pero el caso es que no he podido instalar el asterisk con unicall si me pudieras ayudar te lo agradeceria muchisimo

  11. moy says:

    Gabriel,

    Actualmente no hay necesidad de reparar nada.

    Hace tiempo que abri el blog astunicall en http://www.moythreads.com/astunicall/

    Si algún paquete de los que están ahi no funciona, reporta ahi mismo el error.

    Gracias y Saludos!

  12. gabriel balcazar says:

    ya encontre la funcion ast_channel_alloc y veo que en el archivo chan_unicall se llama con cinco parametros y en el asterisk 1.4.15 solo tiene 1 parametro

    en la linea 2488 aparece

    if(( tmp = ast_chanel_alloc(0,state,0,0,chan_name)) == NULL)

    y buscando en internet encontre que la funcion solo recibe un solo parametro que es

    struct ast_channel *ast_channel_alloc(int needqueue)

    cambie la linea en el archivo chan_unicall.c en la linea 2488
    a
    if(( tmp = ast_chanel_alloc(0)) == NULL)

    y parece que no tomara el cambio porque cuando ejecuto el make sale el mismo error

  13. gabriel balcazar says:

    Moy todabia existe el problema con unicall y asterisk ya estamos en la version 1.4.15 de asterisk. quiero trabajar en el parche para solucionarlo me podes mandar informacion para empesar a aprender y mejorar esta libreria que es realmente importante.

  14. moy says:

    mmm veo raro eso. Los paquetes ya funcionan. Lo que si noté es que estás usando un paquete viejo. Tuvé un error al subir los archivos, ya los actualicé, por favor limpia el cache de tu navegador y baja de nuevo el paquete.

    Recuerda compilar en este orden.

    spandsp
    libsupertone
    libunicall
    libmfcr2
    asterisk

    Saludos,

  15. hugo says:

    Muchas gracias moy por tus respuestas y por tu tiempo, la creacion de ese paquete facilita mucho el proceso, sin embargo al ejecutar el make a libunicall obtengo la siguiente salida:

    make all-am
    make[1]: Entering directory `/astunicall-1.2.21-0.2/unicall-0.0.5pre1/libunicall-0.0.3′
    if /bin/sh ./libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=”\”/usr/local/lib/unicall\”” -g -O2 -MT unicall.lo -MD -MP -MF “.deps/unicall.Tpo” -c -o unicall.lo unicall.c; \
    then mv -f “.deps/unicall.Tpo” “.deps/unicall.Plo”; else rm -f “.deps/unicall.Tpo”; exit 1; fi
    mkdir .libs
    gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=\”/usr/local/lib/unicall\” -g -O2 -MT unicall.lo -MD -MP -MF .deps/unicall.Tpo -c unicall.c -fPIC -DPIC -o .libs/unicall.o
    gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=\”/usr/local/lib/unicall\” -g -O2 -MT unicall.lo -MD -MP -MF .deps/unicall.Tpo -c unicall.c -o unicall.o >/dev/null 2>&1
    if /bin/sh ./libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=”\”/usr/local/lib/unicall\”” -g -O2 -MT logging.lo -MD -MP -MF “.deps/logging.Tpo” -c -o logging.lo logging.c; \
    then mv -f “.deps/logging.Tpo” “.deps/logging.Plo”; else rm -f “.deps/logging.Tpo”; exit 1; fi
    gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=\”/usr/local/lib/unicall\” -g -O2 -MT logging.lo -MD -MP -MF .deps/logging.Tpo -c logging.c -fPIC -DPIC -o .libs/logging.o
    gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=\”/usr/local/lib/unicall\” -g -O2 -MT logging.lo -MD -MP -MF .deps/logging.Tpo -c logging.c -o logging.o >/dev/null 2>&1
    if /bin/sh ./libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=”\”/usr/local/lib/unicall\”” -g -O2 -MT hashtable.lo -MD -MP -MF “.deps/hashtable.Tpo” -c -o hashtable.lo hashtable.c; \
    then mv -f “.deps/hashtable.Tpo” “.deps/hashtable.Plo”; else rm -f “.deps/hashtable.Tpo”; exit 1; fi
    gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=\”/usr/local/lib/unicall\” -g -O2 -MT hashtable.lo -MD -MP -MF .deps/hashtable.Tpo -c hashtable.c -fPIC -DPIC -o .libs/hashtable.o
    gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=\”/usr/local/lib/unicall\” -g -O2 -MT hashtable.lo -MD -MP -MF .deps/hashtable.Tpo -c hashtable.c -o hashtable.o >/dev/null 2>&1
    if /bin/sh ./libtool –tag=CC –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=”\”/usr/local/lib/unicall\”” -g -O2 -MT simplesched.lo -MD -MP -MF “.deps/simplesched.Tpo” -c -o simplesched.lo simplesched.c; \
    then mv -f “.deps/simplesched.Tpo” “.deps/simplesched.Plo”; else rm -f “.deps/simplesched.Tpo”; exit 1; fi
    gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=\”/usr/local/lib/unicall\” -g -O2 -MT simplesched.lo -MD -MP -MF .deps/simplesched.Tpo -c simplesched.c -fPIC -DPIC -o .libs/simplesched.o
    gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=\”/usr/local/lib/unicall\” -g -O2 -MT simplesched.lo -MD -MP -MF .deps/simplesched.Tpo -c simplesched.c -o simplesched.o >/dev/null 2>&1
    /bin/sh ./libtool –tag=CC –mode=link gcc -g -O2 -o libunicall.la -rpath /usr/local/lib -version-info 0:1:0 unicall.lo logging.lo hashtable.lo simplesched.lo
    gcc -shared .libs/unicall.o .libs/logging.o .libs/hashtable.o .libs/simplesched.o -Wl,-soname -Wl,libunicall.so.0 -o .libs/libunicall.so.0.0.1
    (cd .libs && rm -f libunicall.so.0 && ln -s libunicall.so.0.0.1 libunicall.so.0)
    (cd .libs && rm -f libunicall.so && ln -s libunicall.so.0.0.1 libunicall.so)
    ar cru .libs/libunicall.a unicall.o logging.o hashtable.o simplesched.o
    ranlib .libs/libunicall.a
    creating libunicall.la
    (cd .libs && rm -f libunicall.la && ln -s ../libunicall.la libunicall.la)
    if gcc -DHAVE_CONFIG_H -I. -I. -I. -DPROTOCOLDIR=”\”/usr/local/lib/unicall\”” -g -O2 -MT testcall.o -MD -MP -MF “.deps/testcall.Tpo” -c -o testcall.o testcall.c; \
    then mv -f “.deps/testcall.Tpo” “.deps/testcall.Po”; else rm -f “.deps/testcall.Tpo”; exit 1; fi
    testcall.c: In function `channel_read_file’:
    testcall.c:193: error: too many arguments to function `dtmf_tx_put’
    testcall.c: In function `handle_uc_event’:
    testcall.c:537: error: too many arguments to function `dtmf_tx_put’
    testcall.c:552: error: too many arguments to function `dtmf_tx_put’
    make[1]: *** [testcall.o] Error 1
    make[1]: Leaving directory `/astunicall-1.2.21-0.2/unicall-0.0.5pre1/libunicall-0.0.3′
    make: *** [all] Error 2

    Espero que alguno por su experiencia me pueda orientar para solucionar el error. De antemano muchas gracias.

  16. moy says:

    Todo lo que mencionas ya no es necesario. Para eso abrí un blog en http://www.moythreads.com/astunicall/

    En la sección de Downloads encuentras un paquete con todo listo para instalar.

  17. hugo says:

    Gracias por la aclaratoria moy, obviamente no hay ningun error pero desconocia esas lineas por lo que pense que me faltaba hacer algo, tome tu consejo lei un poco y continue con la instalacion. Al hacerle make a libunicall me surgio un problema por lo que antes de colocar el problema en pantalla queria preguntar si lo hice correctamente. descargue el archivo, lo descomprimi, entre a la carpeta libunicall-0.0.3_1.4, descargue el parche ejecute patch -p1

  18. moy says:

    Hugo,

    Eso no es un error. Ves la palabra “error” en algún lado? No sé de donde sacas que eso es un error. Necesitas leer un tutorial de Linux y como instalar software con las autotools de GNU

  19. hugo says:

    Hola, un cordial saludo a todos. Actualmente tengo instalado Trixbox con Asterisk 1.4 y una tarjeta TE205P la cual estoy tratando de configurar para que pueda manejar una E1 con señalizacion R2, para ello me ubique en /usr/src, me descargue spandsp-0.0.3pre27.tgz, lo descomprimi y entre al directorio spandsp-0.0.3 donde ejecute ./configure el cual se ejecuto sin problema, sin embargo al ejecutar el make me arroja el siguiente error:
    Making all in src
    make[1]: se ingresa al directorio `/usr/src/spandsp-0.0.3/src’
    make all-am
    make[2]: se ingresa al directorio `/usr/src/spandsp-0.0.3/src’
    make[2]: se sale del directorio `/usr/src/spandsp-0.0.3/src’
    make[1]: se sale del directorio `/usr/src/spandsp-0.0.3/src’
    make[1]: se ingresa al directorio `/usr/src/spandsp-0.0.3′
    make[1]: No se hace nada para `all-am’.
    make[1]: se sale del directorio `/usr/src/spandsp-0.0.3′

    No tengo idea a que se debe este error ni como solucionarlo, asi que le agradezco mucho a quien pueda echarme una mano, en especial a ramon que logro hacer la configuracion desde Venezuela, pais donde me encuentro tambien. De antemano muchas gracias.

  20. cra_net says:

    Hola, q tal, antes q nada quiero felicitar a toda la gente q invierte su tiempo en crear nuevos parches, lo cual m interesa y voy a tratar d contribuir c todo lo q pueda. Creo q entre todos podemos ayudarns mucho.
    Ahora paso a preguntar…alguien tiene algun parche unicall r2 para asterisk 1.4.5 ? Desde ya muchas gracias y saludos a todos!!

  21. ramon says:

    En este link http://lists.digium.com/pipermail/asterisk-users/2005-November/126269.html pueden encontrar una pequeña explicacion realizada por steve underwood para permitir llamadas saliente usando DTMF con los bit de señalizacion ABCD. Segun Steve hay que modificar el codigo para que permita enviar los DNIS como DTMF despues de la toma de canal, por supuesto, se pierde cierta funcionalidad con el standart R2 digital como son deteccion de tono de congestion etc.
    A la espera de sus comentarios.
    Saludos y Gracias

  22. ramon says:

    Una pregunta al blog,
    En Venezuela se usa R2 para telefonia digital tanto para llamadas entrantes asi como tambien para llamadas salientes, sin embargo la mayoria de los switchs Siemens que poseen los carriers poseen solo la opcion de configurar el circuito entrante bajo protocolo DTMF, del lado del carrier,es decir, seria el E1 saliente para asterisk.
    De acuerdo informacion suministrada por el carrier, me dicen que el principio de comunicacion esta basado en R2, la unica diferencia es que se basa en el analisis de los tonos de frecuencia (DTMF) que se genera durante la negociacion de la llamada para la interpretacion de los Digitos, que este caso es el numero marcado desde asterisk. Esta configuracion es la que entrega el carrier por default y cuando trate de realizar alguna llamada, la misma no se completaba; una vez realizaron el cambio a R2 se pudo realizar sin problema.
    Algunos de Uds ha tenido la oportunidad de trabajar o configurar esto con asterisk?. Existe la opcion de que Unicall soporte este protocolo?. Muchas gracias!!! Ramon

  23. moy says:

    No he probado music on hold así que creo que es posible exista un error. Lamentablemente no tengo instalaciones para probar. Si te interesa corregir ese error tal vez podemos ponernos de acuerdo para debuggear el problema y corregirlo.

    Lo mismo va para el reload.

    Saludos

  24. ramon says:

    Hola Moyses,

    Quisiera saber si la ultima version de unicall para asterisk 1.4.8 permite musiconhold?, en la version 1.4.0 cuando presionas el boton de un telefono Ip aparece el siguiente mensaje
    [Oct 4 16:38:35] WARNING[14664] chan_unicall.c: Don’t know how to set condition 16 on channel UniCall/36-1
    [Oct 4 16:38:41] NOTICE[15130] chan_unicall.c: unicall_indicate 17
    [Oct 4 16:38:41] WARNING[15130] chan_unicall.c: Don’t know how to set condition 17 on channel UniCall/31-1
    No ejecuta la funcion musiconhold, el musiconhold entre protocolo SIP o IAX funciona bien.

    Otro punto, es que cuando ejecutas un reload del canal unicall sale un mensaje que dice que el reload del canal no fue exitoso ya que trato de registrarlo de nuevo y aparece como que ya esta registrado, sin embargo esto bloquea todos los canales del unicall, hay que cerrar asterisk y volverlo a ejecutar

    Gracias por tus comentarios

  25. ramon says:

    Hola, quisiera compartir mi experiencia con Unicall en Venezuela, es la 2da vez que tengo la oportunidad de instalar Unicall, en esta oportunidad con asterisk 1.4.0 la version de unicall modificada por Moyses, tengo 2 E1 configurado, 1 entrante y 15 lineas salientes, existe un solo detalle que no he podido dar con la solucion, que las 15 lineas saliente genera cada 2 dias el siguiente debug a las 2 am, el resto del dia funciona perfectamente
    Hice un debug con el UC debug span y los logs muestra que hay buen sincronismo con ambos dispositivos.
    , [Oct 1 02:01:46] NOTICE[7437] chan_unicall.c: Unicall/32 event Alarm
    [Oct 1 02:01:46] WARNING[7437] chan_unicall.c: Unicall/32 Alarm masks 0x0008 0x0000
    [Oct 1 02:01:46] WARNING[7437] chan_unicall.c: Unicall/32 Alarm Red Alarm raised, No Alarm cleared
    [Oct 1 02:01:46] NOTICE[7437] chan_unicall.c: Unicall/33 event Alarm
    [Oct 1 02:01:46] WARNING[7437] chan_unicall.c: Unicall/33 Alarm masks 0x0008 0x0000
    [Oct 1 02:01:46] WARNING[7437] chan_unicall.c: Unicall/33 Alarm Red Alarm raised, No Alarm cleared

    Luego libera automaticamente los canales,

    [Oct 1 02:01:53] NOTICE[7437] chan_unicall.c: Unicall/32 event Alarm
    [Oct 1 02:01:53] WARNING[7437] chan_unicall.c: Unicall/32 Alarm masks 0x0000 0x0008
    [Oct 1 02:01:53] WARNING[7437] chan_unicall.c: Unicall/32 Alarm No Alarm raised, Red Alarm cleared
    [Oct 1 02:01:53] NOTICE[7437] chan_unicall.c: Unicall/33 event Alarm
    [Oct 1 02:01:53] WARNING[7437] chan_unicall.c: Unicall/33 Alarm masks 0x0000 0x0008
    [Oct 1 02:01:53] WARNING[7437] chan_unicall.c: Unicall/33 Alarm No Alarm raised, Red Alarm cleared

    No estoy seguro si esto se debe a que se pierda sincronismo por el hecho de dividir el circuito.
    esta es mi configuracion de zaptel.conf, si descomento el dchan me muestra errores con el zttool (version de zaptel 1.4.0)
    span=1,1,0,cas,hdb3
    cas=1-15,17-31:1101
    ##dchan=16

    span=2,2,0,cas,hdb3
    cas=32-46:1101
    ##dchan=47

    A la misma hora se genera el siguiente log solo con el span2 en /var/log/messages

    Oct 1 02:01:46 Megasoft1 kernel: wct2xxp: Setting yellow alarm on span 2
    Oct 1 02:01:46 Megasoft1 kernel: timing source auto card 0!
    Oct 1 02:01:48 Megasoft1 last message repeated 3 times
    Oct 1 02:01:53 Megasoft1 kernel: wct2xxp: Clearing yellow alarm on span 2

    en el log del kernel se muestra el mismo error:
    Oct 1 02:01:46 Megasoft1 kernel: wct2xxp: Setting yellow alarm on span 2
    Oct 1 02:01:46 Megasoft1 kernel: timing source auto card 0!
    Oct 1 02:01:48 Megasoft1 last message repeated 3 times
    Oct 1 02:01:53 Megasoft1 kernel: wct2xxp: Clearing yellow alarm on span 2

    Estuve observando algo parecido que se le presentò a Jose Criollo, pero no veo si lo soluciono.

    Algun comentario!!!

    Muchas gracias

    Ramon

  26. jrodriguez says:

    que pena no he leido el post anterior, pero si tengo maquinas y E1 para probar solo dime que debo de hacer y nos ponemos a trabajar en eso

  27. jrodriguez says:

    cual es el parche para la version 1.4.5 de asterisk

  28. moy says:

    Acabo de terminar de empaquetar para la version 1.4.8, te interesa ayudarme a probar? una de las limitantes que tengo es que no tengo equipo donde probar. Si te interesa contactame por MSN a moises.silva at gmail dot com

  29. jrodriguez says:

    O que podemos hacer para el parche de la version 1.4.5 de astersik???

  30. jrodriguez says:

    Buenas… Tienen el parche para la version 1.4.5 de asterisk?????, donde lo puedo conseguir??

    Gracias de Antemano

  31. moy says:

    Bruno…

    What do you think about openning a separate web page to mantain Unicall asterisk driver?

    Steve sent me an email where he asked me to be the official mantainer of Unicall Asterisk driver, and I think there is a lot of information spread across internet and web pages like mine and yours. Let’s put all this info under one site ( I have a server where we can put it ) and let’s put information in english, I still think english works just fine for technical stuff. Even though I can understand written portuguese ( mostly ).

    What do you think?

  32. bruno.agostinho says:

    Ola,

    Link para download e informaciones adicionales: http://br.geocities.com/bruno_agostinho.

    Saludos.

  33. latre says:

    Que necesitas en si? Un sever con conexiona R2? Pos si ta kaon…..sobre todo por que pues la mayoria tenemos un R2 y pues se esta usando….

    Y si es en espanol o ingles pues bueno….es tu pagina tu decides…..

    Que bueno que se le ve algun interes a steve por seguir con unicall, espero tengas oportunidad de seguir en esto y pues en alguna otra cosa que se te pueda ayudar cuenta conmigo…..

    Saludos….

  34. moy says:

    Latre:

    Ciertamente mucha gente de R2 es de LA pero tmb hay de Brasil y Australia, y debe haber por ahi otros paises que no hablan español que usan R2. Creo que la constante entre todos los administradores de sistemas/programadores independientemente del pais en que se encuentren es hablar inglès. Y quienes no lo hacen, pues buena suerte, por que siempre estaràn a expensas de que alguien les traduzca las cosas, sobre todo en open source, donde la documentaciòn se hace al vuelo sobre lo ùltimo de lo ùltimo.

    Respecto a llamadas cortadas… mmm ciertamente R2 con Asterisk es problemàtico, pero una vez que lo tienes funcionando jala bien, mucha gente lo tiene asi.

    Por otro lado me gustarìa seguir adaptando el driver de Unicall para las nuevas versiones de Asterisk etc. Steve Underwood me contactò preguntandome si querìa ser el mantenedor oficial del driver para Asterisk de unicall, ando en eso, pero requiero donde probar las cosas, si no pues como verdad?

    Saludos,

  35. latre says:

    El lenguaje pienso deberia ser espanol ya que R2 es mas usado en LA.
    Por ahi y alguno tiene esa dificultad y no habla espanol pero bueno creo que la mayoria seriamos de LA.

    Aparte, no se si sea por el tipo de blog Moy pero en el codigo que pusimos no aparece lo que viene entre los tags…..

    En fin….espero tengas oportunidad de verificarlo y pues seguir con las pruebas ya que la verdad tuve que quitar Asterisk con R2 y regresar a mi Panasonic ya que las llamadas se cortaban y se bloqueaban los canales.

    Espero que en 1.4.X se arregle eso por eso quiero checarlo…..

    Saludos

  36. moy says:

    mmm may be I should consider changing the language of the posts here, people of other countries are starting to get info from here…

    anyway, I started working on patching the Unicall driver again to make it work with the new releases of libunicall and Asterisk, it compiles now, but I need a computer with at least 2 E1 ports to test it, any one around can help me with this requirement?

  37. latre says:

    Hi Again Bruno……check the patch because the info in tags not show fine.

  38. bruno.agostinho says:

    Found the proper way to produce a patch (diff -Naur), see if it’s more likely to work:

    — chan_unicall_1.4.c 2007-06-04 12:16:32.000000000 -0300
    +++ chan_unicall.c 2007-06-04 14:02:05.000000000 -0300
    @@ -13,13 +13,25 @@
    * the GNU General Public License
    */

    +#define AST_MODULE “Unicall”
    +
    +#include “asterisk.h”
    +
    +ASTERISK_FILE_VERSION(__FILE__, “$Revision$”)
    +
    #include
    #include
    +#ifdef __NetBSD__
    +#include
    +#include
    +#else
    #include
    -#include
    +#endif
    #include
    #include
    +#if !defined(SOLARIS) && !defined(__FreeBSD__)
    #include
    +#endif
    #include
    #include
    #include
    @@ -31,10 +43,6 @@
    #include
    #include

    -#include “asterisk.h”

    -ASTERISK_FILE_VERSION(__FILE__, “$Revision$”)

    #include “asterisk/lock.h”
    #include “asterisk/channel.h”
    #include “asterisk/config.h”
    @@ -2485,7 +2495,7 @@
    }
    while (x accountcode, i->exten, i->context, i->amaflags, chan_name) ) == NULL)
    {
    ast_log(LOG_WARNING, “Unable to allocate channel structure\n”);
    return NULL;

  39. latre says:

    Bueno pos si quito varias cosas que estan entre

    Moy….como resolvemos eso?

  40. latre says:

    ok, el parche se aplica y deja compilar asterisk por ahi con un warning…

    Este parche lo acomodo un camarada de unixmexico cvygnus.

    Espero que por el el blog no quite parametros o tags o algo por el estilo ya que en el mensaje de Bruno si los quito…..

    Si Moy lee esto espero pueda subir el parche a su pagina.

    Saludos y gracias al cvygnus

    INICIA
    ########

    — chan_unicall.c.orig Mon Jun 4 23:37:31 2007
    +++ chan_unicall.c Tue Jun 5 00:03:49 2007
    @@ -13,13 +13,26 @@
    * the GNU General Public License
    */

    +#define AST_MODULE “Unicall”
    +
    +#include “asterisk.h”
    +
    +ASTERISK_FILE_VERSION(__FILE__, “$Revision$”)
    +
    #include
    #include
    +#ifdef __NetBSD__
    +#include
    +#include
    +#else
    #include
    +#endif
    #include
    #include
    #include
    +#if !defined(SOLARIS) && !defined(__FreeBSD__)
    #include
    +#endif
    #include
    #include
    #include
    @@ -31,10 +44,6 @@
    #include
    #include

    -#include “asterisk.h”

    -ASTERISK_FILE_VERSION(__FILE__, “$Revision$”)

    #include “asterisk/lock.h”
    #include “asterisk/channel.h”
    #include “asterisk/config.h”
    @@ -2485,7 +2494,7 @@
    }
    while (x accountcode, i->exten, i->context, i->amaflags, chan_name) ) == NULL)
    {
    ast_log(LOG_WARNING, “Unable to allocate channel structure\n”);
    return NULL;

  41. latre says:

    Hi Bruno, I suppose you are from Brasil…..

    Well, tnks for answer and make a patch….now….im sorry but i saw another kind of patches and yours is different……could you please explain how to apply your patch, please??!!

    I need to copy that lines at a file.diff or file.patch and then apply ??

    tnku

  42. bruno.agostinho says:

    Sorry, I do not speak Spanish (shame for a latin american…). Here’s the diff output for patching the chan_unicall.c for version 1.4.4:

    a15 6
    #define AST_MODULE “Unicall”

    #include “asterisk.h”

    ASTERISK_FILE_VERSION(__FILE__, “$Revision$”)

    a17 4
    #ifdef __NetBSD__
    #include
    #include
    #else
    d19 1
    a19 1
    #endif
    a21 1
    #if !defined(SOLARIS) && !defined(__FreeBSD__)
    a22 1
    #endif
    d34 4
    d2488 1
    a2488 1
    if ( ( tmp = ast_channel_alloc(0, state, 0, 0, i->accountcode, i->exten, i->context, i->amaflags, chan_name) ) == NULL)

    I’ve introduced some modifications on the MFC/R2, configurable on unicall.conf, but I still want to check the latest versions in soft-switch.org to post them:
    – call type charge/no charge
    – forced release on hangup
    – double answer for collect call disconnection (Brazil)
    – inhibit A5 when ANI is not requested

    Regards.

  43. latre says:

    Se que alomejor Moy esta muy ocupado, asi que si alguien ha visto el parche que comenta Moy para el 1.4.4 de asterisk se los agradecere mucho….

    Saludos.

  44. Pingback: Asterisk 1.4 con MFC/R2 patch at Desert Zarzamora

  45. latre says:

    Bueno gracias por contestar…..y espero que tengas tiempo…

    🙂

    Gracias y Saludos

  46. moy says:

    el error que tienes me lo han reportado pero me ha dado weba parcharlo otra vez… es un cambio pequeño debido a que Asterisk cambio su interface de canales, busca en las listas de asterisk y encontraras el parche ( o usa la version 1.4.0 o algo asi), alguien mas ya lo hizo, si no, tendras que esperar al menos este fin de semana para que le dedique unos 10 minutos a checarlo

    saludos

  47. latre says:

    Que tal Moy, me da gusto saber que por fin hay algun parche de unicall para 1.4, la verdad te felicito por invertirle tiempo a esto.

    Ahora fijate que he seguido los pasos normales para usar el parche y al aplicarlo me marca un detalle.

    [root@asterisk channels]# patch chan_unicall.o
    chan_unicall.c: In function `unicall_new’:
    chan_unicall.c:2488: error: too few arguments to function `ast_channel_alloc’
    make[1]: *** [chan_unicall.o] Error 1
    make: *** [channels] Error 2

    Estoy usando asterisk 1.4.4 y el parche, spandsp,libunicall,libmfcr,etc todos bajados de tu sitio todos estos compilados correctamente.

    Algun comentario o sugerencia?

    Una vez mas gracias por tu grandiosa aportacion.

  48. moy says:

    Acriollo, muchas gracias por los comentarios. Y efectivamente, en Mèxico usamos mucha tecnologìa, pero desarrollamos poca (muy poca), las comunidades de software libre son meramente de usuarios, muy pocos desarrollan, esperemos eso cambie en los pròximos años.

    Saludos,

  49. acriollo says:

    Que onda Moy, da gusto ver que en México hay personas que como tu se involucran tanto en estas cosas, que aparentemente nosotros los mortales que instalamos y hacemo uso de Asterisk pensamos que vienen de finlandeses , gringos, o de otros paises, menos que de nuestro pais.

    No se si sirva de algo, esto pero te envio un gran abrazo y reconocimiento por el esfuerzo que haces y por la gran dedicacion, pero sobre todo por el gusto que tienes por aprender y hacer las cosas. En el foro de usuarios de asterisk lei algo que es muy cierto, mucha gente hace o hacemos negocio a mayor o menor escala con los desarrollos de otros y tenemos por costumbre los mexicanos de no ser agradecidos , no digamos con money, si no con el reconocimiento o una postal por lo menos a los desarrolladores, y todavia tenemos la osadia de pensar que el desarrollador tiene la obligación de resolvernos todas las broncas que surjan con el producto implementado. Eso creo que es algo que debemos de cambiar de manera paulatina si deseamos que los desarrollos de fortalezcan y se impulsen.

    Creo que es un rollo bastante complicado y no quisiera hacerme pelotas.

    Te envio un cordial abrazo y saludos. Creo que tienes una larga y fructifera carrera por delante.

    Saludos

  50. Tato says:

    Aquella maquina con UniCall/Asterisk 1.4 la utilicé la semana pasada para recibir -en pruebas de laboratorio- 30 llamadas simultaneas de MFCR2 y 30 ISDN, sin mayor queja…

Leave a Reply

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

*