diff options
Diffstat (limited to '')
-rw-r--r-- | hosts/common/optional/services/asterisk.nix | 88 |
1 files changed, 86 insertions, 2 deletions
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 []; + }; } |