Asterisk – Connettività digitale e analogica [decima parte]
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 => 32group=2
context=from_outside
signaling=fxs_ks ; segnalazione che si aspetta –> ci attacco la linea
callerid=asrecived
callwaiting=mp
channel => 35group=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)
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?
@Marco
La scheda è una Junghanns.NET – duoBRI
@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
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
@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).
@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à!
@Marco
Grazie a te di aver postato la soluzione!