Quando se trata de monitoramento de chamadas em tempo real, nada melhor do que ser notificado automaticamente sobre quem está tentando te contatar. Neste post, você verá como integrar o Asterisk com o Openfire (XMPP) para enviar uma mensagem automática via terminal toda vez que alguém ligar, informando o número de origem.
Objetivo
Enviar uma mensagem XMPP automaticamente ao receber uma chamada no Asterisk, contendo o número de telefone de quem está ligando.
Tecnologias utilizadas
- Asterisk (PBX de código aberto)
- Openfire (servidor XMPP)
- sendxmpp (cliente XMPP em linha de comando)
- Shell Script
Pré-requisitos
- Openfire instalado e funcionando
- Um usuário XMPP para envio de mensagens (ex:
[email protected]) sendxmppinstalado no servidor do Asterisk- Asterisk funcional com chamadas sendo recebidas
Passo 1: Instalar o sendxmpp
sudo apt update
sudo apt install sendxmpp
Passo 2: Configurar o .sendxmpprc do usuário asterisk
sudo -u asterisk nano /var/lib/asterisk/.sendxmpprc
Conteúdo:
[email protected]
senha_do_bot
Ajuste as permissões:
sudo chmod 600 /var/lib/asterisk/.sendxmpprc
Passo 3: Criar o script de envio
Crie um script simples para enviar mensagens com o número da chamada:
/usr/local/bin/enviar-xmpp.sh
#!/bin/bash
NUMERO="$1"
DESTINATARIO="[email protected]"
DOMINIO="dominio.local"
echo "Chamada recebida de $NUMERO" | sendxmpp -t -j "$DOMINIO" "$DESTINATARIO"
Permissões:
chmod +x /usr/local/bin/enviar-xmpp.sh
chown asterisk:asterisk /usr/local/bin/enviar-xmpp.sh
Passo 4: Alterar o extensions.conf
Abra seu extensions.conf e insira a chamada ao script onde desejar:
[default]
exten => _X.,1,NoOp(Chamada de ${CALLERID(num)})
same => n,System(/usr/local/bin/enviar-xmpp.sh ${CALLERID(num)})
same => n,Dial(SIP/ramal1)
Resultado
Ao receber uma ligação, o Asterisk irá:
- Obter o número de quem está ligando via
${CALLERID(num)} - Executar um script shell
- O script enviará uma mensagem XMPP para o destino configurado
Exemplo de mensagem recebida no XMPP
Chamada recebida de 48999999999
Possíveis usos
- Envio para equipe de suporte
- Integração com bots de atendimento
- URA com notificação pro admin
- Alertas discretos de chamadas urgentes
Considerações
- O usuário Asterisk (
asterisk) deve ser capaz de usar osendxmpp, com.sendxmpprcconfigurado corretamente. - O Openfire deve estar com autenticação e TLS funcionando. Se estiver usando certificado self-signed, talvez você precise configurar
tls_verify=no. - O envio de mensagens deve ser testado manualmente antes da integração com o Asterisk.
Conclusão
Com uma integração simples entre o Asterisk e o XMPP via linha de comando, você pode adicionar notificações em tempo real com total controle local. Isso elimina a dependência de APIs externas, mantendo a arquitetura enxuta e eficiente — do jeito que a DevData gosta.
