Differences between revisions 9 and 10
Revision 9 as of 2013-02-04 20:43:00
Size: 13221
Editor: Kurgan
Comment:
Revision 10 as of 2013-02-04 22:06:21
Size: 13661
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 40: Line 40:
 * 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.   * 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.
Line 153: Line 153:
blacklist hfcmulti
Line 177: Line 178:
 * Eseguire {{{/etc/init.d/dahdi restart}}}, il quale comando dovrebbe caricare e inizializzare il driver. Ora dovremmo avere 4 led che lampeggiano dietro le 4 porte della scheda!


DA COMPLETARE!
 * Eseguire {{{/etc/init.d/dahdi restart}}}, il quale comando dovrebbe caricare e inizializzare il driver. Ora dovremmo avere 4 led che lampeggiano dietro le 4 porte della scheda (se non c'e` nessuna linea collegata).

 * Se abbiamo linee miste PTP e PTMP, occorre modificare {{{/etc/asterisk/dahdi-channels.conf}}} per impostare le linee in modo corretto, impostando per ognuna il giusto {{{signalling}}} a {{{bri_cpe}}} o a {{{bri_cpe_ptmp}}}.

* Modificare il file {{{/etc/asterisk/chan_dahdi.conf}}}, usando lo stesso che trovate nella sezione precedente, quella relativa alla scheda singolo BRI con chipset HFC.

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 Quad-BRI B400P

Questa configurazione usa una scheda Quad-BRI Openvox B400P, che usa un chipset HFC. In questa configurazione usero` alcune porte in modo PTP e altre in modo PTMP, giusto perche` le cose facili non mi piacciono. Ma procediamo:

  • 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
    blacklist hfcmulti
  • Creare il file /etc/dahdi/genconf_parameters. Questo file verra` usato da dahdi_genconf per generare le configurazioni effettive per dahdi. Notare che qui imposto tutte le porte come PTP, poi modifichero` la configurazione che viene generata per decidere quali linee sono PTP e quali PTMP.

    # 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
  • 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 'wcb4xxp' but is actually 'hfcmulti'

}}}, 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 B400P:

    wcb4xxp
  • Eseguire /etc/init.d/dahdi restart, il quale comando dovrebbe caricare e inizializzare il driver. Ora dovremmo avere 4 led che lampeggiano dietro le 4 porte della scheda (se non c'e` nessuna linea collegata).

  • Se abbiamo linee miste PTP e PTMP, occorre modificare /etc/asterisk/dahdi-channels.conf per impostare le linee in modo corretto, impostando per ognuna il giusto signalling a bri_cpe o a bri_cpe_ptmp.

* Modificare il file /etc/asterisk/chan_dahdi.conf, usando lo stesso che trovate nella sezione precedente, quella relativa alla scheda singolo BRI con chipset HFC.

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)