sábado, 20 de março de 2010

[Astmanproxy] Instalando e configurando

Pra quem não conhece o Astmanproxy é literalmente um proxy entre suas requisições e o manager do asterisk: Asterisk Manager Proxy. Ao invés de você ficar efetuando logon na console e pedindo as coisas, o Astmanproxy faz isso por você. O que muda? Só existe uma vez que é feita o login e é exatamente na hora que o Astmanproxy inicia, ou seja, você carrega bem menos o servidor.

Agora vamos ao que interessa.

Primeiro temos que baixar os fontes dele, para isso precisagemos do git, caso não tenha instalado você pode baixa-lo aqui: http://git-scm.com/download. Caso utilize o Debian, você pode usar o comando:
apt-get install git-core

Baixando os fontes:
git-clone git://github.com/davetroy/astmanproxy.git
Instalando:
Após o download dos fontes ele vai criar uma pasta chamada astmanproxy.
cd astmanproxy
sudo make
sudo make install

Configurando:
Edite o arquivo astmanproxy.conf que se encontra na pasta /etc/asterisk.
sudo vim /etc/asterisk/astmanproxy.conf
altere a linha host para as configurações de seu servidor Asterisk.
host = ip_addr, port, user, secret, events, use_ssl
 ip_addr = ip do servidor
port = porta do servidor
user = usuário de conexão na console
secret = senha do usuário de conexão na console
events = retornar os eventos da console
use_ssl = efetuar logon usando ssl

Recomendo a alteração da linha listenaddress para somente loopback ou endereço reservado por questões de segurança.
Nas linhas proc_user e proc_group você coloca o usuário e o grupo que iniciará o serviço do astmanproxy.
proc_user = astmanproxy
proc_group = astmanproxy
Por último sobrou as linhas inputformat e outputformat onde você diz para o astmanproxy como você quer enviar e receber os dados. Particularmente eu uso da forma abaixo por ser mais fácil tratar as informações.
inputformat = http
outputformat = xml

Iniciando o serviço:
Para iniciar o serviço basta digitar astmanproxy na console como root, caso esteja apresentando algum erro e não esteja iniciando, você pode iniciá-lo com a opção -d para ver o debug.

Bônus:
Eu fiz o script abaixo para ajudar na inicialização do astmanproxy, basta copiá-lo e salvá-lo em /etc/init.d/. Para iniciar e parar o serviço basta usar /etc/init.d/astmanproxy stop ou start.
#!/bin/bash
########################################
#      Astmanproxy 1.22pre081119       #
########################################

case $1 in
start)
asterisk=`pidof asterisk`
if [ $asterisk ]
then
/usr/local/sbin/astmanproxy
echo "Astmanproxy Started"
else
echo "Error: Asterisk Service is not started."
fi
;;
stop)
kill -9 `pidof /usr/local/sbin/astmanproxy`
;;
*)
echo "Must be $0 (start|stop)"
;;
esac

Basicamente é isso, qualquer dúvida é só comentar aí que eu faço o máximo pra ajudar quem pede ajuda.
Bom fim de semana à todos.

2 comentários:

Anônimo disse...

Ola, desculpe minha ignorância, mas não entendi muito bem para que server o astmanproxy, seria um concentrador onde teria vários servidores asterisk, e por exemplo no meu softphone colocaria o ip do servidor do Astman, ai ele faria a autenticação em dos servidores asterisk? Obrigado.

kuroneko disse...

Não sei se você conheçe o manager do Asterisk, mas o astmanproxy é justamente um proxy pra ele... o manager apenas serve para gerenciar seu servidor asterisk, não para fazer proxy das conexões SIP.