Integre o servidor de bate-papo Openfire XMPP com Asterisk PBX
Depois de instalar com sucesso o servidor Asterisk PBX e instalar o servidor Openfire XMPP Chat, é hora de integrar os dois para que nosso servidor de chat possa ser usado dentro da infraestrutura VOIP construída com Asterisk.
Pré-requisitos
- Servidor Asterisk PBX instalado
- Servidor Openfire XMPP instalado
- Asterisk e Openfire conectados em rede para que ambos possam se comunicar com sucesso.
- Conhecimento básico de Linux e edição de arquivos
- Módulos res_xmpp.so e res_jabber.so Asterisk compilados.
Se você está interessado neste tutorial e ainda não fez nenhuma instalação, fique à vontade para usar os seguintes tutoriais:
Instalação do servidor de bate-papo Openfire XMPP:
- Guia completo sobre como instalar o Openfire XMPP no CentOS
- Instale o servidor de bate-papo Openfire XMPP no Ubuntu
Instalação do PABX Asterisk:
- Como instalar o Asterisk no CentOS
- Instale o Asterisk no Ubuntu
http://127.0.0.1:9090
http://your_ip_address:9090
- Faça login com o nome de usuário e senha que você configurou durante a instalação.
- Na seção Menu, vá para Plugins >> “Plugins disponíveis” e pesquise por plug-ins chamados “Asterisk-IM ” e “SIP Phone Plugin”. Instale os plug-ins clicando no + (sinal de adição) no canto direito da seção do nome do plug-in.
- Se você não consegue encontrar os plug-ins acima no submenu “Plugins disponíveis”, você pode baixar os plug-ins manualmente e colocá-los no “diretório de plug-ins do Openfire”.
Faça o seguinte no servidor Openfire XMPP.
Digite sua senha root e então
su -
cd /opt/openfire/plugins/
wget http://www.igniterealtime.org/projects/openfire/plugins/sip.jar
wget https://github.com/igniterealtime/asterisk-im/releases/download/release-2.0.0/asterisk-im.jar
Para que o Openfire reconheça os plugins adicionados, reinicie-o usando o comando abaixo:
sudo service openfire restart
- Depois de reiniciar o Openfire, você deverá ver o menu Asterisk-IM no menu do painel do openfire. Clique nele para configurá-lo.
- Em Asterisk-IM > Configurações gerais, certifique-se de que o plugin Asterisk-IM esteja ativado.
Em “Configurar o Phone Manager ”, adicione Asterisk Context, o meu se chama test.Se você já possui contexto configurado em seu servidor Asterisk, adicione-o aqui. Caso você não tenha nenhum contexto, use “test” pois iremos adicioná-lo mais tarde.
Agora é hora de adicionar o Asterisk Server. Isso é feito apenas clicando na opção “Adicionar Servidor” em Configurações gerais. Em seguida, forneça as seguintes informações
- Nome do Servidor: Nome alternativo do seu Servidor Asterisk. Pode ser qualquer nome
- IP do servidor: endereço IP do seu servidor Asterisk
- Porta: Porta de conexão usada para conectar ao Servidor Asterisk, o padrão é 5038
- Nome de usuário: nome de usuário que se conectará ao gerenciador do asterisk. Iremos adicioná-lo ao arquivo Asterisk manager.conf na próxima etapa. Salve as configurações.
- Senha: senha do usuário que será usada para se conectar ao servidor Asterisk PBX.
Veja a captura de tela abaixo para minha configuração. > Vá para o Asterisk Server e adicione o usuário que você especificou na etapa anterior ao arquivo /etc/asterisk/manager.conf .
Inicie seu servidor Asterisk PBX e então:
sudo vim /etc/asterisk/manager.conf
sudo vim /etc/asterisk/manager.conf
Certifique-se de que a seção geral tenha as seguintes opções de configuração.
[general]
enabled = yes
webenabled = yes
port = 5038; This is the Asterisk AMI Port number
httptimeout = 120
bindaddr = 0.0.0.0
allowmultiplelogin = yes
displayconnects = yes
timestampevents = yes
Adicione o usuário especificado na etapa 5 e a senha.
[openfire]
secret =password-that-you'll-set-on-next-step
displayconnects = yes
read = system, call, log, verbose, agent, user, config, DTMF,reporting
write = system, call, agent, user, config, comman, reporting
Adicione o usuário que irá se conectar ao Asterisk Server, vá em Usuários e Grupos e adicione o usuário.
- Nome de usuário: openfire
- Nome: openfire
- Senha: openfire
Reinicie o Asterisk.
sudo service asterisk restart
ou
sudo /etc/init.d/asterisk reload
Vamos criar o contexto “teste” no Asterisk.
sudo vim /etc/asterisk/extensions.conf
Vá até o final do arquivo e adicione as seguintes linhas.
[test]
exten => _XXX,1,Answer
exten => _XXX,n,No0p ( This-is-a-sample-context)
exten => _XXX,n,Dial(SIP/${EXTEN},10,r)
exten => _XXX,n,Hangup
_XXX: É uma correspondência de padrão que significa qualquer ramal com três dígitos.
$ {EXTEN} é uma variável que contém o número do ramal discado.
Adicione usuários SIP a serem mapeados para contas de bate-papo XMPP.
sudo vim /etc/asterisk/sip.conf
Na seção geral adicione a linha:
callevents = yes
Em seguida, adicione as seguintes linhas no final do arquivo.
[101] ; Account name
context=test ; default context for incoming calls
type=friend ;Access type
secret=password ; a secure password for this device
usernam=kim
nat=no ;Disabled NAT for LAN
bindport=5060 ; UDP port for Asterisk
disallow=all ;Disallow all Call Codecs
allow=ulaw
language=en
host=dynamic ;use DHCP to get ip address
qualify=yes
allowguest=no ; disable unauthenticated calls
dtmfmode=auto ; accept touch-tones from the devices, negotiated automatically
[102] ; Account name
context=test ; default context for incoming calls
type=friend ; Access type
secret=password ; a secure password for this device
username=val
nat=no ;Disabled NAT for LAN
bindport=5060 ; UDP port for Asterisk
disallow=all ;Disallow all Call Codecs
allow= ulaw
language=en
host=dynamic ; use DHCP to get ip address
qualify=yes
allowguest=no ; disable unauthenticated calls
dtmfmode=auto ; accept touch-tones from the devices, negotiated automatically
> Agora vamos voltar ao Openfire e adicionar usuários para mapear as contas SIP que adicionamos.
- Nome de usuário: seu nome de usuário
- Nome: Seu nome completo
- E-mail: seu endereço de e-mail
> Em Asterisk-IM >> Mapeamentos de telefone >> Adicionar mapeamento de usuário/telefone Asterisk, especifique:
- * Nome de usuário: josé
- * Dispositivo: SIP/101
- * Extensão: 101
- ID do chamador: José
- Primário: sim
Salve as configurações e você concluiu as configurações com sucesso.
> Antes de começarmos a enviar mensagens para nossos amigos XMPP, precisamos nos conectar a um servidor habilitado para XMPP. Adicione as seguintes configurações ao arquivoxmpp.conf.
sudo vim /etc/asterisk/xmpp.conf
Adicionar :
[asterisk]
type=client
serverhost=192.168.1.105 ; ip addresss of XMPP server(Openfire)
[email
secret=openfire
priority=1
usetls=yes
port=5222
usesasl=yes
status=available
statusmessage="Asterisk Server"
endtodialplan=yes
context=from_xmpp
keepalive=yes
> Para instalar o res_xmpp, precisamos da biblioteca de desenvolvimento iksemel . Se a biblioteca de desenvolvimento OpenSSL estiver instalada, o res_xmpp também a utilizará para conexões seguras.Primeiro, instale as bibliotecas iksemel e OpenSSL.
Para sistemas baseados em Ubuntu e Debian:
sudo apt-get install libiksemel-dev libssl-dev
Para sistemas CentOS 7 e RedHat Bases:
sudo yum install iksemel-devel openssl-devel
Reinicie seu servidor Asterisk e instale res_xmpp conforme abaixo.
> Instalando res_xmpp
Depois de instalar as dependências, você precisa executar ./configure em seu Fonte do asterisco efazer menuselect. Em seguida, acesse o menu Módulos de recursos e certifique-se de que res_xmpp esteja ativado. Depois disso, execute make install para obter os novos módulos.
cd asterisk-source-directory
./configure
make menuselect
Em seguida, acesse o menu Módulos de recursos e certifique-se de que res_xmpp esteja ativado. Depois disso faça a instalação.
make install
Testando.
- Teste para confirmar se os usuários sip foram adicionados com sucesso ao asterisco
$ sudo service asterisk restart
$ asterisk -rvvvvvv
$ sip show peers
- Teste para confirmar se o servidor Asterisk e Openfire XMPP estão se comunicando, no tipo Asterisk CLI:
manager reload
manager show connected
Agora você pode instalar o Sparkweb, que é um cliente de IM baseado na Web de código aberto otimizado para uso por empresas e organizações e cliente de IM Spark. Você poderá receber uma chamada através da conta SIP que adicionamos ao Asterisk.
Em nosso próximo tutorial, falaremos sobre como usar os softphones Zoiper e X-Lite para enviar mensagens instantâneas pelo servidor Openfire XMPP.