O Asterisk é uma implementação de software de uma central telefônica privada (PBX). Ele permite que telefones interfaceados com uma variedade de tecnologias de hardware, façam chamadas entre si e se conectem a serviços de telefonia, como os serviços de rede telefônica pública comutada (PSTN) e de voz sobre IP (VoIP). Seu nome vem do símbolo do asterisco “*”.
Alguns dos muitos recursos do Asterisk incluem:
- O software Asterisk inclui muitos recursos disponíveis em sistemas PBX comerciais e proprietários: correio de voz, chamada em conferência, resposta de voz interativa e distribuição automática de chamadas.
- Os usuários podem criar novas funcionalidades escrevendo scripts de planos de discagem em várias das próprias extensões do Asterisk, adicionando módulos carregáveis personalizados escritos em C ou implementando programas AGI (Asterisk Gateway Interface) usando qualquer linguagem de programação capaz de se comunicar através do sistema de transmição padrão (stdin e stdout) ou por sockets TCP de rede.
- O Asterisk suporta vários protocolos padrão de voz sobre IP, incluindo o Session Initiation Protocol (SIP), o MGCP (Media Gateway Control Protocol) e 323.
- O Asterisk suporta a maioria dos telefones SIP, atuando como registrador e agente de usuário back-to-back.
- Ao oferecer suporte a uma variedade de serviços de telefonia tradicional e VoIP, o Asterisk permite que os implementadores criem sistemas de telefonia ou migrem os sistemas existentes para novas tecnologias.
Instalar o asterisco da fonte
Depois de fazer login no seu servidor Ubuntu como um usuário, execute o seguinte comando para mudar para o usuário root.
$ sudo su
Agora você é root, mas precisa definir a senha com o seguinte comando.
# passwd
O próximo passo seria instalar dependências iniciais para Asterisk.
# apt-get install build-essential wget libssl-dev libncurses5-dev libnewt-dev libxml2-dev linux-headers-$(uname -r) libsqlite3-dev uuid-dev git subversion
Instalando o Asterisk
Agora, quando estamos como root e as dependências estão satisfeitas, podemos passar para o diretório /usr/src/ e fazer o download da versão mais recente do Asterisk.
# cd /usr/src
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz
Em seguida, descompactamos.
# tar zxvf asterisk-15-current.tar.gz
Agora precisamos entrar no novo diretório descompactado,
# cd asterisk-15*
Antes de realmente compilar o código do Asterisk, precisamos do “pjproject”, já que o asterisk-15 introduz o suporte para pjsip. Então vamos compilá-lo primeiro:
# git clone git://github.com/asterisk/pjproject pjproject
# cd pjproject
# ./configure –prefix=/usr –enable-shared –disable-sound –disable-resample –disable-video –disable-opencore-amr CFLAGS=’-O2 -DNDEBUG’
# make dep
# make && make install
# ldconfig
# ldconfig -p |grep pj
Configurando o Asterisk
E agora começamos a configurar e compilar o código do Asterisk.
# cd ..
# contrib/scripts/get_mp3_source.sh
# contrib/scripts/install_prereq install
Isso instalará os toques em mp3 e satisfará dependências adicionais que podem levar algum tempo e solicitar o código do seu país. O comando a seguir compilará e instalará o Asterisk.
# ./configure && make menuselect && make && make install
Quando terminar, para evitar centenas de arquivos de configuração, após a instalação, você normalmente deseja executar este comando, o que fará a configuração inicial para você:
# make samples
E para ter o script de inicialização instalado e ativado para iniciar o Asterisk em cada inicialização, nós executamos make config, seguido por ldconfig:
# make config
# ldconfig
Agora podemos começar o Asterisk pela primeira vez e ver se realmente funciona.
# /etc/init.d/asterisk start
e então podemos entrar no console do Asterisk com o comando.
# asterisk -rvvv
Agora precisamos fazer etapas adicionais para executá-lo como um usuário de Asterisk. Primeiro precisamos parar o Asterisk.
# systemctl stop asterisk
Então precisamos adicionar o grupo e usuário chamados asterisk.
# groupadd asterisk
# useradd -d /var/lib/asterisk -g asterisk asterisk
O Asterisk precisa ser configurado para iniciar como o usuário que acabamos de criar, podemos editar o /etc/default/asterisk manualmente, mas é mais eficiente usar os dois comandos sed.
# sed -i ‘s/#AST_USER=”asterisk”/AST_USER=”asterisk”/g’ /etc/default/asterisk
# sed -i ‘s/#AST_GROUP=”asterisk”/AST_GROUP=”asterisk”/g’ /etc/default/asterisk
Para executar corretamente, o usuário do asterisk precisa direitos para todos os diretórios asterisk essenciais.
# chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib/asterisk
O asterisk.conf também precisa ser editado para remover o comentário de linhas para runuser e run group:
# sed -i ‘s/;runuser = asterisk/runuser = asterisk/g’ /etc/asterisk/asterisk.conf
# sed -i ‘s/;rungroup = asterisk/rungroup = asterisk/g’ /etc/asterisk/asterisk.conf
Quando isso for feito, reinicialize o servidor para que o Asterisk apareça automaticamente pelo systemd e digite asterisk -rvvv para entrar no console do asterisco.
# asterisk -rvvv