From 27251f7915ef97ab639ff0c99f58baab229c1d9c Mon Sep 17 00:00:00 2001 From: Mark Nipper Date: Wed, 19 Jun 2024 00:56:01 -0700 Subject: Add public asterisk configuration --- hosts/common/optional/services/asterisk.nix | 88 ++++++++++++++++++++++++++++- 1 file changed, 86 insertions(+), 2 deletions(-) (limited to 'hosts') diff --git a/hosts/common/optional/services/asterisk.nix b/hosts/common/optional/services/asterisk.nix index 0c012bd..7bbd096 100644 --- a/hosts/common/optional/services/asterisk.nix +++ b/hosts/common/optional/services/asterisk.nix @@ -1,8 +1,92 @@ -{ lib, ... }: +{ config, lib, pkgs, ... }: { services.asterisk = { enable = true; }; - systemd.services.asterisk.wantedBy = lib.mkForce []; + sops = { + secrets = { + "asterisk/asterisk.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/cdr.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/console.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/extensions.ael" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/indications.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/logger.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/modules.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/musiconhold.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/pjsip.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/pjsip_notify.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/rtp.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + "asterisk/voicemail.conf" = { + owner = config.users.users.asterisk.name; + group = config.users.users.asterisk.group; + mode = "00400"; + }; + }; + }; + + systemd.services.asterisk = { + serviceConfig.ExecStart = lib.mkForce "${pkgs.asterisk}/bin/asterisk -U asterisk -C ${config.sops.secrets."asterisk/asterisk.conf".path} -F"; + unitConfig = { + ConditionPathExists = [ + config.sops.secrets."asterisk/asterisk.conf".path + config.sops.secrets."asterisk/cdr.conf".path + config.sops.secrets."asterisk/console.conf".path + config.sops.secrets."asterisk/extensions.ael".path + config.sops.secrets."asterisk/indications.conf".path + config.sops.secrets."asterisk/logger.conf".path + config.sops.secrets."asterisk/modules.conf".path + config.sops.secrets."asterisk/musiconhold.conf".path + config.sops.secrets."asterisk/pjsip.conf".path + config.sops.secrets."asterisk/pjsip_notify.conf".path + config.sops.secrets."asterisk/rtp.conf".path + config.sops.secrets."asterisk/voicemail.conf".path + ]; + }; + #wantedBy = lib.mkForce []; + }; } -- cgit v1.2.3