Telefonia

Nesta sessão, irei detalhar particularidades da telefonia e como analisar.

SNGREP

Using SNGREP

Consultar chamadas SIP:

-> sngrep

Main Screen

    • Idx: Coluna do número da linha.

    • Method: Coluna do tipo de mensagem SIP.

    • SIP From: Coluna do campo "De" (From) da mensagem SIP.

    • SIP To: Coluna do campo "Para" (To) da mensagem SIP.

    • Msgs: Coluna da quantidade numérica de mensagens.

    • Source: Coluna do IP e porta de origem.

    • Destination: Coluna do IP e porta de destino.

    • Call State: Coluna do identificador da chamada.

    image

    • ESC Quit: Pressione ESC para sair do sngrep.

    • Enter: Mostra mais informações sobre a linha destacada.

    • Space: Ao pressionar barra de espaço, a linha é selecionada. Isso permite selecionar múltiplas linhas e pode ser usado junto com a opção F2 (salvar).

    • F1 Help: Abre o menu de ajuda.

    • F2 Save: Permite salvar a sessão atual de captura (diálogos) em um arquivo .pcap ou .txt, definindo caminho e nome do arquivo.

    • F3 Search: Permite pesquisar de forma mais específica e detalhada.

    • F4 Extended: Mostra uma visualização estendida.

    • F5 Clear: Limpa a tela.

    • F7 Filter: Similar à busca, mas com mais opções de filtro para refinar os resultados.

    • F8 Settings: Abre as configurações do SNGREP, incluindo interface, opções de captura, opções de fluxo de chamada e configurações EEP/HEP Homer.

    • F10: Permite escolher quais colunas serão exibidas na janela do sngrep.


    SPAM

image

  • User-Agent: A maioria das tentativas de spam mostra um User-Agent indesejado, como o exibido neste exemplo.

Registration

image

image

Registration Expanded

image

image

Call Setup

image

image

Invite

image

200 OK

image

Call completou

image

image

F3 Search

image

F7 Filtro

image

F8 Configurações

Interface

image

EEP/HEP HOMER

image

Call Flow

image

Capture

image

log no grep do asterisk

Podemos verificar o tronco e o contexto em que ele está passando em tempo real utilizando o comando a seguir

asterisk -rvvvvvvvvvvvvv | grep -e "9900"

 (Pode ser colocado no lugar do 9900 o número que foi ligado ou o ramal)

Exemplo:

image.png

1. Informações iniciais da chamada

PJSIP/9923-0000011c is ringing
PJSIP/9923-0000011c answered

Descrição

Indica o estado da chamada do ramal 9923 usando o driver PJSIP.

Evento Descrição
ringing O ramal está tocando
answered A chamada foi atendida

2. Início do Dialplan

NoOp("PJSIP/9923-0000011c", "S - 20 - 1 - Bina Dinâmica (Solutions)")

Parâmetro

NoOp()

Função usada apenas para log/debug dentro do dialplan.

Parâmetro Valor Significado
Canal PJSIP/9923 Canal que iniciou a chamada
Mensagem S - 20 - 1 - Bina Dinâmica Identificação do fluxo de chamada

3. Definição de Variáveis

3.1 EXTERNPRC

Set(__EXTERNPRC=032988611550)

Descrição

Número externo que originou ou será usado no processamento da chamada.

Campo Valor
Variável EXTERNPRC
Valor 032988611550
Escopo __ indica variável herdada entre canais

3.2 ID_LINH

Set(__ID_LINH=1772545025.284)

Descrição

Identificador da linha ou da sessão da chamada.

Campo Descrição
ID_LINH ID único da chamada

3.3 ID_ORGANIZACAO

Set(__ID_ORGANIZACAO=1)

Descrição

Identifica a organização/empresa associada à chamada.


3.4 TIPOCALL

Set(__TIPOCALL=S)

Descrição

Tipo da chamada.

Valor Significado
S Saída

3.5 CHANNEL(accountcode)

Set(CHANNEL(accountcode)=S--32988611550--1772545025.284)

Descrição

Define o accountcode do canal para fins de CDR (bilhetagem).

Formato:

TIPO--NUMERO--IDCHAMADA


4. Execução de Scripts AGI

Os scripts são executados via Asterisk Gateway Interface.


4.1 Script: insCallSainte

AGI(script.php, insCallSainte,032988611550,1772545025.284,177254...)

Função

Registrar a chamada no banco de dados.

Parâmetros

Ordem Parâmetro Descrição
1 insCallSainte Nome da função
2 032988611550 Número
3 1772545025.284 ID da chamada
4 timestamp Data/hora

4.2 Script: insProtocolo

AGI(script.php, insProtocolo,032988611550,1772545025.284,...)

Função

Gerar protocolo de atendimento.

Parâmetros

Parâmetro Descrição
Número Cliente
ID chamada Identificação da ligação
timestamp Data da ligação

4.3 Definição do protocolo

Set(__PROTOCOLO=2603038511)

Descrição

Número único de protocolo de atendimento.


4.4 Script: actBlacklistSainte

AGI(script.php,actBlacklistSainte,032988611550,...)

Função

Verifica se o número está na blacklist.

Possível retorno Significado
OK Número liberado
BLOCK Número bloqueado

5. Verificação de Horário

GotoIf("PJSIP/9923-0000011c", "0?encerrar")

Descrição

Verifica condição de atendimento (exemplo: horário de atendimento).

Resultado Ação
1 continua
0 vai para encerrar

6. Log informativo

NoOp("Sem conf de Bina: 78")

Descrição

Mensagem de debug indicando configuração de Bina ausente.


7. Definição de dados finais da chamada

7.1 ID_PAC

Set(__ID_PAC=78)

Identificação do paciente/cliente.


7.2 ID_TRONCO

Set(__ID_TRONCO=78)

Identificação do tronco SIP utilizado.


7.3 TELEFONE

Set(__TELEFONE=1541032988611550)

Número final utilizado na discagem.


8. Discagem da chamada

Dial(PJSIP/1541032988611550@sipsolutionspuri,45,TtKkU(gravacao))

Aplicação

Dial()

Responsável por realizar a chamada.

Parâmetros

Campo Valor Descrição
Tecnologia PJSIP Driver SIP
Destino 1541032988611550 Número discado
Tronco sipsolutionspuri Servidor SIP
Timeout 45 Tempo máximo
Flags TtKk Permissões de transferência
U() gravacao executa gravação

9. Encerramento

Hangup()

Finaliza a chamada.


10. Mensagem final

Spawn extension exited non-zero

Significado

O fluxo terminou retornando código diferente de zero, geralmente indicando:


Fluxo resumido da chamada

Ramal 9923 atende

Define variáveis da chamada

Registra chamada (AGI)

Gera protocolo

Verifica blacklist

Valida horário

Define tronco

Discagem via SIP

Gravação

Encerramento


 

Conceitos básicos de telefonia

Documentação Básica do Asterisk

1. O que é o Asterisk

O Asterisk é um sistema de PBX (Private Branch Exchange) de código aberto que permite criar uma central telefônica baseada em software.

Ele possibilita:

Arquivos principais de configuração geralmente incluem:


2. Ramais (Extensions)

Conceito

Ramais representam usuários ou dispositivos telefônicos conectados ao sistema.

Cada ramal pode ser:

Exemplo de configuração em PJSIP (pjsip.conf):

[1001]
type=endpoint
context=interno
disallow=all
allow=alaw,ulaw
auth=1001-auth
aors=1001

[1001-auth]
type=auth
auth_type=userpass
username=1001
password=senha123

[1001]
type=aor
max_contacts=1

Funções principais dos ramais


3. Contextos

Conceito

Contextos organizam regras de discagem dentro do sistema.

Eles definem:

Configurados no arquivo:

extensions.conf

Exemplo:

[interno]

exten => 1001,1,Dial(PJSIP/1001)
exten => 1002,1,Dial(PJSIP/1002)

exten => 2000,1,Queue(suporte)

Vantagens


4. Troncos (Trunks)

Conceito

Troncos conectam o Asterisk a outras redes telefônicas.

Podem ser:

Tipos comuns:

Exemplo de tronco SIP:

[operadora]
type=endpoint
transport=transport-udp
context=entrada
disallow=all
allow=alaw,ulaw
outbound_auth=operadora-auth
aors=operadora

Uso no dialplan:

exten => _0X.,1,Dial(PJSIP/${EXTEN}@operadora)

Isso permite fazer chamadas externas.


5. Filas (Queues)

Conceito

Filas são usadas para distribuir chamadas entre agentes.

Muito utilizadas em:

Configuradas em:

queues.conf

Exemplo:

[suporte]
strategy=ringall
timeout=15
retry=5
maxlen=10

member => PJSIP/1001
member => PJSIP/1002

Estratégias de atendimento

Algumas estratégias:

Uso no dialplan:

exten => 2000,1,Queue(suporte)


6. URA (IVR)

URA significa Unidade de Resposta Audível, ou menu automático.

Exemplo clássico:

"Digite 1 para vendas, 2 para suporte."

Configurado em extensions.conf.

Exemplo:

[ura-principal]

exten => s,1,Answer()
same => n,Playback(bem-vindo)
same => n,WaitExten(10)

exten => 1,1,Goto(vendas,s,1)
exten => 2,1,Goto(suporte,s,1)

Funções comuns:


7. Autenticação

A autenticação garante que apenas dispositivos autorizados possam registrar ramais.

Ela ocorre via:

Exemplo:

[1001-auth]
type=auth
auth_type=userpass
username=1001
password=senha123

Boas práticas:

Ferramentas comuns:


8. Problemas Comuns no Asterisk

1. Ramal não registra

Possíveis causas:

Comando para verificar:

pjsip show endpoints


2. Sem áudio (one way audio)

Problema comum em VoIP.

Causas:

Solução:


3. Chamadas caindo

Possíveis motivos:


4. Filas não chamam agentes

Possíveis causas:

Verificação:

queue show


5. URA não reconhece digitação

Pode ocorrer por:

Configuração comum:

dtmf_mode=rfc4733


9. Comandos úteis no CLI

Acessar console:

asterisk -rvvv

Comandos importantes:

Ver ramais:

pjsip show endpoints

Ver registros:

pjsip show contacts

Ver filas:

queue show

Ver canais ativos:

core show channels


10. Fluxo típico de chamada

Fluxo comum em sistemas de atendimento:

Operadora

Tronco SIP

Contexto de entrada

URA

Fila

Ramal (Agente)


Resumo: 

No Asterisk:

Componente Função
Ramais Usuários/dispositivos
Contextos Regras de discagem
Troncos Conexão com operadoras
Filas Distribuição de chamadas
URA Menu automático
Autenticação Segurança de acesso