22 Commits

Author SHA1 Message Date
9d7a8420b6 Update var phonebox/owner-name for machine neptune 2025-12-26 09:29:35 +07:00
9a9915af08 Update var phonebox/owner-name for machine mirach 2025-12-26 09:29:17 +07:00
2a3fd80e12 Update var phonebox/owner-name for machine alpheratz 2025-12-26 09:28:56 +07:00
fe318bf2e1 Update var phonebox/owner-name for machine almach 2025-12-26 09:28:43 +07:00
d4ce1e9b77 Update var phonebox/owner-name for machine alpheratz 2025-12-26 09:27:54 +07:00
96ee72f6d6 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-25 14:58:42 +07:00
6fc9103ff9 mob next [ci-skip] [ci skip] [skip ci]
lastFile:vars/per-machine/neptune/phonebox/server-prefix-number/value
2025-12-25 14:54:57 +07:00
dfedb22d7e Update vars via generator phonebox for machine rigel 2025-12-25 14:53:05 +07:00
d033ae0b87 Update vars via generator phonebox for machine neptune 2025-12-25 14:53:05 +07:00
86e3e767fc Update vars via generator phonebox for machine mirach 2025-12-25 14:53:05 +07:00
1f08e196ce Update vars via generator phonebox for machine buna 2025-12-25 14:53:05 +07:00
aae9bba993 Update vars via generator phonebox for machine alpheratz 2025-12-25 14:53:04 +07:00
f2c707419f Update vars via generator phonebox for machine almach 2025-12-25 14:53:04 +07:00
6f9288ae65 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-25 14:48:43 +07:00
acdf5515c0 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-25 14:45:28 +07:00
2bae7f59a3 Update var phonebox/owner-name for machine adhil 2025-12-25 14:27:36 +07:00
8a24bf97f8 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-25 14:22:04 +07:00
47ea505962 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-25 14:03:09 +07:00
8853fcda9b mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-25 14:00:25 +07:00
bfaab9b1e7 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-24 17:02:01 +07:00
92fa3bcb88 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-23 20:11:10 +07:00
bf64ee1202 mob next [ci-skip] [ci skip] [skip ci]
lastFile:modules/clan/phonebox/default.nix
2025-12-22 17:24:10 +07:00
8 changed files with 56 additions and 3 deletions

View File

@@ -1,4 +1,7 @@
{ clanLib, ... }:
{
clanLib,
...
}:
{
_class = "clan.service";
manifest.name = "phonebox";
@@ -14,6 +17,11 @@
description = "An Ethernet interface that connect to ATA box.";
default = "enp2s0";
};
options.ownerName = lib.mkOption {
type = lib.types.str;
description = "";
default = "";
};
};
perInstance =
{
@@ -22,6 +30,7 @@
...
}:
{
nixosModule =
{
lib,
@@ -34,12 +43,41 @@
propagatedNativeBuildInputs = [ pkgs.spandsp3 ];
});
machines = lib.attrNames roles.default.machines;
user = "asterisk";
faxDir = "/run/asterisk/fax";
rtpPortFrom = 10000;
rtpPortTo = 20000;
ata-interface = settings.ata-ethernet-iface;
contactList = builtins.map (machineName: {
name = "${clanLib.getPublicValue {
flake = config.clan.core.settings.directory;
machine = machineName;
generator = "phonebox";
file = "owner-name";
default = null;
}}";
number = "${
clanLib.getPublicValue {
flake = config.clan.core.settings.directory;
machine = machineName;
generator = "phonebox";
file = "server-prefix-number";
default = null;
}
}${
clanLib.getPublicValue {
flake = config.clan.core.settings.directory;
machine = machineName;
generator = "phonebox";
file = "ata-local-number";
default = null;
}
}";
}) machines;
genServerSIPEndpoint =
{ hostname, address }:
''
@@ -102,26 +140,35 @@
throw "clanService/yggdrasil is required";
in
{
clan.core.vars.generators.phonebox = {
clan.core.vars.generators.phonebox = builtins.break {
files = {
server-prefix-number.secret = false;
ata-local-number.secret = false;
owner-name.secret = false;
};
prompts = {
server-prefix-number = {
type = "line";
persist = true;
description = "Server prefix number: indicate server to connect to [10XX]";
};
ata-local-number = {
persist = true;
type = "line";
description = "Local suffix number: indicate local number on the server [XX00]";
};
owner-name = {
persist = true;
type = "line";
description = "The owner's name for this unit";
};
};
script = ''
cat $prompts/server-prefix-number > $out/server-prefix-number
cat $prompts/ata-local-number > $out/ata-local-number
cat $prompts/owner-name > $out/owner-name
'';
};
@@ -199,7 +246,6 @@
package = lib.mkDefault asterisk;
confFiles =
let
machines = lib.attrNames roles.default.machines;
nodes = builtins.foldl' (
nodes: name:
nodes

View File

@@ -0,0 +1 @@
w-office

View File

@@ -0,0 +1 @@
usa-1

View File

@@ -0,0 +1 @@
usa-2

View File

@@ -0,0 +1 @@
b4l

View File

@@ -0,0 +1 @@
usa-3

View File

@@ -0,0 +1 @@
vi

View File

@@ -0,0 +1 @@
b4l