Servidor

Voip no Ubuntu / Servidor Asterisk

Este texto foi gentilmente traduzido por:ViniciusGroppoA versão original pode ser vista em:http://wiki.ubuntu.com/AsteriskOnUbuntu/Current

Script

O script mais atual estará sempre disponível aqui: http://dudanogueira.com.br/ubuntu/AsteriskOnUbuntuCurrent.sh [http://wiki.ubuntu.com/AsteriskOnUbuntu/Current ]

  • Você precisa editar este arquivo e adicionar algumas variáveis, como ip, porta, senhas, etc.

Ações a serem realizadas após o script

Depois de executar o script acima, você deve configurar os canais e afinar sua instalação com os passos abaixo. Esteja ciente que os passos abaixo podem mudar. Sinta-se à vontade para reportar problemas ao final da página.

Configurar o Dahdi (Utilizo aqui a X100P)

Assumo que sua placa foi detectada com sucesso (na saida do lspci), e você irá rodar os comandos abaixo com privilégios de root.

  • execute: dahdi_genconf -vvvv

  • Isto irá gerar um arquivo específico: /etc/dahdi/system.conf file

  • Edite esse arquivo, altere loadzone e defaultzone, para:

  • loadzone = br
  • defaultzone = br
  • execute: dahdi_cfg -vvv

  • Isto irá apresentar algo como X channels to configure., X como número de canais disponíveis

  • Se isso aconteceu, estamos bem para continuar!
  • Caso contrario, você tem algumas ferramentas, como dahdi_scan, dahdi_hardware, dahdi_test... além disso, você deve estar ciente que algumas placas são "sensíveis ao IRQ" e podem não funcionar bem, ou mesmo não funcionar em alguns slots PCI!
  • Vamos editar /etc/asterisk/chan_dahdi.conf, e atribuir um contexto específico ao(s) seu(s) canal(is).

  • No meu caso, tenho somente 1 canal, então o arquivo vai como o a seguir (NOTA: A configuração acima provavelmente é diferente de outras placas que são utilizadas nesse tutorial. Por favor, contribua com outros casos que funcionaram!! ):

[channels]
language=pt_BR
context=from-trunk
signalling=fxs_ks
faxdetect=incoming
usecallerid=yes
echocancel=yes
echocancelwhenbridged=no
echotraining=800
group=0
channel=1
  • reinicie tudo que estiver rodando, como root: /etc/init.d/asterisk restart

  • Se tudo ocorreu bem, você pode agora rodar o asterisk CLI, como um usuário normal: sudo asterisk -vvvvvvvvvvvvvvr

  • Ok, você não precisa contar o número de v's, mas quanto mais v mais visualização Smile :)

O modo asterisk CLI, mostra tudo o que acontece em seu PBX digital local ou as chamadas recebidas. Agora é a hora de você chamar o número da linha ligada à linha que deve estar conectado à placa. Você deverá ver algo como:

-- Starting simple switch on 'DAHDI/1-1'
  == Starting DAHDI/1-1 at from-pstn,s,1 failed so falling back to exten 's'
  == Starting DAHDI/1-1 at from-pstn,s,1 still failed so falling back to context 'default'
    -- Hungup 'DAHDI/1-1'
  • NOTA: dentro do asterisk -vvvvvvvvvvr vocÊ podera verifciar o status dos seus canais, utilizando: dahdi show status, dahdi show channels and dahdi show channel X, X é o número do canal que você quer verificar

  • NOTA 2 se você não encontrar o comando dahdi dentro do asterisk CLI, isso significa que o asterisk não pode alcançar os canais dahdi. Verifique seu chan_dahdi.conf

Ótimo! Agora vamos configurar o PBX, siga este incrível tutorial!

Atualizar modulos do FreePBX

Você já deve ter quase tudo para continuar! Agora, vamos dar um 'UP' no FreePBX e adicionar alguns sons locais!

  • Aponte seu browser para http://127.0.0.1/admin

  • Você deve ver a página principal do FreePBX, com os serviços em verde na coluna status do sistema (espero que sim!)
  • Clique em Module Admin

  • Clique em Check for updates online

  • Clique em upgrade all

  • Clique em proccess na mesma tela

  • Na próxima tela, clique em confirm. A atualização dará inicio

  • Então clique em return então Apply Configuration Changes e finalmente em Continue with reload

Ensinar seu idioma ao asterisk/freepbx

Estes passos são específicos ao pt_BR (Obrigado ao time do Disc-os! Licenciado sobre o CC!!), mas você pode encontrar sons de outros idiomas na internet e algum som oficial do asterisk aqui: http://downloads.asterisk.org/pub/telephony/sounds/ [en, es, fr somente] * NOTA: Se você for utilizar os sons do Disc-os, tenha ciencia de que você precisa configurar a estrutura de diretório do asterisk para o layout antigo. Para fazer isso, modifique languageprefix = no no /etc/asterisk/asterisk.conf como root, execute:

mkdir /usr/src/disc-os
cd /usr/src/disc-os
wget -c http://downloads.sourceforge.net/project/disc-os/Disc-OS%20Sounds/1.0-RELEASE/Disc-OS-Sounds-1.0-pt_BR.tar.gz
tar -xzvf Disc-OS-Sounds-1.0-pt_BR.tar.gz
cp -rf sounds/* /var/lib/asterisk/sounds/
echo "language=pt_BR" >> /etc/asterisk/sip_general_custom.conf
  • Nota: Pode não ter todas as vozes, mas... você pode gravar suas próprias mensagens!
  • Agora vamos modificar a mensagem que o freepbx envia para seu correio de voz:
  • vim /etc/asterisk/voicemail.conf

  • no fim do arquivo, insira um conteúdo como (esses passos não funcionam! Precisa-se de solução):

emailsubject=[PBX] ${VM_MAILBOX} MSG ${VM_MSGNUM}
emailbody=${VM_NAME}\n\n Nova mensagem! ${VM_DUR} DE: ${VM_CALLERID} na sua caixa de mensagens  ${VM_DATE} \n\n
  • Agora, vá novamente no FreePBX, Module Admin, Check for updates online, e procure por: FreePBX Localization Updates, expanda este modulo, cique no download and install, então em proccess, e confirme. Depois do upgrade completo, clique em Return e aplique essas configurações.

  • Você pode notar que isto não irá funcionar! É porque você precisa configurar o defaut charset, no config do php. edite: /etc/php5/apache2/php.ini

  • procure pelo parâmetro default_charset, e altere para: default_charset = "utf8"

Habilite a entrega de mensagens do voicemail

  • NOTA: Você pode utilizar o msmtp com qualquer servidor smtp server que você tenha acesso!
  • NOTE2: Asterisk irá entregar as mensagens para o email associado com a extensão
  • sudo apt-get install msmtp

  • Crie o arquivo com a configuração:
  • vim /etc/msmtprc

defaults
account asterisk
host smtp.gmail.com
from youruser@gmail.com
tls on
tls_certcheck off
port 587
auth login
user seu_usuario
password sua_senha
logfile ~/.msmtp.log
account default : asterisk
  • teste se o msmtp está funcionando, execute:

  • echo foo | msmtp seuemail@gmail.com

  • Verifique sua caixa de e-mail!

  • * configure o asterisk para usar o msmtp:

  • vim /etc/asterisk/voicemail.conf
  • modifique o mailcmd para:

  • mailcmd=/usr/bin/msmtp -t

Teste o seu ambiente

Na página do administrador (http://127.0.0.1/admin), vamos criar duas extensões, 1000 e 1001

  • Vá em Extensões > Selecione "Generic SIP Device" > Submit

  • Add Extension > User Extension: 1000

  • Device Options > secret: 1234

  • Voicemail & Directory > Enabled, VoiceMail Password: 1234, Email Address: youremail@gmail.com , Email Attachment: yes

  • Submit. Repita o processo, mas agora utilize 1001 em vez de 1000
  • Clique em Apply Configuration Changes, e continue with reload

Agora, você pode se registrar no servidor sip utilizando um software como Ekiga ou Twinkle (apenas para sitar alguns, qualquer software sip deve funcionar. Você também pode criar extensões IAX), e fazer chamadas entre as extensões!

Aponte o canal para uma extensão específica

  • No admin do FreePBX (http://seu.ip/admin), clique em Inbound Routes

  • Coloque a descrição, qualquer coisa...
  • Em Set Destination, defina o quer fazer: Terminar chamada, Redirecionar para uma extensão ou diretamente para o voicemail.

SEGURANÇA! Bloqueando seu pbx

  • Quando você entrar no FreePBX você verá algumas mensagens de alerta. Eles dizem para alterar a senha padrão de algumas coisas. Conselhos inteligentes, certo? Vamos fazê-lo!

Senha do FreePBX

  • Primeiro, vamos colocar o Freepbx para lidar com sistema de autenticação usando banco de dados. Você pode editar /etc/amportal.conf

  • Procure pela diretiva AUTHTYPE e altere-a para database, como AUTHTYPE=database

  • Entre no admin do FreePbx (http://servidor.ip/admin) Vá em Administration e change the admin password.

  • Efetue a desconexão e logue novamente. Voilá!
  • Observe que você agora pode criar outros usuários administrativos com diferentes configurações de permissão!

Senha do Banco de Dados Mysql

  • Se você ainda não alterou a senha do usuário asterisk no banco de dados (diretiva ASTERISK_DB_PW no script), provavelmente vai reclamar.

  • É apenas uma questão de alterar a senha do asteriskuser no MYSQL, alterando a diretiva referente no /etc/amportal/conf, na diretiva AMPDBPASS

  • Observe queo o usuário asteriskuser também é definida pela diretiva AMPDBUSER

Alterando a Senha de Administrador do Asterisk

  • Também aparecerá um aviso, como você provavalmente irá utilizar a senha padrão [5].
  • Ainda no arquivo /etc/amportal.conf, altere a diretiva AMPMGRPASS para a senha desejada.

  • Agora edite /etc/asterisk/manager.conf e altere a diretiva secret under the group [admin]

Configuração de uma estratégia de backup

Você pode agora usar o modulo Backup/Restore para salvar todos os arquivos (VoiceMail, Configurações do Sistema, Gravações do Sistema, CDR, etc) É tão facil instalar o modulo no admin, va é Tools, então em backup and restore. Uma vez que você configura uma rotina de backup, está disponível on diretório /var/lib/asterisk/backups [6]

PROBLEMAS CONHECIDOS / NECESSIDADE DE AJUDA

  • Com a placa X100P, o asterisk não detecta desconexão, e grava todas mensagens, mesmo de a pessoa desligou após o beep. Dica: Ver [4] possível solução. Pode depender da operadora do serviço.
  • Como estou configurando em minha casa, o correio de voz deixa chamar algumas vezes mesmo quando a extensão não está disponível
  • Se seu servidor vive atrás de um FIREWALL, usando o dyndns, Você precisará de algumas soluções[3] para disponibilizar o acesso e registrar no seu servidor com uma conexão de internet normal.
  • Esteja ciente que o Protocolo IAX2 funciona melhor com problemas de NAT que o Protocolo SIP! Prefira extensões IAX quando utilizar fora da sua rede FreePBX. Lembre-se de editar /etc/asterisk/iax_general_custom.conf e colocar language=pt_BR se você quiser sobreescrever uma extensão com uma liguagem específica!

REFERENCIAS

VoipNoUbuntu/Servidor (last edited 2011-09-19 23:21:18 by localhost)