09 August 2005 ~ 205 Comments

Asterisk y la E1 MFC/R2 en Mexico (R2 Modificada de Telmex)

Estas ultimas 2 semanas estube peleandome con las E1 de Telmex, que aqui en Mexico les dicen E1 R2 Modificada, pero en el resto del mundo les llaman MFC/R2. Todos los posts en internet decian que en México eran superdifíciles de configurar en las Tarjetas Digium. Pura _FUD_ y egoísmo.

Escribí este articulo para evitar que otros caigan en los mismos errores y evitar dolores de cabeza. Sigue leyendo y veras como activar un E1 R2 Modificada (MFC/R2) en México usando lineas de Telmex.

Algo de señalizacion primero

No soy un experto, pero lo que leí me dejó lo siguiente. El protocolo MFC/R2 es un protocolo _peer to peer_, es decir, no hay cliente y servidor, los dos dispositivos se comunican con simple señalizacion de 4 bits CAS (Channel Associated Signaling), los bits suelen llamarseles ABCD. Estos bits representan el estado de la linea, de una manera similar a la telefonía analoga. Cada bit significa algo, pero los bits C y D son raramente usados (solo en algunos paises asiáticos), el valor mas comun para ellos es 01. La tabla de estados de los bits ABCD es la siguiente:

--------------+-------+---------+-
Estado          Enviar  Regresar
--------------+-------+---------+-
Idle/Released:  1001      1001
Seized          0001      1001
Seize Ack       0001      1101
Answered        0001      0101
ClearBack       0001      1101
ClearFwd        1001      0101
ClearFwd        1001      1101
Blocked         1001      1101

Lo que debe pasar es que la tarjeta debe regresar el modo blocked en todos lo canales siempre que no se este usando, es decir, si Asterisk esta apagado. Pero cuando Asterisk enciende debe desbloquear y poner en Idle los canales para esperar llamadas. Ambos extremos del enlace deben estar desbloqueados para que se puedan comunicar.

En caso de que Telmex no tenga activa tu conexión veras mensajes de Far end Blocked en los logs de inicio de Asterisk. Eso es porque Asterisk desbloqueó tu lado del enlace pero el otro lado esta aún bloqueado.

Algunas personas confunden la señalizacion MFC/R2 con la señalización que se hace entre aparatos telefónicos como el de tu casa y PBX, esto es incorrecto. La señalización MFC/R2 se da entre switches, que son los lados de un enlace E1. Para nuestros fines, esta señalización se da entre Asterisk y el lado remoto de la E1, que es distinta a la señalización que se da entre un Asterisk con tarjetas FXS y un aparato telefónico.

Tu Oficina |            | Telmex
|            |
[telefono]----[Asterisk]===MFC/R2===[switch]
/          |            |
[telefono]+           |            |

Cuando se va a realizar una llamada ambos lados del enlace deben estar Idle o no se puede lograr un enlace.

Unicall

La cadena de comunicaciones de Zaptel usualmente funciona asi:

PSTN - zaptel card - zaptel driver - libpri - chan-zap - asterisk

pero con MFC/R2 usa una nueva libreria de abstracción llamada libunicall, que provee de una nueva interfaz unificada de manejo de llamadas (unified call handling interface, unicall). Y funciona de una manera ligeramente distinta.

PSTN - zaptel card - zaptel driver - libmfcr2 - libunicall - chan-unicall - asterisk

Zaptel para una E1 MFC/R2 (R2 Modificada)

Instala los drivers de zaptel, que se instalan igual que siempre, si lo bajamos del CVS usamos:

# cd /usr/src
# export CVSROOT=:pserver:anoncvs@cvs.digium.com:/usr/cvsroot
# cvs login		- the password is anoncvs.

# cvs checkout -r v1-0 zaptel libpri asterisk

Luego compilamos zaptel y libpri:

# cd zaptel
# make clean; make install
# cd ../libpri
# make clean; make install

Configuramos /etc/zaptel.conf para MFC/R2 para que ponga los canales en el modo apropiado, es decir, ponemos los bits ABCD del CAS en modo blocked

# MFC/R2 normalmente no usa CRC4
span=1,1,0,cas,hdb3
cas=1-15:1101
dchan=16
cas=17-31:1101
loadzone=us
defaultzone=us

Si lees mas arriba la tabla de valores, 1101 es “Regresar: Blocked”, es decir, cuando Telmex le intenta conmunicarse con tus canales, la tarjeta le devuelve “Blocked”, y Telmex se da cuenta de que la tarjeta no esta en uso por Asterisk. Simplemente la tarjeta esta conectada pero no esta en disposicion de recibir llamadas.

Antes de proseguir checa que si ejecutas ztcfg -vv veras:

bash# ztcfg -v

Zaptel Configuration
======================

SPAN 1: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)

31 channels configured.

Instalando las librerias

Necesitas instalar las librerias spandsp, libsupertone, libmfcr2 y libunicall de ftp.soft-switch.org, pero resulta que ese sitio esta el 50% del tiempo prendido y el 50% apagado, si no puedes acceder a ese sitio tengo un mirror aqui. Bajas spandsp, libsupertone, libmfcr2 y libunicall, descomprimes y compilas.

SpanDSP,

# tar -zxvf spandsp-0.0.2pre18.tar.gz
# cd spandsp-0.0.2/
# ./configure
# make
# make install

por defecto instala las librerias en /usr/local/lib, checa que tu /etc/ld.so.conf tenga este directorio en la lista. Si no lo tiene agregalo y ejecuta _ldconfig_

Se hace lo mismo para libsupertone, libunicall y libmfcr2 (descomprime, ./configure, make y make install). La cosa es que libmfcr2 ademas instala modulos en /usr/local/lib/unicall/protocols que se cargan dinamicamente por libunicall. Libunicall siempre busca sus modulos ahi.

Si quieres probar tu E1 MFC/R2 puedes checar Voip-Info.org en la seccion Testing your MFC/R2 signalling installation, en realidad no es necesario y es una lata. Mejor vamos directo a Asterisk.

Asterisk y los canales Unicall en MFC/R2

Baja chan_unicall.c, unicall.conf.sample y channels_makefile.patch de ftp.soft-switch.org (Recuerda que tengo un mirror aqui)

Luego copiamos al lugar donde bajamos el source del Asterisk, dentro del subdirectorio channels el chan_unicall.c y el channels_makefile.patch.

# cp chan_unicall.c  channels_makefile.patch /usr/src/asterisk/channels

y parchas,

#cd /usr/src/asterisk/channels
#patch < channels_makefile.patch

luego compilas el Asterisk.

# cd /usr/src/asterisk/
# ./configure
# make
# make install
# make samples
# make config         < ---- para clones Redhat

si checas dentro de /usr/src/asterisk/channels veras un archivo chan_unicall.so, si no aparece entonces algo salio mal. No te preocupes a mi me toco editar el makefile de la siguiente manera, te muestro los numeros de linea:

23 CHANNEL_LIBS=chan_modem.so chan_sip.so
24              chan_modem_aopen.so
25              chan_modem_bestdata.so chan_modem_i4l.so
26              chan_agent.so chan_mgcp.so chan_iax2.so
27              chan_local.so chan_skinny.so chan_unicall.so
28

En la linea 27 agregue: chan_unicall.so. Recompilé asterisk, lo instalé, y quedo todo bien.

Luego copia unicall.conf.sample a /etc/asterisk, lo renombras a unicall.conf y lo editas para que este acorde a tu configuracion. Por ejemplo, el mio es:

[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=mx,10,1
protocolend=cpe
group = 1
context= e1-incoming
channel => 1-10
;channel => 17-31
;skip time slot 16

Como dije antes, MFC/R2 es peer-to-peer asi que la linea _protocolend=cpe_ es ignorada. Tengo asignadas 10 lineas de telmex solamente. La linea _protocolvariant_ es importante para esto. Su sintaxis es:

protocolvariant=pais,digitos-ANI,digitos-DNI

El pais es alguno de los siguientes:

Argentina             "ar"
Bahrain               "bh"
Bolivia               "bo"
Brazil                "br"
Chile                 "cl"
China                 "cn"
Colombia landlines    "co-land"
Colombia cellular     "co-cell"
Czech                 "cz"
Honduras              "hn"
India                 "in"
Indonesia             "id"
Korea                 "kr"
Malaysia              "my"
Mexico                "mx"
Panama                "pa"
Philipinnes           "ph"
Singapore             "sg"
Thailand              "th"

Los Digitos ANI y DNI aun no los comprendo bien, en unos dias le preguntaré a un experto en telefonía convencional a ver que me dice y lo pego aqui. Pero lo que actualmente tengo es 10 digitos marcados para marcar mi numero y 1 digito que varía al final, es decir. Mis lineas son 443305257x, x es alguno de {0,1,2,3,4,5,6,8,9}. O sea que tengo lineas desde 4433052570 al 79.

Probando Asterisk con E1 MFC/R2 (R2 Modificada) de Telmex

Arrancamos Asterisk y entramos a la consola:

# asterisk -vvvvvvvvvvvvvvv&
# asterisk -R

Al arrancar debe darte muchos mensajes

Aug 10 03:13:28 WARNING[2419]: chan_unicall.c:2865 handle_uc_event: Unicall/1 event Far end unblocked
-- Unicall/1 far unblocked
Aug 10 03:13:28 WARNING[2419]: chan_unicall.c:2865 handle_uc_event: Unicall/1 event Local end unblocked
-- Unicall/1 local unblocked
Aug 10 03:13:28 WARNING[2419]: chan_unicall.c:2865 handle_uc_event: Unicall/2 event Far end unblocked
-- Unicall/2 far unblocked

uno para cada linea que tengas, nota el Local end unblocked y el Far end unblocked. Si no aparece nada algo o si aparece Far end blocked o algo similar checa que Telmex te haya desbloqueado la linea, llámales y gritales hasta que te arreglen la conexion :-P .

Otra forma de probar es llamarte a ti mismo, usa tu celular y llama a una linea de la E1. Deben aparecer mensajes del tipo:

Aug 10 03:18:48 WARNING[2419]: chan_unicall.c:2865 handle_uc_event: Unicall/1 event Detected
Aug 10 03:18:49 WARNING[2419]: chan_unicall.c:2865 handle_uc_event: Unicall/1 event Offered
Aug 10 03:18:49 WARNING[2419]: chan_unicall.c:2920 handle_uc_event: CRN 32769 - Offered on channel 0 (ANI: , DNIS: 0)
Aug 10 03:18:49 WARNING[2419]: chan_unicall.c:2865 handle_uc_event: Unicall/1 event Accepted
(...)
Aug 10 03:18:54 WARNING[2564]: chan_unicall.c:1347 unicall_hangup: Hangup: channel: 1 index = 0, normal = 24, callwait = -1, thirdcall = -1
Aug 10 03:18:54 WARNING[2564]: chan_unicall.c:962 update_conf: Updated conferencing on 1, with 0 conference users
Aug 10 03:18:54 WARNING[2419]: chan_unicall.c:2865 handle_uc_event: Unicall/1 event Drop call
Aug 10 03:18:54 WARNING[2419]: chan_unicall.c:3246 handle_uc_event: CRN 32769 - Doing a Release Call
-- Hungup 'UniCall/1-1'
Aug 10 03:18:54 WARNING[2419]: chan_unicall.c:2865 handle_uc_event: Unicall/1 event Release call
Aug 10 03:18:54 WARNING[2419]: chan_unicall.c:3260 handle_uc_event: CRN 32769 - Call released
-- Unicall/1 released
Aug 10 03:18:54 WARNING[2419]: chan_unicall.c:1042 unicall_disable_ec: disabled echo cancellation on channel 1

Antes de continuar checa que tengas esos mensajes en el log y que Telmex tenga activa tu conexion E1.

¿Aun no funciona?

Si Telmex te dice que tiene activa tu linea y tienes todo configurado bien, como dice arriba, te recomiendo reiniciar tu maquina, eso me paso a mi y creeme que es un dolor de cabeza. Reinicia e intenta de nuevo. Es algo extraño pero a mi me funciono.

Puedes checar el estado de las lineas usando _UC show channels_ a mi me aparece:

Asterisk*CLI> UC show channels
Channel Extension  Context         Status     Language   MusicOnHold
1 0          e1-incoming     Idle                  default
2            e1-incoming     Idle                  default

3            e1-incoming     Idle                  default
4            e1-incoming     Idle                  default
5            e1-incoming     Idle                  default
6            e1-incoming     Idle                  default
7            e1-incoming     Idle                  default
8            e1-incoming     Idle                  default
9            e1-incoming     Idle                  default
10            e1-incoming     Idle                  default

Si notas los canales estan en _Idle_, eso es lo correcto. Si no puedes usar el comando _UC_ significa que tu modulo chan_unicall no se ha cargado, regresa, compilalo y verifica que este en el lugar adecuado, normalmente esta en /usr/lib/asterisk/modules/chan_unicall.so.

Configurando las extensiones

Ya que tienes la tarjeta con sus canales funcionando es hora de configurar las extensiones. Como se ve en _UC show channels_ en unicall.conf configuramos para que las llamadas entrantes _caigan_ en el contexto _e1-incoming_. Es cosa de editar extensions.conf y colocar la definicion de ese contexto con algun manejador apropiado. En el mio esta asi:

[e1-incoming]
exten => _.,1,Ringing
exten => _.,2,Answer
exten => _.,3,VoicemailMain
exten => _.,4,Hangup

Y cuando marco alguna de las extensiones me manda al Voicemail, entonces escucho el clasico mensaje “Comedian mail, login”. Felicitaciones ya puedes recibir llamadas en tu E1 MFC/R2 (R2 Modificada). Configurar extensiones y demás esta fuera del alcance de este articulo, pero es muy fácil.

Ahora para hacer llamadas es igual que usar Dial(Zap/g1….) pero usas Dial(Unicall/g1…).

¿Quieres mis archivos?

Te dejo una copia de mis archivos aqui.

¿Y como le hice para conectar los cables coaxiales de Telmex a la E1 de Digium?

Patton Electronics Co.
N/P 460F
G.703 BALUN 75/120Ohm Female BNC
Coax to Twisted Pair Adapter

Tags: , , ,

205 Responses to “Asterisk y la E1 MFC/R2 en Mexico (R2 Modificada de Telmex)”

  1. Alfredo 6 November 2005 at 11:56 pm Permalink

    I running asterisk@home 1.5 and I follow all this configuration to get the E1 R2 working. It’s working and im so happy BUT, After I reboot the server the E1 doesn’t work anymore.

    I got a busy tone in incomming calls.

    Can you tell me what can I do about it? Is there any pre configured files in asterisk@home that breaks my config?

    Regards

  2. Alfredo 6 November 2005 at 11:59 pm Permalink

    Estoy corriendo asterisk@home y logro configurar el E1 y lo tengo funcionando pero despues de que reseteo el server, el E1 ya no permite llamadas de entrada ni de salida aunque el E1 si esta arriba segun mi carrier Telmex y el LED de la tarjeta esta en verde.

    Que files puedo cambiar en el asterisk@home para que no me truene la configuracion del E1?

    O bien despues de levantar el E1 debo de parchar el makefile otra vez o que debo hacer?

    Si alguien tiene una idea diganme y lo pruebo.

    Saludos!!!

  3. Alfredo 7 November 2005 at 1:35 am Permalink

    Soy yo otra vez, pero me lleve una gran sorpresa despues de resetear el server asteriska@home y que no levante el E1, bueno si levanta pero no salen ni entran llamadas. De hecho no hay audio para tocar los gsm files.

    Saben como debugear el asterisk con E1 R2, para ver la senalizacion a nivel R2 del E1? Con esto puedo ver como esta conetestando el asterisk a mi carrier.

    Saludos!!!

  4. Alfredo 9 November 2005 at 10:24 am Permalink

    Alguien me puede pasar los archivos de unicall, supertone, lib, mfrc2, etc para el asterisk@home que menciona Jose Leitao ya que no estan disponibles en el link que el menciona “Unicall and others libs” http://www.soft-switch.org/downloads/unicall/unicall-0.0.3pre5/asterisk-1.1.x/

    Si pueden envienmelos a este correo

    acastrov@gmail.com

    GRACIAS!!!!!

  5. Acriollo 11 November 2005 at 5:50 pm Permalink

    Alguien sabe que trae de nuevo la version pre7 del unicall ?
    alguien la ha probado ?

    Saludos

  6. Desert Zarzamora 11 November 2005 at 10:02 pm Permalink

    Alfredo, al parecer la pre5 desaparecio, ¿por que no intentas con la pre6 o tal vez la nueva pre7?

    O tal vez Jose Leitao pueda enviarme un tar.gz y yo lo pego aqui.

  7. blackgecko 11 November 2005 at 11:23 pm Permalink

    alguien tiene idea a que se refieren estos errores del unicall

    Nov 9 13:06:55 VERBOSE[5624]: — Unicall/7 protocol error. Cause 32771
    Nov 9 13:07:18 VERBOSE[5624]: — Unicall/1 protocol error. Cause 32769
    Nov 9 13:09:00 VERBOSE[5624]: — Unicall/2 protocol error. Cause 32773
    Nov 9 13:09:13 VERBOSE[5624]: — Unicall/12 protocol error. Cause 32772
    Nov 9 13:17:33 VERBOSE[5624]: — Unicall/31 protocol error. Cause 32774
    Nov 11 13:42:01 VERBOSE[21535]: — Unicall/2 protocol error. Cause 32776
    Nov 11 15:16:06 VERBOSE[21535]: — Unicall/23 protocol error. Cause 32774
    Nov 11 15:36:30 VERBOSE[21535]: — Unicall/1 protocol error. Cause 32769
    Nov 11 18:53:35 VERBOSE[21535]: — Unicall/2 protocol error. Cause 32773

    Es un E1 con Maxcom 30 lineas DID del 8100 al 8130

    Gracias

  8. lazaro 29 November 2005 at 10:40 am Permalink

    Para aquellos que quieran contratar E1 con telmex les comento que telmex les puede entregar señalización PRI, pero es mecesario que cuando se haga la petición de la E1 se especifique que quieren dicha señalización.

  9. Julio Machado 29 November 2005 at 2:35 pm Permalink

    Hola que tal,

    tengo el siguiente problema tengo configurado un E1 en mi servidor asterisk, ya revise con el comando ztcfg -vvvv y dentro de asterisk UC show channels y todo va normal pero no recibo ni hago llamadas, estoy en apuros con este proyecto si alguien tiene la menor idea de que pueda estar pasando de lo agradezco.

    Escribo desde Venezuela en donde usamos tambien MFC/R2

    Gracias…

  10. Desert Zarzamora 29 November 2005 at 7:21 pm Permalink

    He leido en la lista de correos lo que indica Lazaro, Telmex entrega E1 con señalizacion PRI, pero deben decirselo, recalcarselo y recontra-pedirselo cuando contraten, pues tambien lei que si Telmex les entrega MFC/R2 luego es un lio hacer el cambio, principalmente por una pesadilla burocratica.

    Asi que les recomiendo que pidan E1′s con PRI son mas sencillas de configurar y el codigo de PRI es mucho mas maduro y estable que el de unicall, que es aun version alfa.

  11. Dr. Simi 30 November 2005 at 7:32 pm Permalink

    Que tal,

    Alguno de ustedes ha podido enviar faxes desde la E1 usando el Spandsp (Unicall, txfax)??…

    Puedo recibir, pero como se le hace para enviar??.

    Saludos

    Dr. Simi

  12. Julio Machado 5 December 2005 at 4:44 pm Permalink

    Saludos,

    Tengo un problema con la recepción de llamadas en un enlace E1 utilizando R2 modificado en Venezuela, en mi central asterisk tengo configurado los canales con unicall y cuando inicio asterisk me da los siguientes mensajes:

    Dec 5 17:36:09 WARNING[4885]: chan_unicall.c:2672 handle_uc_event: Unicall/3 event Local end unblocked
    — Unicall/3 local unblocked
    Dec 5 17:36:09 WARNING[4885]: chan_unicall.c:2672 handle_uc_event: Unicall/4 event Local end unblocked
    — Unicall/4 local unblocked

    (muchos mas iguales, del 5 al 25… )

    Dec 5 17:36:09 WARNING[4885]: chan_unicall.c:2672 handle_uc_event: Unicall/26 event Local end unblocked
    — Unicall/26 local unblocked
    Dec 5 17:36:09 WARNING[4885]: chan_unicall.c:2672 handle_uc_event: Unicall/27 event Local end unblocked
    — Unicall/27 local unblocked

    y el comando UC show channels me muestar todo en Idle, pense que podria ser mi proveedor de servicios que estaba mal pero realizamos pruebas con equipos de simulacion y todo estuvo perfecto hasta que llega al servidor asterisk. Simulamos llamdas pero igual no responde ni hace nada, si alguien me puede ayudar se lo agradezco.

    Atte
    Julio Machadi

  13. Desert Zarzamora 5 December 2005 at 11:03 pm Permalink

    “Local end unblocked”
    Es un mensaje normal y correcto, significa que tu lado del enlace fue desbloqueado adecuadamente, pero falta desbloquear el lado remoto, necesitas ver si te aparecen mensajes

    “Far end unblocked”

    De no tenerlos, singifica que el lado remoto no ha sido desbloqueado o que no esta en el estado adecuado. Eso puede deberse a varias razones:

    * Mala señalizacion de tu parte o del lado remoto.
    * Que el lado remoto no esta desbloqueado, pregunta a tu proveedor.

  14. Julio Machado 6 December 2005 at 7:46 am Permalink

    Mensajes ok,

    Ayer despues de leer tu repuesta revise el archivo de configuracion unicall.conf y zaptel.conf y corregi unos erroes que note y despues de reiniar asterisk me salio el mensaje de Far end unblocked

    Dec 6 08:24:53 WARNING[5246]: chan_unicall.c:2672 handle_uc_event: Unicall/4 event Far end unblocked
    — Unicall/4 far unblocked
    Dec 6 08:24:53 WARNING[5246]: chan_unicall.c:2672 handle_uc_event: Unicall/4 event Local end unblocked
    — Unicall/4 local unblocked
    (… muchos … )
    Dec 6 08:24:53 WARNING[5246]: chan_unicall.c:2672 handle_uc_event: Unicall/12 event Far end unblocked
    — Unicall/12 far unblocked
    Dec 6 08:24:53 WARNING[5246]: chan_unicall.c:2672 handle_uc_event: Unicall/12 event Local end unblocked
    — Unicall/12 local unblocked

    Despues de ver esto intente nuevamente llamar a la PBX asterisk desde mi telefono movil pero se escucha un tono de congestion cuando marco el numero.

    no se, si pueda tratarse de algo en el archivo de configuración unicall.conf, la verdad tengo muchas dudas respecto a la variable protocolvariant, aqui mando el contenido del archivo.

    [channels]
    language=es
    context=incoming
    usecallerid=yes
    hidecallerid=no
    callwaitingcallerid=yes
    threewaycalling=yes
    transfer=yes
    cancallforward=yes
    callreturn=yes
    echocancel=yes
    echocancelwhenbridged=yes
    rxgain=0.0
    txgain=0.0
    ;group=1
    callgroup=1
    pickupgroup=1
    immediate=no
    musiconhold=default
    protocolclass=mfcr2
    protocolvariant=mx,20,10
    ;ve,10,3
    protocolend=cpe
    group = 1
    channel => 1-15
    group = 2
    channel => 17-31
    ;group = 3
    ;channel => 32-46
    ;group = 4
    ;channel => 48-62
    ;loglevel = 1023

  15. Julio Machado 6 December 2005 at 8:33 am Permalink

    Saludos,
    ahora que me fijo tengo el siguiente mensaje de error en una de las lineas de asteris cuando inicia:
    .
    .
    .
    Dec 6 09:26:18 WARNING[5285]: chan_unicall.c:612 unicall_report: MFC/R2 UniCall/27 Call control(8)
    Dec 6 09:26:18 WARNING[5285]: chan_unicall.c:612 unicall_report: MFC/R2 UniCall/27 Unblock
    Dec 6 09:26:18 WARNING[5285]: chan_unicall.c:612 unicall_report: MFC/R2 UniCall/27 1001 -> [1/40000000/Idle /Idle ]
    Dec 6 09:26:18 WARNING[5285]: chan_unicall.c:612 unicall_report: MFC/R2 UniCall/27 Channel gains
    — Registered channel 27, mfcr2 signalling

    (… otros mas …)
    Dec 6 09:26:18 WARNING[5285]: channel.c:174 ast_channel_register_ex: Already have a handler for type ‘UniCall’
    Dec 6 09:26:18 ERROR[5285]: chan_unicall.c:4360 setup_unicall: Unable to register channel class UniCall

    alguien sabe a que se deba este error???

    Agradezco la ayuda!!!

  16. Desert Zarzamora 6 December 2005 at 12:29 pm Permalink

    Julio Machado, no pongas el volcado entero aqui pegado, corta lo mas importante y los que se repitan solo pon uno o dos.

    Ahora veo que ya tienes el Far end unblocked. Pero veo que tu linea dice:

    protocolvariant=mx,20,10

    Lee de nuevo y con paciencia mi guia mas arriba, ahi explico para que sirve esa linea:

    protocolvariant=pais,digitos-ANI,digitos-DNI

    pero no veo el pais Venezuela en la lista, asi que deberas investigar que variante se usa en Venezuela.

  17. moyses 8 December 2005 at 7:04 pm Permalink

    Estoy utilizando una tarjeta te110p con asterisk home 2.1 para lo cual estoy utilizando los mismos archivos de Ariel zaptel.conf y zapata.conf. Antes de utilizar estos archivos la tarjeta no parpadea y el zttool marca

    Current Alarms: No alarms. │
    │ Sync Source: Internally clocked │
    │ IRQ Misses: 0 │
    │ Bipolar Viol: 0 │
    │ Tx/Rx Levels: 0/ 0 │
    │ Total/Conf/Act: 31/ 0/ 0 │
    │ 1111111111222222222333 ┌──────┐ │
    │ 1234567890123456789012345789012 .

    Después de sustituir los archivos originales con los de Ariel, la tarjeta comienza a parpadear en color rojo y el zttool indica RED ALARM.

    Alguna idea de como pueda solucionar este problema? Muchas gracias por su ayuda.

  18. Desert Zarzamora 10 December 2005 at 12:50 pm Permalink

    The file:
    http://zarzamora.com.mx/blog/files/patch_1.2.patch

  19. moyses 10 December 2005 at 5:28 pm Permalink

    Qué tal!
    El parche tiene un detalle, al momento de hacer un:
    make clean, este marca errores, esto se debe a que en las lineas 189 y 192 del Makefile que está en el subdirectorio de channels, el parche aplica espacios para indentar en lugar de hacerlo mediante una tabulación. Solo necesitan quitar los espacios y usar la indentación. Saludos!

  20. Acriollo 12 December 2005 at 3:19 pm Permalink

    Alguien sabe a que se refiere este error ?

    Todo indica que es un error con el enlace pero el estatus en el ezttool nunca cambia de OK …

    Telmex dice que el enlace no pierde la sincronia..

    Creo que esto me está acarreando algunos problemas a la hora de marcar, ya que algunas llamadas no salen de manera inmediata y por otro lado algunas llamadas entrantes no llegan a entrar.

    Alguna idea ?

    Saludos a todos.

    Nov 26 15:34:26 WARNING[3342]: Unicall/1 event Alarm
    Nov 26 15:34:26 WARNING[3342]: Unicall/1 Alarm masks 0×0004 0×0000
    Nov 26 15:34:26 WARNING[3342]: Unicall/1 Alarm Yellow Alarm raised, No Alarm cleared
    Nov 26 15:34:26 WARNING[3342]: Unicall/2 event Alarm
    Nov 26 15:34:26 WARNING[3342]: Unicall/2 Alarm masks 0×0004 0×0000
    Nov 26 15:34:26 WARNING[3342]: Unicall/2 Alarm Yellow Alarm raised, No Alarm cleared

    Esto se repite con los 10 canales.

  21. moyses 12 December 2005 at 5:34 pm Permalink

    Alguine me podría pasar la configuración del cable que se conecta de la tarjeta al balun??

    Muchas gracias

  22. moyses 14 December 2005 at 12:25 pm Permalink

    Bueno, al parecer nadie ha documentado la configuración del cable que conecta la tarjeta TE110P al balun. Después de muchas configuraciones de cable, de Digium me comentaron que hiciera lo siguiente para probar el correcto funcionamiento de la tarjeta:

    Se hace un “loopback” con un conector RJ45 utilizando dos hilos de cable que conecten 1-5 y 2-4, y conectarlo a la tarjeta. Detener asterisk y hacer lo siguiente:
    -Configurar la tarjeta en modo T1 quitándole el jumper.
    -Configurar el zaptel.conf
    span = 1,0,0,esf,b8zs
    clear = 1-24
    Ejecutar
    ztcfg -vv
    Esto devuelve:

    SPAN 1: ESF/B8ZS Build-out: 0 db (CSU)/0-133 feet (DSX-1)

    Channel map:

    Channel 01: Clear channel (Default) (Slaves: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24)

    24 channels configured.

    Changing signalling on channel 2 from Clear channel to Slave channel
    Changing signalling on channel 3 from Clear channel to Slave channel
    Después:
    cd /usr/src/zaptel
    make tests
    ./patlooptest /dev/zap/1 60

    El proceso ha de devolver solo algunas lineas con información.
    La salida excesiva puede indicar errores. Esta información se envía a digium. Donde pedirán que confirmes si al conectar el loop a la tarjeta el led estaba en color verde, si asterisk estaba detenido al momento de ejecutar el proceso y si esta se encontraba en modo T1 dado que no funciona la prueba en E1.

    En mi caso mandó algo así:
    (Error 4262): Unexpected result, 255 != 0, 1 bytes since last error.
    (Error 4263): Unexpected result, 255 != 0, 1 bytes since last error.
    (Error 4264): Unexpected result, 255 != 0, 1 bytes since last error.
    (Error 4265): Unexpected result, 255 != 0, 1 bytes since last error.

    Una vez verificado esto autorizaron la devolución de la tarjeta.
    Espero que esto le pueda servir a alguien más.

    Saludos

  23. Desert Zarzamora 15 December 2005 at 11:19 am Permalink

    Moyses, yo utilice un cable de red comun y corriente y funcionó, pero tal vez tu solucion sea la adecuada y yo simplemente tuve suerte.

  24. Hernan 15 December 2005 at 12:05 pm Permalink

    Hola,
    Despues de luchar mucho tiempo con asterisk y todos los parches extraños que hay que utilizar para q soporte R2. Logre instalar una version de asterisk 1.0.10.
    El problema que tengo es el siguiente: (configuracion para argentina)
    Algunas veces asterisk atiende la llamada y con cualquier convinacion funciona perfecto.
    Pero en otros casos por ahi hasta marcando lo que antes andubo me tira un error de protocolo.
    Alguna idea??

  25. moyses 16 December 2005 at 10:38 am Permalink

    Que tal Ariel, pues básicamente en mi caso ningún cable me funcionó debido a que la tarjeta estaba dañada :) . De acuerdo al manual del balun en realidad solo se utilizan 2 pares de hilos, el 1,2, 4, 5. Los hilos 3 y 6 van a tierra. y los 7 y 8 de plano no se conectan. La confusión me surgió debido a que en voz digital una persona afirma utilizar un cable cruzado, otra un cable normal, y por ahi un gringo me recomendó un cable cruzado para e1/t1.

  26. Desert Zarzamora 20 December 2005 at 12:38 pm Permalink

    El cable cruzado de E1 es util cuando quieres que Asterisk provisione a un conmutador normal, es decir, que Asterisk asemeje ser Telmex.

    El Cable cruzado de E1 sirve mucho para hibridar sistemas, es decir, cuando ya tienes un conmutador carisimo y solo quieres agregarle voicemail o alguna caracteristica de Asterisk. Pues esas caracteristicas son usualmente modulos de hardware añadidos y casi siempre son muy muy caros.

  27. Arabe 5 January 2006 at 7:14 pm Permalink

    Hola, a ver si alguien sabe algo de lo siguiente:

    A ciertos numeros no puedo marcar por que recivo un protocol failure. Hablando con la gente de AXTEL ( Mi proveedor de telefonia) me comenta que el que me esta rechazando la llamada es el conmutador del otro punto por que marco como operadora y no como abonado normal categoria 1.

    No si alguien sepa como configurar esto, AXTEL me dice que yo uso OPERADORA CATEGORIA2

  28. Luis Guaman 12 January 2006 at 2:31 pm Permalink

    Tenemos todo instalado y funcionando, R2-Digium. Pero no logramos sincronizar con PSTN – Ecuador.
    Sabes que variante debemos usar o si debemos construir una para Ecuador??

    Gracias

    Luis Guaman

  29. Dr. Simi 27 January 2006 at 7:11 pm Permalink

    Arabe…yo tuve un problema similar…y lo solucione cambiando un timer que existe en el archivo mfcr2.c

    La variable DEFAULT_T1 tiene el valor 5000, incrementalo a 20000, compilas, instalas y listo…

    mas o menos en la linea de codigo 102…

    actual
    #define DEFAULT_T1 5000

    despues
    #define DEFAULT_T1 20000

    Espero te sirva.

    Saludos

    Dr. Simi

  30. AG 31 January 2006 at 9:06 pm Permalink

    Hola a todos. Despues de tantos comentarios y solicitudes de apoyo, me pregunto si hay algun canal de IRC para asterisk en español/latinoamerica como el de FreeNode, y si no… pues podriamos ir abriendo uno, creo que eso daria impulso a la adopcion de * en LA.

  31. Ramon 3 February 2006 at 5:19 pm Permalink

    Hola a todos, he estado leyendo toda la documentaci

  32. Alvaro 14 February 2006 at 1:59 pm Permalink

    Hola. alguien me puede ayudar.

    Tengo una tarjeta TE110P la cual la conecto con una E1 a la central telefonica. puedo hacer llamada entrante y saliente y funciona OK.

    Pero cuando la llamada se establece puedes pasar 1 segundo, 5 segundos, 20 segundos, y la llamada es cortada por el asterisk.

    Nota : como puedo ver si la tarjeta tiene errores ?

    Gracias por su ayuda

    Alvaro
    Chile

  33. Juan Cuervo 12 March 2006 at 12:16 am Permalink

    Alguien podria decirme cual es la ultima version del Asterisk en la que funciona bien el chan_unicall.c y el patch para la version 1.2 al que se hace referencia arriba ?
    estoy probando con Asterisk 1.2.5 y no logro que me compile bien

    Gracias por la ayuda !!

  34. Juan Saldivar 17 March 2006 at 9:20 am Permalink

    Alguien puede ayudarme por favor… Instale una E1 y no puedo Recibir llamadas directas a los anexos solamente recibo las llamadas direccionadas a una sola Extension… Ademas cuando trato de tomar un Canal para realizar llamadas , la llamada se Corta.
    Gracias,.

  35. mauricio mejia 17 March 2006 at 5:00 pm Permalink

    saludes desde colombia
    hice tal y como indican las instrucciones. estoy usando una tarjeta sangoma a102 y las siguientes versiones de soft:
    asterisk
    libmfcr2-0.0.2; libsupertone-0.0.2; libunicall-0.0.2; spandsp-0.0.2; asterisk-1.0.9
    lo unico extraño fue que adicione a mano la entrada en el Makefile.
    pero al intentar ejecutar asterisk -c me sale:
    WARNING[4013]: loader.c:258 ast_load_resource: libunicall.so.0: cannot open shared object file: No such file or directory
    WARNING[4013]: loader.c:440 load_modules: Loading module chan_unicall.so failed!
    buscando los archivos fisicamente existen:
    /usr/local/lib/libunicall.so.0
    /usr/lib/asterisk/modules/chan_unicall.so
    Estoy usando un redhat Es 4
    gracias

  36. Juan Cuervo 4 April 2006 at 7:59 pm Permalink

    Hola Mauricio

    Aparentemente te falta hacer un ‘ ldconfig’ como usuario root desdues de compilar las librerias. Antes de hacer e ldconfig debes estar seguro de que el directorio donde se encuentren instaladas las librerias aparezca listado en tu archivo /etc.ld.so.conf. Si no lo está , añadelo al final….
    en mi caso tengo /usr/local/lib
    Suerte con eso !!

    PD: puedes decirme si te funcionó ?

    Yo ya cargo los canales y desbloqueo el E1 bien , pero por algun motivo no recibo llamadas.

  37. Francisco 7 April 2006 at 11:05 am Permalink

    Gracias, por esta guia, esta perfecta y se ha aprendido mucho de telefonia, de lo cual no sabia nada,

    Estoy conectando a un conmutador, no a telmex directamente. Puedo realizar llamadas salientes, pero para recibirlas, cuando intentan marcar a un extension en el asterisk presenta lo siguiente:

    - Unicall/1 extension ’8777′ in context ‘e1-incoming’ from ’3600′ does not exist. Rejecting call
    - Unicall/1 released

    el contecto e1-incoming esta dado de alta en extensions.conf y hace referencia a Readlizar un Palyback(hello-world) y un Dial(SIP/8777), el hello-world no se escucha y el dial da el error anterior.

  38. Desert Zarzamora 7 April 2006 at 10:39 pm Permalink

    Francisco,

    Traduciendo directamente el texto al español dice:

    La extension 8777 en el contexto e1-incoming de 3600 no existe, rechazando llamada

    Significa que esta entrando una llamada a la extension 8777, para aceptarla y mandarla a la extension SIP 8777 tu contexto debe estar por ejemplo asi:

    [e1-incoming]
    8777,1,Anwer
    8777,2,Dial(SIP/8777)
    8777,3,Hangup

    Intenta tambien con el ejemplo que yo doy y veras que funciona.

  39. Moises 12 April 2006 at 7:37 pm Permalink

    Me di a la tarea de escribir otro documento un poco mas tecnico en donde se incluye una descripcion mas detallada sobre MFCR2 y su relacion con Asterisk. Podran encontrar tambien tips para la resolucion de problemas.

    Link al documento

    un saludo y suerte a todos

  40. Cristian T 24 April 2006 at 5:43 pm Permalink

    Cual link?

    Recien configure (Gracias a esta guia) el R2, en Asterisk 1.2.5, en Asterisk@home2.7 y al menos el modulo de unicall se carga bien. Y veo los channels idle, FALTA conectarlo el E1. Esperemos funcione ok. Por que seran 8 E1.

  41. Desert Zarzamora 27 April 2006 at 12:31 pm Permalink

    Moy se refiere a este link, [mirror]. Yo ya lo lei.
    Tambien les recomiendo leer este otro documento en ingles acerca de MFC/R2.

  42. Edaurdo 1 June 2006 at 7:06 am Permalink

    Tengo un AAH 2.5 con unicall en Argentina y funciona muy bien salvo por una cosita.. Cuando llamo desde afuera, asterisk tarda 8 segundos en atender la llamada. Incluso si miro la consola mientras hago la llamada, durante esos 8 segundos, Asterisk no está haciendo nada.. o por lo menos eso parece..
    Alguien tuvo el mismo problema?

  43. Hernan 1 June 2006 at 11:20 am Permalink

    Hola! estaba buscando información respecto de asterisk utilizando señalización R2. Estamos tratando de desarrollar (ulilizando asterisk) una especie de servidor que atienda 800 llamadas en simultamaneo a través de asterisk(no llaman todos al mismo tiempo, pero se van agregando llamadas mientras otras siguen activas). Quería saber si alguien alguna vez desarrollo una aplicación asterisk de este tipo y que resultados obtubo?? Tambien si tienen alguna pagina con informacion relacionada con performance de asterisk con r2 seria muy interesante si pudieran darme la url de alguna!

    muchas gracias,
    Hernan L. Danielan

  44. Wire 1 June 2006 at 12:11 pm Permalink

    Tengo instalado un AAH 2.7 con Unicall, todo funciona bien, el unico incoveniente es que cuando marco un telefono celular o de telmex, cuando me contesta la grabacion de el numero celular esta fuera del area o se encuentra apagado y en telmex tiene activado su buzon, el asterisk sigue sonando no escucho las grabaciones de estos proveedores de telefonia, alguien tiene idea de lo que pasa?

  45. Eduardo 2 June 2006 at 7:48 am Permalink

    Hernan, yo tengo un AAH 2.5 con R2 y 30 extensiones que hacen y reciben en total poco mas de 1000 llamados durante 8 horas diarias y funciona bastante bien.

  46. Jorge Ikeda 15 June 2006 at 7:35 am Permalink

    Tuve el mismo problema que este tipo al compilar libunicall

    http://lists.digium.com/pipermail/asterisk-users/2004-September/057260.html

    Alguna solución?

  47. Gustavo Ramirez 5 July 2006 at 7:12 pm Permalink

    Tengo tres dias peleandome con un A@H 2.6 y con otro 2.1, con el 2.6 el parche nomas no cuadra. Con el 2.1 ya logre pasar hasta la compilacion del asterisk, pero al momento de cargar el modulo unicall.so el asterisk truna con codigo 1. Si deshabilito ese modulo todo jala bien.

    HELP!

    Estoy a punto de tirar la toalla

  48. jose manuel 14 August 2006 at 1:31 pm Permalink

    Saludos

    Mi nombre es Jose Manuel y estoy trabajando con una A102 de Sangoma para mi trabajo de grado.

    Estoy trabajando con Linux Ubuntu 5.10 y estoy usando una tarjeta de Sangoma (A102). Asterisk-1.0.9, zaptel 1.0.9.2, libpri 1.0.9, asterisk-sounds-1.0.9, asterisk-addons-1.0.9, mpg123-0.59r. Los drivers instalados son wanpipe-2.3.3-3.

    Ahora para mfcr2 instale spandsp-0.0.2pre20, libunicall-0.0.2, libsupertone-0.0.2.tar.gz, libunicall-0.0.2, libmfcr2-0.0.2, y luego aplique el patch a asterisk.

    Finalmente modifique los archivos de configuracion en /etc/asterisk/.

    La instalcion de las tarjetas esta bien, ahora etsoy probando con un E1 solamente. El comando UC show channels y muestras que los canales estan en IDLE. Estoy usando el x-lite, las llamadas entre sipphones y las llamadas salientes a la PSTN funcionan pero las llamadas entrantes de la PSTN no, cuando se hace una llamada entrante la salida de verbose tiene lo siguiente:

    Aug 9 06:49:48 WARNING[16414]: MFC/R2 UniCall/41 [2/ 2/Idle /Idle ]

    Aug 9 06:49:48 WARNING[16414]: Unicall/41 event Detected

    Aug 9 06:49:48 WARNING[16414]: MFC/R2 UniCall/41 [2/ 2/Seize ack /Seize ack ]

    Aug 9 06:49:48 WARNING[16414]: MFC/R2 UniCall/41 [2/ 2/Group A /Category req ]

    Aug 9 06:50:03 WARNING[16414]: MFC/R2 UniCall/41 R2 prot. err. [2/ 2/Group A /Category req ] cause 32771

    Aug 9 06:50:03 WARNING[16414]: MFC/R2 UniCall/41 1001 -> [1/ 1/Idle /Idle ]

    Aug 9 06:50:03 WARNING[16414]: Unicall/41 event Protocol failure

    Aug 9 06:50:03 WARNING[16414]: MFC/R2 UniCall/41 [1/ 1/Idle /Idle ]

    Alguien puede ayudarme, cualquier informacion la agradecere.

    Jose Manuel Cortes
    Ingeniero Electronico (Si logro acabar este proyecto)

  49. rtepepa 14 August 2006 at 3:33 pm Permalink

    Hola que tal

    Tengo un problemilla tambien para instalar el unicall.so
    De hecho en el asterisk (1.2.8) Pude parchear el makefile, y si aparece en el Makefile en CHANNEL_LIBS=chan_unicall.so, sin embargo al dar el make para recopilar Asterisk me da el siguiente error:

    chan_unicall.c:2434: asterisk/channel_pvt.h: No such file..

    Alguien que me pueda ayudar con este error

  50. Erik 19 August 2006 at 12:26 pm Permalink

    ¿Y donde conseguiste el balun marca Patton?


Leave a Reply