• RSS
  • Facebook
  • Twitter
  • Linkedin

Asterisk com Snep no Slackware 64bits

A tempos venho comentando sobre Asterisk e Snep aqui no meu blog, hoje vou descrever aqui toda minha jornada com a ferramenta, que está pronta para a migração e entrar em produção aqui na empresa.
Quando cheguei aqui, já existia um Asterisk em funcionamento, e eu entendia nada, absolutamente nada de Asterisk e VOIP, comprei um livro que citei em um comentário em outro post, é o Asterisk na Prática da Novatec http://novatec.com.br/livros/asterisk/, e dei uma lida no mesmo para poder entender para poder da suporte e manutenção no servidor.
Porém eu achei melhor implementar um novo servidor, já que aqui na empresa eu comecei a migrar vários serviços para novas estruturas, e a central telefônica poderia entrar na folia também.

Quando eu fui no FISL 2010, eu conheci a ferramenta SNEP Livre, onde depois de ler um bocado e fazer uns testes foi a escolhida para ser adotada para ser usada na empresa. A idea que tive aqui para empresa e minimizar o máximo possível de servidores customizados, com a intenção de que se um dia eu deixar a empresa por algum motivo o próximo profissional que assumir terá em mãos ferramentas conhecidas e não terá dificuldade de adotar e manter a estrutura. Então usar um produto pronto e com um bom suporte da comunidade tinha mais vantagem do que usar um servidor customizado meu, que na maioria dos casos dificilmente seria adotado por alguém.

Vamos agora para o processo de criação do servidor.

Atualmente (hoje) temos um servidor:
Linux Debian 4.0, Kernel 2.6.27.10 32bits
CPU: Pentium 4 Dual Core de 3GHZ
Memória: 2GB RAM
HD: 160GB
E ainda tinha duas placas E1, uma para receber um Ramal do Hospital e o outro o Tronco Digital.

O novo servidor era composto de:
Linux Slackware 13.1, Kernel 2.6.33.4 64bits
CPU: Intel Core i3  2.93GHz
Memória: 4GB RAM
HD: 500GB
Neste servidor não tem placa E1, pois agora vamos usar um circuito VOX IP (SIP) da GVT, no caso ele tem duas placas Ehternet.

A Missão é:
– Montar um servidor Linux atualizado
– Instalar o Asterisk e o Snep
– Migrar as regras de negocio do servidor antigo para a nova interface

Valendo lembrar que, o Snep já vem em uma distribuição personalizada, basta baixar a ISO e instalar e tudo já está funcionando. Ele também tem a versão .deb para quem já tem um Debian rodando e gostaria de implementar a solução. E claro a versão .tar.gz para quem gosta de desafios e controle total da situação.
No próprio site do SNEP possui tutorial de como instalar no Debian e no Slackware

Debian http://docs.sneplivre.com.br/wiki/Instalacao_ambiente_debian
Slackware http://docs.sneplivre.com.br/wiki/Instalacao_ambiente_slackware

A minha instalação é parecida com a do Slackware, porem eu mudei algumas coisas, como tirar o uso de ODBC e a instalação do drive DAHDI para poder usar o meetme.

Vamos a todos os passos, primeiro vou supor que igual a mim você pegou um servidor do zero sem SO e vai instalar agora.
1] Instale o Slackware no servidor, escolha todos os pacotes menos o KDE, instale o servidor X, pois as libs dele são utilizadas pelo PHP, eu prefiro sempre instalar as libs depois separado para deixar o servidor mais limpo, mas vai de gosto se não tem experiência com isso instale tudo.

2] Depois de instalar e iniciar o Slackware, configure a rede do Linux e teste se ele está com acesso a internet com simples teste de ping www.google.com.br

3] Com o Linux instalado e com acesso a internet vamos atualiza-lo:
Escolher o Mirror de atualização
root@voip-snep:# vi /etc/slackpg/mirror
(escolha o # Brasil, 150Mbit ftp://ftp.slackware-brasil.com.br/slackware64-13.1/, basta remover o comentário do servidor e salvar)
root@voip-snep:# slackpkg update
root@voip-snep:# slackpkg upgrade-all

4] Com tudo atualizado entre na pasta /usr/src
root@voip-snep:# cd /usr/src

Agora vamos fazer o download dos softwares que vamos utilizar, utilize o WGET para isto
root@voip-snep:# wget url (veja as url abaixo)

Dahdi Drivers & Tools http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.3.0.1+2.3.0.tar.gz
Asterisk Slackbuild http://slackbuilds.org/slackbuilds/13.1/network/asterisk.tar.gz
Asterisk 1.6.2.11 http://www.asterisk.org/downloads/asterisk/releases/asterisk-1.6.2-current.tar.gz
Asterisk Addons http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.6.2.1.tar.gz
Asterisk Sounds pt_BR http://downloads.sourceforge.net/project/disc-os/Disc-OS%20Sounds/1.0-RELEASE/Disc-OS-Sounds-1.0-pt_BR.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fsettings%2Fmirror_choices%3Fprojectname%3Ddisc-os%26filename%3DDisc-OS%2520Sounds%2F1.0-RELEASE%2FDisc-OS-Sounds-1.0-pt_BR.tar.gz&ts=1282057317&mirror=ufpr
phpMyAdmin http://ufpr.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.5/phpMyAdmin-3.3.5-all-languages.tar.gz
Snep Livre http://ufpr.dl.sourceforge.net/project/snep/snep/stable/snep-1.2.0.tar.bz2

5] Compilar o DAHDI
Está parte segue o basico
root@voip-snep:# cd /usr/src

root@voip-snep:# tar xvf dahdi-linux-complete-2.3.0.1+2.3.0.tar.gz
root@voip-snep:#
cd dahdi-linux-complete-2.3.0.1+2.3.0
root@voip-snep:# make all
root@voip-snep:# make install
root@voip-snep:#
modprobe dahdi

6] Compilar Asterisk e os addons
root@voip-snep:# cd /usr/src
root@voip-snep:# tar xvf asterisk.tar.gz
root@voip-snep:# mv asterisk-1.6.2-current.tar.gz asterisk
root@voip-snep:# cd asterisk
root@voip-snep:# sh asterisk.Slackbuild
root@voip-snep:# installpkg /tmp/asterisk-1.6.2.11-x86_64-1_SBo.tgz

Addons
root@voip-snep:# ln -s /usr/lib64/asterisk/ /usr/lib/asterisk
root@voip-snep:# tar xvf asterisk-addons-1.6.2.1.tar.gz
root@voip-snep:#cd asterisk-addons-1.6.2.1
root@voip-snep:# ./configure
root@voip-snep:# make
root@voip-snep:# make install
root@voip-snep:# make samples

7] Configurar Apache, PHP e MySQL
MySQL
root@voip-snep:# mysql_install_db
root@voip-snep:# chown -R mysql.mysql /var/lib/mysql
root@voip-snep:# chmod +x /etc/rc.d/rc.mysqld
root@voip-snep:# /etc/rc.d/rc.mysqld start
root@voip-snep:# mysqladmin -u root password ESCOLHASUASENHA
root@voip-snep:# mysql_secure_installation

Apache e PHP
root@voip-snep:# vi /etc/httpd/httpd.conf
– Procure a linha #Include /etc/httpd/mod_php.conf e tire o # da frente
– Procure por:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
– E mude para
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
– Saia e salve :wq!
root@voip-snep:# vi /etc/httpd/php.ini
– Procure por register_globals Off, e mude para On
– Procure por register_argv_argc Off, e mude para On
* Eu não gosto de usar register_globals On, pore o código do SNEP ainda precisa de uma melhora para poder desligar o Globals.
– Saia e salve :wq!

root@voip-snep:# echo “<?php phpinfo(); ?>” > /var/www/htdocs/info.php
root@voip-snep:# chmod +x /etc/rc.d/rc.httpd
root@voip-snep:# apachectl start
(ou restart)
root@voip-snep:# lynx localhost
(para testar se ta tudo ok com o apache e o php)

8] Instalar pypMyAdmin
root@voip-snep:# cd /usr/src
root@voip-snep:# tar xvf phpMyAdmin-3.3.5-all-languages.zip
root@voip-snep:# cd phpMyAdmin-3.3.5-rc1-all-languages
root@voip-snep:# cp config.sample.inc.php config.inc.php
root@voip-snep:# vi config.inc.php

– Procure por $cfg[‘blowfish_secret’] = ; e mude para $cfg[‘blowfish_secret’] = ‘SnepLivre’;
root@voip-snep:# cp -a phpMyAdmin-3.3.5-rc1-all-languages /var/www/htdocs/myadmin

9] Instalar e configurar o Snep
Agora vem a parte mais interessante.
root@voip-snep:# cd /usr/src
root@voip-snep:# tar xvf snep-1.2.0.tar.bz2
root@voip-snep:# cp -a snep-1.2.0 /var/www/htdocs/snep
root@voip-snep:# ln -s /var/www/htdocs/snep/ /var/www/snep
root@voip-snep:# cd /var/www/snep/install/etc
root@voip-snep:# cp -arf asterisk /etc

Nesta parte na instalação padrao do snep iriamos passar as configurações de ODBC para o asterisk, porem nesta instalação eu não uso ODBC pois meu asterisk já conecta diretamente no MySQL através do Asterisk-Addons.

root@voip-snep:# cd /etc/asterisk
root@voip-snep:# rm cdr_odbc.conf res_odbc.conf
root@voip-snep:# vi cdr_mysql.conf

[global]
hostname=localhost
dbname=snep25
table=cdr
password=sneppass
user=snep
port=3306
sock=/var/run/mysql/mysql.sock

root@voip-snep:# vi res_mysql.conf
[general]
dbhost = localhost
dbname = snep25
dbuser = snep
dbpass = sneppass
dbport = 3306
dbsock = /var/run/mysql/mysql.sock

10] Finalizando
root@voip-snep:# chmod +x /etc/rc.d/rc.asterisk
root@voip-snep:# /etc/rc.d/rc.asterisk start

Agora acesse pelo navegador http://IPDOSERVIDORDOSNEP/snep
Login: admin
Senha: admin123

Bom eu escrevi este tutorial muito tempo depois de ter instalado o servidor, não tenho 100% de certeza que os passos estão certos, mas vocês podem olhar pelo tutorial no site do snep caso falte algo e etc. Eu fiz umas modificações na tela inicial do snep pois ele não estava mostrando os campos certos, creio eu por causa de um problema com a versão do asterisk 1.4 para o 1.6, especificamente no arquivo database_show.php, na função ramalInfo, se você manja um pouco de php vai saber o que deve alterar. Pois eu nem lembro mais :D.

Recomendo muito você se cadastrar na comunidade do SNEP LIVRE, tem muito conteúdo bom lá, eu mesmo já fiz dezenas de perguntas e boa parte delas respondidas, e sua duvida pode ter sido a minha. http://www.sneplivre.com.br/index.php?option=com_kunena&Itemid=5

Bom próximo post vou passar como configurar o MONAST (Asterisk Monitor).

8 Responses so far.

  1. bjao says:

    MSIE 8.0 Windows 7

    Entendo disso nao rs
    mas li tudo hauhauhauha
    bjaooo

  2. Thiago Melo says:

    Firefox 3.6.11 Windows 7

    Hahahaha, vlw Taia, mas e muito interessante e algum dia vc vai esbarrar com isso.

  3. PuroOsso says:

    Firefox 3.5.2 Linux

    Thiago, parabéns pela iniciativa!
    Dá uma olhada na instrução de número 3, nas seguintes linhas:

    root@voip-snep:# vi /etc/slackpg/mirror
    root@voip-snep:# slackpgk update
    root@voip-snep:# slackpgk upgrade-all

    O comando slackpkg tem erros de sintaxe.

    Abraço!

  4. Thiago Melo says:

    Firefox 3.6.8 Linux

    Opa vlw puroOsso, “escrevinhei erradiu”! vou corrigir.

    • Thiago Melo says:

      Firefox 3.6.8 Linux

      Outro detalhe que encontrei

      no cdr_mysql.conf tem uma linha

      alias callerid => clid

      comente ela deixando assim
      ;alias callerid => clid

      pois o asterisk 1.6.2 ja usa clid como campo e nao precisa de alias

  5. Firefox 3.6.13 Windows 7

    Ficou perfeito esse passo a passo, fora isso, quem não entenderia a situação do ODBC junto a inteface WEB vs DB passa a ver um caminho diferente, que tenho certeza que nem o pessoal da Opens já havia pensado. Parabéns amigão, ficou Show.

  6. Thiago says:

    Chrome 17.0.963.56 Windows 7

    Thiago me passa seus contatos estou precisando de uma ajuda com um servidor Asterisk $$

  7. Thiago Xavier says:

    Chrome 21.0.1180.89 Windows 7

    Thiago me passe seus telefones para conversarmos $$ manda email para thiago.xavier@flexnetsolutions.com.br ou add no msn thiago.xavier@hotmail.com


pfSense 2.0 e...

Ano passado eu tentei me aventurar a configurar um servidor ...

GVT TV ...

A GVT está lançando seu novo produto, Televisão por Assinatura ...

Novo Blog, quem...

Hoje resolvi voltar a postar no blog, aproveitei para trocar ...

FlashPlayer no Snep,...

Esses dias pediram para eu ouvir umas ligações, e era ...

VMware vCenter Converter...

Esses dias chegou um servidor novo aqui na empresa, um ...

Ultimo post de...

Bom esta semana final de 2010 eu estava aqui de ...

Migração do Voip...

Bom quando terminou a migração eu fiquei direto na empresa ...

Asterisk com Snep...

A tempos venho comentando sobre Asterisk e Snep aqui no ...

Implementações na Radiologia

Estou fazendo implementações de novos sistemas na Radiologia, o primeiro ...

FISL 11 –...

Opa dia 2 do FISL foi ontem lol. Mas não ...