Differences between revisions 7 and 8
Revision 7 as of 2012-06-13 10:26:50
Size: 8178
Editor: Kurgan
Comment:
Revision 8 as of 2012-06-18 13:00:00
Size: 11190
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 60: Line 60:
Line 141: Line 142:




== Configurazione con una scheda analogica TDM410 ==

Questa configurazione usa una scheda analogica TDM410 con 4 moduli. Di questi 4, tre sono di tipo FXO (quindi si connettono a linee telefoniche esterne) e uno e` di tipo FXS (quindi connette un telefono analogico interno). Il modulo FXS in questa configurazione viene inizializzato ma non utilizzato, quindi non e` detto che funzioni correttamente, magari e` necessario modificare dei parametri di configurazione per farlo funzionare.

 * Creare il file /etc/dahdi/genconf_parameters. Questo file verra` usato da {{{dahdi_genconf}}} per generare le configurazioni effettive per dahdi.
 {{{
# toni italiani
lc_country it

# context delle chiamate entranti dalla isdn
context_lines from-dahdi

# gruppo di default nel quale inserire le linee isdn dahdi
group_lines 0

# signalling per le linee analogiche
fxs_default_start ks
}}}

 * Creare il file {{{/etc/dahdi/modules}}} contenente il nome del modulo del driver della scheda, in questo caso {{{wctdm24xxp}}}
 * Caricare il modulo sopra indicato con modprobe
 * Verificare in dmesg che il modulo non dia errori (le schede piggyback sono tutte a posto? L'alimentazione c'e`?)
 * Eseguire {{{dahdi_genconf}}} verificando che non dia errori
 * Editare il file {{{/etc/asterisk/chan_dahdi.conf}}}, avendo cura di salvare una copia dello stesso, in quanto ci sono mille parametri che potrebbero esservi utili. Questo che segue e` un file che funziona per la mia applicazione, ma non e` affatto detto che funzioni per voi. Nella configurazione di una scheda analogica ci sono veramente troppe impostazioni che sono critiche e dipendono da come la usate.
 {{{
[channels]

language=it
context=from-pstn

; timing per il flash italiano, che e` MOLTO piu` rapido di quello USA. Tempi in mS.
preflash=80
flash=100

; questo e` default? Eventualmente commentare
;usecallerid=yes
;cidsignalling=v23

; verificare se servono
echocancel=yes
echocancelwhenbridged=yes

; ricnoscimento dell'occupato
busydetect=yes
busycount=3
; potremmo anche usare il busypattern, il problema e` che abbiamo due pattern diversi
; a seconda che il segnale indichi occupato o congestione.

; non usiamo il cambio di polarita` per nulla
answeronpolarityswitch=no
hanguponpolarityswitch=no

; questo era abilitato nella vecchia configurazione, ma dubito che funzioni
; correttamente, a meno che il centralino non produca segnali compatibili con quelli USA
callprogress=yes
;progzone=us

; non includo dahi-channels.conf come dovrei, ma replico qui le sue configurazioni "significative".
; cosi` tra l'altro elimino il quarto modulo che e` un FXS che non uso.

; Queste che seguono sono le impostazioni copiate da dahdi-channels.conf
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 1-3
}}}
 * Come sempre, dopo un restart di Asterisk dovreste poter vedere i vostri canali DAHDI con un {{{dahdi show channels}}} in console.

Installazione drivers DAHDI su Debian Squeeze

  • Installare il sorgente di DAHDI e le parti userspace relative:
    aptitude install dahdi-source dahdi dahdi-linux
  • Compilare DAHDI con module-assistant
    m-a a-i dahdi

Ora tocca alla configurazione, che cambia a seconda di quale hardware si usa, e delle configurazioni dello stesso. Il punto di partenza e` il file /etc/dahdi/genconf_parameters, un esempio del quale si trova in /usr/share/doc/dahdi/examples/genconf_parameters.gz

Configurazione generica e comandi utili

Se vi trovate di fronte a una scheda che non conoscete, questa e` (piu` o meno) la procedura per arrivare ad avere qualcosa di funzionante.

  • Per vedere quale hardware avete e se e` supportato, potete usare il comando dahdi_hardware che riporta un elenco delle schede che riconosce e indica anche quale driver dovete usare per queste schede. Ad esempio, se l'output e` questo:

    pci:0000:08:00.0     wctdm24xxp-  d161:8005 Wildcard TDM410P

    allora significa che il driver da caricare e` wctdm24xxp. Il "meno" in fondo significa che non e` ancora stato caricato. Potete usare un "modprobe" per caricarlo a mano, cosi` potete procedere. Vale la pena di guardare l'output in dmesg o nel syslog per vedere se il driver fornisce informazioni utili o messaggi di errore.

  • Per generare una configurazione, dopo aver caricato a mano il driver giusto, potete usare dahdi_genconf. Questo comando genera una configurazione di massima che probabilmente e` tutto meno che perfetta, pero` e` un inizio. Il comando dahdi_genconf utilizza un file di configurazione (se presente) per impostare alcuni parametri. Il file in questione e` /etc/dahdi/genconf_parameters, un esempio del quale si trova in /usr/share/doc/dahdi/examples/genconf_parameters.gz. Se il file non esiste, si applicano i default. Una configurazione "media" per un sistema italiano dove sono collegate solo linee telefoniche (non telefoni) alla scheda potrebbe essere questa:

    # toni italiani
    lc_country      it
    
    # context delle chiamate entranti dalla scheda dahdi
    context_lines   from-dahdi
    
    # gruppo di default nel quale inserire le linee dahdi
    group_lines     0
    In questa configurazione mancano tutti i default "specifici" delle linee (analogiche, ISDN, ecc) che vanno verificati e inseriti correttamente a seconda del tipo di scheda che avete.
  • Creare il file /etc/dahdi/modules che contiene i moduli da caricare all'avvio dei sistema dahdi. Questi sono in linea di massima i moduli (o il modulo) che avete caricato a mano prima per inizializzare la scheda.

  • Eventualmente se vi sono conflitti di driver fra quelli caricati da soli al boot e quello che serve a voi, mettete in blacklist i moduli dei driver che NON devono essere caricati al boot
  • Eseguire /etc/init.d/dahdi restart, il quale comando dovrebbe caricare e inizializzare il driver senza errori

  • Modificare il file /etc/asterisk/chan-dahdi.conf adattandolo alle esigenze della vostra configurazione. Questo file DEVE includere il file /etc/asterisk/dahdi-channels.conf che e` stato generato prima da dahdi_genconf.

  • Riavviare Asterisk e verificare in console che i comandi dahdi funzionino e che i canali dahdi siano visibili. Per esempio, usare il comando dahdi show status.

Questa spiegazione e` assai lacunosa, il problema e` che le parti che non sono definite in modo preciso sono dipendenti dal tipo di installazione che fate e dal tipo di scheda che usate. Qui di seguito ci sono configurazioni specifiche per determinate schede che mi e` capitato di usare.

Configurazione di Dahdi senza hardware, solo per il timing

  • Creare il file /etc/dahdi/genconf_parameters. Questo file verra` usato da dahdi_genconf per generare le configurazioni effettive per dahdi. Il piu` semplice esempio e` per una macchina che non ha hardware ISDN ma usa solo il timing "dummy" e`:

    lc_country it
  • Eseguire dahdi_genconf, il quale generera` due files, uno e` /etc/dahdi/system.conf e l'altro e` /etc/asterisk/dahdi-channels.conf.

  • Eseguire /etc/init.d/dahdi restart, il quale comando dovrebbe informarci che non essendoci hardware dedicato, si limita a caricare il modulo dummy.

Dal momento che non esistono canali dahdi in questa configurazione, possiamo ignorare i files /etc/asterisk/chan-dahdi.conf e /etc/asterisk/dahdi-channels.conf

Configurazione di Dahdi con una scheda ISDN singola BRI con chipset HFC

  • Blaclistare eventuali moduli che possano accedere alla scheda ISDN, tipicamente occorre inserire in /etc/modprobe.d/blacklist.conf queste righe:

    blacklist hfcpci
    blacklist mISDN_core
  • Creare il file /etc/dahdi/genconf_parameters. Questo file verra` usato da dahdi_genconf per generare le configurazioni effettive per dahdi.

    # toni italiani
    lc_country      it
    
    # context delle chiamate entranti dalla isdn
    context_lines   from-dahdi
    
    # gruppo di default nel quale inserire le linee isdn dahdi
    group_lines     0
    
    # signalling delle linee (bri o bri_ptmp)
    bri_sig_style   bri_ptmp
  • Verificare, usando dahdi_hardware, se la scheda viene vista e se il driver caricato e` quello giusto. Se vi e` un errore che dice driver should be 'zaphfc' but is actually 'hfcpci', occorre fare un rmmod del driver errato e un modprobe del driver giusto.

  • Eseguire dahdi_genconf, il quale generera` due files, uno e` /etc/dahdi/system.conf e l'altro e` /etc/asterisk/dahdi-channels.conf. Se da` errori dicendo che non ci sono canali definiti, occorrera` ri-eseguirlo una volta caricata la configurazione dell'hardware, dopo il restard di dahdi.

  • Creare il file /etc/dahdi/modules che contiene i moduli da caricare all'avvio dei sistema dahdi. In questo caso, il driver per la scheda HFC:

    zaphfc
  • Eseguire /etc/init.d/dahdi restart, il quale comando dovrebbe caricare e inizializzare il driver

  • Modificare il file /etc/asterisk/chan_dahdi.conf, che e` assai complesso. Questo che segue e` un esempio che funzionicchia, ma e` tutt'altro che collaudato a fondo e sono sicuro che non sia perfetto.

    ; chan_dahdi contenente i parametri di localizzazione delle linee
    ; qui metto le configurazioni che faccio io a mano e che non sono modificate dal dahdi_genconf.
    
    [channels]
    language=it
    usecallerid=yes
    callwaiting=yes
    usecallingpres=yes
    callwaitingcallerid=yes
    threewaycalling=yes
    transfer=yes
    canpark=yes
    cancallforward=yes
    callreturn=yes
    echocancel=yes
    echocancelwhenbridged=yes
    
    group=1
    callgroup=1
    pickupgroup=1
    
    pridialplan=unknown
    prilocaldialplan=unknown
    nationalprefix=0
    internationalprefix=00
    ; overlapdial=yes
    priindication=outofband
    
    ; alla fine, dopo aver settato tutti i parametri, includo (il # all'inizio non e` un commento!)
    ; il file dahdi-channels.conf, che e` generato da dahdi_genconf.
    ; VA INCLUSO ALLA FINE altrimenti i parametri impostati sopra non funzionano, perche` la logica di Asterisk
    ; e` che prima imposti i parametri, poi li applichi al canale che indichi in seguito.
    ; e siccome i canali sono indicati nel file incluso, questo va incluso alla fine.
    #include /etc/asterisk/dahdi-channels.conf
  • Riavviare asterisk e dalla console dovrebbe essere possibile vedere i canali dahdi e l'hardware installato con i comandi che seguono:
    linux*CLI> dahdi show status
    Description                              Alarms  IRQ    bpviol CRC4   Fra Codi Options  LBO
    HFC-S PCI A ISDN card 0 [TE]             OK      0      0      0      CCS AMI  YEL      0 db (CSU)/0-133 feet (DSX-1)
    
    linux*CLI> dahdi show channels
       Chan Extension  Context         Language   MOH Interpret        Blocked    State
     pseudo            default                    default                         In Service
          1            from-dahdi      it         default                         In Service
          2            from-dahdi      it         default                         In Service

Configurazione con una scheda analogica TDM410

Questa configurazione usa una scheda analogica TDM410 con 4 moduli. Di questi 4, tre sono di tipo FXO (quindi si connettono a linee telefoniche esterne) e uno e` di tipo FXS (quindi connette un telefono analogico interno). Il modulo FXS in questa configurazione viene inizializzato ma non utilizzato, quindi non e` detto che funzioni correttamente, magari e` necessario modificare dei parametri di configurazione per farlo funzionare.

  • Creare il file /etc/dahdi/genconf_parameters. Questo file verra` usato da dahdi_genconf per generare le configurazioni effettive per dahdi.

    # toni italiani
    lc_country      it
    
    # context delle chiamate entranti dalla isdn
    context_lines   from-dahdi
    
    # gruppo di default nel quale inserire le linee isdn dahdi
    group_lines     0
    
    # signalling per le linee analogiche
    fxs_default_start       ks
  • Creare il file /etc/dahdi/modules contenente il nome del modulo del driver della scheda, in questo caso wctdm24xxp

  • Caricare il modulo sopra indicato con modprobe
  • Verificare in dmesg che il modulo non dia errori (le schede piggyback sono tutte a posto? L'alimentazione c'e`?)
  • Eseguire dahdi_genconf verificando che non dia errori

  • Editare il file /etc/asterisk/chan_dahdi.conf, avendo cura di salvare una copia dello stesso, in quanto ci sono mille parametri che potrebbero esservi utili. Questo che segue e` un file che funziona per la mia applicazione, ma non e` affatto detto che funzioni per voi. Nella configurazione di una scheda analogica ci sono veramente troppe impostazioni che sono critiche e dipendono da come la usate.

    [channels]
    
    language=it
    context=from-pstn
    
    ; timing per il flash italiano, che e` MOLTO piu` rapido di quello USA. Tempi in mS.
    preflash=80
    flash=100
    
    ; questo e` default? Eventualmente commentare
    ;usecallerid=yes
    ;cidsignalling=v23
    
    ; verificare se servono
    echocancel=yes
    echocancelwhenbridged=yes
    
    ; ricnoscimento dell'occupato
    busydetect=yes
    busycount=3
    ; potremmo anche usare il busypattern, il problema e` che abbiamo due pattern diversi
    ; a seconda che il segnale indichi occupato o congestione.
    
    ; non usiamo il cambio di polarita` per nulla
    answeronpolarityswitch=no
    hanguponpolarityswitch=no
    
    ; questo era abilitato nella vecchia configurazione, ma dubito che funzioni
    ; correttamente, a meno che il centralino non produca segnali compatibili con quelli USA
    callprogress=yes
    ;progzone=us
    
    ; non includo dahi-channels.conf come dovrei, ma replico qui le sue configurazioni "significative".
    ; cosi` tra l'altro elimino il quarto modulo che e` un FXS che non uso.
    
    ; Queste che seguono sono le impostazioni copiate da dahdi-channels.conf
    signalling=fxs_ks
    callerid=asreceived
    group=0
    context=from-pstn
    channel => 1-3
  • Come sempre, dopo un restart di Asterisk dovreste poter vedere i vostri canali DAHDI con un dahdi show channels in console.

Asterisk/Dahdi (last edited 2015-12-07 20:53:16 by Kurgan)