diff --git a/.gitattributes b/.gitattributes index 32845f7..bd72c2c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ **/secrets/** filter=git-crypt diff=git-crypt **/secrets.yaml diff=sops +*.wav filter=lfs diff=lfs merge=lfs -text diff --git a/hosts/aluminium/services/asterisk/README.md b/hosts/aluminium/services/asterisk/README.md new file mode 100644 index 0000000..dc47981 --- /dev/null +++ b/hosts/aluminium/services/asterisk/README.md @@ -0,0 +1,9 @@ +## custom voicemail greetings + +Place `busy` and/or `unavail` file in users voicemail directory. + +The file can be converted to the fitting format using sox +```bash +sox $input_file -t wav -b 16 -c 1 -r 8k -e signed-integer --endian little unavail.wav +``` + diff --git a/hosts/aluminium/services/asterisk/default.nix b/hosts/aluminium/services/asterisk/default.nix index 7080707..bc672dc 100644 --- a/hosts/aluminium/services/asterisk/default.nix +++ b/hosts/aluminium/services/asterisk/default.nix @@ -11,8 +11,23 @@ let start = builtins.elemAt ports.asterisk-rtp.udp.range 0; end = builtins.elemAt ports.asterisk-rtp.udp.range 1; }; -in -{ + voicemail-sounds = pkgs.callPackage ./voicemail-sounds { }; +in { + systemd.services.asterisk-voicemail-sounds = { + wantedBy = ["asterisk.service"]; + after = ["asterisk.service"]; + script = '' + ln -sfn \ + ${voicemail-sounds}/unavail.wav \ + /var/spool/asterisk/voicemail/lechner/876/unavail.wav + ''; + restartTriggers = [voicemail-sounds]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + }; + services.asterisk = { enable = true; confFiles = { @@ -30,7 +45,7 @@ in [sipgate-in] exten = _499846876,1,Noop(Processing an incoming call) same = n,Dial(PJSIP/10&PJSIP/11,25,tT) - same = n,VoiceMail(876@lechner,u) + same = n,VoiceMail(876@lechner,uS) same = n,Hangup() exten => _4998469779781,1,Verbose(3,Incoming fax) @@ -155,7 +170,7 @@ in sops.secrets = (lib.listToAttrs (map (name: lib.nameValuePair "asterisk-${name}" { - sopsFile = ../secrets.yaml; + sopsFile = ../../secrets.yaml; owner = config.users.users.asterisk.name; }) secretConfigFiles)); diff --git a/hosts/aluminium/services/asterisk/voicemail-sounds/default.nix b/hosts/aluminium/services/asterisk/voicemail-sounds/default.nix new file mode 100644 index 0000000..a4a810c --- /dev/null +++ b/hosts/aluminium/services/asterisk/voicemail-sounds/default.nix @@ -0,0 +1,13 @@ +{ lib, stdenvNoCC }: + +stdenvNoCC.mkDerivation { + name = "voicemail-sounds"; + + src = ./.; + + dontBuild = true; + installPhase = '' + mkdir $out + cp -r * $out + ''; +}