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 πŸ˜‰