By Mark Spencer <[email protected]> and the Asterisk.org developer community.
Copyright (C) 2001-2021 Sangoma Technologies Corporation and other copyright holders.
É imperativo que você leia e compreenda completamente o conteúdo do documento de informações de segurança antes de tentar configurar e executar um servidor Asterisk.
Consulte Considerações importantes de segurança para obter mais informações.
Asterisk é um kit de ferramentas de telefonia e PBX de código aberto. É, em certo sentido, um middleware entre canais de Internet e telefonia na parte inferior, e aplicativos de Internet e telefonia na parte superior. Entretanto, o Asterisk suporta mais interfaces de telefonia do que apenas telefonia via Internet. O Asterisk também oferece um grande suporte para telefonia PSTN tradicional.
Para mais informações sobre o projeto em si, visite a página inicial do Asterisk e a documentação oficial. Além disso você encontrará muitas informações compiladas pela comunidade Asterisk em voip-info.org.
Existe um livro sobre Asterisk publicado pela O'Reilly sob a licença Creative Commons. Ele está disponível em livrarias e também em uma versão para download no site asteriskdocs.org.
O Asterisk Open Source PBX é desenvolvido e testado principalmente no sistema operacional GNU/Linux e é suportado em todas as principais distribuições GNU/Linux.
O Asterisk também foi 'portado' e supostamente funciona corretamente em outros sistemas operacionais, incluindo Sun Solaris, Mac OS X da Apple, Cygwin e as variantes BSD.
Primeiro, certifique-se de ter hardware compatível (mas observe que você não precisa de NENHUM hardware especial, nem mesmo uma placa de som) para instalar e executar o Asterisk.
O hardware de telefonia compatível inclui:
Se você estiver atualizando de uma versão anterior do Asterisk, certifique-se de ler o arquivo UPGRADE.txt no diretório de origem. Existem alguns arquivos e opções de configuração que você terá que alterar, embora tenhamos feito todos os esforços possíveis para manter a compatibilidade com versões anteriores.
Para descobrir novos recursos para usar, verifique os exemplos de configuração no diretório configs da distribuição do código-fonte. Para uma lista de novos recursos nesta versão do Asterisk, veja o arquivo CHANGES.
Certifique-se de que seu sistema contenha um compilador compatível e bibliotecas de desenvolvimento. O Asterisk requer o GNU Compiler Collection (GCC) versão 4.1 ou superior, ou um compilador que suporte a especificação C99 e algumas das extensões da linguagem gcc. Além disso, seu sistema precisa ter os cabeçalhos da biblioteca C disponíveis e os cabeçalhos e bibliotecas para ncurses.
Existem muitos módulos que possuem dependências adicionais. Para ver quais bibliotecas estão sendo procuradas, consulte ./configure --help
ou execute make menuselect
para visualizar as dependências de módulos específicos.
Em muitas distribuições, essas dependências são instaladas por pacotes com nomes como 'glibc-devel', 'ncurses-devel', 'openssl-devel' e 'zlib-devel' ou similares.
Então, vamos prosseguir:
Existem mais documentos além deste no diretório doc. Você também pode verificar os arquivos de configuração que contêm exemplos e guias de referência no diretório configs.
./configure
Execute o script configure para adivinhar valores para variáveis dependentes do sistema usadas durante a compilação. Se o script indicar que alguns componentes necessários estão faltando, será possível executar ./contrib/scripts/install_prereq install
para instalar os componentes necessários. Observe que isso instalará todas as dependências para todas as funcionalidades do Asterisk. Depois de executar o script, você precisará executar novamente ./configure
.
make menuselect
[opcional]Isto é necessário se você deseja selecionar os módulos que serão compilados e verificar as dependências de vários módulos opcionais.
make
Supondo que a compilação seja concluída com sucesso:
make install
Se esta é a primeira vez que você trabalha com Asterisk, você pode querer instalar o PBX de amostra, com extensões de demonstração, etc.
make samples
Fazer isso substituirá todos os arquivos de configuração existentes que você instalou.
# asterisk -vvvc
Você verá um monte de mensagens detalhadas passando pela sua tela enquanto o Asterisk é inicializado (esse é o modo "muito, muito detalhado"). Quando estiver pronto, se você especificou o "c", você obterá um console de linha de comando, parecido com este:
*CLI>
Você pode digitar “core show help” a qualquer momento para obter ajuda com o sistema. Para obter ajuda com um comando específico, digite "core show help". Para iniciar o PBX usando sua placa de som, você pode digitar “console dial” para discar para o PBX. Em seguida, você pode usar "resposta do console", "desligamento do console" e "discagem do console" para simular as ações de um telefone. Lembre-se que se você não tiver uma placa de som full duplex (e o Asterisk lhe dirá em algum lugar em suas mensagens detalhadas se você tiver/não tiver), então ela não funcionará direito (ainda não).
"man asterisk" no prompt de comando do Unix/Linux fornecerá informações detalhadas sobre como iniciar e parar o Asterisk, bem como todas as opções de linha de comando para iniciar o Asterisk.
Sinta-se à vontade para dar uma olhada nos arquivos de configuração em /etc/asterisk
, onde você encontrará muitas informações sobre o que pode fazer com o Asterisk.
Todos os arquivos de configuração do Asterisk compartilham um formato comum. Os comentários são delimitados por ';' (já que '#', é claro, sendo um dígito DTMF, pode ocorrer em muitos lugares). Um arquivo de configuração é dividido em seções cujos nomes aparecem entre []. Cada seção normalmente contém dois tipos de instruções, aquelas no formato 'variável = valor' e aquelas no formato 'objeto => parâmetros'. Internamente, o uso de '=' e '=>' é exatamente o mesmo, portanto eles são usados apenas para ajudar a tornar o arquivo de configuração mais fácil de entender e não afetam como ele é realmente analisado.
Entradas no formato 'variável=valor' definem o valor de algum parâmetro em asterisco. Por exemplo, em chan_dahdi.conf, pode-se especificar:
switchtype=national
Para indicar ao Asterisk que o switch ao qual estão se conectando é do tipo "nacional". Em geral, o parâmetro será aplicado a instanciações que ocorrem abaixo de sua especificação. Por exemplo, se o arquivo de configuração for:
switchtype = national
channel => 1-4
channel => 10-12
switchtype = dms100
channel => 25-47
O switchtype "nacional" seria aplicado aos canais um a quatro e aos canais 10 a 12, enquanto o switchtype "dms100" seria aplicado aos canais 25 a 47.
O "objeto => parâmetros" instancia um objeto com os parâmetros fornecidos. Por exemplo, a linha “canal => 25-47” cria objetos para os canais 25 a 47 da placa, obtendo as configurações a partir das variáveis especificadas acima.
Aqueles que usam telefones SIP devem estar cientes de que o Asterisk é sensível a grandes saltos no tempo. Alterar manualmente a hora do sistema usando date(1) (ou outros comandos semelhantes) pode causar falhas nos registros SIP e em outros processos internos. Se o seu sistema não conseguir manter a hora precisa por si só, use o NTP para manter o relógio do sistema sincronizado com o "tempo real". O NTP foi projetado para manter o relógio do sistema sincronizado, acelerando ou desacelerando o relógio do sistema até que ele seja sincronizado em "tempo real", em vez de saltar o tempo e causar descontinuidades. A maioria das distribuições Linux inclui versões pré-compiladas de NTP. Cuidado com alguns métodos de sincronização de horário que obtêm periodicamente o tempo real correto e, em seguida, ajustam manualmente o relógio do sistema.
As aparentes mudanças de horário devido ao horário de verão são apenas isso, aparentes. O uso do horário de verão em um sistema Linux é puramente um problema de interface do usuário e não afeta a operação do kernel Linux ou do Asterisk. O relógio do sistema nos kernels Linux opera em UTC. UTC não usa horário de verão.
Observe também que esse problema é separado do clock dos canais TDM e é conhecido por afetar pelo menos os registros SIP.
Dependendo do tamanho do seu sistema e da sua configuração, o Asterisk pode consumir um grande número de descritores de arquivos. No UNIX, os descritores de arquivos são usados para mais do que apenas arquivos em disco. Descritores de arquivos também são usados para lidar com comunicação de rede (por exemplo, chamadas SIP, IAX2 ou H.323) e acesso de hardware (por exemplo, hardware de tronco analógico e digital). O Asterisk acessa muitos arquivos em disco para tudo, desde informações de configuração até armazenamento de correio de voz.
A maioria dos sistemas limita o número de descritores de arquivos que o Asterisk pode abrir ao mesmo tempo. Isso pode limitar o número de chamadas simultâneas que seu sistema pode suportar. Por exemplo, se o limite for definido em 1024 (um valor padrão comum), o Asterisk pode lidar com aproximadamente 150 chamadas SIP simultaneamente. Para alterar o número de descritores de arquivo siga as instruções para o seu sistema abaixo:
Se o seu sistema usa PAM (Módulos de Autenticação Plugáveis), edite /etc/security/limits.conf
. Adicione estas linhas ao final do arquivo:
root soft nofile 4096
root hard nofile 8196
asterisk soft nofile 4096
asterisk hard nofile 8196
(ajuste os números a gosto). Pode ser necessário reinicializar o sistema para que essas alterações tenham efeito.
Se não houver instruções especificamente adaptadas ao seu sistema acima, você pode tentar adicionar o comando ulimit -n 8192
ao script que inicia o Asterisk.
Consulte o diretório doc para obter mais documentação sobre vários recursos. Novamente, leia todos os exemplos de configuração que incluem documentação sobre as opções de configuração.
Finalmente, você pode visitar o site de suporte e ingressar na lista de discussão se estiver interessado em obter mais informações.
Bem-vindo à crescente comunidade mundial de usuários do Asterisk!
Mark Spencer, and the Asterisk.org development community
Asterisk é uma marca registrada da Sangoma Technologies Corporation