From ec4c3897e227c7a10f926cdf0d034cd9ea39babb Mon Sep 17 00:00:00 2001 From: kurogeek Date: Tue, 16 Dec 2025 10:28:01 +0700 Subject: [PATCH] clanService:phonebox: fax echo feature --- modules/clan/phonebox/default.nix | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/modules/clan/phonebox/default.nix b/modules/clan/phonebox/default.nix index 446fc39..7ab71a3 100644 --- a/modules/clan/phonebox/default.nix +++ b/modules/clan/phonebox/default.nix @@ -30,7 +30,12 @@ ... }: let + asterisk = pkgs.asterisk.overrideAttrs (old: { + propagatedNativeBuildInputs = [ pkgs.spandsp3 ]; + }); + user = "asterisk"; + faxDir = "/run/asterisk/fax"; rtpPortFrom = 10000; rtpPortTo = 20000; ata-interface = settings.ata-ethernet-iface; @@ -191,6 +196,7 @@ services.asterisk = { enable = lib.mkDefault true; + package = lib.mkDefault asterisk; confFiles = let machines = lib.attrNames roles.default.machines; @@ -240,6 +246,13 @@ syslog.local0 => notice,warning,error ''; + "modules.conf" = '' + [modules] + autoload=yes + + load => res_fax_spandsp.so + ''; + # Dial plan config "extensions.conf" = let @@ -257,6 +270,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 +341,10 @@ }; }; + systemd.tmpfiles.rules = [ + "d ${faxDir} 0755 ${user} ${user} - -" + ]; + systemd.services.asterisk-watcher = { enable = true; description = "Asterisk Configuration files watcher";