terça-feira, 2 de fevereiro de 2016

Montando um Mini servidor VOIP em casa

Montando um Mini servidor VOIP em casa

Esterei neste descrevendo passo a passo como montar um “mini” servidor VOIP em casa utilizando o Virtual Box e Elastix, tentarei ser o mais detalhista possível com intuito de atingir tanto usuários com conhecimento mais avançado quanto usuários com conhecimento de nível mais básico.

Voip é uma tecnologia que possibilita a comunicação de voz sobre IP, com um servidor deste tipo é possível a comunicação com qualquer pessoa do mundo conectada a internet utilizando ramais privados de forma gratuita (tirando o custo que já se tem com a conexão de internet)

O que é Elastix? o projeto oficial você pode acessar nesta página:

http://www.elastix.org/

Elastix é uma distro Linux baseada no Centos que vem configurada com o asterisk e vários outros programas de forma que ao instalar você tem uma central VOIP completa.

Quando descrevemos este artigo como “mini” servidor é devido a estrutura, mas nada impede a implantação do projeto em uma maquina de produção com recursos de hardware e rede mais robustos.

Mãos a obra

1- Baixando o Elastix

O Primeiro passo é baixar a imagem do sistema em:

http://www.elastix.org/index.php/en/downloads/main-distro.html

A versão utilizada neste artigo é 2.2.0, lembrando que existe a opção de 32 ou 64 bits, então como este artigo descreverá a instalação em uma máquina virtual verifique o sistema hospedeiro antes de baixar, não adianta tentar criar uma máquina virtual de 64 em um sistema de 32 porque não vai funcionar.

2- Baixando o VirtualBox

Obtenha o VirtualBox em :

https://www.virtualbox.org/wiki/Downloads

Lembrando que para usuário Linux é sempre melhor instalar pelos repositórios oficiais da distro.

3- Criando a máquina virtual

Esta parte pode não ser novidade para muitos usuários, mas como citei anteriormente este artigo é voltado para também para usuários com menor conhecimento.

Depois de instalado o virtual box

Abra o VirtualBox e clique em “novo” no canto superior esquerdo.




Depois selecione conforme na imagem abaixo:




Nome: Elastix (pode ser de sua escolha)

Tipo : Linux

Versão : other Linux

Clique em “próximo”, e a próxima tela será para a escolha do tamanho da memória utilizada na máquina virtual, o VirtualBox estipula um limite como podemos ver na imagem abaixo, o mínimo requerido é de 128mb.

Neste exemplo vou usar 640mb.



Clique em “próximo” e escolheremos o tipo de disco a utilizar, iremos criar um novo disco, conforme na imagem abaixo:



Escolha “VDI (VirtalBox Disk Image)”.



Clique em “próximo” e na próxima tela escolha “dinamicamente alocado”.




Na próxima tela escolhemos o tamanho do disco, o Elastix não usa 8GB mas deixaremos com este tamanho pois posteriormente é possível instalar complementos nele.



E com este passo terminamos a criação da máquina virtual, precisamos configurar a imagem do Elastix que baixamos para ela dar o boot.

Clique em configurações e escolha “armazenamento”, depois clique no botão para adicionar um disco conforme indicado na imagem abaixo:



Ao Clicar no botão uma caixa irá aparecer com 3 opções, clique em “escolher Disco”.



Busque a imagem que baixou e Clique em “ok” e ela será adicionada, conforme abaixo:



Depois vá em “rede” e escolha “placa em modo bridge”.



Feito isso de “ok” e podemos iniciar a maquina virtual, clicando em “iniciar” no menu superior do VirtualBox.

4- Instalando o Elastix

Realizadas as configurações no VirtualBox inicie a máquina para o início da instalação.

Esta é a tela inicial, de Enter para continuar:




O Elastix não suporta mouse, então a partir daqui os comando serão feitos pelo teclado, a próxima tela é a de escolha de idioma, tecle a letra “p” para ficar mais próximo de Português Brasil:



Tecle seta para o lado direito, repare que o “ok” ira mudar de cor, e tecle Enter.

A próxima opção é a escolha do layout de teclado, tecle a letra “b” para nos aproximar da opção “br-abnt2”.




Feito isso novamente seta para a direita até o “ok” mudar de cor e Enter para continuar.

Agora começamos com o particionamento, como o disco que criamos ainda não foi formatado o instalador irá mostrar uma mensagem conforme abaixo, escolha “sim” para criar uma nova partição no disco virtual.




A próxima tela irá mostrar os discos existentes, marque “usar espaço livre nos discos selecionados” e mova a seta até o “ok”.




A próxima tela é uma confirmação se você deseja rever o particionamento, escolha não e clique em continuar.

Teremos a opção de configuração de rede, escolha “sim” prossiga com a instalação.




Por padrão a opção de iniciar a rede no boot vem habilitada, desça com a seta até a opção “habilitar suporte a IPV4” e pressionando “espaço” marque também esta opção.



Neste primeiro momento configuraremos a rede em modo DHCP.



Depois a teremos a tela do fuso horário eu escolhi São Paulo, pois esta mais próximo a minha cidade, escolha o que melhor atende e clique em “ok”.




Agora iremos definir a senha do usuário Root, Este é um passo importante, Atenção!

Escolha uma senha e a confirme depois selecione “ok”.




A partir de agora o processo demora um pouco.




Após o término da instalação a máquina reinicia, onde terminaremos de efetuar mais alguns ajustes.

A próxima tela é a configuração de senha do banco de dados mysql para o usuário root, detalhe, não é a mesma senha escolhida anteriormente.




Repita a senha e Escolha “aceitar”.

Agora você irá escolher a senha do usuário admin, esta senha será que você irá realizar o login no painel do Elastix.

Atenção, esta senha é para o login administrativo do Elastix, não tem nenhuma relação com a senha do root escolhida na instalação.





A inicialização continua até a parte do login onde você vai inserir o nome de usuário root e a senha escolhida na instalação.



Pronto nosso servidor esta funcionando, mas precisamos de mais um único comando para ele conectar na rede, depois de realizar o login digite:

dhclient

Com este comando ele conectará na rede, depois digite:

ifconfig

Com este comando você visualiza com qual ip sua máquina virtual conectou.




5 – Acessando o painel do Elastix

Depois de iniciada a maquina virtual, deixemo na de lado e abriremos um navegador, com o último comando feito acima obtemos o ip do servidor, então digite este mesmo ip na barra de endereço de um navegador.

A primeira mensagem que você recebe é de uma conexão de risco, ignore esta mensagem.



E então teremos o Login do sistema.



O Usuário é admin e a senha a escolhida na inicialização, foi a última senha a ser escolhida.

Ao acessar temos o painel do Elastix, a maior parte da configuração administrativa é feita por aqui.




6 – Baixando os programas VOIP e Criando os ramais

Para Windows a versão do programa para realizar chamadas VOIP eu indico o x-lite que pode ser obtido em:

http://www.counterpath.com/x-lite-download.html

Para Linux eu indico o cutecom, busque no repositório de sua Distro.

Para Android ou iOs eu indico o 3CX.

Acesse a guia “PBX” do Elastix e por padrão irá acessar a página para adicionar extensões, Selecione “Generic SIP Device” e Clique em “submit”.




Preencha da seguinte forma:

User extension - escolha o numero do ramal desta extensão.

Display Name – O Nome para exibição

Secret – a senha para esta ramal se conectar ao servidor




Não altere as outras configurações, vá até o final da página e clique em “submit”, atenção para o detalhe que aparece no topo da tela, se não clicar em “Apply Configuration Changes Here” as configurações não irão ser efetuadas.




Repita este processo para criar outros usuários, estes mesmos usuários serão configurados nos clientes.

Lembrando que para se comunicarem os clientes precisam estar em máquinas diferentes, um ramal pode ser configurado na própria máquina hospedeira do servidor o outro pode ser um smartphone ou outro pc.

Com estas configurações você é capas de se comunicar com máquinas ou telefones compatíveis dentro de uma rede.

7 – Configurando para chamadas externas

Esta parte pode ser uma das mais complicadas para usuários que não possuem conhecimentos em rede, mas tentarei ser bem detalhista nas explicações.

O ambiente que estamos rodando o servidor é este:

Modem → roteador → servidor

Onde teremos que efetuar os seguintes passos:

Atribuir um ip fixo na rede onde está o servidor

Liberar as portas necessárias para o funcionamento.

Instalar o no-ip para facilitar o acesso dos usuários externos

Configurar o NAT no servidor.

7-1 – Configurando um ip fixo

O Elastix possui uma configuração de rede, onde você pode configurar o ip fixo, Mas não deu muito certo pois ele perdeu a conexão com a internet, vou mostrar como configurar a conexão diretamente no servidor.

No servidor digite este comando :

vi /etc/sysconfig/network-scripts/ifcfg-eth0

E pressione a tecla insert para alterar o conteúdo e coloque desta forma

DEVICE=eth0

BOOTPROT=static

IPADDR=192.168.1.80 (aqui vai o ip que você pretende colocar como fixo na rede)

NETMASK=255.255.255.0 (geralmente esta valor é sempre o mesmo, mas verifique na sua rede)

ONBOOT=yes

Preenchida as informações tecle “esc” para sair do modo de edição e as teclas :wq para sair e salvar o documento, o detalhe é que os dois pontos não podem entrar no conteúdo do documento, caso isto aconteça pressione “esc” novamente.

Geralmente os roteadores residenciais possuem ips na faixa de 100 a 199 então se o seu ip for por exemplo 192.168.0.101 é bem provável do seu roteador esta desta forma, quando for escolher um ip fixo na rede, faça uma conta simples:

quantas maquinas acessam a internet na sua casa? Tenhamos como exemplo 5 equipamentos.

Se o seu ip é 192.168.0.101 provavelmente o seu roteador gera ips entre 100 e 199 e você possui 5 equipamentos podemos configurar um ip fixo na maquina de 192.168.0.150 que as chances de outro equipamento conectar com este ip é bem pequena.

Lembrando que em cada rede teremos uma faixa de ip diferente, isso muda de acordo a configuração de cada usuário e equipamento.

Clicando em editar você tem a opção de colocar o seu ip e a mascara de rede, que geralmente já esta preenchida.

Depois de o seguinte comando:

vi /etc/sysconfig/network

E altere o valor GATEWAY de acordo com sua rede, este ip costuma ser o que se acessa o roteador e pode ser verificado nas propriedades da conexão na maquina hospedeira.

E para sair e salvar o documento da mesma forma que anteriormente pressionando :wq

E por último o DNS, que pode alterar com o seguinte comando:

vi /etc/resolv.conf

São duas entradas chamadas nameserver, pode colocar os valor igual ao do gateway nos 2 e salve da mesma forma como os dois documentos anteriores.

7-2 – Liberando as portas no roteador

O elastix utiliza as seguintes portas:

5060 – SIP para realizar a conexão entre os ramais

10000 a 20000 – Depois de feita a conexão estas portas são utilizadas para a transmissão do audio na ligação.

443 – Porta para acesso remoto do sistema

Então estas portas devem ser liberadas no roteador e apontar para o ip que configurou no servidor, alguns modelos de roteador possuem a função DMZ que libera todas as portas do roteador para o ip da rede especificado, mas o problema desta função é que além de ser muito insegura provoca quedas na ligação.

As configurações de direcionamento variam de modelo para modelo, mas geralmente possuem o nome “forwarding”

7-3 – Instalando o no-ip.

O no-ip é um serviço de domínios para quem possui ips dinâmicos, isto é se você não possui um ip fixo, você pode ter um domínio apontando sempre para seu servidor pelo no-ip.

O primeiro passo é criar a conta no no-ip e registrar um domínio gratuito.

Acesse:

http://www.noip.com/

E crie uma conta e registre um domínio no menu superior em “hosts/redirects” nesta página clique em “add Host” e escolha um nome e uma terminação, geralmente eu uso no-ip.org.

Com o domínio configurado instale o cliente no servidor, digite os comandos abaixo:

cd /usr/src

wget http://www.noip.com/client/linux/noip-duc-linux.tar.gz

tar -zxvf noip-duc-linux.tar.gz

cd noip-2.1.9-1

make install

Neste momento o instalador pede o e-mail da conta no no-ip e senha logo depois o intervalo de atualização do ip e se deseja executar algum comando quando ocorrer a atualização do ip, o padrão é não, basta dar enter.

7-4 – Configurando o Nat no servidor

Este passo também é importante pois se não configurado corretamente a ligação externa pode ficar muda.

No painel do Elastix vá em “PBX” e selecione o menu “tools”.




No menu lateral escolha “Asterisk File Editor” e na busca digite “sip” e clique no botão “filter” repare os dois arquivos que vamos editar que são:

sip.conf

sip_nat.conf



Clique sobre o arquivo sip.conf e adicione as seguintes informações ao final:

nat=yes;

externip = seu-dominio.no-ip.org;

localnet=192.168.1.0/255.255.255.0;

qualify=yes;

canreinvite=no;

rtpstart=10000;

rtpend=20000;

Repare que em localnet não coloquei o ip completo neste caso os zeros seriam “coringas” abrangendo todos os finais desta faixa de ips, clique em “salvar” e “reload asterisk”.

Feito isso provavelmente irá precisar repetir a busca pela palavra sip para localizar o arquivo sip_nat.conf, abra o arquivo e adicione o conteúdo:

nat=yes;

externip = seu-dominio.no-ip.org;

localnet=192.168.1.0/255.255.255.0;

qualify=yes;

canreinvite=no;

rtpstart=10000;

rtpend=20000

Clique em “salvar” e “reload asterisk”.

E você já tem um servidor VOIP Privado para poder se comunicar pela internet.

Nenhum comentário:

Postar um comentário