Quando acabarmos com este artigo usamos as seguintes tecnologias:
- Debian 9.0;
- Asterisco 13;
- FreePBX 13;
- MariaDB 10.1;
- PHP 5.6.
Quando terminar de fazer toda a configuração, você deve vir novamente a este ponto e desabilitar está permissão. Pois seu servidor ficara permitindo que o root se conecte nele e isto é uma quebra de segurança.
usando uma ferramenta de SSH (sugerimos o MobaXterm) faça:
Claro substitua o nosso ip pelo ip do seu servidor.
Vamos configurar as preferências do apt e apt-get, para usar dois repositórios. Adicione o seguinte ao arquivo /etc/apt/preferences.d/jessie:
Na janela que se abre, você deve fornecer o código do país, nosso caso, Brasil é 55.
Para ativar os sons utilizando FreePBX, basta alterar o parâmetro da variável language dentro de Asterisk SIP Settings. Neste caso, colocando es. Se existirem ramais ou linhas IAX2, será necessário configurar no parâmetro language acessando o menu Asterisk IAX Settings.
Isso quer dizer que se o valor do parâmetro language for es_AR_Maria, Asterisk buscará os arquivos em:
Edite ou crie o arquivo /etc/odbc.ini e configure:
Durante a fase de instalação, você deve especificar dbuser e dbpass, que você inseriu na etapa 16.
A instalação está concluída e agora você precisa ir para o endereço http://YOUR_IP/admin e configurar o administrador, especificando o login e a senha.
- Debian 9.0;
- Asterisco 13;
- FreePBX 13;
- MariaDB 10.1;
- PHP 5.6.
Por que essa solução é usando o MariaDB, e não o MySQL, é que para facilitar a vida dos iniciantes vamos fazer uso do MariaDB, abordando a maneira correta de preparar este SGBD para o projeto FreePBX. Para a instalação, vamos utilizar um o CD minimal install do sistema Debian 9.0 é os pacotes já instalados MariaDB, PHP 7.0, Servidor OpenSSH padrão para o Debian 9 Stretch. Vamos aproveitar e configurar o parâmetro "PermitRootLogin without-password", ele desabilita a autorização do root usar o SSH. Acho isso desconfortável para máquinas de teste em uma rede local, então eu ligo novamente. Todos os comandos são executados a partir do root.
1 - Preparação do Sistema:
Quando terminar de fazer toda a configuração, você deve vir novamente a este ponto e desabilitar está permissão. Pois seu servidor ficara permitindo que o root se conecte nele e isto é uma quebra de segurança.
usando uma ferramenta de SSH (sugerimos o MobaXterm) faça:
1 | ssh root@192.168.15.99 |
Claro substitua o nosso ip pelo ip do seu servidor.
Atualize os pacotes do sistema e o sistema.
1 | apt-get update && apt-get upgrade -y |
2 - Instale os pacotes necessários:
1 | apt-get install -y build-essential linux-headers-`uname -r` |
| apt-get install -y openssh-server apache2 bison flex libmariadb-devapt-get install -y libmariadbclient-dev mariadb-server mariadb-client |
| apt-get install -y php-pear curl sox php7.0 php7.0-mysql php7.0-mcrypt |
| apt-get install -y php7.0-curl php7.0-gd libapache2-mod-php7.0 php7.0-mbstring |
| apt-get install -y php7.0-xml libncurses5-dev libssl-dev mpg123 libpng-dev |
| apt-get install -y libxml2-dev libxml2 libcurl3 libnewt-dev sqlite3 libsqlite3-dev apt-get install -y pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev apt-get install -y libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev apt-get install -y libical-dev libneon27-dev libsrtp0-dev libspandsp-dev apt-get install -y sudo vim subversion libgmime-2.6-0 libgmime-2.6-dev |
Durante a instalação, o sistema solicitará uma senha para o usuário root do MariaDB. Aconselhamos que você crie uma senha complexa e anote-a. Para uso meramente acadêmico vamos usar aqui myPass@2018.
3 - Reinicie o sistema:
1 | reboot |
4 - Substitua o PHP7.0 pelo PHP5.6:
1 | vim /etc/apt/sources.list |
Vamos adicionar os repositórios. Coloque no final do arquivo sources.list.
1 | # Repositorios de Jessie |
2 | deb http://ftp.debian.org/debian/ jessie main contrib non-free |
3 | deb-src http://ftp.debian.org/debian/ jessie main contrib non-free |
4 | deb http://security.debian.org/ jessie/updates main contrib non-free |
5 | deb-src http://security.debian.org/ jessie/updates main contrib non-free |
Vamos configurar as preferências do apt e apt-get, para usar dois repositórios. Adicione o seguinte ao arquivo /etc/apt/preferences.d/jessie:
1 | Package: * |
2 | Pin: release n=stretch |
3 | Pin-Priority: 900 |
4 |
5 | Package: * |
6 | Pin: release n=jessie |
7 | Pin-Priority: 100 |
Atualize as novas configurações.
1 | apt update |
Instalar o PHP5.6.
1 | apt install php5 php5-pgsql php5-gd php5-curl php5-cli apache2 |
5 - Defina as dependências necessárias para o Google Voice:
1 | pear install Console_Getopt |
1 | cd /usr/src |
2 | git clone https://github.com/meduketto/iksemel.git |
3 | cd iksemel |
4 | ./configure |
5 | make |
6 | make install |
7 | ldconfig |
6 - Faça o download dos pacotes necessários Dahdi, Libpri, Asterisk 13, Jansson, PJproject:
1 | cd /usr/src |
2 | wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz |
7 - Descompacte e instale o Dahdi, Libpri:
01 | cd /usr/src/ |
02 | tar xvfz dahdi-linux-complete-current.tar.gz |
03 | cd dahdi-linux-complete-* |
04 | make all |
05 | make install |
06 | make config |
07 | cd /usr/src/ |
08 | tar xvfz libpri-current.tar.gz |
09 | cd libpri-* |
10 | make |
11 | make install |
8 - Descompacte e instale o Pjproject:
1 | cd /usr/src |
2 | tar -xjvf pjproject-2.6.tar.bz2 |
3 | cd pjproject-2.6 |
4 | CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr |
5 | make dep |
6 | make |
7 | make install |
9 - Descompacte e instale o Jansson:
1 | cd /usr/src |
2 | tar vxfz jansson.tar.gz |
3 | cd jansson-* |
4 | autoreconf -i |
5 | ./configure |
6 | make |
7 | make install |
10 - Descompacte e instale o Asterisk 13:
1 | cd /usr/src/ |
2 | tar xvfz asterisk-13-current.tar.gz |
3 | cd asterisk-* |
4 | ./contrib/scripts/get_mp3_source.sh |
5 | ./contrib/scripts/install_prereq install |
6 | ./contrib/scripts/install_prereq install-unpackaged |
7 | ./configure |
8 | make menuselect |
Também é necessário selecionar os módulos format_mp3 e aqueles que você pode precisar no futuro, as imagens é para que você tenha uma ideia do que julgamos necessários.
1 | make |
2 | make install |
3 | make config |
4 | ldconfig |
5 | update-rc.d -f asterisk remove |
11 - Baixe e instale arquivos de som para o Asterisk 13:
1 | cd /var/lib/asterisk/sounds/ |
2 | mkdir br |
3 | cd br |
4 | wget -O core.zip https://www.asterisksounds.org/pt-br/download/asterisk-sounds-core-pt-BR-sln16.zip |
56789 | wget -O extra.zip https://www.asterisksounds.org/pt-br/download/asterisk-sounds-extra-pt-BR-sln16.zip unzip core.zip unzip extra.zip chown -R asterisk.asterisk /var/lib/asterisk/sounds/br find /var/lib/asterisk/sounds/br -type d -exec chmod 0775 {} \; |
12 - Convertendo arquivos de som para outros formatos:
1 | cd /var/lib/asterisk/sounds/br/ |
2 | vim astconvert.sh |
#!/bin/bash for a in $(find . -name '*.sln16'); do sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t gsm -r 8k `echo $a|sed "s/.sln16/.gsm/"`;\ sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e a-law `echo $a|sed "s/.sln16/.alaw/"`;\ sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e mu-law `echo $a|sed "s/.sln16/.ulaw/"`;\ done
1 | chmod a+x astconvert.sh |
2 | ./astconvert.sh |
Para ativar os sons utilizando FreePBX, basta alterar o parâmetro da variável language dentro de Asterisk SIP Settings. Neste caso, colocando es. Se existirem ramais ou linhas IAX2, será necessário configurar no parâmetro language acessando o menu Asterisk IAX Settings.
Cada canal de Asterisk tem sua configuração de língua. O valor inserido na configuração é dividido por cada underline para construir a rota onde Asterisk buscará os sons. Assim, Asterisk utilizará o primeiro arquivo que encontre.
Isso quer dizer que se o valor do parâmetro language for es_AR_Maria, Asterisk buscará os arquivos em:
.../sounds/pt_br_Maria .../sounds/pt_br .../sounds/pt .../soundsIsso faz com que seja possível acrescentar novas variantes de uma língua baseadas em um esquema geral.
13 - Vamos iniciar a instalação do FreePBX 13:
Para fazer isso, crie um usuário e defina permissões nas pastas:1 | adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk PBX" asterisk |
2 | usermod -a -G dialout,audio asterisk |
01 | chown -R asterisk:asterisk /var/lib/asterisk && |
02 | chown -R asterisk:asterisk /var/log/asterisk && |
03 | chown -R asterisk:asterisk /var/run/asterisk && |
04 | chown -R asterisk:asterisk /var/spool/asterisk && |
05 | chown -R asterisk:asterisk /usr/lib/asterisk && |
06 | chown -R asterisk:asterisk /etc/asterisk && |
07 | chmod -R u=rwX,g=rX,o= /var/lib/asterisk && |
08 | chmod -R u=rwX,g=rX,o= /var/log/asterisk && |
09 | chmod -R u=rwX,g=rX,o= /var/run/asterisk && |
10 | chmod -R u=rwX,g=rX,o= /var/spool/asterisk && |
11 | chmod -R u=rwX,g=rX,o= /usr/lib/asterisk && |
12 | chmod -R u=rwX,g=rX,o= /etc/asterisk |
14 - Vamos modificar o Apache 2 para trabalhos futuros com o FreePBX 13:
1 | sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini |
2 | cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig |
3 | sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf |
4 | sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf |
5 | service apache2 restart |
15 - Configure o ODBC:
1 | cat >> /etc/odbcinst.ini << EOF |
2 | [MySQL] |
3 | Description = ODBC for MySQL |
4 | Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so |
5 | Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so |
6 | FileUsage = 1 |
7 | |
8 | EOF |
01 | cat >> /etc/odbc.ini << EOF |
02 | [MySQL-asteriskcdrdb] |
03 | Description=MySQL connection to 'asteriskcdrdb' database |
04 | driver=MySQL |
05 | server=localhost |
06 | database=asteriskcdrdb |
07 | Port=3306 |
08 | Socket=/var/run/mysqld/mysqld.sock |
09 | option=3 |
10 | |
11 | EOF |
16 - Configure o banco de dados MariaDB:
Lembrando que a senha que informamos na instalação do MariaDB foi myPass@2018. Então iremos informar como usuário root e o password myPass@2018.
1 | mysqladmin -uroot -pmyPass@2018 create asterisk |
2 | mysqladmin -uroot -pmyPass@2018 create asteriskcdrdb |
3 | mysql -uroot -pmyPass@2018 -e "GRANT ALL PRIVILEGES ON asterisk.* TO root@localhost IDENTIFIED BY 'myPass@2018';" |
4 | mysql -uroot -pmyPass@2018 -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO root@localhost IDENTIFIED BY 'myPass@2018';" |
5 | mysql -uroot -pmyPass@2018 -e "FLUSH PRIVILEGES;" |
17 - O estágio final. Baixe e instale o FreePBX 13:
O motivo de estarmos utilizando o FreePBX 13 é para poder usar o AstSBC 13, para conseguir o pacote visite o site do projeto.
1 | cd /usr/src |
3 | tar vxfz freepbx-13.0-latest.tgz |
4 | cd freepbx |
5 | ./start_asterisk start |
6 | ./install -n --dbuser=root --dbpass=myPass@2018 |
Isso conclui a instalação, você pode prosseguir com a configuração. Se houver erros ou inconsistências no artigo, ficaremos gratos se você nos escrever sobre eles nos comentários.
O objetivo é criar um instalador automatizando assim este artigo.










