NixOS PBX
Vamos, Testar? Vou considerar o NixOS já instalado, com acesso sudo. Usaremos o Asterisk 22 LTS, pelo módulo nativo do NixOS.
No NixOS, você declara o serviço e seus arquivos de configuração; o nixos-rebuild instala os componentes e aplica as mudanças. O procedimento abaixo foi conferido no código do NixOS 26.05. nixos.org
Confira a versão do sistema
No terminal do servidor:
nixos-versionO exemplo utiliza a configuração convencional em
/etc/nixos/configuration.nix. Mais abaixo deixei a observação para instalações com flakes.Faça uma cópia da configuração atual
sudo cp -a /etc/nixos "/etc/nixos.backup-$(date +%Y%m%d-%H%M%S)"Crie um arquivo separado para o Asterisk
Abra:
sudo nano /etc/nixos/asterisk.nixColoque este conteúdo:
{ pkgs, ... }: { services.asterisk = { enable = true; # Seleciona a série 22 do Asterisk. package = pkgs.asterisk_22; # Acrescenta opções ao asterisk.conf gerado pelo NixOS. extraConfig = '' [options] verbose = 3 ''; confFiles = { "pjsip.conf" = '' [transport-udp] type = transport protocol = udp bind = 127.0.0.1:5060 ''; "extensions.conf" = '' [general] static = yes writeprotect = yes [default] exten => s,1,Hangup() ''; "manager.conf" = '' [general] enabled = no ''; "http.conf" = '' [general] enabled = no ''; }; }; }Essa configuração prepara o serviço e um transporte PJSIP disponível somente no próprio servidor, em
127.0.0.1:5060. Ainda não há ramais cadastrados.O módulo oficial do NixOS também cria o usuário e grupo
asterisk, prepara os diretórios e disponibiliza o comandoasterisk. Para esta instalação inicial, mantemos o carregamento padrão de módulos, comautoload=yes.Importe o arquivo na configuração principal
Abra:
sudo nano /etc/nixos/configuration.nixLocalize a lista
importse acrescente:./asterisk.nixPor exemplo:
imports = [ ./hardware-configuration.nix ./asterisk.nix ];Preserve os outros arquivos que já estiverem nessa lista e o restante da configuração.
Construa e aplique a configuração
Primeiro, construa a nova configuração sem ativá-la:
sudo nixos-rebuild buildSe terminar sem erro, aplique:
sudo nixos-rebuild switchO NixOS instalará o pacote, disponibilizará os arquivos de configuração e ativará o serviço, incluindo sua inicialização no boot.
Se sua instalação usa flakes, acrescente aos dois comandos:
--flake /etc/nixos#NOME_DA_CONFIGURACAOSubstitua
NOME_DA_CONFIGURACAOpela entrada correspondente ao servidor emnixosConfigurations. Se a configuração estiver em um repositório Git, o novoasterisk.nixprecisa ser adicionado ao índice para ser incluído na construção. Official NixOS WikiConfira o serviço e o PJSIP
Execute:
sudo systemctl status asterisk --no-pagerO resultado esperado é:
Active: active (running)Confira a versão efetivamente instalada:
sudo asterisk -rx "core show version"Confira o módulo de canais PJSIP:
sudo asterisk -rx "module show like chan_pjsip"Confira o transporte:
sudo asterisk -rx "pjsip show transports"Deve aparecer o transporte
transport-udp, usando UDP e vinculado a127.0.0.1:5060.Entre no console do Asterisk
sudo asterisk -rvvvDentro dele, experimente:
core show uptime core show settings dialplan show defaultPara sair do console, mantendo o serviço funcionando:
exitEntenda como aplicar as próximas alterações
Os arquivos declarados em
confFilessão gerenciados pelo NixOS. Faça as alterações em/etc/nixos/asterisk.nixe aplique novamente:sudo nixos-rebuild switchPara uma alteração apenas no dialplan, recarregue depois:
sudo asterisk -rx "dialplan reload"Para mudanças de pacote ou de transporte que exijam reinicialização:
sudo systemctl restart asteriskO módulo evita reiniciar automaticamente o Asterisk após mudanças. O reinício manual interrompe chamadas em andamento, portanto precisa ser planejado quando o servidor estiver em operação.
Se o serviço não iniciar, consulte:
sudo journalctl -u asterisk -b -n 100 --no-pagerAo concluir, você terá o Asterisk instalado, iniciado automaticamente e acessível pela CLI, com PJSIP preparado para a configuração dos ramais.
OBS: Um artigo para instalação do NixOS no Proxmox.
OUTRO: Nesse artigo, o foco é a instalação do NixOS no Virtualbox.

Deixe um comentário