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":
Depois de instalado vamos a guia Servidor, Telefone, Ajustar SIP:
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.
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".
Agora iremos configurar o cliente para utilizar o serviço, iremos utilizar o "SPARK", podemos baixar o spark em "http://www.igniterealtime.org", depois de instalado o cliente iremos
configurar a conta do cliente:
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.
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
55 comentários
Enviar um comentárioA comunicação VOIP não funcionou
sip
agora como adiciona mais ramais alem desse dois
sip
agora como adiciona mais ramais alem desse dois
sip
agora como adiciona mais ramais alem desse dois
VOIP