Openfire, Asterisk Interagindo Voip com Seus Clientes Internos

Img-303-96x96 Openfire-512

 

 

 

 

O Openfire é um servidor Jabber desenvolvido em Java pela Ignite Realtime,ele passou por inúmeras melhorias, recebendo mais recursos e aprimorando os que já existiam (como a autenticação LDAP e Active Directory, por exemplo).

O Openfire tem uma gama imensa de recursos, um dos mais interessantes é o uso de plugins, que permitem extender as funcionalidades do servidor. Existe quase uma dezena de plugins disponíveis (e outros que já estão em desenvolvimento), no nosso caso usaremos o “SIP Phone Plugin”:

SIP Phone Plugin: Plugin que provê a comunicação dos usuário com contas VOIP.

Não irei aborta a instalação nem configuração dos clientes no Openfire, irei abordar somente a adequação dos clientes para trabalhar com sistema voip com asterisk. Segue abaixo alguns link sobre a instalação do OpenFire:

Instalação: http://www.nisled.org/?tag=openfire
http://www.vivaolinux.com.br/artigo/Servidor-Jabber-com-Openfire-+-MySQL-+-Debian-Lenny

Bom a parte inicial é nosso ambiente de trabalho:
· Linux: Slackware 12.2 – Current Version

ftp://ftp.slackware.no/pub/linux/ISO-images/slackware/Current-ISObuild/
· Libpri
http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.2.8.tar.gz

· Asterisk 1.6.1
http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.1.1.tar.gz
· Asterisk-Addons 1.6.2.0 rc1
http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-1.6.2.0-rc1.tar.gz

· Asterisk-sounds 1.2.1
http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-sounds-1.2.1.tar.gz

· Servidor rodando Openfire devidamente configurado com busca de usuário utilizando OpenLDAP ou Mysql.


Instalação e configuração do Asterisk


O Asterisk é um software PBX que usa o conceito de software livre, criado inicialmente por Mark Spencer, fundador da empresa Digium. Com o Asterisk você pode criar diversas aplicações a um baixo custo, com a mesma, se não superioridade de muitos PABX encontrados hoje no mercado de telecomunicações.
Entenda que o Asterisk é muito mais que um PABX padrão. Com o Asterisk em sua rede, você cria novas aplicações em telefônia.

Algumas como:

· URA (Unidade de Resposta Audível);
· Filas de chamadas para Call Centers e outras atividades;
· VoiceMail;
· Atendimento Programado;
· Servidor de Fax;
· Conferência;
· VideoConferência;
· Bilhetagem detalhada;
· Planos de chamadas (DialPlain);
· CRM
· e muitos outros…

Instalando o Asterisk


Após o download dos pacotes vamos compactá-los, o primeiro que iremos instalar será o libpri depois o asterisk:
-LibPri
root@host# tar -zxvf libpri-1.2.8.tar.gz
root@host# cd libpri-1.2.8
root@host# make && mak install
-Asterisk
root@host# tar –zxvf asterisk-1.6.1.1.tar.gz
root@host# cd asterisk-1.6.1.1
root@host# ./configure –prefix=/usr –sysconfdir=/etc —
localstatedir=/var –mandir=/usr/man
root@host# make && make install
root@host# make samples && make progdocs
-Addons
root@host# tar -zxvf asterisk-addons-1.6.2.0-rc1.tar.gz
root@host# cd asterisk-addons-1.6.2.0-rc1
root@host# ./configure –prefix=/usr –sysconfdir=/etc —
localstatedir=/var –mandir=/usr/man
root@host# make && make install
-Souns
root@host# tar -zxvf asterisk-sounds-1.2.1.tar.gz
root@host# cd asterisk-sounds-1.2.1
root@host# make install

Script de incialização:

#========================================================================
#!/bin/sh
#
# Start/stop/restart Asterisk PBX
asterisk_start() {
if [ -x /usr/sbin/asterisk ]; then
VERSION=`/usr/sbin/asterisk -rx ‘core show version’`

if [ “`echo $VERSION | cut -c 1-8`” = “Asterisk” ]; then
echo “Asterisk está em funcionamento. $0 saindo agora.”
exit 1
fi

echo “Starting Asterisk /usr/sbin/asterisk”
/usr/sbin/asterisk
fi
}
asterisk_stop() {
if [ -r /var/run/asterisk.pid ]; then
killall asterisk
fi
}

asterisk_restart() {
asterisk_stop
asterisk_start
}

case “$1” in
‘start’)
asterisk_start
;;

‘stop’)
asterisk_stop
;;
‘restart’)
asterisk_restart
;;
*)

echo “usage $0 start|stop|restart” ;;
esac
#========================================================================

Salve com o nome de rc.asterisk, dê permissão de execução e copie para
o diretório no diretório /etc/rc.d, e podemos inicializá-lo pela primeira vez:
root@host# chmod +x rc.asterisk
root@host# mv rc.asterisk /etc/rc.d
root@host# /etc/rc.d/rc.asterisk start


root#host# asterisk –vvvrcg
Asterisk 1.6.1.1, Copyright (C) 1999 – 2008 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ fordetails.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type ‘core show license’ for details.
=========================================================================
== Parsing ‘/etc/asterisk/asterisk.conf’: == Found
== Parsing ‘/etc/asterisk/extconfig.conf’: == Found
Connected to Asterisk 1.6.1.1 currently running on chat (pid = 23082)
Verbosity is at least 5
— Remote UNIX connection

Pronto asterisk funcionado agora vamos fazer a configurações das contas voip, dentro de /etc/asterisk encontram-se os arquivos de configuração.
O arquivo de configuração SIP – extensions.conf
O arquivo extensions.conf é o responsável por criar as extensões ou ramais, nele criamos também caminhos genéricos como XXX para cada X um dígito, onde podemos usar a imaginação para solucionar as questões que precisamos.
No extensions.conf criamos grupos de chamadas locais no qual podemos incluir outros grupos e criar os ramais dentro dele. Abaixo temos um exemplo de configuração do grupo de chamada ‘grupo1’ que inclui os ramais do grupo ‘demo’ e contém os seguintes ramais. Os comentários deste arquivo são precedidos de ” ; “.
Veja que no contexto [interno] incluímos o contexto [demo] e criamos
dois ramais (1000,1001).
[interno]
include => demo
; Configuração do SIP
exten => 1000,1,Dial(SIP/1000,25)
#; SIP-É o tipo da conta / 1000 / 25-O tempo que vai
chamar em segundos.
exten => 1000,2,Hangup
exten => 1001,1,Dial(SIP/1001,25)
exten => 1001,2,Hangup

O arquivo de configuração SIP – sip.conf
O arquivo sip.conf armazena informações sobre contas de usuários de protocolo SIP as informações são simples como nome de usuário, bina, senha e qual grupo participam.
No exemplo abaixo estamos criando os usuários que receberam um número no extensions.conf.
[general] ; configurações básicas do protocolo
context=default ; Context padrão para recebimento de chamadas
bindport=5060 ; Porta UDP (A padrão é 5060)
bindaddr=0.0.0.0; Endereço IP para escutar (0.0.0.0 Escuta todas
interfaces)
;Codec
allow=ulaw
allow=alaw
allow=g729
allow=ilbc
allow=h263
allow=h263p
language=pt_BR ;Lingua padão
videosupport=Yes; Suporte a video
textsupport=Yes; Suporte a texto
################################################
# * Friend = Efetua e recebe ligações;
# * Peer = Apenas faz ligações;
# * User = Apenas recebe ligações.
################################################
[1000]
type=friend ; tipo friend=faz e recebe chamadas, user=faz chamadas,
peer=recebe chamadas.
callerid = “ADMIN” <1000>
username=1000 ;Nome do usuário para login
secret=123 ; Senha
host= dynamic ; se não tem ip fixo
nat=yes ; se está debaixo de nat
canreinvite=no ; no para não encaminhar chamadas
context=interno ; Context padrão para recebimento de chamadas
qualify=yes ; verifica se o host está respondendo (está a menos de 20ms)
allow=all
[1001]
type=friend
callerid = “Diego” <1001>
username=1001
secret=123
host= dynamic
nat=yes
canreinvite=no
context=interno
qualify=yes
allow=all

Após as alterações reinicie o asterisk e vamos verificar as contas:
root@host# /etc.rc.d/rc.asterisk restart
root@host# asterisk –vvvvrcg
chat*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
1000/1000 201.91.215.132 D N 5061 OK (166 ms)
1001/1001 201.91.215.132 D N 61836 OK (134 ms)

Bom essa contas já estão conectadas e respondendo ao ping do asterisk, eu as autentiquei em um softphone e estão em perfeito funcionamento agora vamos vinculá-las e cotas de usuários do OpenFire. Com o Openfire abeto vá a guia Plugins e Plugins Disponiveis e instale
o plugin “SIP Phone Plugin”:

Sipphone

Depois de instalado vamos a guia Servidor, Telefone, Ajustar SIP:

Sip_config

Aqui é onde faremos as configurações do servidor Sip Asterisk que configuramos colocarmos o IP ou hostname do servidor se ele tiver correio de voz colocaremos o IP dele novamente se terá suporte a STUN, IP do servidor STUN e sua porta, depois é só clicar em “Atualizar
Configurações”.

O que é um servidor STUN?

O STUN (Simple Traversal of User Datagram Protocol [UDP], por meio da Network Address Translators [NATs]), é um servidor que permite que clientes NAT (ex.: computadores protegidos por firewall) realizem chamadas telefônicas a um provedor VoIP que se encontre fora da rede local.

O servidor STUN permite que os clientes descubram seu endereço público, o tipo de NAT utilizado, e o lado da porta da Internet associada à NAT com uma porta local específica. Essas informações são usadas para permitir a comunicação UDP entre o cliente e o provedor VoIP, e então, estabelecer a chamada. O protocolo STUN é definido pela RFC 3489.

O servidor STUN está ligado à porta UDP 3478. No entanto, o servidor irá sugerir aos clientes que realizem testes em IPs e números de portas alternativos (os servidores STUN têm dois endereços IP). O RFC determina que tanto portas como IPs podem ser usados (de acordo com a preferência do cliente).
Fonte: http://www.3cx.com.br/voip-sip/stun-server.php
Depois de configurado o servidor vamos veicular nossa contas de usuários aos números voip, vá à guia “Mapeamento de Telefones SIP”, logo abaixo terá “Add new Phone Mapping”, para adicionarmos a primeira conta vamos supor que temos cadastrados os usuário:“admin e diego”, vamos adiciona uma conta para cada um.

Conta1

Conta2

No usuário “XMMP username” é onde colocarmos o login do cliente, “SIP username” é a conta VOIP, “Nome de Autenticação” é o login para autenticar no SIP, “Mostra Nome” é um nome de apresentação só, “Senha” a senha definida no SIP Server, os outros atributos já são colocados por Default, pois já foram configurados “Ajustes SIP”.

Mapas

Agora iremos configurar o cliente para utilizar o serviço, iremos utilizar o “SPARK”, podemos baixar o spark em http://www.igniterealtime.org&#8221;, depois de instalado o cliente iremos
configurar a conta do cliente:

Spark1

Spark2

Agora iremos instalar o plugin “Phone Client”, vá a guia “Spark-> Plugins -> Plugins Disponíveis”, ele irá buscar todos os plugins disponíveis, instale o “Phone Client”, feche e abra o programa.

Spark3

Configure a outra conta em outra maquina e podemos fazer um teste de discagem digite o ramal “1001” e aperte “ENTER”. Pronto está funcionando.

Fontes interessantes de Pesquisa:
http://www.fug.com.br/content/view/101/9/1/1/
http://www.fug.com.br/content/view/112/9/
http://www.3cx.com.br/voip-sip/stun-server.php
http://www.asterisk.org
http://www.vivaolinux.com.br/artigo/Asterisk-O-PBX-de-codigoaberto/?pagina=1

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s