Ideas de mi materia gris

octubre 23, 2008

Asterisk y E1, experiencias

Filed under: Asterisk — ciclodetrantor @ 8:39 pm

Finalmente le toco a un servidor, instalar un conmutador Asterisk con una tarjeta E1. Para ser la primera vez no estuvo tan mal teniendo en cuenta que actualmente se encuentra operando de manera satisfactoria, uno que otro detalle pero nada con tintes de catástrofe.

Para poner las cosas en contexto, desde que inicie en esto de Asterisk siempre encontré información de que en México y otros países no era algo trivial la instalación de enlaces E1, en caso concreto con Telmex.

Bueno estas cosas son empíricas, hasta que uno no se encuentra con el problema, uno no aprende como resolverlo.

Vamos a ver la tarjeta que se uso fue una Wildcard TE122.

Tarjeta TE122

Tarjeta TE122

Despues de instalar el Linux de tu preferencia (CentOS y Debian son los que mas uso), nuestro sistema debe reconocer la tarjeta, dando el comando lspci | grep Digium podemos ver lo siguiente:

[root@asteriskcentro ~]# lspci | grep Digium
05:02.0 Ethernet controller: Digium, Inc. Unknown device 8001 (rev 11)
05:04.0 Ethernet controller: Digium, Inc. Unknown device 0800 (rev 11)

En este caso aparecen dos, por que también hay una tarjeta analógica TDM800P, con ocho puertos FXO. Hay una serie de aplicaciones que necesitamos instalar para echar a andar esta situación, las cuales son: zaptel, spandsp, libsupertone, libunicall, libmfcr2  y Asterisk. Podemos descargar cada una de estas aplicaciones por separado pero afortunadamente hay alguien (es el desarrollador principal de chan_unicall) que tiene un comprimido con todo lo necesario incluyendo manual de instrucciones, podemos descargarlo desde aquí: http://www.moythreads.com/astunicall/downloads/

La versión que yo use es la1.4.21.2, realmente es fácil la instalación, suponiendo que tienes todas las dependencias, todo se resume a tres cosas: ./configure –prefix=/usr && make && make install.

Terminado esto, y configurado adecuadamente el archivo zaptel.conf tomando como base el ejemplo que acompaña a los archivos de instalación nos queda de la siguiente manera, a lo ultimo hay algo extra con respecto de la tarjeta analógica, en caso de solo tener la tarjeta digital se omite la ultima linea.

[root@asteriskcentro ~]# more /etc/zaptel.conf
# MFC/R2 requires CAS signaling
# channel 16 is required to transmit ABCD bits so is not used for voice
span=1,1,0,cas,hdb3
cas=1-15:1101
dchan=16
cas=17-31:1101
fxsls=32-39

Si verificamos con el comando ztcfg, que lee el archivo zaptel.conf, para verificar la configuración, obtendremos algo similar a lo siguiente:

[root@asteriskcentro ~]# ztcfg -v
Zaptel Version: 1.4.11
Echo Canceller: MG2
Configuration
======================
SPAN 1: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)
39 channels to configure.

Eso es en caso de ir bien, si se te presenta un error similar a este:

ZT_CHANCONFIG failed on channel 2: Invalid argument (22)
Did you forget that FXS interfaces are configured with FXO signaling
and that FXO interfaces use FXS signaling?

En mi caso era de que por alguna razón, los módulos no cargaban bien, volviendo a cargar los modulos de zaptel y verificar bien la configuración del archivo, obtenemos que las tarjetas están listas para usarse.

Después de esto, te copias el archivo de ejemplo de unicall.conf, dentro de /etc/asterisk, para modificarlo a tu gusto aunque realmente lo que tienes que verificar es la siguiente linea: protocolvariant=mx,10,4

Esto significa que estamos en México, que son 10 numeros y que los últimos 4 números son los que envía el proveedor, por ejemplo tenemos las siguientes lineas telefónicas en la ciudad de México (55) 51 41 21 00, 51 41 21 02, 51 41 21 06, 51 41 21 07, etc., son diez dígitos y los que cambian son los últimos 2 que identifican cada linea, estos se denominan dígitos ANI y DNI.

Ahora si, iniciamos Asterisk, y verificamos el estado de las canales, realmente al conectar el enlace a nuestra tarjeta surgirán un montón de mensajes, el color del led pasara de rojo a verde, y directo a probar agarramos un celular y marcamos para ver como se comporta.

asteriskcentro*CLI> UC show channels
Channel Extension  Context         Status     Language   MusicOnHold
      1 2107       entrantescentro Idle       en         default
      2 2100       entrantescentro Idle       en         default
      3 2110       entrantescentro Idle       en         default
      4 2113       entrantescentro Idle       en         default
      5 2107       entrantescentro Idle       en         default
      6 2120       entrantescentro Idle       en         default
      7            entrantescentro Idle       en         default
      8            entrantescentro Idle       en         default
      9            entrantescentro Idle       en         default
     10            entrantescentro Idle       en         default
asteriskcentro*CLI>

Configuramos nuestro contexto de llamadas entrantes:

[entrantescentro]
include => ivr

exten => _X.,1,Background(custom/ivrcentro)
exten => _X.,n,WaitExten(15)
exten => _X.,n,Dial(SIP/2100)

exten => 2102,1,Macro(voicemail,SIP/${EXTEN})
exten => 2105,1,Macro(voicemail,SIP/${EXTEN})
exten => 2106,1,Macro(voicemail,SIP/${EXTEN})
exten => 2107,1,Macro(voicemail,SIP/${EXTEN})
exten => 2110,1,Macro(voicemail,SIP/${EXTEN})
exten => 2120,1,Macro(llamar,SIP/${EXTEN})
exten => 2121,1,Macro(llamar,SIP/${EXTEN})

Realizamos una llamada de prueba, y vemos el estado de la consola.

Connected to Asterisk 1.4.21.2 currently running on asteriskcentro (pid = 3281)
Verbosity is at least 10
[Oct 23 15:10:38] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Detected
[Oct 23 15:10:39] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Offered
[Oct 23 15:10:39] NOTICE[3395]: chan_unicall.c:2642 handle_uc_event: CRN 33152 - Offered on channel 0 (ANI: , DNIS: 2100, Cat: 1)
[Oct 23 15:10:40] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Accepted
    -- Executing [2100@entrantescentro:1] NoOp("UniCall/1-1", "2100") in new stack
    -- Executing [2100@entrantescentro:2] NoOp("UniCall/1-1", "") in new stack
    -- Executing [2100@entrantescentro:3] Set("UniCall/1-1", "CALLERID(all)="Llamada"") in new stack
    -- Executing [2100@entrantescentro:4] BackGround("UniCall/1-1", "custom/ivrcentro") in new stack
    -- <UniCall/1-1> Playing 'custom/ivrcentro' (language 'en')
[Oct 23 15:10:40] NOTICE[13441]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Answered
[Oct 23 15:11:02] NOTICE[13441]: chan_unicall.c:1914 unicall_exception: Exception on 23, channel 1
[Oct 23 15:11:02] NOTICE[13441]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Far end disconnected
[Oct 23 15:11:02] NOTICE[13441]: chan_unicall.c:2790 handle_uc_event: CRN 33152 - far disconnected cause=Normal Clearing [16]
    -- Channel 0 got hangup
  == Spawn extension (entrantescentro, 2100, 4) exited non-zero on 'UniCall/1-1'
    -- Hungup 'UniCall/1-1'
[Oct 23 15:11:02] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Drop call
[Oct 23 15:11:02] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Release call
    -- Unicall/1 released
asteriskcentro*CLI>

Lo que hicimos fue marcar al numero cabeza de grupo, el que termina en 2100, si marcamos el numero con terminación 2107 se dirige directamente al usuario sin pasar por el mensaje de bienvenida.

Caso contrario si queremos hacer llamadas creamos un contexto como este:

[salientescentro-local]
exten => _XXXXXXXX,1,Dial(Unicall/g1/${EXTEN})

Hasta ahorita todo va bien, conforme pase el tiempo veremos como se comporta esto, y lo pondre por acá.

Date una vuelta por estas paginas y échales un ojo:

http://zarzamora.com.mx/archivo-historico/17

http://www.moythreads.com/astunicall/

http://www.voip-info.org/wiki/view/Asterisk+MFC+R2

Anuncios

8 comentarios »

  1. También existe la alternativa de instalar R2 usando chan_zap sin niguna libreria de Unicall y por tanto poder marcar Dial(Zap/g1/1234) en lugar de Dial(Unicall/g1/1234) además de que está en proceso de ser el soporte oficial por Digium y se integra mas sencillo con soluciones como trixbox y elastix.

    Para mas información pueden referirse a http://www.libopenr2.org/

    Comentario por moy — octubre 23, 2008 @ 4:44 pm

  2. Hola.
    Quería saber como logran asociar una extension a un canal de la E1. Por ejemplo, cuando hacen “UC show channels”, veo que el canal 1 tiene asociada la extension “2107”. Dónde configuran esto? busqué y prové varias cosas, pero sin éxito.
    Saludos.

    Comentario por Jose Luis — octubre 16, 2009 @ 7:36 am

  3. Hola ….sabes tengo el mismo problema al momento de digitar ztcfg…
    ZT_CHANCONFIG failed on channel 1: no such device or address (6) …
    tu dices q para corregir el error reintalaste los modulos de zaptel …puedes indicarme cuales son los comandos q ocupaste….pork yo intente ya alguna cosas…y sigo con el mismo error….ayudame …..
    espero tu respuesta

    Comentario por alexandra — enero 25, 2010 @ 9:40 pm

    • No reinstalar, sino volverlos a cargar, por alguna razón en este conmutador tengo que cargar dos veces el servicio de Zaptel.
      Es decir después de la instalación y de que Zaptel inicia, vuelvo a dar el comando service zaptel restart, y después de eso iniciar Asterisk.
      Es decir cargar Zaptel, reiniciar Zaptel y todo funciona normalmente, el service zaptel restart lo coloque en el archivo rc.local, para que se ejecutara al iniciar el sistema. Saludos y que estés bien, disculpa por la tardanza en responder, pero no me había percatado del correo avisándome de tu comentario mil gracias por comentar. Te puedes dar una vuelta por el blog que trato de mantener ahora; http://demerzel.org

      Comentario por ciclodetrantor — febrero 1, 2010 @ 4:04 pm

      • …gracias por responderme..pero cambie ahora estoy usando dahdi…pues si todo va bien…estoy configurando los archivos asterisk..y eso en espera de q mi central funcione…mi tarjeta es una tdm410p…si sabes algo o informacion util ….gracias.. soy novata y estoy aprendiendo….

        Comentario por alexa... — febrero 1, 2010 @ 7:13 pm

  4. […] E1 de TELMEX en México, sera la tercera guía rápida que hago cada una con distintas tarjetas, Digium y OpenVox. El sistema operativo que utilizaremos sera Linux Red Hat Enterprise Linux 5.6 para […]

    Pingback por Asterisk, Sangoma A101 y OpenR2. • Otro blog que instalo — mayo 29, 2011 @ 5:05 pm

  5. […] E1 de TELMEX en México, sera la tercera guía rápida que hago cada una con distintas tarjetas, Digium y OpenVox. El sistema operativo que utilizaremos sera Linux Red Hat Enterprise Linux 5.6 para […]

    Pingback por Asterisk, Sangoma A101 y OpenR2. | La Biblioteca Imperial — septiembre 27, 2011 @ 11:05 pm

  6. un buen dia señores, quiero que me den una mano, tengo una tarjeta Sangoma E1 A101 instalada en un PC sobre windows-7, al momento esta configurada con señalización CCS hacia la central con Wanpippe, pero lo que necesito es configurar como CAS, COMO HAGO?, alguien tiene un scrip como hacerlo?

    Comentario por jaime tite — julio 28, 2014 @ 10:24 am


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: