Home > Articolo Tecnico, Voip > Asterisk – Connettività digitale e analogica [decima parte]

Asterisk – Connettività digitale e analogica [decima parte]

October 6th, 2010 Leave a comment Go to comments

Linea analogica (RTG)

Nella telefonia analogica ci sono due tipi di interfacce (e due tipi di segnalazioni): FXS e FXO

– FXS (Foreign eXchange Station) è la porta che consegna la linea analogica all’utente (la presa sul muro che fornisce il segnale dalla centrale) e quindi prodice il dial-tone.

– FXO (Foreign eXchange Office) è la porta che riceve la linea analogica (la presa sull’apparecchio telefonico) e quindi riceve il dial-tone.

E’ possibile utilizzare la linea analogica che abbiamo a casa con il nostro centralino Asterisk sfruttando una scheda Digium TDM410 (o analoghe) mostrata in figura

Questo tipo di scheda prevede l’espandibilità fino a 4 linee FXS o FXO. In particolare questa ha montato un modulo FXO (colore rosso) sulla porta 4 e un modulo FXS (colore verde) sulla porta 1.

Dalle cose dette prima quindi, sul modulo FXS (verde) che invia il dial-tone, va attaccato un apparato con porta FXO che riceve il dial-tone (telefono, fax, etc), mentre la porta FXO (rossa) va attaccata sulla presa FXS da cui arriva il segnale della centrale (presa muro).

Linea digitale ISDN (BRI/PRI)

Una linea ISDN (Integrated Services Digital Network) viene fornita all’utenza mediante due tipi di connessione verso la centrale pubblica: Basic Rate Interface (BRI) e Primary Rate Interface (PRI). Entrambi Primary Rate Interface e Basic Rate Interface sono costituiti da un certo numero di canali B e D canali. B Channel o il Canale Portatore è utilizzato per la trasmissione dei dati, tra cui voce e il canale D è destinato per la segnalazione e controllo. LA differenza sta nel numero di canali di tipo B:

BRI: 2 canali B da 64 Kbps e 1 canale D da 16 Kbps

PRI: può essere di tipo E1(utlilzzato in Europa e in Australia) o T1 (utlilzzato in Nord America e Giappone).

– PRI E1 –> 30B + D con un bit rate totale di 2,048 Mbit / s

– PRI T1 –> 23B + D con un bit rate totale di 1,544 Mbit / s

La linea telefonica digitale utilizza la tecnica TDM (Time Division Multiplexing) per far passare su un unico flusso più chiamate contemporaneamente.

Di seguito una scheda Digium E1/T1 utilizzabile con Asterisk:

Configurazione DAHDI e Asterisk

Ci sono due file di configurazione da modificare per far funzionare le schede analogiche e digitale con Asterisk.:

– /etc/dahdi/system.conf

– /etc/asterisk/chan_dahdi.conf

— system.conf —

La configurazione hardware viene fatta nel file system.conf

# configurazione relativa al flusso primario
span=1,1,0,ccs,hdb3,crc4 #una riga per ogni flusso: span1,…span2,..
bchan=1-15 #15 canali bearer
dchan=16 #1 canale di controllo
bchan=17-31 #15 canali bearer
# configurazione relativa alla linea analogica
fxoks=32
fxsks=35
# configurazione relativa ad entrambe
loadzone=it
defaultzone=it
echocanceller=mg2,1-15,17-31,32,35

Attenzione alla configurazione delle linee analogiche: nella configurazione devo specificare non il tipo di porta ma il tipo di segnale che mi aspetto. Nel nostro caso i canali liberi per la scheda analogica in figura sono (visto che i primi 31 sono occupati dal primario):  32 (porta 1),33 (porta 2), 34 (porta 3), 35 (porta 4). In particolare:

– sulla porta 1 (canale 32) c’è il modulo verde FXS e quindi mi aspetto un segnale FXO (fxoks=32)

– sulla porta 4 (canale 35) c’è il modulo rosso FXO e quindi mi aspetto un segnale FXS (fxsks=35)

La riga span

span=Span number,Timing,Line Build Out, Framing, Line Coding

A parte il promo valore che si incrementa per ogni primario che installiamo, il valore a cui dobbiamo fare attenzione è il Timinig (il clock): dovrà essere 0 se collegato al Telco mentre dovrà essere 1 se collegato al centralino.

NB: Dopo ogni modifica fatta al file system.conf va eseguito il comando: dahdi_cfg -vv

— chan_dahdi.conf —

[channels]

group=1
context=local
signaling=fxo_ks ;segnalazione che si aspetta –> ci attacco il telefono
callerid=”Bob Analog”<6003>
mailbox=”6003″
callwaiting=yes
threewaycalling=yes
transfer=yes
channel => 32

group=2
context=from_outside
signaling=fxs_ks ; segnalazione che si aspetta –> ci attacco la linea
callerid=asrecived
callwaiting=mp
channel => 35

group=3
echocancel=yes
echocancelwhenbridge=no
echotraining=yes
switchtype=euroisdn
context=from_outside
signalling=pri_cpe
channel => 1-15
channel => 17-31

Ciascun canale DAHDI (system.conf) può essere assegnato a uno o più channel group (chan_dahdi.conf). E’ necessario utilizzare il numero del gruppo nell’applicaziond Dial():

exten => 123,1,Dial(DAHDI/g2/06555444)

In questo caso su sta utilizzando la linea analogica.

Se scrivo

exten => 123,1,Dial(DAHDI/g1/06555444)

utilizzo il flusso primario. Ma quale sarà il canale occupato? In questo caso (g) i canali verranno occupati in maniera sequenziale (1,2,3,…) ma posso scegliere anche:

l’ordine inverso (G): exten => 123,1,Dial(DAHDI/G1/06555444)

l’ordine casuale (round-robin) ascendente (r) : exten => 123,1,Dial(DAHDI/r1/06555444)

l’ordine casuale (round-robin) dicendente (R) : exten => 123,1,Dial(DAHDI/R1/06555444)

Categories: Articolo Tecnico, Voip Tags: ,
  1. Marco
    October 22nd, 2010 at 17:44 | #1

    Ciao
    io ho un problema
    Ho una linea isdn con una linea analogica per il fax (alla quale è collegata una macchina fax)
    Dovrei fare in modo che quando arriva un fax asterisk ignori la chiamata e lasci gestire il tutto al fax ma in realtò risponde alla chiamata

    Come posso fare?

  2. Marco
    October 22nd, 2010 at 17:49 | #2

    @Marco
    La scheda è una Junghanns.NET – duoBRI

  3. admin
    October 23rd, 2010 at 10:28 | #3

    @Marco
    Non ho capito bene la tua configurazione…Hai due linee tlefonichre,una isdn e una analogica. Quella analogica è attaccata direttamente al fax? e quella isdn alla scheda duoBRI?
    Spiegami meglio e magari postami parte della configurazione dei file chan_dahdi.conf e system.conf

  4. Marco
    October 23rd, 2010 at 16:26 | #4

    Ciao,
    allora ho 2 borchie isdn che entrano in una scheda Junghanns.NET – duoBRI
    Una delle due borchie ha oltre all’uscita isdn anche una analogica con un numero separato
    Questa linea analogica è collegata direttamente ad una macchina fax
    Quando arriva un fax la macchina fax riceve la chiamata ma contemporaneamente viene intercettata anche sul canale isdn dal mio asterisk il quale non ha nessun DID associato(perchè non mi serve ) e risponde all chiamata bloccando quinida la macchina fax

    Distribuzione Elastix 2.0

    Questi i miei file

    chan_dadi.conf
    [trunkgroups]

    [channels]
    context=from-pstn
    ;signalling=fxs_ks
    rxwink=300 ; Atlas seems to use long (250ms) winks
    usecallerid=yes
    hidecallerid=no
    callwaiting=yes
    usecallingpres=yes
    callwaitingcallerid=yes
    threewaycalling=yes
    transfer=yes
    canpark=yes
    cancallforward=yes
    callreturn=yes
    echocancel=yes
    echocancelwhenbridged=no
    faxdetect=incoming
    echotraining=800
    rxgain=0.0
    txgain=0.0
    callgroup=1
    pickupgroup=1

    ;Uncomment these lines if you have problems with the disconection of your analog lines
    ;busydetect=yes
    ;busycount=3

    immediate=no

    #include dahdi-channels.conf
    #include chan_dahdi_additional.conf

    dahdi_channel.conf

    ; Autogenerated by /usr/sbin/dahdi_genconf on Thu Oct 14 16:26:19 2010
    ; If you edit this file and execute /usr/sbin/dahdi_genconf again,
    ; your manual changes will be LOST.
    ; Dahdi Channels Configurations (chan_dahdi.conf)
    ;
    ; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended
    ; to be #include-d by /etc/chan_dahdi.conf that will include the global settings
    ;

    ; Span 1: B4/0/1 “B4XXP (PCI) Card 0 Span 1” (MASTER)
    group=0
    context=from-pstn
    switchtype = euroisdn
    signalling = bri_cpe_ptmp
    channel => 1-2
    ;context = default
    ;group = 63

    ; Span 2: B4/0/2 “B4XXP (PCI) Card 0 Span 2”
    group=1
    context=from-pstn
    switchtype = euroisdn
    signalling = bri_cpe_ptmp
    channel => 4-5
    ;context = default
    ;group = 63

  5. admin
    October 25th, 2010 at 10:23 | #5

    @Marco
    Credo (non sono un esperto di telefonia di conseguenza potrei scriverti delle boiate…) che il problema sia relativo alla borchia e non alla configurazione di Elastix.
    Il PBX software non può intercettare la chiamata se non è diretta a se stesso.
    Da quello che mi hai scritto credo tu abbia una lina ISDN NT1Plus quindi con un uscita analogica e una digitale. Di conseguenza dovresrti avere numeri distinti e programmare la borchia in maniera adeguata.

    PS:
    Mi è capitato diversi anni fa di programmare una borchia e se non ricordo male la procedura è la seguente: devi impegnare la linea con il telefono analogico con il quale si vuoi programmare la NT1+. A questo punto devi digitare il comando di ingresso #*# #*# e attendere per un segnale indicante l’entrata in modalita’ di programmazione. Su questo link –> http://web.mclink.it/MC4880/ISDN/Nt/Nt1plus.html trovi i codici di programmazione della NT1+ Aethra (una delle piu’ diffuse).

  6. Marco
    October 27th, 2010 at 14:50 | #6

    @admin
    Ciao,
    ho risolto il problema ma non agendo sulla parte di configurazione della scheda.
    Credo che come dici tu dovrei agire sulla borchia
    In realtò Elastix usa come base Freepbx e le chiamate in ingresso vanno tutte a finire nel contesto from-pstn
    Questo è quanto riportato nel file extensions.conf

    [from-pstn]
    include => from-pstn-custom ; create this context in extensions_custom.conf to include customizations
    include => ext-did
    include => ext-did-post-custom
    include => from-did-direct ; MODIFICATION (PL) for findmefollow if enabled, should be before ext-local
    include => ext-did-catchall ; THIS MUST COME AFTER ext-did

    Il contesto che viene incluso ext-did-catchall gestisce le chiamate che non hanno un DID associato (come nel mio caso il numero analoogico) e in tal caso rispnde la chiamata e risprooduce unmessaggio “”The number is not in service”

    Commentando l’inclusione di questo (quindi mettendo ; include => ext-did-catchall davanti al contesto se arriva una chiamata per un DID sconosciuto la chiamata non viene gestita da asterisk .Nle frattempo la macchina fax risponde alla chiamata e può ricevere il fax

    Ho postato la soluzione nel caso qualcuno ne ha bisogno

    Grazie mille per la disponibilità!

  7. admin
    October 27th, 2010 at 14:58 | #7

    @Marco
    Grazie a te di aver postato la soluzione!

  1. No trackbacks yet.
You must be logged in to post a comment.