funzioni lua riorganizzate
This commit is contained in:
parent
8afe654faf
commit
1b8ecb7ff0
4 changed files with 73 additions and 64 deletions
|
@ -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()
|
||||
|
|
5
transfer_back/conf/rorConf.lua
Normal file
5
transfer_back/conf/rorConf.lua
Normal 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};
|
||||
|
10
transfer_back/conf/rorDebug.lua
Normal file
10
transfer_back/conf/rorDebug.lua
Normal 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
|
49
transfer_back/conf/rorFunctions.lua
Normal file
49
transfer_back/conf/rorFunctions.lua
Normal 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
|
Loading…
Reference in a new issue