Installazione Asterisk con canale GSM (cellulare+bluetooth) su

Transcript

Installazione Asterisk con canale GSM (cellulare+bluetooth) su
Installazione Asterisk con canale GSM (cellulare+bluetooth) su Ubuntu Server.
Creato da P.M. Lovisolo – Sistemista attualmente discoccupato in cerca di lavoro :( mail:
[email protected]
Installare innanzitutto Ubuntu Server 10.04 (32 bit) con i seguenti servizi aggiuntivi:
Dns (Bind9), LAMP (Apache+PHP+Mysql) Posta e OpenSSL (segnatevi la password di MySQL).
Comandi post installazione, creazione password di root e aggiornamento sistema:
sudo passwd root
sudo apt-get update
sudo apt-get dist-upgrade
riavviare al termine degli aggiornamenti di cui sopra, poi installare alcuni pacchetti utili:
sudo apt-get install ssh mc build-essential smartmontools zip unzip rar unrar arj lha zoo sox
Installazione di Asterisk. (update 05/10/2014)
Creazione utente “asterisk”, installazione pacchetti necessari e relative dipendenze:
sudo adduser asterisk --disabled-password --no-create-home --gecos "asterisk PBX user"
sudo apt-get install -y php5-cli
sudo apt-get install php-pear php5-dev
sudo apt-get install linux-headers-`uname -r` openssh-server bison flex apache2 php5 php5curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libncurses5-dev libssl-dev
libmysqlclient15-dev mpg123 libxml2-dev lame libiksemel-dev libssl-dev libncurses5 g++
libxml2-dev
sudo apt-get install libbluetooth-dev bluez-utils bluez-hcidump
sudo apt-get clean
Scaricamento pacchetti Asterisk e FreePBX:
su – root
wget http://www.lovisolo.com/asterisk/software/pacchetti/asterisk-1.6.2.24.tar.gz
wget http://www.lovisolo.com/asterisk/software/pacchetti/asterisk-addons-1.6.2.4.tar.gz
wget http://www.lovisolo.com/asterisk/software/pacchetti/dahdi-linux-complete2.6.1+2.6.1.tar.gz
wget http://www.lovisolo.com/asterisk/software/pacchetti/freepbx-2.7.0.tar.gz
cd /root
tar -zxvf dahdi-linux-complete-2.6.1+2.6.1.tar.gz
cd dahdi-linux-complete-2.6.1+2.6.1
make all
make install
make config
cd /root
tar -zxvf asterisk-1.6.2.24.tar.gz
cd asterisk-1.6.2.24
./configure
make
make install
make samples
cd /root
tar -zxvf asterisk-addons-1.6.2.4.tar.gz
cd asterisk-addons-1.6.2.4
./configure --with-bluetooth
make
make menuselect
verificare che nel menu "Channel Driver", sia selezionato Chan_mobile: > [*] chan_mobile
nota: per selezionare o deselezionare usare la barra spaziatrice.
Fatto questo controllo possiamo uscire premendo due volte esc, salvando le modifiche con il tasto
“s” quando richiesto.
Poi correggiamo un errore nel chan_mobile editando il file sorgente:
nota: possiamo cercare le stringhe con “Ctrl+w”
nano /root/asterisk-addons-1.6.2.4/channels/chan_mobile.c
cerchiamo la parte che contiene:
case 1: /* find the opening quote (") */
if (buf[i] == '"') {
state++;
}
case 2: /* mark the start of the number */
if (from_number) {
*from_number = &buf[i];
state++;
}
/* fall through */
case 3: /* search for the end of the number (") */
if (buf[i] == '"') {
buf[i] = '\0';
state++;
}
break;
e la modifichiamo cosi':
case 1: /* find the opening quote (") */
if (buf[i] == '"') {
state++;
}
break;
case 2: /* mark the start of the number */
if (from_number) {
*from_number = &buf[i];
state++;
}
break;
/* fall through */
case 3: /* search for the end of the number (") */
if (buf[i] == '"') {
buf[i] = '\0';
state++;
}
break;
Salviamo con Ctrl+x e diamo i seguenti comandi per compilare gli addons e riavviare Asterisk:
./configure
make
make install
make samples
Configurazione di Mysql
Comandi da dare da console (inserendo la password di root per MySQL quando richesto):
su - root
mysqladmin create asteriskcdrdb -p
mysqladmin create asterisk -p
mysql -u root -p
NOTA: inserire la password di amministrazione di MySQL per proseguire e dare quindi i 4 comandi
seguenti in sequenza.
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY
'passwordmysql';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED
BY 'passwordmysql';
flush privileges;
quit
NOTA BENE; sostituire nelle linee qui sopra 'passwordmysql' con la vostra password di
amministrazione di MySQL (mantenendo l'apice prima e dopo).
Installazione di FreePBX e popolamento dei databases MySQL
Comandi da dare da console:
su - root
/usr/sbin/asterisk start
cd /root
tar -zxvf freepbx-2.7.0.tar.gz
cd freepbx-2.7.0
mysql --user=root --password=passwordmysql asterisk < SQL/newinstall.sql
mysql --user=root --password=passwordmysql asteriskcdrdb < SQL/cdr_mysql_table.sql
NOTA BENE: sostituire nelle linee qui sopra passwordmysql con la vostra password di
amministrazione di MySQL.
Comando di installazione freePBX:
./install_amp
NOTA: ecco come rispondere alle domande che vi appariranno in fase di installazione:
Enter your USERNAME to connect to the 'asterisk' database:
[asteriskuser]
- dare invio
Enter your PASSWORD to connect to the 'asterisk' database:
[amp109]
- inserire la Vostra password di amministrazione mysql
Enter the hostname of the 'asterisk' database:
[localhost]
- dare invio
Enter a USERNAME to connect to the Asterisk Manager interface:
[admin]
- dare invio
Enter a PASSWORD to connect to the Asterisk Manager interface:
[amp111]
- scegliere una password per accedere all'interfaccia web (admin), meglio se diversa da quella
MySQL.
Enter the path to use for your AMP web root:
[/var/www/html]
- dare invio
Enter the IP ADDRESS or hostname used to access the AMP web-admin:
[xx.xx.xx.xx]
- dare invio
Enter a PASSWORD to perform call transfers with the Flash Operator Panel:
[passw0rd]
- inserire una password a scelta (meglio se la stessa dell'admin dell'interfaccia web)
Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]?
[extensions]
- dare invio
Enter directory in which to store AMP executable scripts:
[/var/lib/asterisk/bin]
- dare invio
Enter directory in which to store super-user scripts:
[/usr/local/sbin]
- dare invio
Configurare Apache, creare utenti e settare i permessi.
Sempre da console comandi:
su - root
touch /var/www/html/panel/variables.txt
chown -R asterisk:asterisk /etc/asterisk
chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk. /var/www/
adduser www-data asterisk
chown -R asterisk:asterisk /etc/amportal.conf
mkdir -p /var/run/asterisk
chown asterisk:asterisk /var/run/asterisk
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
Ora lanciamo Asterisk (se non e' gia' avviato), riavviamo Apache e lanciamo FreePBX:
/usr/sbin/asterisk start
/etc/init.d/apache2 restart
amportal start
Configurazioni finali
Messa in sicurezza di FreePBX:
editare il file /etc/amportal.conf per abilitare la richiesta della password di accesso al pannello.
sudo nano /etc/amportal.conf
modificare la riga:
AUTHTYPE=none
in
AUTHTYPE=database
e aggiungere in fondo al file le seguenti due righe:
ARI_ADMIN_USERNAME=admin
ARI_ADMIN_PASSWORD=tuapassword
nota: modificare tuapassword con la password di accesso ad Amportal settata prima in FreePBX
salvare con ctrl+x rispondendo y per conferma del salvataggio dando quindi invio.
Aumento dei limiti di memoria in PHP:
editare il file /etc/php5/apache2/php.ini con il comando:
sudo nano /etc/php5/apache2/php.ini
e modificare la linea
post_max_size = 8M
in
post_max_size = 20M
salvare con ctrl+x rispondendo “y” per conferma del salvataggio dando quindi invio.
Configurazione Italiano come lingua del pannello:
da console dare i seguenti comandi:
sudo locale-gen it_IT
sudo dpkg-reconfigure locales
sudo locale -a
Riavviare il server e il centralino e' pronto.
NOTA BENE: occorre mettere in avvio automatico Asterisk e FreePBX affinche' si avviino alla
partenza del server.
Occorre quindi aggiungere queste tre righe al file "/etc/rc.local" prima della linea "exit 0" con il
comando:
sudo nano /etc/rc.local
/usr/sbin/asterisk start
/bin/sleep 2
/usr/local/sbin/amportal restart
exit 0
e poi, dopo aver salvato il file con ctrl+x, bisogna dare al file i giusti permessi di esecuzione con il
comando:
sudo chmod 755 /etc/rc.local
Poi riavviare la macchina.
Adesso il centralino e' attivo e potete accederVi dalla pagina web di configurazione di FreePBX
dall'indirizzo:
http://xxx.xxx.xxx.xxx/html
Nota: sostituire xxx.xxx.xxx.xxx con l'indirizzo IP LAN del Vostro server, esempio:
http://192.168.1.55/html
I dati di primo accesso a FreePBX, dopo l'abilitazione della richiesta password al pannello di cui
sopra, sono:
user: admin
password: admin
Cambiate subito la password di default dal menu: "Impostazioni" - "Amministratori" – "admin".
Nota: potete creare altri utenti oltre ad "admin", anche con limitazioni nell'utilizzo dei moduli di
FreePBX.
Aggiornate, caricate e installate tutti i moduli disponibili dal menu' "Amministrazione moduli", fate
l'upgrade della versione 2.7 alla 2.8.1.5, dopodiche' e' indispensabile configurare i parametri della
Vostra rete in: "Strumenti - "Asterisk SIP Settings" settando i parametri NAT, IP Configuration,
External IP e Local Networks (questo modulo deve essere installato).
NOTA BENE: aggiornare FrePBX fino alla versione 2.8.1.5, NON installare la versione 2.9!
*** NOTE AGGIUNTIVE POST INSTALLAZIONE ***
>> Musica di attesa (MHO) scattosa nel centralino
Se la musica di attesa e' scattosa e si sente a tratti ecco come risolvere:
editare il file /etc/asterisk/asterisk.conf
nano /etc/asterisk/asterisk.conf
e cambiare la riga:
; internal_timing=yes
in
internal_timing=yes
salvare con ctrl+x e poi riavviare il centralino.
>> Scaricare in un colpo solo tutti i files sonori per asterisk in tutte le lingue disponibili
(incluso Italiano)
su - root
wget -r -l1 --no-parent -A tar.gz
http://www.lovisolo.com/asterisk/software/file_audio_asterisk/
nota: e' una riga unica quella sopra.
mkdir /var/lib/asterisk/sounds/it
cd /root/www.lovisolo.com/asterisk/software/file_audio_asterisk
cp *.tar.gz /var/lib/asterisk/sounds/it
cd /var/lib/asterisk/sounds/it
tar -zxvf asterisk-core-sounds-it-alaw-current.tar.gz
tar -zxvf asterisk-core-sounds-it-gsm-current.tar.gz
tar -zxvf asterisk-core-sounds-it-sln16-current.tar.gz
tar -zxvf asterisk-core-sounds-it-g722-current.tar.gz
tar -zxvf asterisk-core-sounds-it-siren14-current.tar.gz
tar -zxvf asterisk-core-sounds-it-ulaw-current.tar.gz
tar -zxvf asterisk-core-sounds-it-g729-current.tar.gz
tar -zxvf asterisk-core-sounds-it-siren7-current.tar.gz
tar -zxvf asterisk-core-sounds-it-wav-current.tar.gz
chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
Poi riavviare la macchina.
>> Come cambiare la password di admin di FreePBX da linea di comando
se non si ricorda la password di amministratore di FreePBX questa procedura consente
di cambiarla da linea di comando di Linux.
Assumendo che la nostra nuova password è somenewpassword , dal prompt dei
comandi linux digitare quanto segue:
su - root
echo-n 'somenewpassword' | sha1sum
Si otterrà una stringa lunga:
458b27d9ab363eaab034ea65da35ceed21908fa7
Entrare in mysql con il comando:
mysql-p
inserire la password di root mysql
Ora inserite i seguenti comandi dal prompt dei comandi mysql (mysql>)
mysql> use asterisk;
mysql> update ampusers set password_sha1 =
'458b27d9ab363eaab034ea65da35ceed21908fa7' where username = 'admin' limit 1;
Ora dovreste essere in grado di accedere a FreePBX con nome utente: admin e come
password: somenewpassword
>> Collegare uno script in PHP dentro Asterisk
per collegare uno script php e farlo eseguire dentro asterisk ecco come fare:
il file .php (es. tuofile.php) va messo in "/var/lib/asterisk/agi-bin",
poi vanno settati i permessi per l'utente "asterisk":
chown asterisk:asterisk /var/lib/asterisk/agi-bin/tuofile.php
per collegarlo nel dialplan di Asterisk e farlo eseguire ad esempio quando si chiama
l'interno 6565:
[tuofile.php]
exten => 6565,1,Answer
exten => 6565,n,Wait(1)
exten => 6565,n,AGI(tuofile.php)
exten => 6565,n,Wait(1)
exten => 6565,n,Hangup
>> Miglioramento della funzione blacklist di FreePBX.
La funzione (modulo) Blacklist in Asterisk con FreePBX, almeno fino alla versione
Asterisk 1.6.2.24 e FreePBX 2.8.1.5, che e' quella di riferimento per le mie guide,
blocca correttamente i numeri inseriti nella lista, ma non da nessuna indicazione o
avviso delle chiamate ricevute, infatti nell'elenco delle chiamate (reports) non appare
nessuna traccia di queste chiamate.
Per ovviare a questo problema e avere indicazione di chi ci ha chiamato, ed e' stato
respinto ecco la modifica da fare:
da Shell sul pc dove c'e' Asterisk dare i seguenti comandi:
su - root
nano /etc/asterisk/extensions_override_freepbx.conf
poi cancelliamo tutte le righe che ci sono (o le commentiamo con il punto e virgola ";")
e mettiamo al loro posto le seguenti righe:
[app-blacklist-check]
include => app-blacklist-check-custom
exten => s,1,GotoIf($["${BLACKLIST()}"="1"]?blacklisted)
exten => s,n,Return()
exten => s,n(blacklisted),Wait(0)
exten => s,n,Answer
exten => s,n,TrySystem(echo “Chiamata BLACKLIST da ${CALLERID(name)} $
{CALLERID(number)} ricevuta ${STRFTIME(${EPOCH},,%l:%M:%S %p %Z il %A
%B %e)}” | mail [email protected])
exten => s,n,Hangup
; end of [app-blacklist-check]
Salviamo come al solito con ctrl+X
Note:
- ovviamente "[email protected]" va sostituita con il vostro indirizzo email.
- la riga: "exten => s,n,TrySystem(echo ... mail [email protected])" e' una riga
unica
Questa modifica, consente ogni volta che viene ricevuta una chiamata da un numero in
Blacklist, di inviare una mail con l'indicazione del callerid/data/ora del chiamante e
subito dopo da un segnale di occupato.
>> Messaggio Jabber (Google Talk) con caller ID di chi ci chiama
Ecco la configurazione per installare il modulo Jabber su Asterisk e fare in modo che
quando arriva una chiamata venga inviato in tempo reale un messaggio immediato
tramite Gtalk (Google chat) ad un utente Gmail.
Dato che parliamo di cose da esperti, non mi dilungo troppo sulle spiegazioni
Nota: la seguente configurazione e' valida per Ubuntu Server 10.04 e Asterisk 1.6.2.x.
1) Installare le dipendenze mancanti:
sudo apt-get install libiksemel-dev libssl-dev libncurses5 g++ libxml2-dev
2) Entrare nella directory in cui abbiamo scompattato Asterisk nella prima installazione
(come da mia guida precedente) e ricompiliamolo:
su - root
cd /root/ cd asterisk-1.6.2.24
make distclean
./configure
make
make install
NOTA BENE: assolutamente NON diamo il comando "make samples" perche'
sovrascriverebbe tutte le nostre configurazioni!
3) Modifichiamo il file "/etc/asterisk/modules.conf" e aggiungiamo alla fine la seguente
riga:
load => res_jabber.so
4) Modifichiamo, o creiamo se non esiste, il file "/etc/asterisk/jabber.conf" come segue
(sostituendo i parametri in rosso con quelli del vostro account GMAIL):
[general]
debug=no ;;Turn on debugging by default.
;autoprune=yes ;;Auto remove users from buddy list.
autoregister=yes ;;Auto register users from buddy list.
[asterisk] ;;label
type=client ;;Client or Component connection
serverhost=talk.google.com ;;Route to server for example,
[email protected] ;;Username with optional roster.
secret=miapasswordGMAIL ;;Password
port=5222 ;;Port to use defaults to 5222
usetls=yes ;;Use tls or not
usesasl=yes ;;Use sasl or not
[email protected] ;;Manual addition of buddy to
list.
statusmessage="sono il centralino Asterisk" ;;Have custom status message for Asterisk.
;timeout=100 ;;Timeout on the message stack.
5) Ecco l'extension (io ho scelto il numero 987) da inserire nel dialplan
"/etc/asterisk/extensions_custom.conf" sotto [from-internal-custom]
; il numero 987 invia un messaggio XMPP Gtalk al mio contatto
[email protected]
;
exten => 987,1,Answer
exten =>
987,2,JabberStatus(asterisk,[email protected],SOMEUSER
STATUS)
exten => 987,3,NoOp(Value of SOMEUSERSTATUS is ${SOMEUSERSTATUS})
exten => 987,4,Execif($[${SOMEUSERSTATUS} <
6],JabberSend,asterisk,[email protected],Chiamata in
arrivo da ${CALLERID(all)})
exten => 987,5,Hangup
Nota bene: la riga "exten => 987,4,Execif($[${SOMEUSERSTATUS} < 6],... $
{CALLERID(all)})" e' un'unica riga.
6) Riavviate il centralino e ora chiamando il numero 987 (da inserire ad esempio in un
gruppo di squillo), parte il messaggio su Gtalk da [email protected] per l'utente
[email protected] con il caller id del chiamante.
>> Bug Asterisk sui logs
Se nel file di configurazione di Asterisk settate "AllowSIPGuests = No" e
"alwaysauthreject = yes", come consigliato da tutti i manuali che parlano di come
mettere in sicurezza Asterisk, a causa di un bug non vedrete piu' nei logs di Asterisk gli
indirizzi IP di un eventuale hacker che effettua dei tentativi di autenticazione "FAKE".
Questo e' un bug che sembra affliggere tutte le releases dalla 1.6 in poi.
Per risolvere in modo empirico il problema, occorre inserire nelle regole IPTables la
seguente riga:
iptables -A INPUT -p udp -j LOG --log-prefix "udp connection: "
Questa regola forza il server a registrare nei logs tutti i collegamenti UDP, inclusi quelli
sulla porta 5060, che e' quella che ci interessa.
Questo aumentera' la dimensione complessiva dei logs di sistema, ma la sicurezza
innanzitutto!
Ovviamente e' importante nei controlli far combaciare i logs di asterisk dove appare la
parola "Fake" con quelli dei messaggi di sistema (messages) di pari ora e data, che
riportano la porta 5060.
Segue su: http://www.lovisolo.com/asterisk/software/GUIDE-HOWTO/chan_mobile.asterisk.pdf
Disclaimer:
Le informazioni qui fornite sono state create per il solo scopo didattico e vengono divulgate
nella speranza che siano utili ma senza alcuna garanzia, di alcun tipo, implicita o esplicita, ivi
compresa, senza alcuna limitazione, la convenienza, l'utilizzabilità o l'adeguatezza per
particolari scopi o usi.
L'uso di queste infformazioni, l'eventuale realizzazione degli apparati sperimentali fatta sulla
base delle informazioni (che sono di tipo meramente indicativo) presenti nei riferimenti elencati
in proposito, ed ogni altra attività in qualsiasi modo correlata al software ed alle informazioni
presenti nella relativa documentazione e nei predetti riferimenti sono a totale rischio
dell'utente.
L'autore non risponderà in nessun caso ed a nessun titolo, nei confronti di nessuna persona
fisica o giuridica, di alcun danno, di qualsiasi tipo, diretto o indiretto, a persone o cose,
compresi quelli incidentali o conseguenti, che possa in qualsiasi modo essere correlato al
software ed alle informazioni presenti nella relativa documentazione e nei predetti riferimenti
e/o a qualsiasi uso, da parte di chicchessia ed in qualsiasi contesto, del suddetto software e
delle suddette informazioni, indipendentemente dal fatto che l'autore possa essere stato
avvertito dell'eventualità del prodursi di tali danni.
Tutti i marchi riportati sono dei legittimi proprietari.
L'uso del software e delle informazioni di cui sopra implica l'accettazione integrale
del presente disclaimer.

Documenti analoghi

Creato da P.M. Lovisolo – Sistemista attualmente discoccupato in

Creato da P.M. Lovisolo – Sistemista attualmente discoccupato in Le informazioni qui fornite sono state create per il solo scopo didattico e vengono divulgate nella speranza che siano utili ma senza alcuna garanzia, di alcun tipo, implicita o esplicita, ivi comp...

Dettagli

Installazione di Asterisk 11 e FreePBX 12 su Ubuntu Server 14.04.5

Installazione di Asterisk 11 e FreePBX 12 su Ubuntu Server 14.04.5 Dns (Bind9), LAMP (Apache+PHP+Mysql) Posta (Sendmail o Postfix) e OpenSSH server. Nota: i servizi aggiuntivi si installano tramite il comando “sudo tasksel” che permette di selezionare da un menu p...

Dettagli

Versione aggiornata e corretta del 30/06/2015

Versione aggiornata e corretta del 30/06/2015 http://www.lovisolo.com/asterisk/software/GUIDE-HOWTO/asterisk.pdf http://www.lovisolo.com/asterisk/software/GUIDE-HOWTO/configurazione.freepbx.pdf http://www.lovisolo.com/asterisk/software/GUIDE-H...

Dettagli

progetto asterisk - Laboratorio Telecomunicazioni

progetto asterisk - Laboratorio Telecomunicazioni a fronte di costi estremamente contenuti e di una maggiore flessibilità dei servizi. IIS E. MAJORANA Cesano Maderno

Dettagli

Installazione e configurazione di un PBX asterisk su debian stable.

Installazione e configurazione di un PBX asterisk su debian stable. Questa guida ha lo scopo di illustrare come installare e configurare il PBX IP Asterisk con i tools di configurazione web e di gestione dei Fax utilizzando come sistema operativo del server la dist...

Dettagli

Esercitazione di laboratorio su Asterisk Marco Romagnoli, Davide

Esercitazione di laboratorio su Asterisk Marco Romagnoli, Davide distribuzione Linux Ubuntu installata su macchina virtuale utilizzando VMware. I  passi da svolgere sono quindi i seguenti, a prescindere dal S.O. di partenza sia esso  Windows, MAC o Linux: I.)  I...

Dettagli