/smu20191

Projeto desenvolvido na disciplina de Sistemas Multimídia do Curso de Engenharia de Telecomunicações do IFSC câmpus São José - primeiro semestre de 2019.

Primary LanguageHCLMIT LicenseMIT

Sobre o projeto

Este é um projeto em desenvolvimento na disciplina de Sistemas Multimídia do Curso de Engenharia de Telecomunicações do IFSC câmpus São José - primeiro semestre de 2019.

Até o momento, foi criada uma máquina virtual na Google Compute Engine com servidor SIP OpenSIPS. O processo foi realizado com a ajuda do Terraform.

Como usar

O arquivo Makefile pode ser usado para criar, visualizar e destruir o cenário criado.

Instalar

Além do comando make, é preciso obter o Terraform.

Obter acesso

Antes de mais nada, é preciso obter uma chave API para controlar os recursos via Terraform. O nome do arquivo será usado na sequência, na variável gcp_sakey do arquivo de configuração.

Configurar

Há apenas um arquivo a configurar, gcp.tfvars Sobre regiões e zonas da Google Cloud Platform (GCP), ver a geografia da nuvem.

gcp_sakey = "<arquivo com chave API em formato JSON>"
gce_project = "<nome do projeto no Google Cloud Platform>"
gce_region = "<região a escolher>"
gce_zone = "<zona específica da região a escolher>"
gce_ssh_user = "<usuário para login na máquina virtual>"
gce_ssh_pub_key_file = "<arquivo com a chave pública SSH>"

Exemplo:

gcp_sakey = "/home/usuario/gcp.json"
gce_project = "projeto-123"
gce_region = "southamerica-east1"
gce_zone = "southamerica-east1-a"
gce_ssh_user = "joao"
gce_ssh_pub_key_file = "/home/usuario/.ssh/id_rsa.pub"

Criar o ambiente

Apenas make. É suficiente :)

Se quiser, make show apresenta o estado do Terraform.

Destruir o ambiente

Somente make clean. Nada mais.

SIP Proxy: OpenSIPS

Para controlar o OpenSIPS, uma sugestão é que seja feito via systemd. Primeiro, é preciso ativar o suporte a esse, alterando a seguinte linha no arquivo /etc/default/opensips:

RUN_OPENSIPS=yes

Se quiser ativar o serviço por demanda, pode-se deixar o opensips desativado por padrão:

systemctl disable opensips

Para ativá-lo por demanda:

systemctl start opensips

E desativá-lo quando terminar os experimentos:

systemctl stop opensips

Combinado a isso, pode-se também usar a faixa do IFSC câmpus São José, 191.36.8.0/21, na regra de firewall do GCP.

Configurar

As seguintes linhas foram adicionadas no arquivo /etc/opensips/opensips.cfg:

  1. Suporte a NAT do servidor SIP (onde <IP externo> é o valor obtido na saída do make/Terraform). Na seção global:
listen=udp:0.0.0.0:5060
alias="<IP externo>:5060"
alias="<IP externo>"
advertised_address=<IP externo>
  1. Suporte a NAT dos agentes remotos (UACs e UASs). Na seção de módulos:
loadmodule "nathelper.so"
modparam("nathelper", "received_avp", "$avp(42)")

Visualizar

Os relatórios dos laboratórios estão publicados em: https://boidacarapreta.github.io/smu20191.