Mudanças entre as edições de "PJI011104 - Projeto Integrador IV - 2022-1"
Linha 199: | Linha 199: | ||
<nowiki>#</nowiki> service asterisk start | <nowiki>#</nowiki> service asterisk start | ||
</code> | </code> | ||
+ | {{collapse bottom}} | ||
+ | =Roteiro de instalação do Asterisk com freepbx utilizando docker= | ||
+ | {{collapse top|Pré-requisitos}} | ||
+ | Ter o Docker instalado na máquina hospedeira | ||
+ | {{collapse bottom}} | ||
+ | {{collapse top|Instalação básica para testes}} | ||
+ | Instalação básica via docker com banco de dados MySQL embutido. | ||
+ | |||
+ | Obs.: Há diferentes imagens docker que trazem o Asterisk já previamente configurado, neste tutorial utilizaremos a imagem disponibilizada em https://github.com/tiredofit/docker-freepbx. | ||
+ | |||
+ | 1) Baixando a imagem docker <code>tiredofit/freepbx</code>. | ||
+ | |||
+ | <code> | ||
+ | $ docker pull tiredofit/freepbx:latest | ||
+ | </code> | ||
+ | |||
+ | Obs.: No lugar de latest, pode-se utilizar outra tag. Este tutorial foi realizado com a versão 15, portanto, para baixar a exata imagem que foi utilizada neste tutorial utilize o comando <code>$ docker pull tiredofit/freepbx:15</code> | ||
+ | |||
+ | Aguarde a realização do download completo. | ||
+ | |||
+ | Verifique se a imagem baixada está aparecendo na lista de imagens disponíveis no docker local. | ||
+ | |||
+ | <code> | ||
+ | $ docker image ls | ||
+ | </code> | ||
+ | |||
+ | 2) Subindo um contêiner baseado na imagem <code>tiredofit/freepbx</code>. | ||
+ | |||
+ | Antes de subir o contêiner, podemos verificar se já há algum contêiner rodando. Espera-se que neste momento ainda não haja nenhum contêiner baseado na imagem 'tiredofit/freepbx', já que o comando para subir o contêiner ainda não foi executado: | ||
+ | |||
+ | <code> | ||
+ | $ docker ps | ||
+ | </code> | ||
+ | |||
+ | Para subir o contêiner, rode (esse contêiner está sendo apelidado de 'test'): | ||
+ | |||
+ | <code> | ||
+ | $ docker run --name test tiredofit/freepbx | ||
+ | </code> | ||
+ | |||
+ | Este comando pode demorar alguns minutos (até 30). O terminal deve apresentar uma série de procedimentos de inicialização que são executados dentro do contêiner que incluem s6-init, fix-attrs, cont-init e a criação dos arquivos padrão para freepbx, utilização de "embedded db" no CDR, além da inicialização do WebServer para a interface freepbx. O último comando deve ser a inicialização do zabbix e do cron. | ||
+ | |||
+ | 3) Acessando a interface Web do freepbx. | ||
+ | |||
+ | Para acessar a interface, é necessário saber o endereço IP do sistema que roda dentro do contêiner, para isso: | ||
+ | |||
+ | 3.1) Abra um outro terminal | ||
+ | |||
+ | 3.2) Verifique se o contêiner está rodando com o comando 'docker ps' (a seguir um exemplo de resposta): | ||
+ | |||
+ | <code> | ||
+ | $ docker ps | ||
+ | |||
+ | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
+ | |||
+ | bca6826ffaea tiredofit/freepbx "/init" 53 minutes ago Up 53 minutes 80/tcp, 443/tcp, 4445/tcp, 4569/tcp, 5060/udp, 5061/tcp, 5161/tcp, 8001/tcp, 8003/tcp, 8008-8009/tcp, 8025/tcp, 5160/udp, 10050/tcp, 18000-20000/udp test | ||
+ | </code> | ||
+ | |||
+ | 3.3) Conecte este novo terminal ao contêiner que foi apelidado de 'test': | ||
+ | |||
+ | <code> | ||
+ | $ docker exec -it test bash | ||
+ | </code> | ||
+ | |||
+ | 3.4) Obtenha o endereço IP do contêiner com o comando <code>ip -4 a</code> (a seguir um exemplo de resposta): | ||
+ | |||
+ | <code> | ||
+ | <nowiki>#</nowiki> ip -4 a | ||
+ | |||
+ | 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever | ||
+ | 19: eth0@if20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link-netnsid 0 inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever | ||
+ | </code> | ||
+ | |||
+ | Portanto, neste exemplo, o IP do contêiner é 172.17.0.2. | ||
+ | |||
+ | 3.5) Para acessar a interface Web do freepbx, abra o browser e digite http://<IP do contêiner>/admin. Neste exemplo ficou http://172.17.0.2/admin | ||
+ | |||
+ | 4) Daqui em diante as configurações devem seguir a interface do freepbx que permite inclusive adicionar idiomas e arquivos de áudio. | ||
+ | |||
+ | Obs.: Os arquivos de configuração do Asterisk podem ser consultados em <code>/etc/asterisk</code> e os arquivos binários incluindo arquivos de sons ficam em <code>/var/lib/asterisk</code>, porém, não é recomendável modificar os arquivos manualmente. Para realizar configurações, deve-se utilizar a interface gráfica do freepbx. | ||
+ | |||
+ | 5) Para encerrar o contêiner, pressional Ctrl+C no terminal que subiu o contêiner | ||
+ | |||
+ | 6) Para reiniciar o contêiner que foi criado anteriormente | ||
+ | |||
+ | <code> | ||
+ | $ docker start -ai test | ||
+ | </code> | ||
+ | |||
+ | ATENÇÃO: Após derrubar o contêiner, se for dado novo comando <code>$ docker run ...</code> será criado um contêiner completamente novo. | ||
+ | |||
+ | Para aplicações finais (em ambiente de produção), a utilização do banco de dados embutido no contêiner docker do Asterisk não é recomendada pois no caso de perda deste contêiner, as informações do bando de dados também serão perdidas. Para evitar isso, utiliza-se um arquivo de banco de dados externo ao contêiner, além de que uma instalação profissional também deve estar associada a configurações extra de segurança tanto de acesso ao sistema quanto de backup de dados. | ||
{{collapse bottom}} | {{collapse bottom}} |
Edição das 17h23min de 1 de julho de 2022
Dados importantes
Professor
- Professor da Disciplina: Adilson Jair Cardoso e Cleber Jorge Amaral
- Email: adilson.jair@ifsc.edu.br e cleber.amaral@ifsc.edu.br
Turma virtual
- Acesse o sigaa bucando a disciplina PJI011104 - PROJETO INTEGRADOR IV (2021.2 - T01)
Aulas síncronas não presenciais
- Horários
- segundas e terças-feiras das 19:00 às 22:00
- sábados letivos serão com atividades assíncronas.
- Mais informações ver SIGAA
Aulas presenciais
- Horários
- Em condições de aulas presenciais: Sala 05, Laboratório Interativo e Meios de transmissão
Organização curricular
Roteiro de instalação do Asterisk
Passo 0: Requisitos para instalação do Asterisk |
---|
|
Passo 1: Preparando a máquina virtual que será o servidor Asterisk |
---|
Considerando a instalação do Asterisk em uma máquina virtual Ubuntu, as informações a seguir se referem ao que deve ser feito dentro da máquina virtual. 1) Certifique-se de ter uma máquina virtual linux para instalar o Asterisk (recomendável que tenha ao menos 20GB de espaço em disco - você pode criar uma máquina virtual vazia, baixar uma das versões testadas do linux no formato ISO e utilizar esse arquivo como um CDROM para fazer a instalação) 2) Como serão feitos vários comandos que requerem privilégio de administrador, realize o seguinte comando para chavear o terminal para o modo de administração (root):
Obs.1: Digite a senha de seu usuário (que necessariamente precisa ser um usuário que tenha privilégio de se tornar super usuário - pertencente ao grupo sudoers). Obs.2: No comando acima foi utilizando o símbolo Obs.3: Como regra de ouro, procure sempre estar atento as mensagens impressas no terminal. Diversos problemas podem ocorrer e muitas vezes estes são fáceis de resolver apenas seguindo as orientações impressas em casos de falhas. Caso não consiga resolver o problemas pelas próprias informações dadas, copie o erro dado e cole no google para verificar se outros usuários já experimentaram este problema e se há orientações de como resolvê-lo. 3) Certifique-se de que o sistema operacional da máquina virtual esteja atualizado:
4) Instalando as bibliotecas requeridas pelo Asterisk:
5) Instalando o gerenciador de banco de dados MySQL:
Obs.: Será utilizada a senha |
Passo 2: Intalando o Asterisk e realizando a configuração inicial do Asterisk |
---|
1) Baixe o arquivo tar.gz do Asterisk disponibilizado (versão 13.38.3) e mova para a pasta /usr/src. 2) Descompacte o arquivo tar.gz com o comando:
3) Entre na pasta descompactada digitando:
4) Realize a compilação do Asterisk
5) Realize a configuração da instalação
Na tela de configuração marque a opção 6) Realize a instalação
Se o serviço subiu e o rasterisk rodou bem, deu tudo certo, você pode sair da interface cliente.
|
Entendendo os parâmetros de configuração do Asterisk |
---|
Tipos SIP:
Qualify:
|
Comandos rasterisk |
---|
Mostra lista de comandos:
Sair da interface cliente:
Recarrega configurações SIP:
Recarrega todas as configurações:
Mostra status dos terminais cadastrados:
|
Resolução de problemas |
---|
PROBLEMA: Não está sendo possível acessar o servidor Asterisk de uma outra máquina. Solução: Liberação de portas do firewall para funcionamento do Asterisk:
PROBLEMA: Asterisk não está mais subindo depois que a máquina foi reiniciada. Solução: reinstalar o Asterisk (sem modificar os arquivos de configuração que já tenham sido editados) Tente subir o serviço manualmente
Se pelo comando status o serviço não subiu, tente reinstalar o Asterisk:
|
Roteiro de instalação do Asterisk com freepbx utilizando docker
Pré-requisitos |
---|
Ter o Docker instalado na máquina hospedeira |
Instalação básica para testes |
---|
Instalação básica via docker com banco de dados MySQL embutido. Obs.: Há diferentes imagens docker que trazem o Asterisk já previamente configurado, neste tutorial utilizaremos a imagem disponibilizada em https://github.com/tiredofit/docker-freepbx. 1) Baixando a imagem docker
Obs.: No lugar de latest, pode-se utilizar outra tag. Este tutorial foi realizado com a versão 15, portanto, para baixar a exata imagem que foi utilizada neste tutorial utilize o comando Aguarde a realização do download completo. Verifique se a imagem baixada está aparecendo na lista de imagens disponíveis no docker local.
2) Subindo um contêiner baseado na imagem Antes de subir o contêiner, podemos verificar se já há algum contêiner rodando. Espera-se que neste momento ainda não haja nenhum contêiner baseado na imagem 'tiredofit/freepbx', já que o comando para subir o contêiner ainda não foi executado:
Para subir o contêiner, rode (esse contêiner está sendo apelidado de 'test'):
Este comando pode demorar alguns minutos (até 30). O terminal deve apresentar uma série de procedimentos de inicialização que são executados dentro do contêiner que incluem s6-init, fix-attrs, cont-init e a criação dos arquivos padrão para freepbx, utilização de "embedded db" no CDR, além da inicialização do WebServer para a interface freepbx. O último comando deve ser a inicialização do zabbix e do cron. 3) Acessando a interface Web do freepbx. Para acessar a interface, é necessário saber o endereço IP do sistema que roda dentro do contêiner, para isso: 3.1) Abra um outro terminal 3.2) Verifique se o contêiner está rodando com o comando 'docker ps' (a seguir um exemplo de resposta):
3.3) Conecte este novo terminal ao contêiner que foi apelidado de 'test':
3.4) Obtenha o endereço IP do contêiner com o comando
Portanto, neste exemplo, o IP do contêiner é 172.17.0.2. 3.5) Para acessar a interface Web do freepbx, abra o browser e digite http://<IP do contêiner>/admin. Neste exemplo ficou http://172.17.0.2/admin 4) Daqui em diante as configurações devem seguir a interface do freepbx que permite inclusive adicionar idiomas e arquivos de áudio. Obs.: Os arquivos de configuração do Asterisk podem ser consultados em 5) Para encerrar o contêiner, pressional Ctrl+C no terminal que subiu o contêiner 6) Para reiniciar o contêiner que foi criado anteriormente
ATENÇÃO: Após derrubar o contêiner, se for dado novo comando Para aplicações finais (em ambiente de produção), a utilização do banco de dados embutido no contêiner docker do Asterisk não é recomendada pois no caso de perda deste contêiner, as informações do bando de dados também serão perdidas. Para evitar isso, utiliza-se um arquivo de banco de dados externo ao contêiner, além de que uma instalação profissional também deve estar associada a configurações extra de segurança tanto de acesso ao sistema quanto de backup de dados. |