Progetto

Generale

Profilo

AsteriskDebian » Cronologia » Versione 36

Simone Piccardi, 22-12-2010 19:54

1 36 Simone Piccardi
h1. Installare Asterisk & C su Debian
2 1 Amministratore Truelite
3 36 Simone Piccardi
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, e di una scheda Digium TM400P per la connessione alla telefonia analogica. 
4 35 Amministratore Truelite
5
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 "mISDN":http://www.misdn.org, 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 "mISDN":http://www.misdn.org. 
6
7
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:
8 36 Simone Piccardi
9 35 Amministratore Truelite
<pre>
10
apt-get install openssh-server ntp nmap tcpdump bzip2
11 1 Amministratore Truelite
</pre>
12
13 35 Amministratore Truelite
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:
14 36 Simone Piccardi
15 1 Amministratore Truelite
<pre>
16 31 Amministratore Truelite
apt-get install build-essential bison flex xsltproc
17 35 Amministratore Truelite
</pre>
18 36 Simone Piccardi
19 1 Amministratore Truelite
inoltre occorre essere sicuri di avere gli header del kernel che si sta utilizzando, questo significa anche che si dovrà installare:
20 36 Simone Piccardi
21 35 Amministratore Truelite
<pre>
22 1 Amministratore Truelite
apt-get install linux-headers-@uname -r@
23 35 Amministratore Truelite
</pre>
24 36 Simone Piccardi
25 35 Amministratore Truelite
infine possono servire alcune librerie aggiuntive, da installare con:
26 36 Simone Piccardi
27 1 Amministratore Truelite
<pre>
28 35 Amministratore Truelite
apt-get install libncurses5-dev libnewt-dev libeditline-dev libedit-dev
29 6 Amministratore Truelite
</pre>
30 35 Amministratore Truelite
31 36 Simone Piccardi
La procedura standard prevede che si scarichino i sorgenti dal sito della Digium e da quello di _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 _mISDN_, sul quale è disponibile una procedura basata sull'uso di un @Makefile@. 
32 35 Amministratore Truelite
33 1 Amministratore Truelite
Per poterla utilizzare è però necessario installare altri pacchetti per scaricare i sorgenti direttamente dai repository, per cui occorrerà anche eseguire:
34 36 Simone Piccardi
35 1 Amministratore Truelite
<pre>
36 35 Amministratore Truelite
apt-get install cvs subversion
37 1 Amministratore Truelite
</pre>
38 35 Amministratore Truelite
39 7 Amministratore Truelite
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:
40 36 Simone Piccardi
41 8 Amministratore Truelite
<pre>
42 35 Amministratore Truelite
wget http://www.beronet.com/downloads/install-asterisk.tar.gz
43 1 Amministratore Truelite
tar xzf install-asterisk.tar.gz
44
cd install-asterisk
45
make install
46
</pre>
47 36 Simone Piccardi
48 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.
49 1 Amministratore Truelite
50 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:
51 36 Simone Piccardi
52 17 Amministratore Truelite
<pre>
53 35 Amministratore Truelite
apt-get install libspeex-dev libvorbis-dev libcurl3-dev libnewt-dev \
54 1 Amministratore Truelite
                libusb-dev libogg-dev libgsm1-dev libasound-dev
55
</pre>
56 36 Simone Piccardi
57 1 Amministratore Truelite
mentre se si vuole il supporto per esegure le registrazioni delle chiamate su database si potranno installare i seguenti pacchetti:
58 36 Simone Piccardi
59 35 Amministratore Truelite
<pre>
60 4 Amministratore Truelite
apt-get install libmysqlclient15-dev libsqlite-dev
61 1 Amministratore Truelite
</pre>
62 35 Amministratore Truelite
63 36 Simone Piccardi
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. 
64
65 35 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:
66 36 Simone Piccardi
67 1 Amministratore Truelite
<pre>
68 17 Amministratore Truelite
wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz
69 1 Amministratore Truelite
wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
70
wget http://www.misdn.org/downloads/mISDN.tar.gz
71 17 Amministratore Truelite
wget http://www.misdn.org/downloads/mISDNuser.tar.gz
72 1 Amministratore Truelite
wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
73
wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz
74
</pre>
75 36 Simone Piccardi
76 1 Amministratore Truelite
dopo di che gli archivi dovranno essere scompattati con qualcosa del tipo:
77 36 Simone Piccardi
78 17 Amministratore Truelite
<pre>
79
for i in *.tar.gz; do tar -xzf $i; done
80 35 Amministratore Truelite
</pre>
81
82 36 Simone Piccardi
e poi si potrà passare alla compilazione delle varie componenti (zaptel, libpri, mISDN, mISDNuser, asterisk e asterisk-addons) con la procedura standard.
83
84
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 é: 
85
86 1 Amministratore Truelite
<pre>
87 17 Amministratore Truelite
cd zaptel-1.4.*
88
./install_prereq test
89 1 Amministratore Truelite
./install_prereq install
90
./configure
91
make
92 35 Amministratore Truelite
make install
93
</pre>
94 36 Simone Piccardi
95
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: 
96
97 1 Amministratore Truelite
<pre>
98 35 Amministratore Truelite
echo "ztdummy" >> /etc/modules
99 18 Amministratore Truelite
</pre>
100
101 1 Amministratore Truelite
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:
102 36 Simone Piccardi
103 35 Amministratore Truelite
<pre>
104 1 Amministratore Truelite
make config
105
</pre>
106 36 Simone Piccardi
107
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: 
108
109 1 Amministratore Truelite
<pre>
110 20 Amministratore Truelite
...
111 1 Amministratore Truelite
MODULES="$MODULES wctdm"
112
...
113
MODULES="$MODULES ztdummy" 
114
...
115 20 Amministratore Truelite
</pre>
116
117 36 Simone Piccardi
inoltre si dovrà provvedere alla configurazione del tutto nel file @/etc/zaptel.conf@, che tratteremo a parte in [[AsteriskConfig]].
118
119
Il secondo passo consiste nell'installazione di @libpri@, in questo caso è sufficiente entrare una semplice compilazione della libreria e susseguente installazione con: 
120
121 35 Amministratore Truelite
<pre>
122
cd libpri-1.4.*
123 1 Amministratore Truelite
make
124
make install
125
</pre>
126
127 36 Simone Piccardi
(si tenga presente che la libreria sarà installata in @/usr/lib@, che non è proprio il massimo della pulizia, e viola le regole del FHS). 
128
129
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:
130
131 20 Amministratore Truelite
<pre>
132 35 Amministratore Truelite
cd mISDN-*
133 33 Amministratore Truelite
make
134 1 Amministratore Truelite
make install
135 33 Amministratore Truelite
cd ../mISDNuser-*
136 1 Amministratore Truelite
make
137
make install
138 33 Amministratore Truelite
</pre>
139 36 Simone Piccardi
140
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. 
141
142 33 Amministratore Truelite
<pre>
143
--- old_hfc_multi.c	2007-11-21 15:09:38.000000000 +0800
144 1 Amministratore Truelite
+++ hfc_multi.c	2007-11-21 15:07:39.000000000 +0800
145
@@ -212,6 +212,8 @@
146 33 Amministratore Truelite
 	 "HFC-8S", 0, 8, 1, 0, 0},
147 1 Amministratore Truelite
 	{CCAG_VID, CCAG_VID, HFC8S_ID, 0xB562, VENDOR_CCD,
148
 	 "HFC-8S Beronet Card", 0, 8, 1, 0, 0},
149 33 Amministratore Truelite
+        {CCAG_VID, CCAG_VID, HFC8S_ID, 0xE998, VENDOR_CCD,
150 35 Amministratore Truelite
+         "HFC-8S [[OpenVox]] Card ", 0, 8, 1, 8, 0},
151 33 Amministratore Truelite
 	{CCAG_VID, CCAG_VID, HFC8S_ID, 0xB56B, VENDOR_CCD,
152
 	 "HFC-8S Beronet Card (+)", 0, 8, 1, 8, 0},
153
 	{CCAG_VID, CCAG_VID, HFCE1_ID, 0xB523, VENDOR_CCD,
154
@@ -4433,6 +4435,7 @@
155 21 Amministratore Truelite
 	/** Cards with HFC-8S Chip**/
156 1 Amministratore Truelite
 	{ CCAG_VID, 0x16B8   , CCAG_VID, 0xB562, 0, 0, 0 }, //BN8S
157 21 Amministratore Truelite
 	{ CCAG_VID, 0x16B8   , CCAG_VID, 0xB56B, 0, 0, 0 }, //BN8S+
158 35 Amministratore Truelite
+        { CCAG_VID, 0x16B8   , CCAG_VID, 0xE998, 0, 0, 0 }, //8S [[OpenVox]] B800P
159 21 Amministratore Truelite
         { CCAG_VID, 0x16B8   , CCAG_VID, 0x16B8, 0, 0, 0 }, //old Eval
160 1 Amministratore Truelite
 	{ CCAG_VID, 0x16B8   , CCAG_VID, 0xB521, 0, 0, 0 }, //IOB8ST Recording
161 35 Amministratore Truelite
 	{ CCAG_VID, 0x16B8   , CCAG_VID, 0xB522, 0, 0, 0 }, //IOB8ST 
162 21 Amministratore Truelite
</pre>
163 35 Amministratore Truelite
164 36 Simone Piccardi
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@: 
165
166 1 Amministratore Truelite
<pre>
167
blacklist hisax
168
blacklist hisax_fcpcipnp
169
blacklist hisax_isac
170
blacklist crc_ccitt
171
blacklist isdn
172 24 Amministratore Truelite
blacklist slhc
173 15 Amministratore Truelite
blacklist capi
174 21 Amministratore Truelite
blacklist capifs
175 1 Amministratore Truelite
blacklist kernelcapi
176
blacklist kernel_capi
177
blacklist avmfritz
178 24 Amministratore Truelite
blacklist hfc4s8s_l1
179 1 Amministratore Truelite
</pre>
180
181
Fatto questo occorrerà eseguire la configurazione degli stessi, a tal proposito si dovrà prima eseguire il comando:
182 36 Simone Piccardi
183 1 Amministratore Truelite
<pre>
184
mISDN scan
185 35 Amministratore Truelite
</pre>
186 36 Simone Piccardi
187 1 Amministratore Truelite
se questo avrà successo, con qualcosa del tipo:
188 36 Simone Piccardi
189 1 Amministratore Truelite
<pre>
190
parker:~# mISDN scan
191
1 mISDN compatible device(s) found:
192
>> hfcpci
193 35 Amministratore Truelite
</pre>
194 36 Simone Piccardi
195
nel caso di una scheda ISDN con il classico chip HCF, oppure, nel caso di un paio di schede OctoBRI, qualcosa del tipo:
196
197 35 Amministratore Truelite
<pre>
198
hancock# mISDN scan
199
2 mISDN compatible device(s) found:
200 33 Amministratore Truelite
>> BN8S0
201 1 Amministratore Truelite
>> BN8S0
202
</pre>
203
204
Una volta confermato il riconoscimento delle schede si potranno seguire le istruzioni ed eseguire:
205 36 Simone Piccardi
206 33 Amministratore Truelite
<pre>
207 35 Amministratore Truelite
mISDN config
208 34 Amministratore Truelite
</pre>
209 36 Simone Piccardi
210
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@, e con una scheda ISDN si avrà qualcosa del tipo: 
211
212 35 Amministratore Truelite
<pre>
213
parker:~# misdnportinfo 
214
215 1 Amministratore Truelite
Port  1: TE-mode BRI S/T interface line (for phone lines)
216
 -> Protocol: DSS1 (Euro ISDN)
217
 -> childcnt: 2
218
--------
219 34 Amministratore Truelite
220 33 Amministratore Truelite
mISDN_close: fid(3) isize(131072) inbuf(0x804c060) irp(0x804c060) iend(0x804c060)
221 35 Amministratore Truelite
</pre>
222 36 Simone Piccardi
223
mentre con delle schede OctoBRI si avrà invece:
224
225 33 Amministratore Truelite
<pre>
226
hancock:~# misdnportinfo
227
Port  1: TE-mode BRI S/T interface line (for phone lines)
228
 -> Protocol: DSS1 (Euro ISDN)
229
 -> childcnt: 2
230
--------
231 21 Amministratore Truelite
...
232 1 Amministratore Truelite
--------
233 24 Amministratore Truelite
Port  9: NT-mode BRI S/T interface port (for phones)
234 1 Amministratore Truelite
 -> Interface can be Poin-To-Point/Multipoint.
235 15 Amministratore Truelite
...
236
</pre>
237 35 Amministratore Truelite
238 15 Amministratore Truelite
Infine per automatizzare l'inizializzazione del servizio ed il caricamento dei moduli all'avvio sarà poi opportuno inserire il relativo script nei runlevel con:
239 36 Simone Piccardi
240 35 Amministratore Truelite
<pre>
241 1 Amministratore Truelite
update-rc.d mISDN defaults 15 30
242 21 Amministratore Truelite
</pre>
243 35 Amministratore Truelite
244 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:
245 36 Simone Piccardi
246 35 Amministratore Truelite
<pre>
247 22 Amministratore Truelite
cd asterisk-1.4.*
248 1 Amministratore Truelite
./configure
249
#make menuconfig
250
make
251
make install
252 23 Amministratore Truelite
</pre>
253 36 Simone Piccardi
254 35 Amministratore Truelite
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:
255 36 Simone Piccardi
256 35 Amministratore Truelite
<pre>
257 1 Amministratore Truelite
make samples
258 23 Amministratore Truelite
make config
259
</pre>
260 35 Amministratore Truelite
261 23 Amministratore Truelite
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:
262 36 Simone Piccardi
263 1 Amministratore Truelite
<pre>
264 35 Amministratore Truelite
cd asterisk-addons-1.4.*
265
./configure
266 23 Amministratore Truelite
#make menuconfig
267
make
268
make install
269
</pre>
270 36 Simone Piccardi
271 23 Amministratore Truelite
e si potranno poi generare anche gli esempi di configurazione con:
272 36 Simone Piccardi
273 1 Amministratore Truelite
<pre>
274 35 Amministratore Truelite
make samples
275 26 Amministratore Truelite
</pre>
276 35 Amministratore Truelite
277 26 Amministratore Truelite
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:
278 36 Simone Piccardi
279 35 Amministratore Truelite
<pre>
280 26 Amministratore Truelite
asterisk -rvvv
281 35 Amministratore Truelite
</pre>
282 29 Amministratore Truelite
283 36 Simone Piccardi
h2. Applicazioni aggiuntive
284 35 Amministratore Truelite
285 36 Simone Piccardi
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: 
286 35 Amministratore Truelite
287
<pre>
288
wget http://www.mezzo.net/asterisk/app_ldap-2.0rc1.tgz
289 1 Amministratore Truelite
tar -xvzf app_ldap-2.0rc1.tgz
290
cd app_ldap-*
291
make
292
make install
293
</pre>
294 36 Simone Piccardi
295 35 Amministratore Truelite
per la configurazione si consulti [[AsteriskConfig]].