Professional Documents
Culture Documents
O Asterisk um poderoso software de PBX (central telefnica), free, que possibilita realizar inter-
conexes entre o mundo analgico, digital e possibilita aplicaes e recursos que quando vistos
em outras centrais telefnicas, so de grande porte.
Instalao de dependncias
O primeiro passo, em qualquer instalao de servidor a meu ver, garantir que todos os pacotes bsicos
estejam devidamente atualizado.
apt-get update;
apt-get upgrade;
Na sequncia vamos instalar os pacotes bsicos para possibilitar a compilao e a gerncia do dispositivo.
Enquanto o comando abaixo estiver sendo executado aproveite para buscar um caf ou ler outros artigos
aqui do blog pois o comando abaixo ir gastar alguns minutos.
apt-get install vim openssh-server openssh-client linux-headers-`uname -r` gcc g++ libgtk2.0-dev
libnewt-dev libxml2-dev libncurses5-dev subversion bison libssl-dev openssl libusb-dev libc6-dev
minizip zlib1g-dev snmp libsnmp-dev snmpd build-essential mysql-common libmysqlclient18
libmysqlclient-dev libcurl4-openssl-dev uuid-dev libjansson-dev sqlite3 libsqlite3-dev logrotate
Na sequncia vamos instalar o MySQL, que ser utilizado para o armazenamento do log de gravaes te-
lefnicas (CDR -Call Detail Records). Neste passo ser solicitada a senha de root do MySQL, escolha sua
senha e anote para utilizaes futuras.
apt-get -y install mysql-server mysql-client
A compilao do Asterisk deve ser feita em uma ordem especfica, pois os mdulos so interdependentes,
ou seja, a compilao de um mdulo interfere diretamente na compilao do outro. Por exemplo, caso
seja compilado o mdulo Asterisk antes do Libpri, a compilao do asterisk no reconhecer as funes
habilitadas pelo pacote libpri.
Desta forma para a correta compilao dos mdulos do Asterisk, siga os passos abaixo:
DAHDI
cd /usr/src/dahdi-linux-2.11.1/
make clean
make
make install
cd /usr/src/dahdi-tools-2.11.1/
./configure
make
make install
#No executar o make config
#Caso execute o make config, remova com os comandos update-rc.d -f dahdi remove e rm -rf
/etc/init.d/dahdi
LibPRI
cd /usr/src/libpri-1.6.0/
make clean
make
make install
Asterisk
cd /usr/src/asterisk-13-current/
make clean
./configure
make menuselect
# Verifique se os mdulos cdr_mysql esta selecionado em Add-Ons
# Verifique se o mdulo res_snmp esta selecionado em Resource Modules
# Verifique se o mdulo func_curl esta selecionado em Dialplan Functions
make
make install
make config
make install-logrotate
Caso essa seja a primeira instalao neste servidor pode ser executado o comando abaixo para gerar os
arquivos exemplos de configurao. Caso j tenha os arquivos neste servidor ou em um backup, no re-
comendado realizar este passo, pois ao execut-lo todos os arquivos de configurao sero substitudos
pelo padro do sistema.
make samples
Configurando CDR no MySQL
Crie um arquivo /tmp/cdr.sql com o seguinte contedo
use asteriskcdrdb;
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
--
[general]
enable=yes
unanswered=no
[global]
hostname = localhost
dbname = asteriskcdrdb
table=cdr
user = asteriskcdr
password = 123456
port = 3306
[columns]
alias start => calldatestart
alias end => calldateend
alias answer => calldateanswer
alias callerid => clid
alias src => src
alias dst => dst
alias dcontext => dcontext
alias channel => channel
alias dstchannel => dstchannel
alias lastapp => lastapp
alias lastdata => lastdata
alias duration => duration
alias billsec => billsec
alias disposition => disposition
alias amaflags => amaflags
alias accountcode => accountcode
alias userfield => userfield
alias uniqueid => uniqueid
Reinicie o asterisk
Para verificar o status da gravao do CDR utilize os comando cdr mysql status
Altere o seu arquivo sip.conf, iax.conf entre outros alterando a language para pt_BR conforme
demonstrado abaixo: language=pt_BR
Iniciar o sistema
Adicione este comando no arquivo /etc/rc.d/rc.local para que ele inicie o asterisk junto com o
sistema GNU/Linux.
# vi /etc/rc.d/rc.local
V at o final do arquivo inclua a seguinte linha:
asterisk &
Criar Ramal
# vi /etc/asterisk/iax.conf
OBS1: A opo "dynamic" serve para o ramal ser acessado por qualquer host (inclusive fora da
rede), voc pode definir o endereo IP para limitar apenas um determinado host a acessar este
ramal.
OBS3: No campo "context", adiciona-se a qual "classe de ramal" o ramal pertence, por exemplo,
define um contexto chamado "DDD" onde o ramal pode fazer ligaes DDD e outro Local onde o
ramal s faz ligaes locais. Em nosso caso usamos o contexto "interno" que ser criado
posteriormente e que realizar apenas ligaes entre os ramais cadastrados no nosso servidor
voip Asterisk.
Para criar um ramal com o protocolo SIP, procederemos da seguinte forma.
O arquivo que editamos para incluir ramais SIP o /etc/asterisk/sip.conf. Para edit-lo:
# vi /etc/asterisk/sip.conf
Por uma questo de organizao, conveniente que haja escopos para IAX e SIP
Para podermos efetuar qualquer tipo de ligao atravs o Asterisk, precisamos criar os planos de
discagem (que so conhecidos pelo asterisk como contextos). Para criarmos o plano de discagem
que chamamos anteriormente de "interno", vamos adicion-lo ao final do arquivo
extensions.conf.
OBS1: Aceita as chamadas iniciadas pelo dgito 2 e que contenham mais dois dgitos, por
exemplo 200, e executa atravs da funo "Dial" uma chamada para o protocolo SIP com o ramal
digitado no softphone que vem contido na varivel "${EXTEN}".
OBS2: Aps o termino da chamada, o asterisk executa a funo Hangup, ou seja, termina a
ligao lgica no sistema.
OBS3: Aceita as chamadas iniciadas pelo dgito 3 e que contenha mais dois dgitos, por exemplo
300, e executa atravs da funo "Dial" uma chamada para o protocolo IAX com o ramal digitado
no softphone que vem contido na varivel "${EXTEN}".
importante ressaltar que criamos aqui no contexto "interno" o plano de discagem que efetua
ligao para ramais IAX e SIP atravs de regras diferentes, mas que fica "transparente" para o
usurio, podendo, a partir de qualquer softphone (SIP ou IAX), realizar chamadas para qualquer
ramal cadastrado no sistema, seja ele SIP ou IAX.
# asterisk -r -x reload
Para realizar as chamadas basta discar no teclado do prprio softphone ou do teclado numrico
em seu teclado e teclar enter para efetuar a chamada (lembrando que seguindo este tutorial
voc poder realizar apenas ligaes entre os ramais).
cd /usr/src
svn co http://svn.digium.com/svn/asterisk-gui/trunk asterisk-gui
cd asterisk-gui
./configure
make && make install && make samples
vi /etc/asterisk/http.conf
[general]
enabled=yes
enablestatic=yes
httptimeout = 60
bindaddr=IP do servidor asterisk
bindport=8088
vi /etc/asterisk/manager.conf
[general]
enabled = yes
webenabled = yes
bindaddr=IP do servidor asterisk
[usuario]
secret = senha
read = system,call,log,verbose,command,agent,config,read,write,originate
write = system,call,log,verbose,command,agent,config,read,write,originate
# /etc/init.d/asterisk reload
Caso esteja utilizando um firewall, precisamos abrir as portas 5038 TCP e 8088 TCP.
# nano /etc/sysconfig/iptables
# Asterisk Manager
-A INPUT -p tcp --dport 5038 -j ACCEPT
# Asterisk http
-A INPUT -p tcp --dport 8088 -j ACCEPT
Salvamos as mudanas e reiniciaremos o firewall:
# service iptables restart
# make checkconfig
http://localhost:8088/static/config/cfgbasic.html