Configurazione di una scheda Digium B410P con mISDN

La configurazione di una scheda Digium B410P con Asterisk 1.4 (su Debian Lenny) mi ha fatto impazzire parecchio. Riporto qui la configurazione, sperando di ricordare tutti i passi. La B410P e` una scheda quad-BRI basata sul chipset HFC. Nonostante abbia un chipset HFC che dovrebbe essere supportato anche da zaptel (zaphfc), essendo una scheda con 4 porte, non e` supportata da detto driver, ma dal nuovo framework mISDN (www.misdn.org). La documentazione indicata sul sito Digium per installare la B410P e` probabilmente obsoleta, il driver fornito da Digium non compila sui kernel moderni (2.6.2x).

Installazione di mISDN

Ricompilazione di Asterisk

Purtroppo Asterisk fornito con Lenny non supporta chan_misdn. Altrettanto purtroppo, non e` possibile aggiungere il modulo chan_misdn senza ricompilare Asterisk, o almeno io non saprei come fare. Quindi mi devo ricompilare Asterisk.

Installazione dei driver Zaptel

I drivers Zaptel, specificamente ztdummy, mi servono per generare il timing per fare funzionare Asterisk. Apparentemente il driver mISDN non genera il timing. L'installazione del driver e` molto semplice, grazie a Debian. Tutto si riduce a:

Configurazione di Asterisk

A parte tutte le configurazioni specifiche di Asterisk, elenco qui come configurare le parti che riguardano mISDN.

Prima di tutto, la configurazione di /etc/asterisk/misdn.conf. Questi sono tutti i settaggi, sia quelli che erano a default, sia quelli che non lo erano.

[general]
misdn_init=/etc/misdn-init.conf
debug=0
ntdebugflags=0
ntdebugfile=/var/log/misdn-nt.log
ntkeepcalls=no
bridging=no
stop_tone_after_first_digit=yes
append_digits2exten=yes
dynamic_crypt=no
crypt_prefix=**
crypt_keys=test,muh

[default]
context=misdn
language=it
musicclass=default
senddtmf=yes
far_alerting=no
allowed_bearers=all
nationalprefix=0
internationalprefix=00
rxgain=0
txgain=0
te_choose_channel=no
pmp_l1_check=yes
reject_cause=16
need_more_infos=no
nttimeout=no
method=standard
overlapdial=no
dialplan=0
localdialplan=0
cpndialplan=0
early_bconnect=yes
incoming_early_audio=no
nodialtone=no
presentation=-1
screen=-1
echocancel=yes
jitterbuffer=4000
jitterbuffer_upper_threshold=0
hdlc=no
max_incoming=-1
max_outgoing=-1

[misdn_outgoing]
  msns=*
  ports=1,2,3,4

Qui di fatto definisco un context di default nel quale le chiamate dalle linee isdn entrano, con il nome di "misdn". Configuro le 4 linee come TE_PTMP, e imposto il driver per verificare se il layer 1 e` giu` e non usarle nel caso in cui lo sia. Questa impostazione, che richiede una configurazione speciale anche in extensions.conf, e` utile per saltare automaticamente le linee che per qualche motivo sono rotte o scollegate. Imposto anche le 4 linee in un gruppo, di nome "misdn_outgoing", che usero` per chiamare.

Poi, in extensions.conf, definisco il comando di dial per fare un check del layer 1 prima di chiamare, e per usare tutti i canali disponibili nel gruppo che ho creato prima. Il problema e` che Telecom tiene il layer 1 in stato DOWN quando la linea non e` in uso, per questo devo fare un check provando a metterlo UP prima di chiamare.

[chiamate_uscenti]
exten => _0.,1,misdn_check_l2l1(g:misdn_outgoing|2)
exten => _0.,2,Dial(mISDN/g:misdn_outgoing/${EXTEN:1})
exten => _0.,3,HangUp(16)
exten => _0.,103,HangUp(16)

Poi, mi resta da risolvere un altro problema: non ho capito come mai, chiamando dai telefoni interni (SIP) verso la ISDN, i toni che si sentono per libero, occupato, eccetera, sono americani e non italiani, nonostante io abbia impostato ovunque in fatto che dovrebbero essere generati toni italiani. Per risolvere questo problema, che non e` fondamentale ma fastidioso, ho modificato /etc/asterisk/sip.conf in modo da ottenere la generazione dei toni giusti. Veramente non mi e` chiaro se adesso sto sentendo i toni di segnalazione in-band che arrivano dalla Telecom oppure se chan_sip sta rigenerando i toni in standard italiano per i telefoni interni. Comunque, ho dovuto impostare progressinband=no (funziona anche "yes", ma non funziona "never" che e` il default).

Asterisk/mISDN (last edited 2009-04-14 21:02:32 by Kurgan)