Quando acabarmos com este artigo usamos as seguintes tecnologias:
- 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:
1 | vim /etc/ssh/sshd_config
|
2 | systemctl restart sshd.service |
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.
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-dev
apt-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.
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 |
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:
Atualize as novas configurações.
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 |
6 - Faça o download dos pacotes necessários Dahdi, Libpri, Asterisk 13, Jansson, PJproject:
7 - Descompacte e instale o Dahdi, Libpri:
02 | tar xvfz dahdi-linux-complete-current.tar.gz |
03 | cd dahdi-linux-complete-* |
08 | tar xvfz libpri-current.tar.gz |
8 - Descompacte e instale o Pjproject:
2 | tar -xjvf pjproject-2.6.tar.bz2 |
4 | CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr |
9 - Descompacte e instale o Jansson:
10 - Descompacte e instale o Asterisk 13:
2 | tar xvfz asterisk-13-current.tar.gz |
4 | ./contrib/scripts/get_mp3_source.sh |
5 | ./contrib/scripts/install_prereq install |
Na janela que se abre, você deve fornecer o código do país, nosso caso, Brasil é 55.
6 | ./contrib/scripts/install_prereq install-unpackaged |
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.
Depois que os módulos forem selecionados, clique em Salvar e Sair e continue a instalação:
5 | update-rc.d -f asterisk remove |
11 - Baixe e instale arquivos de som para o Asterisk 13:
1 | cd /var/lib/asterisk/sounds/ |
4 | wget -O core.zip https://www.asterisksounds.org/pt-br/download/asterisk-sounds-core-pt-BR-sln16.zip |
5
6 7 8 9
| 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/ |
#!/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
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
.../sounds
Isso 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 |
15 - Configure o ODBC:
1 | cat >> /etc/odbcinst.ini << EOF |
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 |
Edite ou crie o arquivo /etc/odbc.ini e configure:
01 | cat >> /etc/odbc.ini << EOF |
03 | Description=MySQL connection to 'asteriskcdrdb' database |
08 | Socket=/var/run/mysqld/mysqld.sock |
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.
Durante a fase de instalação, você deve especificar dbuser e dbpass, que você inseriu na etapa 16.
3 | tar vxfz freepbx-13.0-latest.tgz |
6 | ./install -n --dbuser=root --dbpass=myPass@2018 |
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.
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.
Olá. Estou tentando instalar na versão 9.5 do dobian 64 bits. Ta dando um erro de versão do libtool assim
ResponderEliminarlibtool: Version mismatch error. This is libtool 2.4.6.40-6ca5-dirty, but the
libtool: definition of this LT_INIT comes from libtool 2.4.6.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6.40-6ca5-dirty
libtool: and run autoconf again.
Makefile:465: recipe for target 'dump.lo' failed
make[2]: *** [dump.lo] Error 63
make[2]: Leaving directory '/usr/src/jansson-2.11/src'
Makefile:453: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/usr/src/jansson-2.11'
Makefile:362: recipe for target 'all' failed
make: *** [all] Error 2
root@debian9:/usr/src/jansson-2.11#
Sabe como resolver isso?
eu pesquisei bastante e achei neste blog https://wiki.asterisk.org/wiki/display/DAHDI/Quick+Start+From+Source
ResponderEliminar