Pesquisa de site

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

  1. Servidor Asterisk PBX instalado
  2. Servidor Openfire XMPP instalado
  3. Asterisk e Openfire conectados em rede para que ambos possam se comunicar com sucesso.
  4. Conhecimento básico de Linux e edição de arquivos
  5. 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.

Artigos relacionados: