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
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\nAgora, 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)