Scheda VoIP Sangoma A200

Si vuole utilizzare Asterisk per connettere alcuni telefoni IP con una linea telefonica analogica. La scheda Sangoma è equipaggiata con un modulo FXO che fornisce due porte analogiche da collegarsi ad altrettante linee telefoniche

Pacchetti Debian Squeeze installati:

  • dahdi
  • dahdi-linux
  • dahdi-source
  • asterisk
  • module-assistant
  • linux-headers-2.6.32-5-amd64

I pacchetti module-assistant e linux-headers servono per la compilazione dei moduli kernel dahdi.

Usare module-assistant per creare il pacchetto .deb dei moduli kernel

È possibile eseguire la compilazione come utente non privilegiato, ridirigendo tutto nella directory corrente:

module-assistant --userdir . --text-mode build dahdi

Quindi, da root, si installa il pacchetto .deb risultante:

dpkg -i dahdi-modules-2.6.32-5-amd64_2.3.0.1+dfsg-1+2.6.32-23_amd64.deb

Dovrebbe essere possibile creare il pacchetto .deb anche con make-kpkg, ma senza l'intera directory dei sorgenti kernel si sono verificati degli errori simili a quelli riportati in questo bug report. L'errore è stato: No rule to make target `scripts/basic/Makefile'.

I moduli kernel da caricare sono:

modprobe dahdi

Con dmesg si vede la risposta del kernel:

[ 8435.018799] dahdi: Telephony Interface Registered on major 196
[ 8435.018803] dahdi: Version: 2.3.0.1

Dopo aver caricato il modulo compaiono dei nuovi device:

# ls -l /dev/dahdi/
crw-rw---- 1 root dialout 196, 254 Sep 30 15:58 channel
crw-rw---- 1 root dialout 196,   0 Sep 30 15:58 ctl
crw-rw---- 1 root dialout 196, 255 Sep 30 15:58 pseudo
crw-rw---- 1 root dialout 196, 253 Sep 30 15:58 timer

Il comando dahdi_hardware conferma che l'hardware è stato riconosciuto:

# dahdi_hardware
pci:0000:03:04.0     wanpipe-     1923:0040 Sangoma Technologies Corp. A200/Remora FXO/FXS Analog AFT card

Wanpipe

FIXME Serve davvero per la scheda A200?

Per compilare dai sorgenti servono alcuni pacchetti di sviluppo:

  • libncurses5-dev
  • bison
  • flex
  • libtool

La procedura di setup ha bisogno dei privilegi di root perché va a scrivere in diversi posti:

  • /usr/include/wanpipe/
  • /lib/modules/2.6.32-5-amd64/build/wanpipe
  • /lib/modules/2.6.32-5-amd64/kernel/net/wanrouter/
  • /lib/modules/2.6.32-5-amd64/kernel/drivers/net/wan/

Durante il setup viene chiesto quale Compilation Mode si preferisce:

2. TDM Voice (Dahdi/Zaptel) Support 
       Protocols: TDMV (Dahid/Zaptel), TDM API on AFT adatpers.
       Default for: Asterisk & CallWeaver

La directory con i sorgenti zaptel (il più moderno dahdi nel nostro caso):

/usr/local/src/dahdi/usr_src/modules/dahdi

Terminologia

Canale Percorso attraverso il quale instradare delle chiamate, può essere ad esempio FXO (linea telefonica), FXS (apparecchio telefonico), SIP (voce su IP, standard usato da molti device), IAX (voce su IP, standard proposto da Asterisk).

Configurazione

NOTA1: Debian include il modulo kernel per la cancellazione echo OSLEC, oltre al predefinito MG2. Di conseguenza i vari tool sono stati patchati per utilizzarlo.

NOTA2: La documentazione spesso fa riferimento al modulo ztdummy o al più moderno dahdi_dummy. Debian ha applicato una patch accettata upstream per cui il modulo non è più necessario e viene usato in timing interno.

File di configurazione, da editare manualmente o creare con gli appositi tool.

/etc/dahdi/modules Elnco dei moduli kernel da caricare al boot.
/etc/dahdi/system.conf File per la configurazione dell'hardware, letto da dahdi_cfg.
/etc/dahdi/init.conf Modifica il comportamento di default di /etc/init.d/dahdi.

Editare il file /etc/dahdi/genconf_parameters in modo che il tool dahdi_genconf sappia cosa fare. Ecco un esempio:

# Set tone zone values. This is used for playing tones (busy,
# dial-tone and such). The default is us. This sets the value
# for both loadzone and defaultzone in system.conf.
lc_country it
dahdi_genconf system

produce il file /etc/dahdi/system.conf

dahdi_genconf chandahdi

produce il file /etc/asterisk/dahdi-channels.conf

Per configurare una porta FXO (da connettere alla linea telefonica) bisogna attivare su di essa la segnalazione (signaling) FXS.

Debug

Con una configurazione di Dahdi sbagliata Asterisk può non partire proprio. Ecco cosa succede lanciando il programma in modo interattivo:

# asterisk -cvvvvv
...
  == Registered application 'DAHDIBarge'
 app_dahdibarge.so => (Barge in on DAHDI channel application)
Segmentation fault

Se invece il programma si avvia, è possibile uscire dalla linea di comando con:

*CLI> core stop now
doc/appunti/hardware/sangoma_a200.txt · Last modified: 2010/10/02 23:43 by niccolo
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki