Add asterisk
This commit is contained in:
parent
5152758d10
commit
d36c1a48f1
3 changed files with 171 additions and 2 deletions
|
|
@ -1,5 +1,8 @@
|
|||
duckdns-secret: ENC[AES256_GCM,data:hp4aWnmTYKZhBehY0nuRV+H9bpCdK2uNqY3J0s1w6JsiyXip,iv:X0MtN+lqDqucgHOgS1D/RrMksNydLFW1/wqD47DWhqQ=,tag:+7qsJEJYzI+UUrdC6NZr4Q==,type:str]
|
||||
pap-secrets: ENC[AES256_GCM,data:UyC63/4EXZjypFlH7MLtJXpIBgD9P/Eolg2M1A==,iv:tf8W8rpRa487PIB9NW4NyDKgCoWYV/wDgs9MmKLZ/mc=,tag:r+zgW8XI9TUyoz56irYEdQ==,type:str]
|
||||
asterisk-pjsip: ENC[AES256_GCM,data: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,iv:bFKc8e+3rLAHje8UWwY2elof5xqceTTWX1f7nkE91nM=,tag:NWMiljj8urTDoka5bkF0jg==,type:str]
|
||||
asterisk-ari: ENC[AES256_GCM,data:HnY7d3BdScb0bmsBVlsTHAMv2k8tyyA/,iv:q+NsCHcGGOCe6gdAHbFfjKvO4dyWoW/xI5jtngJmdds=,tag:e8kuEsEokf5lAAgO/coxTQ==,type:str]
|
||||
asterisk-voicemail: ENC[AES256_GCM,data:UbMjSgxZpUDzPpeVPQKfDEwKe/KgZJdMf+1q7YyPtjqiw80flSo3NqLREtuGshHVFqTSS+UFoucpJMx0qB3h4YCqJgSsJQB692q1fra1aLtnw08u1eEkqyi4EKBN4KuaD8E6zggN7Zor7IqEPrAp3H/JAWvoMqGaWZTn4vJbNnzFHp9JPvzyf0emmXTXm+SJFjoSjuT3tgrimQ9UsgUrX4Nxx6ZTMKnRU72+sEaRqtSjlYfk4aYveB82oV+s1iexGidy8vgVEJzRxkkbc87+2BrSTGW63VjIMLSYAFYOQp+hsP263lRJ8ZJYdJqrk49KXMpz8M5/lgk4P78Z/1PQ741CxpzLfo2oXij6jNPaH4jGujrsqK6lUSWi4g9rft76hYZF15absiLbvJZLIXcwTG4OsFkd+c7Ths7j/P/ttjBcnOgykz8ywW8XsSISBXehaO6FwPk37rddUHeEYOvwzKbH1qpgbtS5z/BKONKxqh+8FY5Wf3n80/0SbBQ3JlBnuTuqHQQlKCv2zkzGQv3aeu1WgqmM1+OH3BgSFM/F4o/gINWsOdU0DD9rNobb909mJspY3E1iEdPEElrMeZ/xKc2Zl1sKQtZIyZMRm0gYo/H/hODmBS3bqvTapmeMWpe5SCyw03FTp1O//brPHLdNqglkll9qqgsf4JUnCqefK5qyqqS4kPcDAzSBrYcBZLsKg5DnZbedD/rFNPDrlTaADMo4HkpwtE3U8jznVSDqAL3PfWvGk/bYLxaObXIzPpZybL/ILnnV5iifqSkhqhVwUaCX6nH0uB0mpiwXFbrFRYY6egqKrxtLoMEh5qT3wFdtKTt9a0Nnytvh/00vpv9yiHVEgkXGFkSC4Y3n3rSImWONKO+mYvlPH5kKM9vT9nIKBRBC7rmM3NRCKYCtPyOZlmTb6spADscUC6kux51Abd7GT/XWCmETB6cMNN2IQUVuJvcXX8IJay/mYYdgwY1DtVAWSkJlnJGAuvNQL4/v5v08u8GrnCO89aZwbA56zEulOBVr5iINm0BmqCAg9OHJGjlq4eK0/5bT,iv:ra1EmIfT7Pwz5GVidrlTDN/Ox4ErsAvQCe7hoQoTXRg=,tag:T7nCiJ+8djxFbTJfB9Hhxw==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
|
|
@ -15,8 +18,8 @@ sops:
|
|||
MU41eU8zeTRRUlZyUXV0U1N6U0NRNnMKZK3vfyRRr7Iu6HfpdpmDTKzUbEnCnW9l
|
||||
rGjFmY9VX2q9w3j/4E5uUToQfeGMqqBTOFUB3hNgU8K5ZT7wMbOXAg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2022-12-06T20:38:59Z"
|
||||
mac: ENC[AES256_GCM,data:ES1O5mjSNxilWrKGGd8SbjVAPpjuOPddC3z61T2wjUMGU2/PVAzNVH3FRBb10doAVy4CRkl5kKHdncRwAPp7ICT+u6Jcn9aKt82BThPoMZHL93H3Qu49RLou7YnUV/hsht/K8UKzZbx6rGH04XGxuyDxDCkQAPmOPgn8NZ+jgBE=,iv:hkjtTw9AbbP71n52RrDgdtpaMZoCewqpUyB8p4Md5Fg=,tag:sMBxQy0XOSjPxawNxPw4RA==,type:str]
|
||||
lastmodified: "2022-12-06T22:00:11Z"
|
||||
mac: ENC[AES256_GCM,data:rg0vVhW4rXOJb72LDCLNTQtCHQu165knPZuGT56zoGGWHPDDTWnqt/WaBHyUoIBXWe286jW+aV0hFZMRCrS8cu+XSTztmXDIuNaYU7s8XW8ZzISUTCHDVUiYRSjaZXvCprr0cpiQoJ9dAl+Rm5m50elCdC8E7VaNGEYTIYWYLtk=,iv:7R8xt3WJKdcMrUdL/byMIbS9cv0dxlxou26Q3liIxSQ=,tag:IENmJHOSX9nLhrnSVHZltg==,type:str]
|
||||
pgp:
|
||||
- created_at: "2022-11-02T22:14:19Z"
|
||||
enc: |-
|
||||
|
|
|
|||
165
hosts/aluminium/services/asterisk.nix
Normal file
165
hosts/aluminium/services/asterisk.nix
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
{ config, lib, ... }:
|
||||
let
|
||||
secretConfigFiles = [
|
||||
"ari"
|
||||
"pjsip"
|
||||
"voicemail"
|
||||
];
|
||||
rtp = {
|
||||
start = 10000;
|
||||
end = 10200;
|
||||
};
|
||||
in
|
||||
{
|
||||
services.asterisk = {
|
||||
enable = true;
|
||||
confFiles = {
|
||||
"extensions.conf" = ''
|
||||
[sipgate-in]
|
||||
exten = _499846876,1,Noop(Processing an incoming call)
|
||||
;same = n,Dial(PJSIP/10)
|
||||
same = n,Dial(PJSIP/10&PJSIP/11,45,tT)
|
||||
;same = n,VoiceMail(876@lechner,u)
|
||||
same = n,Hangup()
|
||||
|
||||
exten => _4998469779781,1,Verbose(3,Incoming fax)
|
||||
; folder where your incoming faxes will initially be stored
|
||||
same => n,Set(FAXDEST=/tmp)
|
||||
|
||||
exten = _4998469779782,1,Noop(Test call)
|
||||
same = n,Dial(PJSIP/10)
|
||||
|
||||
; put a timestamp on this call so the resulting file is unique
|
||||
same => n,Set(tempfax=''${STRFTIME(,,%C%y%m%d%H%M)})
|
||||
same => n,ReceiveFax(''${FAXDEST}/''${tempfax}.tif)
|
||||
same => n,Verbose(3,- Fax receipt completed with status: ''${FAXSTATUS})
|
||||
same => n,System(echo | s-nail -a ''${FAXDEST}/''${tempfax} -s "Asterisk Fax" mail@jalr.de)
|
||||
|
||||
exten = _499846977892,1,Noop(Processing an incoming call)
|
||||
same = n,Dial(PJSIP/12,30,tT)
|
||||
;same = n,VoiceMail(977892@pauline,u)
|
||||
same = n,Hangup()
|
||||
|
||||
exten = _499846977891,1,Noop(Processing an incoming call)
|
||||
same = n,Dial(PJSIP/13&PJSIP/16,30,tT)
|
||||
same = n,VoiceMail(977891@jakob,u)
|
||||
same = n,Hangup()
|
||||
|
||||
[dect]
|
||||
exten = 100,1,Answer()
|
||||
same = n,Wait(1)
|
||||
same = n,Playback(hello-world)
|
||||
same = n,Hangup()
|
||||
|
||||
;exten = 10,1,Dial(PJSIP/10,10)
|
||||
;same = n,VoiceMail(876@lechner,u)
|
||||
|
||||
exten = _1X,1,Dial(PJSIP/''${EXTEN},30)
|
||||
same = n,Hangup()
|
||||
|
||||
exten = 50,1,Dial(PJSIP/10&PJSIP/11,30,tT)
|
||||
same = n,Hangup()
|
||||
|
||||
exten = 99,1,Answer()
|
||||
same = n,VoiceMailMain(876@lechner)
|
||||
|
||||
exten = 98,1,Answer()
|
||||
same = n,VoiceMailMain(977892@pauline)
|
||||
|
||||
exten = _ZX.,1,Noop(Ortsgespraech)
|
||||
same = n,Dial(PJSIP/09846''${EXTEN}@sipgate,300)
|
||||
same = n,Hangup()
|
||||
|
||||
exten = _0ZXXXXX.,1,Noop(Deutsches Festnetz)
|
||||
same = n,Dial(PJSIP/''${EXTEN}@sipgate,300)
|
||||
same = n,Hangup()
|
||||
|
||||
exten = _00XXXXX.,1,Noop(Internationales Gespraech)
|
||||
same = n,Dial(PJSIP/''${EXTEN}@sipgate,300)
|
||||
same = n,Hangup()
|
||||
|
||||
[voicemail-callback]
|
||||
exten = s,1,HasNewVoicemail(977892@pauline)
|
||||
exten = s,2,Hangup
|
||||
exten = s,102,Dial(PJSIP/12,15)
|
||||
exten = s,n,VoiceMailMain(977892@pauline)
|
||||
exten = s,n,Hangup
|
||||
|
||||
|
||||
[fax-tx]
|
||||
exten => s,1,NoOp(**** SENDING FAX ****)
|
||||
;exten => s,n,Set(FAXFILE=output.tif)
|
||||
|
||||
exten => s,n,NoOp(**** SETTING FAXOPT ****)
|
||||
exten => s,n,Set(FAXOPT(ecm)=yes)
|
||||
;exten => s,n,Set(FAXOPT(localstationid)=098469779780)
|
||||
exten => s,n,Set(FAXOPT(maxrate)=14400)
|
||||
exten => s,n,Set(FAXOPT(minrate)=2400)
|
||||
exten => s,n,NoOp(**** SENDING FAX : ''${FAXFILE} ****)
|
||||
exten => s,n,SendFAX(/var/lib/asterisk/fax-outgoing/''${FAXFILE},d)
|
||||
|
||||
;exten => send,n,Wait(6)
|
||||
;exten => send,n,Set(GLOBAL(FAXCOUNT)=''$[ ''${GLOBAL(FAXCOUNT)} + 1 ])
|
||||
;exten => send,n,Set(FAXCOUNT=''${GLOBAL(FAXCOUNT)})
|
||||
;exten => send,n,Set(FAXFILE=dw-faxout.tif)
|
||||
; Set FAXOPTs
|
||||
;exten => send,n,NoOp(**** SETTING FAXOPT ****)
|
||||
;exten => send,n,Set(FAXOPT(ecm)=yes)
|
||||
;exten => send,n,Set(FAXOPT(headerinfo)=Fax from ''${GLOBAL(LASTFAXCALLERNAME)} at ''${GLOBAL(LASTFAXCALLERNUM)} was received.)
|
||||
;exten => send,n,Set(FAXOPT(maxrate)=14400)
|
||||
; Send the fax
|
||||
exten => send,n,SendFAX(/home/jalr/fax.tif,d)
|
||||
'';
|
||||
"http.conf" = ''
|
||||
[general]
|
||||
enabled=yes
|
||||
bindaddr=127.0.0.1
|
||||
|
||||
; Port to bind to for HTTP sessions (default is 8088)
|
||||
;bindport=8088
|
||||
|
||||
tlsdisablev1=yes
|
||||
tlsdisablev11=yes
|
||||
tlsdisablev12=yes
|
||||
|
||||
tlsservercipherorder=yes
|
||||
'';
|
||||
"rtp.conf" = ''
|
||||
[general]
|
||||
rtpstart=${toString rtp.start}
|
||||
rtpend=${toString rtp.end}
|
||||
'';
|
||||
"dnsmgr.conf" = ''
|
||||
[general]
|
||||
enable=yes
|
||||
refreshinterval=300
|
||||
'';
|
||||
};
|
||||
useTheseDefaultConfFiles = [ ];
|
||||
};
|
||||
|
||||
sops.secrets = (lib.listToAttrs (map
|
||||
(name: lib.nameValuePair "asterisk-${name}" {
|
||||
sopsFile = ../secrets.yaml;
|
||||
owner = config.users.users.asterisk.name;
|
||||
})
|
||||
secretConfigFiles));
|
||||
environment.etc = lib.mapAttrs'
|
||||
(name: _: lib.nameValuePair
|
||||
"asterisk/${name}.conf"
|
||||
{ source = config.sops.secrets."asterisk-${name}".path; })
|
||||
(lib.listToAttrs (map (name: lib.nameValuePair name { }) secretConfigFiles));
|
||||
|
||||
networking.firewall = {
|
||||
allowedUDPPorts = [
|
||||
5060
|
||||
5062
|
||||
];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
from = rtp.start;
|
||||
to = rtp.end;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./asterisk.nix
|
||||
./dnsmasq.nix
|
||||
./dyndns.nix
|
||||
./unifi-controller.nix
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue