Differences between revisions 2 and 3
Revision 2 as of 2005-10-19 10:07:34
Size: 4877
Editor: Kurgan
Comment:
Revision 3 as of 2005-11-05 07:56:23
Size: 5969
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 108: Line 108:
'''NOTA:''' In Italia l' ISDN usa la codifica A-law, quindi per limitare il carico di transcodifica fra ISDN e telefoni IP, qualora la banda non sia un problema, e` conveniente configurare i telefoni IP per usare anche essi la codifica "alaw" in sip.conf. '''NOTE:'''
 * In Italia l' ISDN usa la codifica A-law, quindi per limitare il carico di transcodifica fra ISDN e telefoni IP, qualora la banda non sia un problema, e` conveniente configurare i telefoni IP per usare anche essi la codifica "alaw" in sip.conf.
 * Se la scheda ISDN condivide l'interrupt, Asterisk puo` dare di matto, perche` usa il timing della scheda ISDN, e in condizioni di interrupt condiviso il sistema non riesce piu` a stare dietro alla montagna di interrupt tirati dalla scheda. Occorre spostare la scheda fino a ottenere una configurazione in cui la scheda ISDN ha un interrupt da sola. In caso di problemi i sintomi sono principalmente due: una montagna di errori nel syslog da parte del driver zaphfc e tutto l'audio generato da Asterisk che si sente a scatti tipo CD che salta.
 * In Italia, in una configurazione BRI PTMP, e` normale che nel log di asterisk (con verbosita` alta) si leggano continuamente messaggi come questi:
 {{{
 == Primary D-Channel on span 1 down
 == Primary D-Channel on span 1 up
 }}}
 Questi sono causati dal fatto che la centrale quando la linea e` idle mette down i layer 1 e 2, e Asterisk li ritira su al volo. L'importante e` che a un messaggio di down ne segua immediatamente uno di up, se cosi` non fosse, significa che il canale D resta down e quindi non si chiama ne` riceve.

Configurazione di Asterisk con una scheda ISDN BRI (driver Zaptel)

Il driver Zaptel consente di pilotare schede ISDN PRI, BRI e multiBRI. Questa configurazione e` fatta per una scheda ISDN BRI con chipset HFC configurata come TE P2MP. (dio, *adoro* le sigle!) Per dirla in termini umani, si tratta di una configurazione in cui Asterisk si comporta come un centralino a cui e` connessa una linea telefonica ISDN configurata come punto-multipunto (la configurazione classica della singola linea ISDN).

Installazione pacchetto dei driver Zaptel

Questa installazione e` per Debian, se usate altro, installateveli come meglio e` opportuno.

  • Installare i seguenti pacchetti:
    • Kernel source di un 2.6 (io uso al momento il 2.6.12)
    • Dpatch
    • Zaptel
    • Zaptel-source
  • Compilare il kernel custom, avendo cura di abilitare nella sezione "Library" la voce "CRC-CCITT functions". Non e` necessario configurare nulla che riguarda l' ISDN.
  • installare il kernel cosi` compilato e ribootare
  • Eseguire il comando magico module-assistant a-i zaptel per compilare e installare i moduli Zaptel

  • Caricare il modulo zaphfc il quale dovrebbe caricare anche zaptel

Configurazione del modulo zaphfc

Al momento del caricamento, il modulo zaphfc fa riferimento al file /etc/zaptel.conf per impostare alcuni suoi parametri. Queste sono le impostazioni necessarie per una singola scheda HFC BRI, usata in Italia. Se si cambia qualcosa qui, occorre ricaricare il modulo zaphfc.

# hfc-s pci a span definition
# most of the values should be bogus because we are not really zaptel
loadzone=it
defaultzone=it

span=1,1,3,ccs,ami
bchan=1-2
dchan=3

Configurazione di Asterisk

Tutte le configurazioni del driver Zaptel in Asterisk sono in /etc/zapata.conf. Il modulo che asterisk deve caricare (vedi /etc/asterisk/modules.conf e` /usr/lib/asterisk/modules/chan_zap.so.

Questa e` una configurazione che sto testando, quindi prendetela con le pinze. Quelle lunghe.

; file /etc/asterisk/zapata.conf
; Zapata telephony interface Configuration file
; Per le schede ISDN con zapata e zaphfc

[channels]

; Default language
language=it

; Tipo di centrale (per l'italia e` euroisdn)
switchtype = euroisdn

; p2mp TE mode
signalling = bri_cpe_ptmp

; p2p TE mode
;signalling = bri_cpe
; p2mp NT mode
;signalling = bri_net_ptmp
; p2p NT mode
;signalling = bri_net

; Queste dicono che per la Telecom vanno messe cosi`. Io non lo so.
pridialplan = unknown
prilocaldialplan = unknown
nationalprefix = 0
internationalprefix = 00

; Cancellazione dell'eco. Secondo me non serve su ISDN, dovro` provare a disattivarla.
echocancel=yes
echotraining = 100
echocancelwhenbridged=yes

; Se voglio poter discernere gli MSN (se ne ho) sulle chiamate entranti, allora
; immeditate deve essere "no", e nel file estensions.conf dovro` discernere cosa fare per ogni MSN chiamato.
; Altrimenti lo metto a "yes" e nel file extensions.conf ricevero` sempre chiamate alla extension "s" di start.
immediate=no

; Gruppo 1 (al gruppo 1 faro` apparetenere tutti e due i canali B, in modo da usarli in maniera indifferenziata)
group = 1

; Context a cui arriveranno le chiamate in extensions.conf
context=isdn

; Per finire, tutto quello che e` stato detto sopra lo applico ai canali 1 e 2 (i due canali B della mia BRI)
channel => 1-2

Riporto qui un esempio di configurazione di extensions.conf per usare le linee ISDN per chiamare e ricevere, con e senza la distinzione degli MSN chiamati (cioe` dei numeri aggiuntivi, se ne ho, a cui vengo chiamato).

; context "isdn", cosi` come definito in zapata.conf, per le chiamate entranti.
[isdn]

; se ho impostato "immediate=yes" in zapata.conf, tutte le chiamate arrivano
; all'extension "s" di start, quindi per esempio per far suonare
; un telefono SIP quando mi chiamano sulla ISDN usero`:
exten => s,1,Dial(SIP/Int101)

; se ho impostato "immediate=no" in zapata.conf, le chiamate entrano su
; extensions che hanno il numero corrispondente all' MSN chiamato.
; supponendo che io abbia i numeri "051555555" e "051666666", posso discernere
; le chiamate in ingresso ed assegnarne una ad un telefono SIP e una all'altro.
exten => 051555555,1,Dial(SIP/Int101)
exten => 051666666,1,Dial(SIP/Int102)

Per verificare con che numero di estension entrano le chiamate dalla linea ISDN, e` sufficiente abilitare abbastanza debug su Asterisk (con il comando "asterisk -rvvv") e provare a chiamarsi sulla ISDN.

NOTE:

  • In Italia l' ISDN usa la codifica A-law, quindi per limitare il carico di transcodifica fra ISDN e telefoni IP, qualora la banda non sia un problema, e` conveniente configurare i telefoni IP per usare anche essi la codifica "alaw" in sip.conf.
  • Se la scheda ISDN condivide l'interrupt, Asterisk puo` dare di matto, perche` usa il timing della scheda ISDN, e in condizioni di interrupt condiviso il sistema non riesce piu` a stare dietro alla montagna di interrupt tirati dalla scheda. Occorre spostare la scheda fino a ottenere una configurazione in cui la scheda ISDN ha un interrupt da sola. In caso di problemi i sintomi sono principalmente due: una montagna di errori nel syslog da parte del driver zaphfc e tutto l'audio generato da Asterisk che si sente a scatti tipo CD che salta.
  • In Italia, in una configurazione BRI PTMP, e` normale che nel log di asterisk (con verbosita` alta) si leggano continuamente messaggi come questi:
     == Primary D-Channel on span 1 down
     == Primary D-Channel on span 1 up
    Questi sono causati dal fatto che la centrale quando la linea e` idle mette down i layer 1 e 2, e Asterisk li ritira su al volo. L'importante e` che a un messaggio di down ne segua immediatamente uno di up, se cosi` non fosse, significa che il canale D resta down e quindi non si chiama ne` riceve.

Asterisk/Zaptel (last edited 2011-02-20 14:36:43 by Kurgan)