From 1b8ecb7ff0597890d2a2d081ab138115b79e51b0 Mon Sep 17 00:00:00 2001 From: boyska Date: Thu, 24 Feb 2022 15:05:39 +0100 Subject: [PATCH] funzioni lua riorganizzate --- transfer_back/conf/extensions.lua | 73 ++++------------------------- transfer_back/conf/rorConf.lua | 5 ++ transfer_back/conf/rorDebug.lua | 10 ++++ transfer_back/conf/rorFunctions.lua | 49 +++++++++++++++++++ 4 files changed, 73 insertions(+), 64 deletions(-) create mode 100644 transfer_back/conf/rorConf.lua create mode 100644 transfer_back/conf/rorDebug.lua create mode 100644 transfer_back/conf/rorFunctions.lua diff --git a/transfer_back/conf/extensions.lua b/transfer_back/conf/extensions.lua index 9c3fba4..37473ae 100644 --- a/transfer_back/conf/extensions.lua +++ b/transfer_back/conf/extensions.lua @@ -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() diff --git a/transfer_back/conf/rorConf.lua b/transfer_back/conf/rorConf.lua new file mode 100644 index 0000000..4247979 --- /dev/null +++ b/transfer_back/conf/rorConf.lua @@ -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}; + diff --git a/transfer_back/conf/rorDebug.lua b/transfer_back/conf/rorDebug.lua new file mode 100644 index 0000000..73d7bbc --- /dev/null +++ b/transfer_back/conf/rorDebug.lua @@ -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 diff --git a/transfer_back/conf/rorFunctions.lua b/transfer_back/conf/rorFunctions.lua new file mode 100644 index 0000000..fdd425a --- /dev/null +++ b/transfer_back/conf/rorFunctions.lua @@ -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