8 Commits

Author SHA1 Message Date
a7112fc880 mob next [ci-skip] [ci skip] [skip ci]
lastFile:machines/rigel/configuration.nix
2025-12-12 18:38:19 +07:00
ddb21e6e4a mob next [ci-skip] [ci skip] [skip ci]
lastFile:machines/rigel/configuration.nix
2025-12-12 18:33:15 +07:00
326fb0a54d mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-12 18:30:46 +07:00
02b83e06d3 mob next [ci-skip] [ci skip] [skip ci]
lastFile:overlays/default.nix
2025-12-12 18:29:08 +07:00
78cf530fd3 mob next [ci-skip] [ci skip] [skip ci]
lastFile:machines/rigel/configuration.nix
2025-12-12 18:27:53 +07:00
39bfcd0080 nix fmt 2025-12-12 18:27:30 +07:00
6f9791746e buna machine 2025-12-10 13:14:14 +07:00
d093103d86 clanService/phonebox: asterisk restart core when extensions.conf changed 2025-12-10 13:01:31 +07:00
5 changed files with 160 additions and 413 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,8 @@
{ config, ... }:
{
config,
self,
...
}:
{
imports = [
(import ../../lib/auto-accept-zerotier-members.nix {
@@ -10,6 +14,8 @@
})
];
nixpkgs.overlays = [ self.overlays.asteriskOverlay ];
system.stateVersion = "25.11";
clan.core.sops.defaultGroups = [ "admins" ];
clan.core.networking.targetHost = "root@[${config.clan.core.vars.generators.zerotier.files.zerotier-ip.value}]";

View File

@@ -31,6 +31,7 @@
}:
let
user = "asterisk";
faxDir = "/run/asterisk/fax";
rtpPortFrom = 10000;
rtpPortTo = 20000;
ata-interface = settings.ata-ethernet-iface;
@@ -240,6 +241,13 @@
syslog.local0 => notice,warning,error
'';
"modules.conf" = ''
[modules]
autoload=yes
load => res_fax_spandsp.so
'';
# Dial plan config
"extensions.conf" =
let
@@ -257,6 +265,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 +336,10 @@
};
};
systemd.tmpfiles.rules = [
"d ${faxDir} 0755 ${user} ${user} - -"
];
systemd.services.asterisk-watcher = {
enable = true;
description = "Asterisk Configuration files watcher";
@@ -338,6 +360,12 @@
asterisk -rx "pjsip reload"
;;
esac
case "$file" in
extensions.conf)
echo "restarting core"
asterisk -rx "core restart now"
;;
esac
done
'';
};

View File

@@ -2,5 +2,10 @@
{
flake.overlays = {
packagesOverlay = import ../pkgs/overlay.nix;
asteriskOverlay = final: prev: {
asterisk = prev.asterisk.overrideAttrs (old: {
propagatedNativeBuildInputs = [ prev.pkgs.spandsp3 ];
});
};
};
}