diff --git a/machines/rigel/configuration.nix b/machines/rigel/configuration.nix index b820028..ce05492 100644 --- a/machines/rigel/configuration.nix +++ b/machines/rigel/configuration.nix @@ -1,4 +1,9 @@ -{ config, ... }: +{ + config, + pkgs, + self, + ... +}: { imports = [ (import ../../lib/auto-accept-zerotier-members.nix { @@ -10,6 +15,8 @@ }) ]; + nixpkgs.overlays = [ self.overlays.packagesOverlay ]; + system.stateVersion = "25.11"; clan.core.sops.defaultGroups = [ "admins" ]; clan.core.networking.targetHost = "root@[${config.clan.core.vars.generators.zerotier.files.zerotier-ip.value}]"; diff --git a/modules/clan/phonebox/default.nix b/modules/clan/phonebox/default.nix index 446fc39..d5cdaa2 100644 --- a/modules/clan/phonebox/default.nix +++ b/modules/clan/phonebox/default.nix @@ -27,10 +27,12 @@ lib, config, pkgs, + self, ... }: let user = "asterisk"; + faxDir = "/run/asterisk/fax"; rtpPortFrom = 10000; rtpPortTo = 20000; ata-interface = settings.ata-ethernet-iface; @@ -240,6 +242,13 @@ syslog.local0 => notice,warning,error ''; + "modules.conf" = '' + [modules] + autoload=yes + + load => res_fax_spandsp.so + ''; + # Dial plan config "extensions.conf" = let @@ -257,6 +266,16 @@ same => n,Playback(hello-world) same => n,Hangup() + exten => 000,1,Answer() + same => n,ReceiveFAX(${faxDir}/echo-''${UNIQUEID}.tiff) + same => n,Set(FAXFILE=${faxDir}/echo-''${UNIQUEID}.tiff) + same => n,Set(FAXECHO=true) + + exten => h,1,GotoIf($[''${FAXECHO}]?sendfax) + same => n,Hangup() + same => n(sendfax),Originate(PJSIP/00,app,SendFAX,${faxDir}/echo-''${UNIQUEID}.tiff) + same => n,Set(FAXECHO=false) + '' + (genLocalExtenConf { localNumber = config.clan.core.vars.generators.phonebox.files.ata-local-number.value; @@ -318,6 +337,10 @@ }; }; + systemd.tmpfiles.rules = [ + "d ${faxDir} 0755 ${user} ${user} - -" + ]; + systemd.services.asterisk-watcher = { enable = true; description = "Asterisk Configuration files watcher"; diff --git a/overlays/default.nix b/overlays/default.nix index 583c8e9..6cdc1b2 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -2,5 +2,11 @@ { flake.overlays = { packagesOverlay = import ../pkgs/overlay.nix; + asteriskOverlay = final: prev: { + + asterisk = prev.asterisk.overrideAttrs (old: { + propagatedNativeBuildInputs = [ prev.pkgs.spandsp3 ]; + }); +} }; }