aboutsummaryrefslogtreecommitdiffstats
path: root/hosts/common/optional
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/common/optional')
-rw-r--r--hosts/common/optional/services/asterisk.nix88
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 [];
+ };
}