This commit is contained in:
lifestorm
2024-08-05 18:40:29 +03:00
parent 9f505a0646
commit c6d9b6f580
8044 changed files with 1853472 additions and 21 deletions

View File

@@ -0,0 +1,100 @@
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
ix.phone = ix.phone or {}
ix.phone.switch = ix.phone.switch or {}
-- a table used for managing pbxs and their members
ix.phone.switch.exchanges = ix.phone.switch.exchanges or {}
--[[ The following is some boiler plate code for creating and managing extensions and exchanges
In practice these things are just keys in a table and in the DB but it is probably best
if you use the functions here and not directly modify ix.phone.switch.exchanges directly!
This is necessary to keep the switching code readable
]]
function ix.phone.switch:AddExchange(exID)
if (self:ExchangeExists(exID)) then
return false
end
self.exchanges[exID] = {}
return true
end
function ix.phone.switch:RmExchange(exID)
if (!self:ExchangeExists(exID)) then
return false
end
self.exchanges[exID] = nil
return true
end
function ix.phone.switch:ExchangeExists(exID)
return self.exchanges[exID] != nil
end
function ix.phone.switch:DestExists(exID, extNum)
if (self.exchanges[exID] != nil) then
return self.exchanges[exID][extNum] != nil
else
return false
end
end
function ix.phone.switch:AddDest(exID, extNum, extName, endID)
-- returns false if destination exists or exchange doesn't
-- set noDB if you do not wish to store this destination to the database
if (self:DestExists(exID, extNum)) then
return false
end
self.exchanges[exID][extNum] = {}
self.exchanges[exID][extNum]["name"] = extName or ""
self.exchanges[exID][extNum]["endID"] = endID
return true
end
function ix.phone.switch:GetDest(exID, extNum)
if (!self:DestExists(exID, extNum)) then
return false
end
return self.exchanges[exID][extNum]
end
function ix.phone.switch:RmDest(exID, extNum)
-- returns false if destination does not exist
if (!self:DestExists(exID, extNum)) then
return false
end
self.exchanges[exID][extNum] = nil
return true
end
function ix.phone.switch:MvDest(fromExID, fromExtNum, toExID, toExtNum)
if (!self:RmDest(fromExID, fromExtNum)) then
return false
end
return self:AddDest(toExID, toExtNum)
end
function ix.phone.switch:SetName(exID, extNum, name)
if (!self:DestExists(exID, extNum)) then
return false
end
self.endpoints[self.exchanges[exID][extNum]["endID"]].currentName = name
return true
end