Installare Asterisk 13 con Freepbx 12 su Raspberry pi 2 e Debian Jessie

 

Installare Asterisk 13 con Freepbx 12 su Raspberry pi 2 e Debian Jessie

 

Guida su come Installare Asterisk 13 con Freepbx 12 su Raspberry pi 2 e Debian Jessie Armhf, e che funziona naturalmente anche su architettura AMD64 & Intel 64.

Aggiornare il sistema:

# apt-get update && apt-get upgrade

se viene installato un nuovo kernel riavviare.

Scaricare le dipendenze ed i servizi necessari:

# apt-get install -y build-essential openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libiksemel-dev libiksemel-utils libiksemel3 libjansson-dev libapache2-mod-php5

a metà installazione verrà chiesto di settare una password per Mysql MEMORIZZARLA/SEGNARSELA. Scaricare l'occorrente: Pjproject, Jansson, Asterisk, Freepbx:

# cd /usr/src
# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
# wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz
# wget https://www.pjsip.org/release/2.4.5/pjproject-2.4.5.tar.bz2
# wget https://mirror.freepbx.org/modules/packages/freepbx/freepbx-12.0-latest.tgz

Installare Pjproject:

# cd /usr/src
# tar -xjvf pjproject-2.4.5.tar.bz2
# cd pjproject-2.4.5
# CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
# make dep
# make -j2
# make install

Installare Jansson:

# cd /usr/src
# tar vxfz jansson.tar.gz
# cd jansson-*
# autoreconf -i
# ./configure
# make -j2
# make install

 Installare Asterisk 13:

# cd /usr/src
# tar xvfz asterisk-13-current.tar.gz
# cd asterisk-13.*
# contrib/scripts/get_mp3_source.sh
# ./configure
# make menuselect

a questo punto conviene dare un occhiata ed abilitare qualche modulo in più, come format_mp3:

Installare Asterisk 13 con Freepbx 12 su Raspberry pi 2 e Debian Jessie


# make -j2
# make install
# make config
# ldconfig

Installazione e configurazione di Freepbx, Mysql ed Apache2, e quando richiesto inserire la password Mysql:

# cd /usr/src
# tar vxfz freepbx-12.0-latest.tgz
# cd freepbx
# pear uninstall db
# pear install db-1.7.14
# useradd -m asterisk
# chown asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib/asterisk
# rm -rf /var/www/html
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
# sed -i 's/AllowOverride None/AllowOverride All/'  /etc/apache2/apache2.conf
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# service apache2 restart
# mysqladmin -u root create asterisk -p
# mysqladmin -u root create asteriskcdrdb -p
# mysql -u root -p -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'password';"
# mysql -u root -p -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'password';"
# mysql -u root -p -e "flush privileges;"
# ./start_asterisk start
# ./install_amp --installdb --username=asteriskuser --password=password

durante il processo di installazione verranno mostrate alcune voci, le uniche da corregere eventualmente sono l'indirizzo IP del  Raspberry e la password di accesso di amministrazione:

Enter a PASSWORD to connect to the Asterisk Manager interface:
 [amp111] PASSWORD
Enter the path to use for your AMP web root:
 [/var/www/html]

Created /var/www/html
Enter the IP ADDRESS or hostname used to access the AMP web-admin:
 [192.168.1.1] 192.168.1.16

 

# amportal restart
# amportal chown
# amportal a ma installall
# amportal a ma installall
# amportal a ma refreshsignatures
# amportal chown
# ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
# amportal restart

 

se tutto è andato bene il server Asterisk è raggiungibile all'indirizzo https://ip_raspberry

UPDATE: Nel caso di pagina bianca eseguire i passi successivi:

# cd /usr/src/freepbx
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# service apache2 restart

e poi accedere all'indirizzo https://ip_raspberry/admin

enjoy 😉

 

Rimuovere completamente Asterisk e Freepbx

 

 

rimuovere-asterisk_freepbx

 

 

Per rimuovere/disinstallare completamente Asterisk e Freepbx, installati da sorgenti, basta eseguire questi semplici passi, sempre sperando di non dimenticare qualche pezzo. Questo può servire a chi ha fatto qualche casino e vorrebbe ricominciare da capo una nuova installazione.

 

Disinstallare Freepbx:

 

# /etc/init.d/asterisk stop
# cd /usr/src/freepbx
# ./install_amp --uninstall

 

e rispondere sempre yes alle richieste dello script.

 

Rimuovere Asterisk:

 

# rm -rf /etc/asterisk
# rm -rf /usr/src/freepbx/asterisk.conf
# rm -rf /usr/sbin/asterisk
# rm -rf /usr/lib/asterisk
# rm -rf /usr/include/asterisk.h
# rm -rf /usr/include/asterisk
# rm -rf /usr/share/man/man8/asterisk.8
# rm -rf /var/spool/asterisk
# rm -rf /var/log/asterisk
# rm -rf var/run/asterisk
# rm -rf /var/{lib,log,spool}/asterisk

 

enjoy 🙂

Installare Asterisk 13 + Freepbx 12 su Debian Wheezy

 

freepbx-12

 

Dopo aver installato Asterisk 11 e Freepbx 2.11 su Debian Wheezy, mi sono deciso a provare ad installare la versione recente di Asterisk 13 con Freepbx 12. I passi sono più o meno gli stessi di quelli precedenti, ma con qualche piccolo accorgimento ed alcune modifiche, Ad ogni modo, malgrado qualche piccolo warning il tutto funziona perfettamente.

 

Aggiornare il sistema:

 

# apt-get update && apt-get upgrade -y

 

Scaricare le dipendenze ed i servizi necessari:

 

# apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libgnutls26 libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion uuid-dev libjansson-dev smartmontools zip unzip rar unrar arj zoo sox

 

a metà installazione verrà chiesto di settare una password per Mysql MEMORIZZARLA/SEGNARSELA, poi per sicurezza meglio riavviare, a meno che non si è sicuri che si userà lo stesso kernel.

 

# reboot

 

Scaricare l'occorrente:  Dahdi, Libpri, Pjproject, Asterisk, Freepbx.

 

# cd /usr/src
# wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/\
dahdi-linux-complete-current.tar.gz
# wget
# wget https://www.pjsip.org/release/2.3/pjproject-2.3.tar.bz2
# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
# wget https://mirror.freepbx.org/freepbx-12.0.21.tgz

 

Installare Dahdi:

 

# cd /usr/src
# tar xvfz dahdi-linux-complete-current.tar.gz
# cd dahdi-linux-complete-2*
# make -j4 all
# make install
# make config

 

Installare Libpri:

 

# cd /usr/src
# tar xvfz libpri-1.4-current.tar.gz
# cd libpri-1.4*
# make -j4
# make install

 

Installare Pjproject:

 

# cd /usr/src
# tar -xjvf pjproject-*
# cd /usr/src/pjproject-*
# CFLAGS='-DPJ_HAS_IPV6=0' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
# make dep
# make
# make install

 

Installare Asterisk:

 

# cd /usr/src
# tar xvfz asterisk-13-*
# cd asterisk-*
# ./configure
# make menuselect

 

a questo punto conviene dare un occhiata e se serve si può abilitare qualche modulo in più, come format_mp3 o i moduli extrasound:

 

freepbx-moduli

 

# make -j4
# make install
# make config
# ldconfig

 

Installazione e configurazione di Freepbx e Mysql

 

# pear uninstall db
# pear install db-1.7.14
# cd /usr/src
# tar xvfz freepbx-*
# cd freepbx
# adduser asterisk --disabled-password --gecos "Asterisk User"
# chown asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib/asterisk
# chown -R asterisk. /var/www/
# sed -i 's/\(^upload_max_filesize = \).*/\1120M/' /etc/php5/apache2/php.ini
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# /etc/init.d/apache2 restart
# export ASTERISK_DB_PW='INSERIRE_LA_PASSW_MYSQL'
# mysqladmin -p -u root create asterisk
# mysqladmin -p -u root create asteriskcdrdb
# mysql -p -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
# mysql -p -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
# mysql -p -u root -e "flush privileges;"
# ./start_asterisk start
# ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW} --dbhost='127.0.0.1' --dbname='asterisk' --freepbxip='X.X.X.X' --cgibin='/var/www/cgi-bin' --bin='/var/lib/asterisk/bin' --sbin='/usr/local/sbin' --asteriskuser=admin --asteriskpass=${ASTERISK_DB_PW} --asteriskip='127.0.0.1' --scripted

 

sostituire le X.X.X.X con l'ip della macchina che eseguirà Asterisk:

 

# ./install_amp --update-links
# amportal chown
# amportal a ma installall
# amportal restart
# amportal a ma refreshsignatures
# amportal chown

 

a questo punto fare una piccola modifica al file /etc/apache2/sites-enabled/000-default.conf, poiche la DocumentRoot deve puntare a  "/var/www/html", ed AllowOverride dovrà essere "All", come sotto:

 

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all

 

# nano /etc/apache2/sites-enabled/000-default.conf
# /etc/init.d/apache2 restart

 

Da adesso in poi si potrà utilizzare AsteriskFreepbx all'indirizzo https://localhost/admin/. La prima cosa da fare è andare nel menu Admin-Module Admin e scaricare tutti i moduli. Dopo l'aggiornamento dei moduli potrebbero verificarsi degli errori nel momento in cui si applicano i cambiamenti, il tutto si risolve andando manualmente a forzarne l'aggiornamento.

Errori moduli esempi:

PHP Fatal error:  Call to undefined function core_devices_list() in /var/www/html/admin/modules/digium_phones/classes/digium_phones.php on line 102

PHP Fatal error:  Call to undefined function core_devices_list() in /var/www/html/admin/modules/callforward/functions.inc.php on line 47

The Module Named "Core" is required, but yours is disabled because it needs to be upgraded. Please upgrade Core first, and then try again.

 

Errori compilazione:

Durante la compilazione ho avuto diversi errori ma che non hanno dato problemi:

PHP Warning:  copy(/var/www/html/robots.txt): failed to open stream: No such file or directory in /usr/src/freepbx/libfreepbx.install.php on line 381

PHP Warning:  file_put_contents(/var/log/asterisk/freepbx.log): failed to open stream: Permission denied in /var/www/html/admin/libraries/utility.functions.php on line 111

 

enjoy 😉

 

Asterisk-Freepbx creazione di un semplice IVR

 

 

Asterisk-Freepbx creazione di un semplice IVR

 

 

Dopo gli appunti precedenti su Asterisk-Freepbx su Debian Wheezy, il passo successivo è quello della creazione di un IVR.

 

Step 1: creazione di un file audio, in formato wav a 16 Bits, e 8000Hz. Il modo più semplice è fare tutto online, prima creando il contenuto e scegliendo la voce, poi convertendo tutto nel giusto formato.

 

online-convert

 

Step 2: Andare in Admin-System Recordings e fare l'upload del file wav creato in precedenza.

 

System Recordings

 

Step 3: Andare Applications-Announcementes ed in Recording scegliere il file audio. la voce Destination after playback dovrà successivamente puntare all' IVR.

 

Announcement

 

Step 4: Andare in Applications-IVR e far puntare l'opzione Announcement al file audio e lo stesso volendo per le opzioni "Invalid Retry Recording-Invalid Recording-Timeout Recording". Mentre le opzioni "Invalid Destination-Timeout Destination" punteranno a Terminate Call-Hangup. Nel menu IVR Entries, si sceglie dove far puntare le deviazioni. Per esempio alle Extensions: premi tasto 1 per parlare con questo, premi tasto 2 per parlare con quello, ecc. ecc.

 

IVR

IVR

 

Step 5: Andare in Inbound Routes e la voce Set Destination deve puntare all' IVR.

 

Inbound Routes

 

enjoy 😉

 

 

Asterisk-Freepbx chiamate entrata/uscita con Messagenet

 

Dopo aver creato un Sip Trunk con Messagenet ed anche gli interni , adesso bisogna configurare Freepbx per effettuare chiamate in entrata/uscita. Dal menu Connectivity, selezionare Inbound Routes, e dopo aver dato una descrizione, andare in Set destination e scegliere Extensions, dove verrà visualizzato l'interno creato in precedenza. Salvare e dopodichè si è pronti a ricevere le telefonate, che verranno dirottate a quell'interno. Per le chiamate in uscita, andare in Connectivity-Outbound Routes, dare una Descrizione e poi in Dial Patterns that will use this Route inserire nella finestra match pattern " X.". Poi, in Trunk Sequence for Matched Routes, la posizione 0 deve puntare al Trunk.

 

 

Inbound Routes:

 

Inbound Routes


Inbound Routes

 

Outbound Routes:

 

Outbound Routes

Outbound Routes

 

enjoy 😉

 

Freepbx creare interni usando le Extensions

 

Con Freepbx e Asterisk per creare gli interni bisogna utilizzare le Extensions, che si trovano nel menu Applications. I passi sono: scegliere Generic Sip Device, in User Etensions scrivere il numero dell'interno da creare, in Display Name il nome che lo identifica. La modifica piu importante va fatta nel menu Device Options:

 

secret= si metterà una password che verrà utlizzata nel momento che si configurerà il device.

dtmfmode= RFC 2833

nat= yes

 

questa semplice configurazione può essere utilizzata per testare gli interni-

 

 

 photo extensions2_zps9da23484.png

 photo extension_zpsf496f532.png

 photo extensions1_zpsa1c6d92b.png

 

Freepbx creare un Sip Trunk con Messagenet

 

 

 

Dopo avere installato Asterisk 11 con Freepbx 2.11 su Debian 7 Wheezy, il passo succesivo è quello di poter riuscire a telefonare. Serve quindi configurare in Freepbx un Sip Trunk con Messagenet, o qualunque altro provider. Avendo io una numerazione con Messagenet mi limito a mostrare come da immagini sopra, una configurazione funzionante. Nel menu di Freepbx andare in Connectivity-Trunks, ed inserire in Outbound CallerID il numero di telefono. Poi andare nel menu Outgoing Settings, ed inserire queste stringhe, opportunamente modificati con la propria URI e password:

type=friend
host=sip.messagenet.it
fromuser=52xxxxx
secret=xxxxxxxxxx
transport=udp
defaultuser=52xxxxx
fromdomain=sip.messagenet.it
port=5061
qualify=yes
insecure=invite,port
nat=force_rport
username=52xxxxx
context=from-trunk
callbackextension=from-trunk

 

Tutto il resto rimane come di default. Salvare con Submit changes e Apply config.

 

enjoy 😉

 

Asterisk 11 con Freepbx 2.11 su Debian 7 Wheezy

 

 

Guida su Asterisk 11 con Freepbx 2.11 su Debian 7 Wheezy. Mi sono cimentato nell'installazione del centralino Asterisk con l'interfaccia Freepbx su Debian Wheezy. Dopo diversi tentativi il tutto è andato a buon fine. Di seguito riporterò i passi effettuati su una Debian 7 Wheezy appena installata. I comandi sotto sono stati eseguiti tutti da root.

 

Aggiornare il sistema:

 

# apt-get update && apt-get upgrade -y

 

Scaricare le dipendenze ed i servizi necessari:

 

# apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libgnutls26 libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion uuid-dev libjansson-dev smartmontools zip unzip rar unrar arj zoo sox

 

a metà installazione verrà chiesto di settare una password per mysql. MEMORIZZARLA/SEGNARSELA.

poi:

 

# pear uninstall db
# pear install db-1.7.14

 

Scaricare l'occorrente: Asterisk, Dahdi, Libpri, Freepbx.

 

# cd /usr/src
# wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/\
dahdi-linux-complete-current.tar.gz
# wget
# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
# wget https://mirror.freepbx.org/freepbx-2.11.0.40.tgz

 

Installare Dahdi:

 

# cd /usr/src
# tar xvfz dahdi-linux-complete-current.tar.gz
# cd dahdi-linux-complete-2.10.0.1+2.10.0.1
# make -j4 all
# make install
# make config

 

Installare Libpri:

 

# cd /usr/src
# tar xvfz libpri-1.4-current.tar.gz
# cd libpri-1.4.15
# make -j4
# make install

 

Installare Asterisk:

 

# cd /usr/src
# tar xvfz asterisk-11-current.tar.gz
# cd asterisk-11.15.0
# ./configure
# ./contrib/scripts/install_prereq install
# contrib/scripts/get_mp3_source.sh
# make menuselect
# make -j4
# make install
# make config

 

Riavviare il sistema:

 

# reboot

 

dopo il riavvio controllare che tutti i servizi sono up:

 

# service asterisk start
# service apache2 start
# service mysql start

 

per entrare nella CLI di Asterisk:

 

# asterisk -r
Ctrl>c

 

 

Creazione utente e settaggio dei permessi:

 

# adduser asterisk --disabled-password --gecos "Asterisk User"
# chown -R asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib/asterisk
# mkdir /var/www/html
# chown -R asterisk. /var/www/

 

Modifiche più o meno necessarie nel file di configurazione di apache:

 

# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# service apache2 restart

 

Configurazione del database Asterisk in mysql:

 

# export ASTERISK_DB_PW=amp109
# mysqladmin -p -u root create asterisk
# mysqladmin -p -u root create asteriskcdrdb

verrà richiesta la password di mysql scelta in precedenza.

 

# mysql -u root -p

 

adesso siamo nella CLI di mysql e dare i comandi successivi, sostituire PASSWD_MYSQL con la password creata:

 

GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY
'PASSWD_MYSQL';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED
BY 'PASSWD_MYSQL';
flush privileges;
quit

 

restart Asterisk:

 

# /etc/init.d/asterisk restart

 

Installazione di Freepbx:

 

# cd /usr/src/
# export VER_FREEPBX=2.11
# tar xvfz freepbx-2.11.0.40.tgz
# cd /usr/src/freepbx
# mysql -p -u root asterisk < SQL/newinstall.sql
# mysql -p -u root asteriskcdrdb < SQL/cdr_mysql_table.sql
# ./install_amp --webroot /var/www

oppure:

# ./install_amp --username=asteriskuser --password=$ASTERISK_DB_PW --webroot /var/www

 

Se tutto è andato bene puntare il browser su https://localhost/admin

 

Asterisk 11 con Freepbx 2.11 su Debian 7 Wheezy

 

enjoy 😉