Progetto

Generale

Profilo

AsteriskDebian » Cronologia » Versione 34

Amministratore Truelite, 06-08-2009 16:17

1 1 Amministratore Truelite
[[TracNav(TOC)]]
2
3 32 Amministratore Truelite
== Installare Asterisk & C su Debian ==
4 1 Amministratore Truelite
5 32 Amministratore Truelite
Questo documento copre l'installazione di Asterisk e di tutte le applicazione correlate su una Debian (al momento della stesura sono considerate Etch e Lenny) utilizzando come scheda telefonica una scheda ISDN PCI basata sul chipset ''Cologne HFC'', che è uno dei più comuni e diffusi chipset utilizzato sulle schede ISDN ed una scheda Digium TM400P per la connessione alla telefonia analogica. 
6 14 Amministratore Truelite
7 32 Amministratore Truelite
I pacchetti distribuiti su Debian Etch sono datati (fermi alla versione 1.2 di Asterisk) e non supportano le funzionalità più recenti del programma e le novità introdotte con Asterisk 1.4. Con Lenny è disponibile la versione 1.4.21, ma anche questa non supporta direttamente l'uso di [http://www.misdn.org mISDN], che va compilato a parte. Pertanto illustreremo la installazione dai sorgenti, anche se su Lenny si può comunque scegliere di usare la versione installata dalla distribuzione e compilare soltanto la parte di [http://www.misdn.org mISDN]. 
8 2 Amministratore Truelite
9 27 Amministratore Truelite
Si presuppone di partire dalla installazione del sistema base di Etch, senza selezionare niente, se non il sistema base, dal menu iniziale di ''tasksel''. Per operare via rete e installare un mimino di programmi utili (e mantenere i tempi corretti) si consiglia comunque l'installazione dei seguenti pacchetti:
10 3 Amministratore Truelite
{{{
11 31 Amministratore Truelite
apt-get install openssh-server ntp nmap tcpdump bzip2
12 3 Amministratore Truelite
}}}
13 4 Amministratore Truelite
14
Per la compilazione dei programmi è essenziale installare una serie di pacchetti ausiliari, anzitutto è necessario installare quanto necessario per la compilazione di base, più alcuni programmi aggiuntivi, con:
15
{{{
16 31 Amministratore Truelite
apt-get install build-essential bison flex xsltproc
17 4 Amministratore Truelite
}}}
18 7 Amministratore Truelite
inoltre occorre essere sicuri di avere gli header del kernel che si sta utilizzando, questo significa anche che si dovrà installare:
19
{{{
20
apt-get install linux-headers-`uname -r`
21
}}}
22 13 Amministratore Truelite
infine possono servire alcune librerie aggiuntive, da installare con:
23
{{{
24
apt-get install libncurses5-dev libnewt-dev libeditline-dev libedit-dev
25
}}}
26 6 Amministratore Truelite
27 7 Amministratore Truelite
La procedura standard prevede che si scarichino i sorgenti dal sito della Digium e da quello di [http://www.misdn.org mISDN] per poi compilare uno per uno i singoli componenti. Esiste però una modalità semplificata per installare Asterisk e tutti i programmi compilandoli dai sorgenti che è quella di utilizzare il metodo illustrato sul sito di [http://www.misdn.org mISDN], sul quale è disponibile una procedura basata sull'uso di un {{{Makefile}}}. 
28 1 Amministratore Truelite
29 26 Amministratore Truelite
Per poterla utilizzare è però necessario installare altri pacchetti per scaricare i sorgenti direttamente dai repository, per cui occorrerà anche eseguire:
30 1 Amministratore Truelite
{{{
31 7 Amministratore Truelite
apt-get install cvs subversion
32
}}}
33
34
Una volta che si siano installati i pacchetti necessari, per usare la procedura, come descritto in http://www.misdn.org/index.php/MISDN_with_Asterisk, è sufficiente eseguire i seguenti comandi:
35
{{{
36 8 Amministratore Truelite
wget http://www.beronet.com/downloads/install-asterisk.tar.gz
37 6 Amministratore Truelite
tar xzf install-asterisk.tar.gz
38 1 Amministratore Truelite
cd install-asterisk
39
make install
40
}}}
41 17 Amministratore Truelite
in questo caso però alcune procedure di installazione (come quella relativa alla generazioni degli scheletri di configurazione) non vengono eseguite ma si limita a fare dei semplici controlli che i pacchetti che servono siano disponibili (e chiede di installarli altrimenti), dopo di che scarica i vari pezzi e li compila uno per uno senza doverlo fare singolarmente a mano e cercare le dipendenze principali.
42 1 Amministratore Truelite
43 17 Amministratore Truelite
Inoltre pacchetti da installare citati in precedenza sono quelli necessari a compilare il programma, ma se si vogliono utilizzare le varie funzionalità fornite da Asterisk, come quelle relative alle diverse codifiche audio, occorrerà installare anche una serie di pacchetti aggiuntivi, in particolare potranno risultare utili:
44
{{{
45
apt-get install libspeex-dev libvorbis-dev libcurl3-dev libnewt-dev \
46
                libusb-dev libogg-dev libgsm1-dev libasound-dev
47
}}}
48
mentre se si vuole il supporto per esegure le registrazioni delle chiamate su database si potranno installare i seguenti pacchetti:
49
{{{
50
apt-get install libmysqlclient15-dev libsqlite-dev
51
}}}
52 27 Amministratore Truelite
ed eventualmente {{{unixodbc-dev}}}, che però si porta dietro, almeno su Etch, una serie di dipendenze assurde. Dato che questo può causare problemi con il supporto per {{{mysql}}} fornito da Asterisk stesso non lo si è citato esplicitamente, vedremo come installare direttamente il supporto dagli addons.
53 4 Amministratore Truelite
54 17 Amministratore Truelite
Una volta installati anche questi pacchetti si potrà eseguire una installazione completamente manuale in modo da avere un controllo più dettagliato di tutto il procedimento, anzitutto si devono scaricare i singoli pacchetti necessari con:
55 4 Amministratore Truelite
{{{
56
wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz
57 9 Amministratore Truelite
wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
58 10 Amministratore Truelite
wget http://www.misdn.org/downloads/mISDN.tar.gz
59 1 Amministratore Truelite
wget http://www.misdn.org/downloads/mISDNuser.tar.gz
60
wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
61
wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz
62
}}}
63 17 Amministratore Truelite
dopo di che gli archivi dovranno essere scompattati con qualcosa del tipo:
64
{{{
65
for i in *.tar.gz; do tar -xzf $i; done
66
}}}
67
e poi si potrà passare alla compilazione delle varie componenti ({{{zaptel}}}, {{{libpri}}}, {{{mISDN}}}, {{{mISDNuser}}}, {{{asterisk}}} e {{{asterisk-addons}}}) con la procedura standard.
68 1 Amministratore Truelite
69 17 Amministratore Truelite
In caso si decida di proseguire manualmente la sequenza da realizzare è quella appena illustrata: il primo passo è compilare {{{zaptel}}} che contiene i moduli del kernel per le schede, anche se nel nostro caso utilizzeremo {{{chan_misdn}}} questi sono necessari lo stesso per avere a disposizione il modulo {{{ztdummy}}} che serve per fornire una base dei tempi ad Asterisk. La procedura da seguire é:
70 1 Amministratore Truelite
{{{
71 17 Amministratore Truelite
cd zaptel-1.4.*
72
./install_prereq test
73
./install_prereq install
74
./configure
75
make
76
make install
77 1 Amministratore Truelite
}}}
78 17 Amministratore Truelite
questo compilerà ed installer tutto il necessario, dopo di che sarà quantomeno installare il modulo {{{ztdummy}}} cosa che si fa con il comando {{{modprobe ztdummy}}}, il caricamento potrà essere successivamente reso definitivo all'avvio della macchina con:
79 1 Amministratore Truelite
{{{
80 17 Amministratore Truelite
echo "ztdummy" >> /etc/modules
81 1 Amministratore Truelite
}}}
82 17 Amministratore Truelite
83
La versione 1.4 fornisce però anche il supporto diretto al caricamento e alla inizializzazione delle schede attraverso degli opportuni script di avvio. Questi potranno essere installati con l'ulteriore comando:
84
{{{
85
make config
86
}}}
87 26 Amministratore Truelite
in tal caso si potrà anche evitare di forzare il caricamento di {{{ztdummy}}} all'avvio, in quanto lo script di avvio così installato permette di selezionare quali moduli caricare tramite il file {{{/etc/default/zaptel}}}, in questo si dovranno commentare o scommentare le righe che definiscono i singoli moduli, ad esempio nel caso si abbia una scheda TDM400P si dovranno lasciare scommentate solo le righe:
88 18 Amministratore Truelite
{{{
89
...
90
MODULES="$MODULES wctdm"
91
...
92
MODULES="$MODULES ztdummy" 
93
...
94
}}}
95 20 Amministratore Truelite
inoltre si dovrà provvedere alla configurazione del tutto nel file {{{/etc/zaptel.conf}}}, che tratteremo a parte in AsteriskConfig. 
96 1 Amministratore Truelite
97 20 Amministratore Truelite
Il secondo passo consiste nell'installazione di {{{libpri}}}, in questo caso è sufficiente entrare una semplice compilazione della libreria e susseguente installazione con:
98
{{{
99
cd libpri-1.4.*
100
make
101
make install
102
}}}
103
(si tenga presente che la libreria sarà installata in {{{/usr/lib}}}, che non è proprio il massimo della pulizia, e viola le regole del FHS).
104 1 Amministratore Truelite
105 30 Amministratore Truelite
Il terzo passo è compilare mISDN e mISDNuser, il primo è il supporto per i moduli del kernel, il secondo per la parte in userspace; questo si effettua in maniera sostanzialmente identica con:
106 20 Amministratore Truelite
{{{
107
cd mISDN-*
108
make
109
make install
110
cd ../mISDNuser-*
111
make
112
make install
113
}}}
114 33 Amministratore Truelite
si tenga presente che nel caso si usino delle schede OpenVox, sostanzialmente dei cloni a prezzo inferiore delle schede multicanale, si dovrà effettuare applicare a mano il seguente patch al file {{{mISDN-1_1*/drivers/isdn/hardware/mISDN/hfc_multi.c}}}, che consente il riconoscimento della stessa come scheda supportata.
115
{{{
116
--- old_hfc_multi.c	2007-11-21 15:09:38.000000000 +0800
117
+++ hfc_multi.c	2007-11-21 15:07:39.000000000 +0800
118
@@ -212,6 +212,8 @@
119
 	 "HFC-8S", 0, 8, 1, 0, 0},
120
 	{CCAG_VID, CCAG_VID, HFC8S_ID, 0xB562, VENDOR_CCD,
121
 	 "HFC-8S Beronet Card", 0, 8, 1, 0, 0},
122
+        {CCAG_VID, CCAG_VID, HFC8S_ID, 0xE998, VENDOR_CCD,
123
+         "HFC-8S OpenVox Card ", 0, 8, 1, 8, 0},
124
 	{CCAG_VID, CCAG_VID, HFC8S_ID, 0xB56B, VENDOR_CCD,
125
 	 "HFC-8S Beronet Card (+)", 0, 8, 1, 8, 0},
126
 	{CCAG_VID, CCAG_VID, HFCE1_ID, 0xB523, VENDOR_CCD,
127
@@ -4433,6 +4435,7 @@
128
 	/** Cards with HFC-8S Chip**/
129
 	{ CCAG_VID, 0x16B8   , CCAG_VID, 0xB562, 0, 0, 0 }, //BN8S
130
 	{ CCAG_VID, 0x16B8   , CCAG_VID, 0xB56B, 0, 0, 0 }, //BN8S+
131
+        { CCAG_VID, 0x16B8   , CCAG_VID, 0xE998, 0, 0, 0 }, //8S OpenVox B800P
132
         { CCAG_VID, 0x16B8   , CCAG_VID, 0x16B8, 0, 0, 0 }, //old Eval
133
 	{ CCAG_VID, 0x16B8   , CCAG_VID, 0xB521, 0, 0, 0 }, //IOB8ST Recording
134
 	{ CCAG_VID, 0x16B8   , CCAG_VID, 0xB522, 0, 0, 0 }, //IOB8ST 
135
}}}
136 21 Amministratore Truelite
137
Una volta installato mISDN, per evitare l'uso dei moduli di kernel standard per la gestione della scheda ISDN occorrerà aggiungere le seguenti righe al file {{{/etc/modprobe.d/blacklist}}}:
138 1 Amministratore Truelite
{{{
139 21 Amministratore Truelite
blacklist hisax
140
blacklist hisax_fcpcipnp
141
blacklist hisax_isac
142
blacklist crc_ccitt
143
blacklist isdn
144
blacklist slhc
145
blacklist capi
146
blacklist capifs
147
blacklist kernelcapi
148
blacklist kernel_capi
149
blacklist avmfritz
150
blacklist hfc4s8s_l1
151
}}}
152
153 24 Amministratore Truelite
Fatto questo occorrerà eseguire la configurazione degli stessi, a tal proposito si dovrà prima eseguire il comando:
154 15 Amministratore Truelite
{{{
155 21 Amministratore Truelite
mISDN scan
156 24 Amministratore Truelite
}}}
157
se questo avrà successo, con qualcosa del tipo:
158
{{{
159 34 Amministratore Truelite
parker:~# mISDN scan
160 15 Amministratore Truelite
1 mISDN compatible device(s) found:
161
>> hfcpci
162 1 Amministratore Truelite
}}}
163 33 Amministratore Truelite
nel caso di una scheda ISDN con il classico chip HCF, oppure, nel caso di un paio di schede OctBRI, qualcosa del tipo:
164 1 Amministratore Truelite
{{{
165 34 Amministratore Truelite
hancock# mISDN scan
166 33 Amministratore Truelite
2 mISDN compatible device(s) found:
167
>> BN8S0
168
>> BN8S0
169
}}}
170
171
Una volta confermato il riconoscimento delle schede si potranno seguire le istruzioni ed eseguire:
172
{{{
173 1 Amministratore Truelite
mISDN config
174 24 Amministratore Truelite
}}}
175 33 Amministratore Truelite
che crea il file {{{/etc/mISDN.conf}}}, dopo di che con {{{mISDN start}}} si potranno caricare i moduli ed avviare il servizio, si potrà poi verificare che è tutto a posto con {{{misdnportinfo}}}, con una scheda ISDN si avrà qualcosa del tipo:
176 21 Amministratore Truelite
{{{
177 34 Amministratore Truelite
parker:~# misdnportinfo 
178 21 Amministratore Truelite
179
Port  1: TE-mode BRI S/T interface line (for phone lines)
180 1 Amministratore Truelite
 -> Protocol: DSS1 (Euro ISDN)
181 21 Amministratore Truelite
 -> childcnt: 2
182
--------
183 1 Amministratore Truelite
184
mISDN_close: fid(3) isize(131072) inbuf(0x804c060) irp(0x804c060) iend(0x804c060)
185
}}}
186
mentre con delle schede OctoBRI si avrà invece:
187 33 Amministratore Truelite
{{{
188 34 Amministratore Truelite
hancock:~# misdnportinfo
189 33 Amministratore Truelite
Port  1: TE-mode BRI S/T interface line (for phone lines)
190
 -> Protocol: DSS1 (Euro ISDN)
191
 -> childcnt: 2
192
--------
193
...
194
--------
195
Port  9: NT-mode BRI S/T interface port (for phones)
196
 -> Interface can be Poin-To-Point/Multipoint.
197
...
198
}}}
199
200
Infine per automatizzare l'inizializzazione del servizio ed il caricamento dei moduli all'avvio sarà poi opportuno inserire il relativo script nei runlevel con:
201 21 Amministratore Truelite
{{{
202 24 Amministratore Truelite
update-rc.d mISDN defaults 15 30
203 15 Amministratore Truelite
}}}
204
205 21 Amministratore Truelite
Il quarto passo è installare Asterisk, in questo caso la procedura è leggermente più complessa, in quanto se si vogliono personalizzare le configurazioni è necessaria una sessione interattiva, che nelle seguenti istruzioni si è commentata in quanto si può saltarla restando sulle configurazioni di default:
206 15 Amministratore Truelite
{{{
207 21 Amministratore Truelite
cd asterisk-1.4.*
208
./configure
209
#make menuconfig
210
make
211
make install
212 1 Amministratore Truelite
}}}
213
una volta compilati ed installati tutti i file, la procedura consente di installare una configurazione di esempio e gli script di avvio con i seguenti comandi:
214 22 Amministratore Truelite
{{{
215 1 Amministratore Truelite
make samples
216
make config
217 23 Amministratore Truelite
}}}
218
219
Infine si possono compilare gli ''addons'' di Asterisk, per i quali si può segure la stessa identica procedura mostrata in precedenza per Asterisk stesso, vale a dire:
220
{{{
221 24 Amministratore Truelite
cd asterisk-addons-1.4.*
222 23 Amministratore Truelite
./configure
223
#make menuconfig
224
make
225
make install
226
}}}
227
e si potranno poi generare anche gli esempi di configurazione con:
228
{{{
229
make samples
230
}}}
231
232
Una volta completata tutta l'installazione si provi a riavviare la macchina per verificare che Asterisk venga fatto partire  correttamente all'avvio, si verifichi che il processo sia attivo, e che ci si possa collegare alla console con:
233 1 Amministratore Truelite
{{{
234
asterisk -rvvv
235
}}}
236 26 Amministratore Truelite
237
=== Applicazioni aggiuntive ===
238
239
Una applicazione esterna piuttosto utile se si ha un indirizzario su LDAP è {{{app_ldap}}}, che si può scaricare da http://www.mezzo.net/asterisk, essa infatti consente di eseguire delle interrogazioni ad un server LDAP così da poter associare ad un numero di telefono un nome in maniera automatica. L'installazione è banale, occorre eseguire i seguenti comandi:
240
{{{
241
wget http://www.mezzo.net/asterisk/app_ldap-2.0rc1.tgz
242
tar -xvzf app_ldap-2.0rc1.tgz
243 29 Amministratore Truelite
cd app_ldap-*
244 26 Amministratore Truelite
make
245
make install
246
}}}
247
per la configurazione si consulti AsteriskConfig.