Configuración AEX410
Configuración inicial
Partimos de que xa se instalou Dahdi durante a instalación de Asterisk. Saber que, se estivese a tarxeta conectada cando se fixo a instalación, Dahdi detectaríalla automaticamente.
- Para configurar Dahdi executar o comando:
- dahdi_cfg
- A continuación executar o comando:
- dahdi_genconf
- Así créanse os arquivos de configuración:
- /etc/asterisk/chan_dahdi.conf
- /etc/asterisk/dahdi-channels.conf
- /etc/system.conf
Modificación dos ficheiros creados por defecto
Estes ficheiros haberá que modificalos para adaptalos á nosa rede telefónica e á nosa tarxeta de comunicacións (AEX410+X100M).
Ficheiro system.conf
O ficheiro system.conf quedaría:
# Autogenerated by /usr/sbin/dahdi_genconf on Tue May 19 13:07:48 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: WCTDM/0 "Wildcard AEX410 Board 1" (MASTER)
fxsks=1
echocanceller=mg2,1
# Global data
loadzone = es
defaultzone = es
Ficheiro chan_dahdi.conf
Téñase en conta que Asterisk non lé todos os arquivos de configuración xerados por DAHDI, se non soamente o ficheiro chan_dahdi.conf. Para que Asterisk interprete a configuración xerada, agregar a ese ficheiro a liña:
#include dahdi-channels.conf
O archivo chan-dahdi.conf que resulta despois de adaptalo é:
[channels]
#include dahdi-channels.conf
;General options
; Default language
language=es
usecallerid=yes
hidecallerid=no
callwaiting=yes
threewaycalling=yes
transfer=yes
echocancel=yes
echocancelwhenbridged=yes
rxgain=0.0
txgain=0.0
;FXO Modules
echocancel=yes
signalling=fxs_ks
context=from_pstn
channel=>1
Ficheiro dahdi-channels.conf
O ficheiro dahdi-channels.conf é autoxenerado polo script dahdi_genconf antes executado, así este ficheiro quedaría do seguinte xeito:
; Autogenerated by /usr/sbin/dahdi_genconf on Tue May 19 13:07:48 2009
; If you edit this file and execute /usr/sbin/dahdi_genconf again,
; your manual changes will be LOST.
; Dahdi Channels Configurations (chan_dahdi.conf)
;
; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended
; to be included by chan_dahdi.conf that will include the global settings
;
; Span 1: WCTDM/0 "Wildcard AEX410 Board 1" (MASTER)
;;; line="1 WCTDM/0/0 FXSKS </nowiki>(EC: MG2)"
signalling=fxs_ks
callerid=asreceived
context=from_pstn
channel => 1
Plan de marcación
Faltaría por configurar o plan de marcación no ficheiro /etc/asterisk/extensions.conf.
- Para realizar chamadas saíntes pola canle 1 da tarxeta FXO, engadiríanse no contexto que corresponde ao usuario SIP as liñas:
exten=>_9X.,1,DIAL(DAHDI/1/${EXTEN:1})
exten=>_9X.,2,Hangup()
Así, para saír pola liña telefónica analóxica, marcaríase un 9, e a continuación o número de abonado a quen se chama.
- Para recibir as chamadas entrantes pola liña conectada á interface FXO, por defecto todas as chamadas entrantes dende unha canle FXO, fano pola extensión “s”, e débese crear un contexto por cada liña FXO.
O seguinte exemplo amosa un contexto llamado "from_pstn" (que se corresponde có ficheiro chan-dahdi anterior) que encamina as chamadas entrantes pola canle FXO, aos usuarios ruben e manuel.
[from_pstn]
exten =>s,1,Answer
exten =>s,2,WaitMusicOnHold(10) ; engádese unha melodía de 10 s de duración
exten =>s,n,Playback(vm-forward) ; exemplo dunha reproducción de son
exten =>s,n,Dial(SIP/ruben,30) ; ruben está conectado pero non responde
;exten =>s,n,Dial(SIP/manuel,30) ; manuel non está conectado
exten =>s,n,Playback(beeperr) ; exemplo de reproducción dun tono de erro
exten =>t,n,Hangup ; a liña queda liberada
Realizando Chamadas
E este é o resultado na consola de Asterisk ao efectuar unha chamada dende un teléfono:
-- Starting simple switch on 'DAHDI/1-1'
[May 28 17:30:07] NOTICE[3838]: chan_dahdi.c:7125 ss_thread: Got event 18 (Ring Begin)...
[May 28 17:30:09] NOTICE[3838]: chan_dahdi.c:7125 ss_thread: Got event 2 (Ring/Answered)...
-- Executing [s@from_pstn:1] Answer("DAHDI/1-1", "") in new stack
-- Executing [s@from_pstn:2] WaitMusicOnHold("DAHDI/1-1", "10") in new stack
-- Started music on hold, class 'default', on DAHDI/1-1
-- Stopped music on hold on DAHDI/1-1
-- Executing [s@from_pstn:3] Playback("DAHDI/1-1", "vm-forward") in new stack
-- <DAHDI/1-1> Playing 'vm-forward.ulaw' (language 'es')
-- Executing [s@from_pstn:4] Dial("DAHDI/1-1", "SIP/ruben,30") in new stack
== Using SIP RTP CoS mark 5
-- Called ruben
-- SIP/ruben-08e660d8 is ringing
-- Nobody picked up in 30000 ms
-- Executing [s@from_pstn:5] Dial("DAHDI/1-1", "SIP/manuel,30") in new stack
== Using SIP RTP CoS mark 5
[May 28 17:30:55] WARNING[3838]: app_dial.c:1502 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@from_pstn:6] Playback("DAHDI/1-1", "beeperr") in new stack
-- <DAHDI/1-1> Playing 'beeperr.ulaw' (language 'es')
-- Auto fallthrough, channel 'DAHDI/1-1' status is 'CHANUNAVAIL'
-- Hungup 'DAHDI/1-1'
Comandos Dahdi, útiles para a resolución de problemas
Lístanse dende a consola de Asterisk có comando help:
localhost*CLI> ''help dahdi ''
dahdi destroy channel | Elimina unha canle |
dahdi restart | Reinicia as canles Dahdi |
dahdi scan | Mostra as tarxetas recoñecidas por Dahdi |
dahdi set hwgain | Establece a ganancia hardware dunha canle |
dahdi set swgain | Establece a ganancia software dunha canle |
dahdi show channels | Amosa as canles Dahdi activas |
dahdi show channel | Amosa a información dunha canle |
dahdi show status | Amosa o estado de todas as tarxetas Dahdi |
dahdi show version | Amosa a versión en uso de Dahdi |
dahdi show cadences | Lista as cadencias |
Outros comandos interesantes
- dmesg (diagnostic message, mensaxes de diagnose)
- É un comando presente nos sistemas operativos Unix que lista o buffer de mensaxes do núcleo. Este buffer contén unha grande variedade de mensaxes importantes xerados durante o arranque do sistema e durante a depuración de aplicacións.