PJI011104 - Projeto Integrador IV - 2022-1
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 [1]. 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. |
Instalação de um abiente de produção |
---|
A instalação via docker apresentada para testes utiliza banco de dados embutido no container, o que é ruim pois a perda do container acarreta em perda dos dados do banco e também não trata de backup dos dados do banco. Nesta instalação para ambiente de produção, estes problemas são solucionados. Para isso está sendo utilizada a ferramente docker-compose, um orquestrador de contêineres, que concorre, em termos de funcionalidades, com a conhecida ferramenta kubernetes. No docker-compose um arquivo no formato yml descreve os contêineres que deve ser carregados, suas configurações entre outros parâmetros como a configuração de rede a qual os contêineres estão conectados. Para este tutorial será utilizado o exemplo dado por [2] na pasta
Todos os contêineres estão sob o "guarda-chuva" de um proxy reverso provido por uma rede chamada nginx-proxy. Na prática, o proxy reverso é um "guarda-chuva" do lado servidor. O nginx é um servidor web, que neste caso está sendo utilizado como "porta de entrada" para serviços providos por este conjunto de contêineres. Procedimento: 1) Para subir esse conjunto de contêineres exemplo, é necessário baixar o arquivo 2) Crie a rede nginx-proxy:
3) Para carregar o conjunto de contêineres, estando na pasta onde está o arquivo
Ao subir os multiplos contêineres, deve ser possível observar as mensagens de carregamento de serviços nestes diferentes contêineres (freepbx-db, freepbx-db-backup e free-pbx-app) 4) Para verificar se os contêineres estão rodando, em um outro terminal digite:
Deve ser possível ver três contêineres ativos. 4) Para conectar o terminal a um contêiner, por exemplo o freepbx-app, digite:
Obtenha o IP da máquina da aplicação freepbx utilizando a mesma lógica apresentada no ambiente de testes. Para desconectar, digite |