funzioni lua riorganizzate

This commit is contained in:
boyska 2022-02-24 15:05:39 +01:00
parent 8afe654faf
commit 1b8ecb7ff0
4 changed files with 73 additions and 64 deletions

View file

@ -1,3 +1,6 @@
dofile('/etc/asterisk/rorFunctions.lua')
dofile('/etc/asterisk/rorDebug.lua')
dofile('/etc/asterisk/rorConf.lua')
SIP = "PJSIP/"
@ -245,9 +248,6 @@ extensions = {
};
}
-- XXX: rimettici il 402, l'ho tolto per fare delle prove; e poi rimettilo come from-regia, non come from-ext
INTERNI = {401,403,404,405,406};
EXT = {020202, 402};
-- gli interni si possono chiamare fra loro
for _, num in ipairs(INTERNI) do
@ -264,45 +264,11 @@ end
end ]]--
-- con il prefisso 0, gli interni possono chiamare qualsiasi cosa
extensions["from-regia"]["_0."] = function(c, ext)
app.noop(ext)
trunks = { "fastweb/", "vodafone/" };
if ext:sub(1,1) == "0" then
num = ext:sub(2) -- butta via lo 0 iniziale
-- XXX: in realta' questo dovra' passare per i trunk, rimuovere prima o poi
trunks = { "" };
else
num = ext:sub(3) -- butta via l'*1 o *2
trunks = { trunks[tonumber(ext:sub(2,2))] };
end
to_dial = ""
for i, trunk in ipairs(trunks) do
if i > 1 then
to_dial = to_dial .. "&"
end
to_dial = to_dial .. SIP .. trunk .. num
end
-- qui NON ci va il doppio underscore: solo chi chiama puo' usare questa feature
app.set("DYNAMIC_FEATURES=mandainondaChiamante")
app.dial(to_dial)
end
extensions["from-regia"]["_1[12]."] = extensions["from-regia"]["_0."]
extensions["from-interni"]["_0."] = chiamaEsterno(TRUNKS)
extensions["from-regia"]["_1[12]."] = chiamaEsterno(TRUNKS)
-- gli esterni possono chiamare, e squilla in tutti i telefoni
extensions["from-ext"]["_."] = function()
to_dial = ""
for _, num in ipairs(INTERNI) do
if #to_dial > 0 then
to_dial = to_dial .. "&"
end
to_dial = to_dial .. SIP .. num
end
app.set("__DYNAMIC_FEATURES=mandainondaRicevente")
app.dial(to_dial)
end
extensions["from-ext"]["0612345678"] = chiamaDaEsterno(INTERNI)
extensions["debug"][9000] = function ()
app.answer()
@ -314,30 +280,9 @@ extensions["debug"][9000] = function ()
end
app.hangup()
end
extensions["debug"][9440] = function()
app.answer()
for i = 1,20 do
app.playtones("440/4000")
app.wait(4)
end
app.hangup()
end
extensions["debug"][9880] = function()
app.answer()
for i = 1,20 do
app.playtones("880/4000")
app.wait(4)
end
app.hangup()
end
extensions["private"][9438] = function()
app.answer()
for i = 1,20 do
app.playtones("438/4000")
app.wait(4)
end
app.hangup()
end
extensions["debug"][9440] = tono(440)
extensions["debug"][9880] = tono(880)
extensions["private"][9438] = tono(438)
-- questa e' la stanza in cui 401 incontra i suoi interlocutori
extensions["private"][9401] = function()
app.answer()

View file

@ -0,0 +1,5 @@
TRUNKS = { "nonEsisto", "messagenetTrunk", "asdTrunk" };
-- XXX: rimettici il 402, l'ho tolto per fare delle prove; e poi rimettilo come from-regia, non come from-ext
INTERNI = {401,403,404,405,406};
EXT = {020202, 402};

View file

@ -0,0 +1,10 @@
function tono(freq)
return function()
app.answer()
for i = 1,20 do
app.playtones(string.format("%d/4000", freq))
app.wait(4)
end
app.hangup()
end
end

View file

@ -0,0 +1,49 @@
function chiamaEsterno(_trunks)
return function (context, ext)
app.noop(ext)
app.noop(context)
if ext:sub(1,1) == "0" then
num = ext:sub(2) -- butta via lo 0 iniziale
trunks = _trunks;
else
num = ext:sub(3) -- butta via l'*1 o *2
trunks = { _trunks[tonumber(ext:sub(2,2))] };
end
if context == "from-regia" then
-- qui NON ci va il doppio underscore: solo chi chiama puo' usare questa feature
app.set("DYNAMIC_FEATURES=mandainondaChiamante")
-- XXX: vogliamo che #9 non faccia proprio niente se sei un interno non di regia?
-- o vorremmo tipo che facendo #9 da from-interni inoltrasse la chiamata alla regia?
end
to_dial = ""
for i, trunk in ipairs(trunks) do
if i > 1 then
to_dial = to_dial .. "&"
end
dial_s = string.format("%s%s@%s", SIP, num, trunk)
app.dial(dial_s, nil, "g")
app.noop("DIALSTATUS=" .. channel.DIALSTATUS.value)
if channel.DIALSTATUS.value ~= "CHANUNAVAIL" then
app.noop("esco ciao")
break
end
end
end
end
function chiamaDaEsterno(_interni)
return function()
to_dial = ""
for _, num in ipairs(INTERNI) do
if #to_dial > 0 then
to_dial = to_dial .. "&"
end
to_dial = to_dial .. SIP .. num
end
app.set("__DYNAMIC_FEATURES=mandainondaRicevente")
app.dial(to_dial)
end
end