Skip to content
francisco.py
Go back

Estudei 2 dias pra uma entrevista que não aconteceu

Edit page

Fui chamado para uma entrevista de estágio em uma empresa de telecomunicações. A vaga exigia conhecimentos prévios com 3CX, SNEP, Wireshark e protocolo SIP. Dos citados, eu só conhecia o Wireshark, e tinha 3 dias pra estudar. Fui pra cima com tudo pra tentar entender a fundo como isso tudo funcionava.

Li bastante, dediquei meus dias somente a isso pra ir preparado pra entrevista.

No momento que eu estava arrumado e pronto pra sair, recebi uma mensagem dizendo que tiveram imprevistos e teriam que remarcar, posteriormente disseram que cancelaram a vaga 🤡.

Mas é aquilo, se a vida te der limões faça uma caipirinha.


O que é SNEP?

A vaga pedia SNEP, mas oque é isso afinal??? eu nunca tinha ouvido falar..mas depois de pesquisar muito descobri que basicamente o SNEP é uma interface em php que vai funcionar encima do asterisk.

ja o asterisk é a base, o servidor que vai receber encaminhar e registrar todas as nossas chamadas na nossa super estação de telefonia. o snep foi criado pra facilitar a instalação e configuração, deixar mais intuitiva e pratica ja que tem interface grafica.

eu escolhi o asterisk pro lab justamente por ser a base do SNEP, a minha lógica é, se eu entender a base o resto é suave, sempre foi minha forma de pensar a respeito das coisas e é só assim que o conhecimento fixa na minha cabeça.


A topologia do lab

essa foi a minha “infra”

┌─────────────────────────────────────────────────────┐
│                  Rede Local (LAN)                   │
│                                                     │
│  ┌──────────────────────────────────┐               │
│  │   VM Ubuntu (VirtualBox - Bridge)                │
│  │   Asterisk PBX                                   │
│  │   Ramal 190 e 991 registrados                    │
│  └──────────┬───────────────────────┘               │
│             │ SIP                                   │
│     ┌───────┴────────┐                              │
│     │                │                              │
│  ┌──┴───┐        ┌───┴───┐                          │
│  │ Host │        │Celular│                          │
│  │Linphone        Linphone                          │
│  │Ramal 991       Ramal 190                         │
│  └──────┘        └─────────┘                        │
└─────────────────────────────────────────────────────┘

Instalação do Asterisk

sudo apt update -y
sudo apt install asterisk -y

Confirma que o serviço subiu:

sudo systemctl status asterisk
sudo asterisk -rvvv

Configuração dos ramais

O Asterisk usa arquivos de configuração em /etc/asterisk/. Os dois principais que editei foram o pjsip.conf enquanto eu estava pesquisando sobre eu pensei no pjsip.conf como uma especie de lista de usuarios, claro que não é só isso, mas é aqui que ficam armazenadas login e senha.

/etc/asterisk/pjsip.conf

[190]
type=endpoint
context=interno
auth=190
aors=190

[190]
type=auth
auth_type=userpass
username=190
password=senha190

[190]
type=aor
max_contacts=1


[991]
type=endpoint
context=interno
auth=991
aors=991

[991]
type=auth
auth_type=userpass
username=991
password=senha991

[991]
type=aor
max_contacts=1

/etc/asterisk/extensions.conf

e o extensions.conf seria a logica, como essas ligações serão feitas, qual o comportamento esperado? oque o asterisk deve fazer quando alguem discar 190? pra quem encaminhar? por quanto tempo deve tocar? ele deve tocar uma mensagem gravada??.

[interno]
exten => 190,1,Dial(PJSIP/190) //se alguem discar 190, o asterisk vai encaminhar a ligação para o ramal 190
exten => 991,1,Dial(PJSIP/991) // mesma coisa porem pro 991

Depois de editar, recarrega as configurações sem derrubar o serviço:

sudo asterisk -rvvv
# dentro do console do asterisk:
pjsip reload
dialplan reload

Registrando os ramais no Linphone

Ja fizemos a parte mais dificil, agora e só logar nos usuarios que registramos no pjsip.conf, com as credenciais que cadastramos lá.

Configuração no celular (ramal 190):

Configurando conta SIP no Linphone no celular

Fiz o mesmo no host (ramal 991), mudando apenas as credenciais — login e senha correspondentes ao ramal 991.

Com os dois ramais registrados, a chamada funcionou:

Celular ligando para o host via Asterisk

EXTREMAMENTE SATISFATORIO KKKKK, e funciona super bem, baixa latencia, zero ruido.(talvez por ser rede local né..)


Analisando o tráfego com Wireshark

Com tudo funcionando, abri o Wireshark no host para capturar o tráfego SIP entre os dispositivos.

sudo wireshark

Filtro usado:

sip

Captura do Wireshark mostrando o tráfego SIP durante a chamada — host 192.168.1.105, Asterisk 192.168.1.107, celular 192.168.1.100

não precisa ser um genio pra saber que eles usam o wireshark pra debugging. O protocolo sip é de sinalização, ele serve justamente pra comunicar o estado da ligação, se o telefone está tocando, se a ligação foi atendida, se é hora de chamar o rtp pra transmitir MIDIA , seja audio ou video ou se é hora de encerrar a chamada .É relativamente simples de entender e uma das partes mais divertidas do projeto foi monitorar os pacotes em tempo real.


Considerações Finais

Infelizmente a entrevista não rolou,uma pena pq eu adoraria trabalhar com isso ,mas rendeu um post legal aqui no blog.

Foi divertido.



Edit page
Share this post: