Instalación y configuración de la tarjeta X100P en Asterisk 1.6.X
Mar, 01/12/2009 - 19:07 — admin
Una de las posibilidades brindadas por Asterisk es la de conectarlo, a través de dispositivos Hardware, a la red telefónica conmutada (RTB). Los dispositivos pueden ser de distintos tipos:
-
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 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.
El tipo de dispositivos a utilizar estará relacionado con el tipo de instalación que se está haciendo (casa, oficina, pequeña empresa, etc.)
En este capitulo se verá como instalar un dispositivo FXO en el computador y como configurarlo en Asterisk para efectuar y recibir llamadas.
Instalación X100P
El dispositivo X100P es una tarjeta PCI con un canal FXO disponible.
Para la instalación de la tarjeta en un servidor Linux, distribución CentOS estos son los pasos a seguir:
-
Apagar el computador
-
Desconectar el cable de alimentación
-
Abrir el chasis del Computador
-
Insertar la tarjeta en una ranura PCI disponible
-
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 telefónico
-
Prender el computador
Normalmente CentOS reconoce automáticamente la nueva tarjeta instalada y le asigna un IRQ para que pueda comunicarse con el procesador del computador.
Una vez arrancado el sistema comprobamos que efectivamente la tarjeta ha sido reconocida por el sistema:
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
Se comprueba el IRQ
cat /proc/interrrupts
201: 330596875 IO-APIC-level wcfxo
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) co (Colombia)
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:
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 |