Add easybell lines

This commit is contained in:
Jakob Lechner 2025-07-23 05:05:29 +02:00
parent 4056ce5dfd
commit 3f6de04b84
3 changed files with 79 additions and 2 deletions

View file

@ -3,6 +3,16 @@ fieldpoc:
sip: ENC[AES256_GCM,data:B82q2sD5I6NUa+RphJL+f1IT5qpZYlpMunZUaN5JJ5I=,iv:YzDg/g1C1z7kV2R5LLNMhe2UvaRaurQKaq4SbGfFKmQ=,tag:NuWn3D8u6jiJFZFTaFvv3g==,type:str]
wireguard:
public-ip4: ENC[AES256_GCM,data:NifuhsgDA+/4c+Op9CAg4jhizFdup7FL9jQt4VLGqGzOaY9lMpAFvrWiW2o=,iv:zKN7QTIEo8+KjwtNPxhUVwD+6Xmz48gp9nDAg3bOazo=,tag:GQCBEFAD2en33gKXraXArw==,type:str]
yate:
accounts:
easybell-2: ENC[AES256_GCM,data:jPyZY87r++dNLZCv,iv:BMVICnZujyIbE4IYi+Z9tqn5rbWwnEcoHm9/jWAAhsc=,tag:tk/Vs0tOt6p+a3vD0bJMfw==,type:str]
easybell-3: ENC[AES256_GCM,data:JNQKClwQtYm4GMRp,iv:WsYzrY4vDPQ5voGkQsnOTFTeo09XbE1SfOT6cPv6NJw=,tag:M0hvDGUnFM8lRxRiXNMOUA==,type:str]
easybell-4: ENC[AES256_GCM,data:+bvA76qDKPfSwF/j,iv:Dtnn8JOnIHEXfwjqIWnNlAWdCVIzDbuz1VT6YVPo62w=,tag:NQrKHSV93u5ZAnwYu8EDHQ==,type:str]
easybell-5: ENC[AES256_GCM,data:yj8BuiShAb7gRapp,iv:R0Rj6+Bd54nb4vGfv2yD+H5miWaxLIiMwozgsq/cGN8=,tag:/iQ0r1rTOvDsb+Ik1Rg6oA==,type:str]
easybell-6: ENC[AES256_GCM,data:aAgbSrXbReqUkFq0,iv:VcAsb+246Qys0BJGpTwxTaj5LpQ5fuyJNys3EOMzt5k=,tag:7zXTQNtdsadRiZ/7DrtnHg==,type:str]
easybell-7: ENC[AES256_GCM,data:XU+9wmOTck+xXedv,iv:2ehV8RDzGY68BmlJf5u1oCG/G80uDtFBiA4MGotrFgU=,tag:+mGKoOBjmrB70iOoBTTsKA==,type:str]
easybell-8: ENC[AES256_GCM,data:mVjh6ybvPnT8YhXy,iv:l6RXSdK7Jq/ObOc0gx2fw/9SoZNyGaIAjsl9wBiI7UI=,tag:eIOi54s6RsmYHvrG15pPYQ==,type:str]
easybell-9: ENC[AES256_GCM,data:v0fo8FFrfQQn1H29,iv:jmDFvuRb4W12D9Gh6CLArymyf7efMvsQiELGksTa6Lk=,tag:wylK++mO98LZCsWd1DIT1Q==,type:str]
sops:
age:
- recipient: age16s0cyttcsp40jup9vnreck6mw500ae8j4ayrmf0tg79ukhgua3vsf4m5j4
@ -14,8 +24,8 @@ sops:
TFN1ZFJ2cEZmcHoxSmU1c3o0Q0w1cnMKkT8uBrgL9zyL5PAcqJqQerUdJN8yieVO
JwJvcU3I6reHuVkeNKGCZXdYrNMGeFPWwL88yHJW9MYjhO6xfDo8WQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-07-22T09:02:55Z"
mac: ENC[AES256_GCM,data:EYfRNPGHQYmxYPswTozFpd7Vp9j7PhV/Vop8dvvdr3JeAUGoHF2FHZt2Xxrni/wu3CSFW2jGLpMPXigiCxZndbGZhREjCaFrvtNIL/5fhmFV9hoAuW7jp8ydRbHoSB2wJ0d+O/YO4Y5uoKO+pnbmvWgMpHllrBvMMJ/+1tBgh5g=,iv:48VMeGQvhVTAgrtKNbyE9YTQLsp7vYlRPrm9cUMBC24=,tag:j9PPD8B7CYiojNKf6BhG+w==,type:str]
lastmodified: "2025-07-23T09:35:37Z"
mac: ENC[AES256_GCM,data:e1hoBiXA1BrLVTaf/siFWwjDSPvgaWYmfzMBjoIqShj1MnUg8vXBfPR89bhsPNtOkW7s0HVsgFeKBMFm0++xkDOb/Xy7gdzPltF4f8P0D5SrlcEoeHgRQWLCgxJLB4suKUBhUauccKKg1NlIVXw3MgizBjG7+bTfGDXZfVGGJy4=,iv:O0JE5V6rVkPnCpxVsGJUpeQZsmJF4ZxPTnqnLwZZnlg=,tag:AnejfZw44+8CnoDHS1KIsg==,type:str]
pgp:
- created_at: "2025-07-18T23:14:45Z"
enc: |-

View file

@ -0,0 +1,63 @@
{
config,
lib,
pkgs,
...
}: {
sops.secrets = lib.listToAttrs (
map
(number:
lib.nameValuePair "yate/accounts/easybell-${toString number}" {
sopsFile = ../../secrets.yaml;
owner = "yate";
})
(lib.lists.range 2 9)
);
environment.etc."yate/accfile.conf" = {
mode = "symlink";
source = "/var/run/yate/accfile.conf";
};
systemd.services.yate.serviceConfig = let
easybellAccount = name: username: let
title = "easybell-${toString name}";
secretPath = config.sops.secrets."yate/accounts/${title}".path;
in ''
[${title}]
enabled=yes
protocol=sip
username=${username}
password=$(cat "${secretPath}")
registrar=pbx.easybell.de
'';
accounts = [
(easybellAccount 2 "CPBX-61tkfwsx-000004")
(easybellAccount 3 "CPBX-61tkfwsx-000005")
(easybellAccount 4 "CPBX-61tkfwsx-000006")
(easybellAccount 5 "CPBX-61tkfwsx-000007")
(easybellAccount 6 "CPBX-61tkfwsx-000008")
(easybellAccount 7 "CPBX-61tkfwsx-000009")
(easybellAccount 8 "CPBX-61tkfwsx-000010")
(easybellAccount 9 "CPBX-61tkfwsx-000011")
];
in {
RuntimeDirectory = "yate";
RuntimeDirectoryMode = lib.mkForce "2750";
ExecStartPre = pkgs.writeShellScript "yate-pre-start" ''
cat > "$RUNTIME_DIRECTORY/accfile.conf" << EOF
${lib.concatStringsSep "\n" accounts}
EOF
'';
};
services.yate.config = {
yate.modules."regexroute.yate" = "enable";
regexroute.default = let
matchCalled = account: ''''${called}^${account}$'';
in {
"${matchCalled "CPBX-61tkfwsx-000004"}" = "sip/sip:1337@192.168.98.11";
#"^.*$" = ''echo REGEXROUTE DEBUG called=''${called} address=''${address} callsource=''${callsource} formats=''${formats} id=''${id} peerid=''${peerid} ip_host=''${ip_host} ip_port=''${ip_port} overlapped=''${overlapped} rtp_forward=''${rtp_forward} type=''${type} username=''${username} line=''${line} account=''${account} caller=''${caller} called=''${called} module=''${module}'';
};
};
}

View file

@ -5,6 +5,10 @@
to = 11250;
};
in {
imports = [
./accounts.nix
];
sops.secrets."fieldpoc/omm" = {
sopsFile = ../../secrets.yaml;
owner = "fieldpoc";