Compare commits
8 Commits
inventree-
...
acdf5515c0
| Author | SHA1 | Date | |
|---|---|---|---|
| acdf5515c0 | |||
| 2bae7f59a3 | |||
| 8a24bf97f8 | |||
| 47ea505962 | |||
| 8853fcda9b | |||
| bfaab9b1e7 | |||
| 92fa3bcb88 | |||
| bf64ee1202 |
@@ -1,4 +1,7 @@
|
|||||||
{ clanLib, ... }:
|
{
|
||||||
|
clanLib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
_class = "clan.service";
|
_class = "clan.service";
|
||||||
manifest.name = "phonebox";
|
manifest.name = "phonebox";
|
||||||
@@ -14,6 +17,11 @@
|
|||||||
description = "An Ethernet interface that connect to ATA box.";
|
description = "An Ethernet interface that connect to ATA box.";
|
||||||
default = "enp2s0";
|
default = "enp2s0";
|
||||||
};
|
};
|
||||||
|
options.ownerName = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "";
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
perInstance =
|
perInstance =
|
||||||
{
|
{
|
||||||
@@ -22,6 +30,7 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
nixosModule =
|
nixosModule =
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
@@ -34,12 +43,41 @@
|
|||||||
propagatedNativeBuildInputs = [ pkgs.spandsp3 ];
|
propagatedNativeBuildInputs = [ pkgs.spandsp3 ];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
machines = lib.attrNames roles.default.machines;
|
||||||
|
|
||||||
user = "asterisk";
|
user = "asterisk";
|
||||||
faxDir = "/run/asterisk/fax";
|
faxDir = "/run/asterisk/fax";
|
||||||
rtpPortFrom = 10000;
|
rtpPortFrom = 10000;
|
||||||
rtpPortTo = 20000;
|
rtpPortTo = 20000;
|
||||||
ata-interface = settings.ata-ethernet-iface;
|
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 =
|
genServerSIPEndpoint =
|
||||||
{ hostname, address }:
|
{ hostname, address }:
|
||||||
''
|
''
|
||||||
@@ -102,10 +140,11 @@
|
|||||||
throw "clanService/yggdrasil is required";
|
throw "clanService/yggdrasil is required";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
clan.core.vars.generators.phonebox = {
|
clan.core.vars.generators.phonebox = builtins.break {
|
||||||
files = {
|
files = {
|
||||||
server-prefix-number.secret = false;
|
server-prefix-number.secret = false;
|
||||||
ata-local-number.secret = false;
|
ata-local-number.secret = false;
|
||||||
|
owner-name.secret = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
prompts = {
|
prompts = {
|
||||||
@@ -117,11 +156,27 @@
|
|||||||
type = "line";
|
type = "line";
|
||||||
description = "Local suffix number: indicate local number on the server [XX00]";
|
description = "Local suffix number: indicate local number on the server [XX00]";
|
||||||
};
|
};
|
||||||
|
owner-name = {
|
||||||
|
type = "line";
|
||||||
|
description = "The owner's name for this unit";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
script = ''
|
script = ''
|
||||||
cat $prompts/server-prefix-number > $out/server-prefix-number
|
prompt_server_prefix=$(cat "$prompts"/server-prefix-number)
|
||||||
cat $prompts/ata-local-number > $out/ata-local-number
|
if [[ -n "''${prompt_server_prefix-}" ]]; then
|
||||||
|
echo $prompt_server_prefix | tr -d "\n" > "$out"/server-prefix-number
|
||||||
|
fi
|
||||||
|
|
||||||
|
prompt_ata_local=$(cat "$prompts"/ata-local-number)
|
||||||
|
if [[ -n "''${prompt_ata_local-}" ]]; then
|
||||||
|
echo $prompt_ata_local | tr -d "\n" > "$out"/ata-local-number
|
||||||
|
fi
|
||||||
|
|
||||||
|
prompt_owner_name=$(cat "$prompts"/owner-name)
|
||||||
|
if [[ -n "''${prompt_owner_name-}" ]]; then
|
||||||
|
echo $prompt_owner_name | tr -d "\n" > "$out"/owner-name
|
||||||
|
fi
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -199,7 +254,6 @@
|
|||||||
package = lib.mkDefault asterisk;
|
package = lib.mkDefault asterisk;
|
||||||
confFiles =
|
confFiles =
|
||||||
let
|
let
|
||||||
machines = lib.attrNames roles.default.machines;
|
|
||||||
nodes = builtins.foldl' (
|
nodes = builtins.foldl' (
|
||||||
nodes: name:
|
nodes: name:
|
||||||
nodes
|
nodes
|
||||||
|
|||||||
1
vars/per-machine/adhil/phonebox/owner-name/value
Normal file
1
vars/per-machine/adhil/phonebox/owner-name/value
Normal file
@@ -0,0 +1 @@
|
|||||||
|
w-office
|
||||||
Reference in New Issue
Block a user