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)).
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.
Versão atual do plugin: 0.0.2 — compatível com ACCELERO 2.16.8 ou superior.
O que o plugin faz
| Funcionalidade | O que acontece no ACCELERO |
|---|---|
| Softphone no navegador | Cada operador acessa um softphone com teclado numérico, status da conexão, controles de chamada e lista de contatos |
| Ramal por operador | Cada usuário do ACCELERO recebe automaticamente um ramal SIP, identificado pelo seu ID interno (usuID) |
| Grupos de operadores | Cada 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 / devices | Devices de telefonia (interfones, totens) são cadastrados como ramais externos, com usuário e senha próprios |
| Liberação de acesso (REX) na chamada | Quando 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 Asterisk | O botão Aplicar e reiniciar gera os arquivos de configuração do Asterisk e reinicia o servidor SIP |
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.
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.
| Campo | Descrição |
|---|---|
| Servidor SIP | Endereço (host) do servidor Asterisk usado pelo softphone para se conectar via WebSocket seguro |
| Domínio SIP | Domínio SIP usado na identificação dos ramais |
Botões da aba:
| Botão | Função |
|---|---|
| Salvar | Persiste os dados de servidor e domínio |
| Aplicar e reiniciar | Regenera os arquivos de configuração do Asterisk (ramais, grupos, devices) e reinicia o servidor SIP. Exige confirmação |
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.
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.
Aba Grupos de operadores, mostrando a lista de perfis com a coluna de ramal editável por linha.
| Coluna | Descrição |
|---|---|
| Perfil | Nome do perfil de operador do ACCELERO |
| Ramal | Número de ramal atribuído ao grupo. Deixe em branco para não criar grupo para o perfil |
| Ações | Botão para salvar o ramal da linha |
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.
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.
| Campo | Descrição |
|---|---|
| Descrição do ramal | Nome de identificação do device (ex: "Interfone Portaria 1") |
| Ramal | Número de ramal do device |
| Usuário | Usuário de autenticação SIP do device |
| Senha | Senha 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.
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.
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ção — Ligar, 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ção | Controles disponíveis |
|---|---|
| Chamada recebida | Atender, Recusar e (quando aplicável) Liberar acesso |
| Chamada em andamento | Mudo (microfone), Encerrar e (quando aplicável) Liberar acesso |
Chamadas recebidas tocam um ringtone próprio do plugin até serem atendidas ou recusadas.
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.
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
- O device (interfone/totem) liga para o operador (ou para um ramal de grupo).
- Ao receber a chamada, o softphone consulta o canal vinculado ao ramal do device.
- Se houver canal vinculado, o botão Liberar acesso aparece nos controles da chamada.
- Ao clicar (com confirmação), o softphone aciona a liberação (REX) do canal correspondente, liberando a passagem.
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.
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 ramal | Origem |
|---|---|
| Ramal de operador | Cada usuário do ACCELERO (exceto o usuário de sistema) recebe um ramal individual igual ao seu ID interno (usuID) |
| Ramal de grupo | Cada perfil com ramal configurado na aba Grupos de operadores. Ao ligar, todos os operadores do perfil tocam simultaneamente |
| Ramal externo / device | Cada device cadastrado na aba Ramais externos / devices, com seu próprio usuário e senha de autenticação |
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.
| Item | Detalhe |
|---|---|
| Imagem | andrius/asterisk:18-current |
| Portas SIP | 5060/udp e 5060/tcp |
| Portas HTTP/WebSocket | 8088 (HTTP) e 8089 (WSS — usada pelo softphone WebRTC) |
| Faixa de mídia (RTP) | 10000-10500/udp |
| Configuração | Os 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.
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.
Arquitetura: ACCELERO (gera config) → container Asterisk (PBX) ← softphone no navegador (WebRTC/WSS) ← devices (SIP/UDP).
Casos de uso
Habilitar o softphone para os operadores
- Solicitar à IONGRADE a instalação dos plugins
sip-asteriskesip-asterisk_docker. - Em
Configurações > Plugins - SIP Asterisk, aba Geral, preencher Servidor SIP e Domínio SIP e salvar. - Em Grupos de operadores, definir os ramais de grupo dos perfis que devem ser chamados.
- Clicar em Aplicar e reiniciar para gerar a configuração e subir os ramais.
- Garantir que os operadores tenham a permissão de uso do softphone (
sip-use). - O operador acessa Softphone no menu lateral e o softphone se conecta automaticamente.
Atender um interfone e liberar a passagem
- Cadastrar o interfone em Ramais externos / devices, preenchendo descrição, ramal, usuário, senha e o canal (REX) onde ele está instalado.
- Clicar em Aplicar e reiniciar.
- Quando o interfone liga, o operador atende no softphone.
- 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:
- Confira os campos da aba Geral.
- Verifique se o container Asterisk está em execução e se a porta
8089está acessível. - 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:
- Confirme o ramal na aba Grupos de operadores.
- Verifique se há operadores vinculados ao perfil.
- 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:
- Em Ramais externos / devices, confirme o canal vinculado ao device.
- Confirme que a chamada partiu desse device.
- 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