Configuración Tarjetas Digium para Asterisk FXS y FXO – TDM410, Usando DAHDI
Para conectar una central telefonica a la PSTN, o telefonía pública CANTV en el caso de Venezuela a través de hardware existen distintas posibilidades de interfaces y dispositivos, mayormente PCI:
- Dispositivos FXO
- Dispositivos FXS
- Dispositivos Mixtas (FXO/FXS)
- Dispositivos BRI (ISDN)
- Dispositivos PRI (E1, T1, J1)
FXO (Foreign Exchange Office) es un dispositivo de computador que permite conectar éste a la RTB, y mediante un software especial, realizar y recibir llamadas de teléfono.
FXS (Foreign Exchange Station) es el conector en una central telefónica o en la pared de nuestro hogar, que permite conectar un teléfono analógico estándard.
Los dispositivos Mixtos FXO/FXS combinan los dos tipos de conexiones según las necesidades del adquirente. Un ejemplo de dispositivo FXO/FXS es la tarjeta Digium TDM400P que permite instalar un total 4 módulos FXO/FXS. Los verdes (S110M) son modulos FXS y los Rojos (X100M) FXO.

Los dispositivos BRI (Basic rate interface) permiten conectar una linea ISDN (Integrated Services Digital Network) al servidor Linux. Las líneas ISDN están compuestas de dos canales audio (de 64Kbit/s cada uno) y un canal D que se utiliza para la señalizacion con la central telefónica (de 16 Kbit/s).
Los dispositivos E1, T1, J1, que también se pueden denominar primarios, son líneas digitales que según el tipo brindan de 24 (T1) a 34 (E1) canales de voz. La diversa nomenclatura de estas lineas está relacionada con los países donde se usan. T1 son la líneas disponibles en Estados Unidos, E1 en Europa y J1 en Japón.
Aquí vamos a configurar una central telefónica Elastix con una tarjeta Digium TDM-410 con un modulo FXS y uno FXO para efectuar y recibir llamadas.
Pasos para la instalación de la Central Telefónica con Elastix 2.5:
Instalar el Sistema Operativo Elastix y preconfigurarlo. Manual Click Aqui
Instalar la tarjeta PCI:
- Apagar el computador
- Desconectar el cable de alimentación
- Abrir el chasis del Computador
- Insertar la tarjeta en una ranura PCI disponible (conectar energía a la tarjeta)
- Volver a poner el chasis del computador
- Conectar el cable de alimentación al computador
- Conectar la línea telefónica al puerto FXO de la tarjeta a través de un normal cable telefonico.
- Conectar el teléfono analógico el puerto FXS.
- Prender el computador
Normalmente CentOS (Sistema Operativo Base de Elastix) reconoce automáticamente la nueva tarjeta instalada.
Una vez arrancado el sistema comprobamos que efectivamente la tarjeta ha sido reconocida por el sistema: Accedemos al servidor en modo root y ejecutamos:
#lspci -v
Según el modelo y marca en la pantalla tendremos una salida de este tipo:
02:08.0 Communication controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
Subsystem: Intel Corporation Digium X100P/X101P analogue PSTN FXO interface
Flags: bus master, medium devsel, latency 64, IRQ 201
I/O ports at d800 [size=256]
Memory at fdc00000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
Configuración X100P
El programa/librería que se encarga de detectar y configurar el puerto FXO en Asterisk es DAHDI. DAHDI trabaja “encima” de Asterisk y por eso hay que arrancarlo siempre antes de Asterisk. Para la configuración de la tarjeta se usarán algunas utilidades presentes en el paquete DAHDI-tools.
La primera utilidad que se usará es dahdi_genconf que reconoce el tipo de tarjeta instalado y crea/modifica dos archivos:
/etc/dahdi/system.conf
/etc/asterisk/dahdi-channels.conf
dahdi_genconf -v
El resultado:
Default parameters from /etc/dahdi/genconf_parameters
Generating /etc/dahdi/system.conf
Generating /etc/asterisk/dahdi-channels.conf
Ahora se abren los dos archivos para ver que cambios hizo esta utilidad:
nano /etc/dahdi/system.conf
# Autogenerated by /usr/sbin/dahdi_genconf on Mon Nov 30 09:19:08 2009
# If you edit this file and execute /usr/sbin/dahdi_genconf again,
# your manual changes will be LOST.
# Dahdi Configuration File
#
# This file is parsed by the Dahdi Configurator, dahdi_cfg
#
# Span 1: WCFXO/0 «Generic Clone Board 1» (MASTER) RED
fxsks=1
;el tipo de señalizacion utilizada por el canal. En este caso protocolo FXS Koolstart
echocanceller=mg2,1
;el tipo de cancelacion del echo software (mg2) y el canal (en este caso existe solamente el 1)
loadzone =us
defaultzone=us
; zona predefinida para la señalizacion (tono de llamada, tono de ocupado, etc..)
El único cambio que hay que hacer es poner en lugar de us (United States) ve (Venezuela)
Se guardan los cambios.
El segundo archivo:
nano /etc/asterisk/dahdi-channels.conf
; Span 1: WCFXO/0 «Generic Clone Board 1» (MASTER) RED
;;; line=»1 WCFXO/0/0 FXSKS (In use) (SWEC: MG2)»
signalling=fxs_ks
; el tipo de señalizacion del canal. Normalmente es el contrario del puerto instalado. Si el puerto es FXO la señalizacion es FXS y viceversa.
callerid=asreceived
; aquí se puede configurar el callerid completo para la linea telefónica conectada al puerto FXO. Si se deja el parámetro en “asreceived” se presentará al llamante el numero telefónico asignado a la linea por la compañía telefónica.
group=1
; si se disponen de muchos canales se pueden crear grupos. Este tipo de parámetro será útil al momento de configurar el dialplan
context=from-pstn
; es el contexto en donde entrarán las llamadas procedentes de la línea telefónica.
channel => 1
; numero de canales disponibles en la tarjeta (en este caso 1)
Para que el archivo dahdi-channels sea leído por Asterisk tenemos que poner un include en el archivo chan_dahdi.conf
nano /etc/asterisk/chan_dahdi.conf
el fondo del archivo se añade la línea:
#include dahdi-channels.conf
Se guardan los cambios.
Desde la consola de Asterisk recargamos la configuración de DAHDI
asterisk -rvvvvvvvvvvvvvvvvvvv
CLI> dahdi restart
Si no sale ningún error significa que la configuración es correcta.
El estado de los canales DAHDI
CLI> dahdi show status
Description Alarms IRQ bpviol CRC4 Fra Codi Options LBO
Generic Clone Board 1 OK 0 0 0 CAS Unk YEL 0 db (CSU)/0-133 feet (DSX-1)
Una serie de informaciones acerca del canal configurado:
CLI> dahdi show channel 1
Channel: 1
File Descriptor: 15
Span: 1st
Extension:
Dialing: no
Context: from-pstn
Caller ID:
Calling TON: 0
Caller ID name:
Mailbox: none>
Destroy: 0
InAlarm: 0
Signalling Type: FXS Kewlstart
Radio: 0t
Owner: <None>>
Real: <None>
Callwait: <None>
Threeway: <None>
Confno: -1
Propagated Conference: -1
Real in conference: 0
DSP: nost
Busy Detection: no
TDD: nost
Relax DTMF: no
Dialing/CallwaitCAS: 0/0
Default law: ulaw
Fax Handled: no
Pulse phone: no
DND: nost
Echo Cancellation:
localhos128 taps
localhoscurrently OFF
Actual Confinfo: Num/0, Mode/0x0000
Actual Confmute: No
Hookstate (FXS only): Onhook
Ultima parte de la configuración es crear en el plan de llamadas un contexto para las llamadas entrantes de la línea telefónica y unas líneas en el contexto externas:
Para hacer llamadas desde una extensión conectada a Asterisk en el contexto externas se pone:
exten => _9.,1,Dial(DAHDI/g1/${EXTEN:1},45)
exten => _9.,n,Hangup
Para todas las llamadas locales y nacionales se usara la línea telefónica. Para diferenciar estas llamadas de las internacionales se ha puesto el numero 9 que representa el valor a marcar antes de cualquier numero local o nacional. Con g1 se indica el grupo (el puerto FXO pertenece al grupo 1).
Otra forma puede ser:
exten => _9.,1,Dial(DAHDI/1/${EXTEN:1},45)
exten => _9.,n,Hangup
En lugar de g1 se pone 1 que es el canal del puerto FXO
Para las llamadas en entrada desde la linea telefónica:
[from-pstn]
exten => s,1,Dial(SIP/1000,45)
exten => s,n,Hangup
Todas las llamadas que entran a través de la linea telefónica se desvían a la extensión 1000.
Se guardan los cambios y se reinicia Asterisk
/etc/init.d/asterisk restart
Para más puertos FXO el procedimiento es casi idéntico.
Esta es una pequeña guía para configurar tarjetas digium o similares para Asterisk, modelos TDM410, AEX410, o equivalentes.
Usaremos el driver DAHDI, Teniendo nuestro asterisk instalado, ya sea compilando el código o utilizando una distribución como Elastix, Trixbox, AsteriskNow, etc. entramos como superusuario (root) en la consola ejecutamos lo siguiente:
# dahdi_genconf
Con esto, le indicamos al sistema que busque hardware compatible. Y genera el archivo /etc/dahdi/system.conf con la configuración de las tarjetas.
El archivo /etc/asterisk/chan_dahdi.conf se configura con los parámetros por defecto para que el hardware funcione. Podemos cambiarlo a español y además activar busydetect y busycount para las líneas análogas.
Quedando algo asi:
[trunkgroups]
[channels]
language=es
context=from-pstn
signalling=fxs_ks
rxwink=300 ; Atlas seems to use long (250ms) winks
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=no
faxdetect=incoming
echotraining=800
rxgain=1.0
txgain=1.0
callgroup=1
pickupgroup=1
;Uncomment these lines if you have problems with the disconection of your analog lines
busydetect=yes
busycount=6
;answeronpolarityswitch=yes
;hanguponpolarityswitch=yes
immediate=no
#include dahdi-channels.conf
#include chan_dahdi_additional.conf
Para una TDM410 o AEX410 quedaría más menos así el archivo dahdi-channels.conf. Tomando el cuenta 4 FXO.
; Span 1: WCTDM/0 «Wildcard AEX400 Board 1» (MASTER)
;;; line=»1 WCTDM/0/0″
signalling=fxs_ks
callerid=asreceived
group=1
context=from-pstn
channel => 1
callerid=
group=
context=default
;;; line=»2 WCTDM/0/1″
signalling=fxs_ks
callerid=asreceived
group=1
context=from-pstn
channel => 2
callerid=
group=
context=default
;;; line=»3 WCTDM/0/2″
signalling=fxs_ks
callerid=asreceived
group=1
context=from-pstn
channel => 3
callerid=
group=
context=default
;;; line=»4 WCTDM/0/3″
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 4
callerid=
group=
context=default
Con eso deberían poder tener tono, recibir y hacer llamadas. Solo debes crear las extensiones, troncales y rutas.
Hola amigo, una pregunta yo tengo instalado Elastix en una pc con una tarjeta Digium E420 y no la reconoce podrias ayudarme?