50 lines
1.0 KiB
Nix
50 lines
1.0 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
modulesPath,
|
|
...
|
|
}:
|
|
|
|
let
|
|
asteriskDir = ./asterisk;
|
|
asteriskFiles = builtins.readDir asteriskDir;
|
|
fileNames = builtins.attrNames asteriskFiles;
|
|
entries = builtins.map (name: {
|
|
name = name;
|
|
path = "${asteriskDir}/${name}";
|
|
}) fileNames;
|
|
in
|
|
{
|
|
config =
|
|
let
|
|
configFarm = pkgs.linkFarm "asterisk-config" entries;
|
|
in
|
|
{
|
|
services.getty.autologinUser = "root";
|
|
|
|
systemd.services.asterisk = {
|
|
wantedBy = [ "multi-user.target" ];
|
|
serviceConfig = {
|
|
ExecStart = "${pkgs.asterisk}/bin/asterisk -f -C ${configFarm}/asterisk.conf";
|
|
Restart = "on-failure";
|
|
User = "asterisk";
|
|
};
|
|
};
|
|
|
|
users.users.asterisk = {
|
|
isSystemUser = true;
|
|
group = "asterisk";
|
|
};
|
|
users.groups.asterisk = { };
|
|
|
|
environment.etc."asterisk".source = configFarm;
|
|
|
|
networking.firewall.allowedTCPPorts = [ 5060 ];
|
|
networking.firewall.allowedUDPPorts = [
|
|
5060
|
|
4569
|
|
];
|
|
};
|
|
}
|