Pular para o conteúdo principal

Integração SIP Asterisk (Softphone)

A integração SIP Asterisk adiciona ao ACCELERO um softphone (telefone VoIP) que roda direto no navegador do operador. Com ele, operadores podem fazer e receber chamadas de voz entre si, ligar para grupos de operadores e atender devices (interfones, totens, porteiros eletrônicos) — e, quando o device está vinculado a um canal de controlador, liberar o acesso sem sair da tela da chamada.

A comunicação de voz acontece via WebRTC sobre SIP (biblioteca SIP.js), conectando-se a um servidor Asterisk que roda como um container Docker auxiliar (ver Servidor Asterisk (Docker)).

Disponibilidade

Esta integração é disponibilizada como plugin (sip-asterisk) e precisa ser instalada e habilitada pela equipe técnica da IONGRADE. Ela depende de um servidor Asterisk (plugin companheiro sip-asterisk_docker). Consulte o suporte para verificar compatibilidade com a sua versão do ACCELERO.

Compatibilidade

Versão atual do plugin: 0.0.2 — compatível com ACCELERO 2.16.8 ou superior.


O que o plugin faz

FuncionalidadeO que acontece no ACCELERO
Softphone no navegadorCada operador acessa um softphone com teclado numérico, status da conexão, controles de chamada e lista de contatos
Ramal por operadorCada usuário do ACCELERO recebe automaticamente um ramal SIP, identificado pelo seu ID interno (usuID)
Grupos de operadoresCada perfil de operador pode ter um ramal de grupo: ao ligar para esse ramal, todos os operadores do perfil tocam ao mesmo tempo
Ramais externos / devicesDevices de telefonia (interfones, totens) são cadastrados como ramais externos, com usuário e senha próprios
Liberação de acesso (REX) na chamadaQuando um device está vinculado a um canal de controlador, o softphone exibe o botão Liberar acesso durante a chamada
Geração de configuração do AsteriskO botão Aplicar e reiniciar gera os arquivos de configuração do Asterisk e reinicia o servidor SIP
Benefício principal

Centraliza interfonia e atendimento de portaria dentro do próprio ACCELERO: o operador atende a chamada do interfone e libera a passagem no mesmo softphone.


Configuração

Caminho de acesso: Configurações > Plugins - SIP Asterisk

A tela de configuração possui três abas: Geral, Grupos de operadores e Ramais externos / devices.

TODO: Adicionar Screenshot

Tela de configuração do SIP Asterisk mostrando as três abas (Geral, Grupos de operadores, Ramais externos / devices).

Aba Geral

Dados de conexão com o servidor SIP.

CampoDescrição
Servidor SIPEndereço (host) do servidor Asterisk usado pelo softphone para se conectar via WebSocket seguro
Domínio SIPDomínio SIP usado na identificação dos ramais

Botões da aba:

BotãoFunção
SalvarPersiste os dados de servidor e domínio
Aplicar e reiniciarRegenera os arquivos de configuração do Asterisk (ramais, grupos, devices) e reinicia o servidor SIP. Exige confirmação
"Aplicar e reiniciar" reinicia o servidor SIP

A ação Aplicar e reiniciar recria a configuração do Asterisk a partir do estado atual (operadores, perfis e devices) e dispara o reinício do servidor SIP. Chamadas em andamento podem ser interrompidas. Use após alterar ramais, grupos ou devices.

Servidor TURN oculto

O código prevê um servidor TURN (para travessia de NAT), mas o campo está oculto na tela atual porque nem todos os devices o suportam. Ele não faz parte da configuração exposta ao usuário.

Aba Grupos de operadores

Define um ramal de grupo para cada perfil de operador. Ligar para esse ramal toca em todos os operadores que possuem aquele perfil.

TODO: Adicionar Screenshot

Aba Grupos de operadores, mostrando a lista de perfis com a coluna de ramal editável por linha.

ColunaDescrição
PerfilNome do perfil de operador do ACCELERO
RamalNúmero de ramal atribuído ao grupo. Deixe em branco para não criar grupo para o perfil
AçõesBotão para salvar o ramal da linha
Ramais de operador x ramais de grupo

O ramal individual de cada operador é o seu ID interno (usuID), gerado automaticamente — não é configurado aqui. Nesta aba você define apenas os ramais de grupo (um por perfil), que costumam ser os números chamados pelos devices.

Aba Ramais externos / devices

Cadastro dos devices de telefonia (interfones, totens, porteiros) que se conectam ao Asterisk como ramais externos.

TODO: Adicionar Screenshot

Aba Ramais externos / devices, mostrando as colunas (Descrição do ramal, Ramal, Usuário, Senha, REX/canal) e a linha de inclusão de novo device.

CampoDescrição
Descrição do ramalNome de identificação do device (ex: "Interfone Portaria 1")
RamalNúmero de ramal do device
UsuárioUsuário de autenticação SIP do device
SenhaSenha de autenticação SIP do device
REX (canal)Canal de controlador associado ao device. Quando preenchido, o softphone exibe o botão Liberar acesso ao receber uma chamada desse device

Ações por linha: Salvar e Excluir (a exclusão pede confirmação). A inclusão de um novo device é feita pela linha de cadastro no rodapé da tabela.

Vínculo com o canal libera a porta

Associe o device ao canal físico onde ele está instalado. É esse vínculo que faz o botão Liberar acesso aparecer durante a chamada e acionar a liberação (REX) do canal correto.


Softphone

Caminho de acesso: Menu lateral > Softphone

Ao clicar em Softphone, o ACCELERO abre o softphone em uma janela própria (popup). O softphone se conecta automaticamente ao servidor SIP usando o ramal do operador logado.

TODO: Adicionar Screenshot

Janela do softphone aberta, mostrando a página Home com o campo de número, o status da conexão, o teclado numérico e os botões de ação (ligar, adicionar, apagar).

A janela do softphone tem duas páginas, acessíveis pela barra lateral:

Página Home

  • Campo de número — digite o número/ramal a chamar (também aceita a tecla Enter para ligar).
  • Status da conexão — indica Conectado / Desconectado / Chamando... / Em chamada.
  • Teclado numérico — botões de 0 a 9, * e #.
  • Botões de açãoLigar, Adicionar e Apagar (backspace).

Durante uma chamada, a área de chamada exibe o nome/identificação do contato, o tempo de duração e os controles correspondentes:

SituaçãoControles disponíveis
Chamada recebidaAtender, Recusar e (quando aplicável) Liberar acesso
Chamada em andamentoMudo (microfone), Encerrar e (quando aplicável) Liberar acesso

Chamadas recebidas tocam um ringtone próprio do plugin até serem atendidas ou recusadas.

TODO: Adicionar Screenshot

Softphone durante uma chamada recebida de um device, mostrando os botões Atender, Recusar e Liberar acesso.

Página Contatos

Lista de contatos chamáveis, com busca por nome ou número. A lista é montada automaticamente a partir de:

  • Grupos de operadores que têm ramal configurado (aba Grupos de operadores).
  • Ramais externos / devices cadastrados (aba Ramais externos / devices).

Clicar em um contato preenche o número na página Home; o botão de telefone do contato inicia a chamada diretamente.

Janela única do softphone

Para evitar múltiplas instâncias quando o operador tem várias abas abertas, o plugin coordena a abertura do softphone por um worker compartilhado. Se o softphone já estiver em funcionamento em outra aba, o sistema avisa para usar a aba existente em vez de abrir uma nova.


Liberação de acesso (REX) pelo softphone

Quando um device cadastrado na aba Ramais externos / devices está vinculado a um canal de controlador (campo REX), o softphone passa a oferecer a liberação de acesso durante a chamada vinda desse device.

Como funciona

  1. O device (interfone/totem) liga para o operador (ou para um ramal de grupo).
  2. Ao receber a chamada, o softphone consulta o canal vinculado ao ramal do device.
  3. Se houver canal vinculado, o botão Liberar acesso aparece nos controles da chamada.
  4. Ao clicar (com confirmação), o softphone aciona a liberação (REX) do canal correspondente, liberando a passagem.
Permissão de liberação

A liberação usa a função de REX padrão de Controladores do ACCELERO. Garanta que o operador tenha permissão para liberar passagem no canal correspondente.

TODO: Adicionar Diagrama

Fluxo device → chamada no softphone → botão Liberar acesso → REX no canal vinculado.


Como os ramais são gerados

Os ramais e a configuração do Asterisk são montados a partir do estado atual do ACCELERO quando você usa Aplicar e reiniciar:

Tipo de ramalOrigem
Ramal de operadorCada usuário do ACCELERO (exceto o usuário de sistema) recebe um ramal individual igual ao seu ID interno (usuID)
Ramal de grupoCada perfil com ramal configurado na aba Grupos de operadores. Ao ligar, todos os operadores do perfil tocam simultaneamente
Ramal externo / deviceCada device cadastrado na aba Ramais externos / devices, com seu próprio usuário e senha de autenticação
Ramais com muitos dígitos

O ramal individual do operador usa o seu ID interno, que pode ter mais de 6 dígitos. Os testes indicam funcionamento normal, mas alguns softphones de terceiros podem não aceitar ramais longos. Para chamadas de devices, prefira ligar para ramais de grupo, cujos números você define livremente na configuração.


Servidor Asterisk (Docker)

O softphone precisa de um servidor Asterisk (PBX) para registrar os ramais e encaminhar as chamadas. Ele é fornecido pelo plugin companheiro sip-asterisk_docker, que sobe o Asterisk como um container Docker ao lado do ACCELERO.

ItemDetalhe
Imagemandrius/asterisk:18-current
Portas SIP5060/udp e 5060/tcp
Portas HTTP/WebSocket8088 (HTTP) e 8089 (WSS — usada pelo softphone WebRTC)
Faixa de mídia (RTP)10000-10500/udp
ConfiguraçãoOs arquivos extensions.conf, pjsip.conf e sip.conf são gerados pelo ACCELERO e montados no container

Quando você aciona Aplicar e reiniciar na tela de configuração, o ACCELERO regenera esses arquivos a partir dos operadores, grupos e devices atuais e sinaliza o reinício do servidor SIP para que o Asterisk passe a usar a nova configuração.

Instalação e infraestrutura

A instalação do servidor Asterisk, a liberação das portas e os certificados (necessários para o WebSocket seguro) são responsabilidade da equipe técnica da IONGRADE durante a implantação.

TODO: Adicionar Diagrama

Arquitetura: ACCELERO (gera config) → container Asterisk (PBX) ← softphone no navegador (WebRTC/WSS) ← devices (SIP/UDP).


Casos de uso

Habilitar o softphone para os operadores

  1. Solicitar à IONGRADE a instalação dos plugins sip-asterisk e sip-asterisk_docker.
  2. Em Configurações > Plugins - SIP Asterisk, aba Geral, preencher Servidor SIP e Domínio SIP e salvar.
  3. Em Grupos de operadores, definir os ramais de grupo dos perfis que devem ser chamados.
  4. Clicar em Aplicar e reiniciar para gerar a configuração e subir os ramais.
  5. Garantir que os operadores tenham a permissão de uso do softphone (sip-use).
  6. O operador acessa Softphone no menu lateral e o softphone se conecta automaticamente.

Atender um interfone e liberar a passagem

  1. Cadastrar o interfone em Ramais externos / devices, preenchendo descrição, ramal, usuário, senha e o canal (REX) onde ele está instalado.
  2. Clicar em Aplicar e reiniciar.
  3. Quando o interfone liga, o operador atende no softphone.
  4. O botão Liberar acesso aparece nos controles da chamada — ao clicar e confirmar, o canal é liberado.

Boas práticas

  • Reaplique após mudanças: sempre que adicionar/alterar operadores, grupos ou devices, use Aplicar e reiniciar para que a configuração do Asterisk reflita o estado atual.
  • Use ramais de grupo para devices: prefira que os devices liguem para ramais de grupo (toque coletivo) em vez de ramais individuais de operador.
  • Vincule cada device ao canal certo: o vínculo de canal é o que habilita a liberação de acesso pelo softphone — confira o canal correto de cada interfone/totem.
  • Senhas dedicadas por device: use usuário e senha próprios para cada device, facilitando a revogação individual.

Troubleshooting

O softphone fica "Desconectado"

Possíveis causas:

  • Servidor SIP ou Domínio SIP incorretos na aba Geral.
  • Servidor Asterisk fora do ar ou porta 8089 (WSS) inacessível.
  • Certificado do WebSocket seguro inválido.

Solução:

  1. Confira os campos da aba Geral.
  2. Verifique se o container Asterisk está em execução e se a porta 8089 está acessível.
  3. Acione Aplicar e reiniciar e contate o suporte IONGRADE se persistir.

Um ramal/grupo novo não toca

Possíveis causas:

  • A configuração ainda não foi aplicada após a alteração.
  • O perfil não tem ramal de grupo configurado, ou nenhum operador está vinculado ao perfil.

Solução:

  1. Confirme o ramal na aba Grupos de operadores.
  2. Verifique se há operadores vinculados ao perfil.
  3. Clique em Aplicar e reiniciar.

O botão "Liberar acesso" não aparece

Possíveis causas:

  • O device não está vinculado a um canal (campo REX vazio).
  • A chamada não veio de um ramal externo/device cadastrado.
  • O operador não tem permissão de liberação no canal.

Solução:

  1. Em Ramais externos / devices, confirme o canal vinculado ao device.
  2. Confirme que a chamada partiu desse device.
  3. Verifique a permissão de liberação (REX) do operador no canal.

Integração com outros módulos

Operadores e Perfis

Os ramais individuais vêm dos Operadores e os ramais de grupo vêm dos perfis de operador. O softphone se conecta com o ramal do operador logado.

Controladores

Os Controladores e seus canais são a base da liberação de acesso: cada device é vinculado a um canal, e a liberação aciona o REX desse canal.


Próximos Passos

  • Operadores — Entenda os perfis e usuários que viram ramais
  • Controladores — Configure os canais usados na liberação de acesso
  • Plugins — Saiba mais sobre o sistema de plugins do ACCELERO