diff options
Diffstat (limited to 'applications/luci-app-asterisk/luasrc/model/cbi/asterisk')
11 files changed, 0 insertions, 934 deletions
diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/dialplan_out.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/dialplan_out.lua deleted file mode 100644 index b4c81bb29d..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/dialplan_out.lua +++ /dev/null @@ -1,125 +0,0 @@ --- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -local ast = require("luci.asterisk") - -local function find_outgoing_contexts(uci) - local c = { } - local h = { } - --- uci:foreach("asterisk", "dialplan", --- function(s) --- if not h[s['.name']] then --- c[#c+1] = { s['.name'], "Dialplan: %s" % s['.name'] } --- h[s['.name']] = true --- end --- end) - - uci:foreach("asterisk", "dialzone", - function(s) - if not h[s['.name']] then - c[#c+1] = { s['.name'], "Dialzone: %s" % s['.name'] } - h[s['.name']] = true - end - end) - - return c -end - -local function find_incoming_contexts(uci) - local c = { } - local h = { } - - uci:foreach("asterisk", "sip", - function(s) - if s.context and not h[s.context] and - uci:get_bool("asterisk", s['.name'], "provider") - then - c[#c+1] = { s.context, "Incoming: %s" % s['.name'] or s.context } - h[s.context] = true - end - end) - - return c -end - -local function find_trunks(uci) - local t = { } - - uci:foreach("asterisk", "sip", - function(s) - if uci:get_bool("asterisk", s['.name'], "provider") then - t[#t+1] = { - "SIP/%s" % s['.name'], - "SIP: %s" % s['.name'] - } - end - end) - - uci:foreach("asterisk", "iax", - function(s) - t[#t+1] = { - "IAX/%s" % s['.name'], - "IAX: %s" % s.extension or s['.name'] - } - end) - - return t -end - ---[[ - -dialzone {name} - Outgoing zone. - uses - Outgoing line to use: TYPE/Name - match (list) - Number to match - countrycode - The effective country code of this dialzone - international (list) - International prefix to match - localzone - dialzone for local numbers - addprefix - Prexix required to dial out. - localprefix - Prefix for a local call - -]] - - --- --- SIP dialzone configuration --- -if arg[1] then - cbimap = Map("asterisk", "Edit Dialplan Entry") - - entry = cbimap:section(NamedSection, arg[1]) - - back = entry:option(DummyValue, "_overview", "Back to dialplan overview") - back.value = "" - back.titleref = luci.dispatcher.build_url("admin", "asterisk", "dialplans") - - desc = entry:option(Value, "description", "Description") - function desc.cfgvalue(self, s, ...) - return Value.cfgvalue(self, s, ...) or s - end - - match = entry:option(DynamicList, "match", "Number matches") - - intl = entry:option(DynamicList, "international", "Intl. prefix matches (optional)") - - trunk = entry:option(MultiValue, "uses", "Used trunk") - for _, v in ipairs(find_trunks(cbimap.uci)) do - trunk:value(unpack(v)) - end - - aprefix = entry:option(Value, "addprefix", "Add prefix to dial out (optional)") - --ast.idd.cbifill(aprefix) - - ccode = entry:option(Value, "countrycode", "Effective countrycode (optional)") - ast.cc.cbifill(ccode) - - lzone = entry:option(ListValue, "localzone", "Dialzone for local numbers") - lzone:value("", "no special treatment of local numbers") - for _, v in ipairs(find_outgoing_contexts(cbimap.uci)) do - lzone:value(unpack(v)) - end - - lprefix = entry:option(Value, "localprefix", "Prefix for local calls (optional)") - - return cbimap -end diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/dialplans.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/dialplans.lua deleted file mode 100644 index 4ffeca4f8a..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/dialplans.lua +++ /dev/null @@ -1,103 +0,0 @@ --- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -local ast = require("luci.asterisk") - -cbimap = Map("asterisk", "Registered Trunks") -cbimap.pageaction = false - -local sip_peers = { } -cbimap.uci:foreach("asterisk", "sip", - function(s) - if s.type == "peer" then - s.name = s['.name'] - s.info = ast.sip.peer(s.name) - sip_peers[s.name] = s - end - end) - - -sip_table = cbimap:section(TypedSection, "sip", "SIP Trunks") -sip_table.template = "cbi/tblsection" -sip_table.extedit = luci.dispatcher.build_url("admin", "asterisk", "trunks", "sip", "%s") -sip_table.addremove = true -sip_table.sectionhead = "Extension" - -function sip_table.filter(self, s) - return s and ( - cbimap.uci:get("asterisk", s, "type") == nil or - cbimap.uci:get_bool("asterisk", s, "provider") - ) -end - -function sip_table.create(self, section) - if TypedSection.create(self, section) then - created = section - else - self.invalid_cts = true - end -end - -function sip_table.parse(self, ...) - TypedSection.parse(self, ...) - if created then - cbimap.uci:tset("asterisk", created, { - type = "friend", - qualify = "yes", - provider = "yes" - }) - - cbimap.uci:save("asterisk") - luci.http.redirect(luci.dispatcher.build_url( - "admin", "asterisk", "trunks", "sip", created - )) - end -end - - -user = sip_table:option(DummyValue, "username", "Username") - -host = sip_table:option(DummyValue, "host", "Hostname") -function host.cfgvalue(self, s) - if sip_peers[s] and sip_peers[s].info.address then - return "%s:%i" %{ sip_peers[s].info.address, sip_peers[s].info.port } - else - return "n/a" - end -end - -context = sip_table:option(DummyValue, "context", "Dialplan") -context.href = luci.dispatcher.build_url("admin", "asterisk", "dialplan") -function context.cfgvalue(...) - return AbstractValue.cfgvalue(...) or "(default)" -end - -online = sip_table:option(DummyValue, "online", "Registered") -function online.cfgvalue(self, s) - if sip_peers[s] and sip_peers[s].info.online == nil then - return "n/a" - else - return sip_peers[s] and sip_peers[s].info.online - and "yes" or "no (%s)" %{ - sip_peers[s] and sip_peers[s].info.Status:lower() or "unknown" - } - end -end - -delay = sip_table:option(DummyValue, "delay", "Delay") -function delay.cfgvalue(self, s) - if sip_peers[s] and sip_peers[s].info.online then - return "%i ms" % sip_peers[s].info.delay - else - return "n/a" - end -end - -info = sip_table:option(Button, "_info", "Info") -function info.write(self, s) - luci.http.redirect(luci.dispatcher.build_url( - "admin", "asterisk", "trunks", "sip", s, "info" - )) -end - -return cbimap diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/dialzones.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/dialzones.lua deleted file mode 100644 index 5585c062d2..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/dialzones.lua +++ /dev/null @@ -1,123 +0,0 @@ --- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -local ast = require("luci.asterisk") -local uci = require("luci.model.uci").cursor() - ---[[ - Dialzone overview table -]] - -if not arg[1] then - zonemap = Map("asterisk", "Dial Zones", [[ - Dial zones hold patterns of dialed numbers to match. - Each zone has one or more trunks assigned. If the first trunk is - congested, Asterisk will try to use the next available connection. - If all trunks fail, then the following zones in the parent dialplan - are tried. - ]]) - - local zones, znames = ast.dialzone.zones() - - zonetbl = zonemap:section(Table, zones, "Zone Overview") - zonetbl.sectionhead = "Zone" - zonetbl.addremove = true - zonetbl.anonymous = false - zonetbl.extedit = luci.dispatcher.build_url( - "admin", "asterisk", "dialplans", "zones", "%s" - ) - - function zonetbl.cfgsections(self) - return znames - end - - function zonetbl.parse(self) - for k, v in pairs(self.map:formvaluetable( - luci.cbi.REMOVE_PREFIX .. self.config - ) or {}) do - if k:sub(-2) == ".x" then k = k:sub(1, #k - 2) end - uci:delete("asterisk", k) - uci:save("asterisk") - self.data[k] = nil - for i = 1,#znames do - if znames[i] == k then - table.remove(znames, i) - break - end - end - end - - Table.parse(self) - end - - zonetbl:option(DummyValue, "description", "Description") - zonetbl:option(DummyValue, "addprefix") - - match = zonetbl:option(DummyValue, "matches") - function match.cfgvalue(self, s) - return table.concat(zones[s].matches, ", ") - end - - trunks = zonetbl:option(DummyValue, "trunk") - trunks.template = "asterisk/cbi/cell" - function trunks.cfgvalue(self, s) - return ast.tools.hyperlinks(zones[s].trunks) - end - - return zonemap - ---[[ - Zone edit form -]] - -else - zoneedit = Map("asterisk", "Edit Dialzone") - - entry = zoneedit:section(NamedSection, arg[1]) - entry.title = "Zone %q" % arg[1]; - - back = entry:option(DummyValue, "_overview", "Back to dialzone overview") - back.value = "" - back.titleref = luci.dispatcher.build_url( - "admin", "asterisk", "dialplans", "zones" - ) - - desc = entry:option(Value, "description", "Description") - function desc.cfgvalue(self, s, ...) - return Value.cfgvalue(self, s, ...) or s - end - - trunks = entry:option(MultiValue, "uses", "Used trunks") - trunks.widget = "checkbox" - uci:foreach("asterisk", "sip", - function(s) - if s.provider == "yes" then - trunks:value( - "SIP/%s" % s['.name'], - "SIP/%s (%s)" %{ s['.name'], s.host or 'n/a' } - ) - end - end) - - - match = entry:option(DynamicList, "match", "Number matches") - - intl = entry:option(DynamicList, "international", "Intl. prefix matches (optional)") - - aprefix = entry:option(Value, "addprefix", "Add prefix to dial out (optional)") - ccode = entry:option(Value, "countrycode", "Effective countrycode (optional)") - - lzone = entry:option(ListValue, "localzone", "Dialzone for local numbers") - lzone:value("", "no special treatment of local numbers") - for _, z in ipairs(ast.dialzone.zones()) do - lzone:value(z.name, "%q (%s)" %{ z.name, z.description }) - end - --for _, v in ipairs(find_outgoing_contexts(zoneedit.uci)) do - -- lzone:value(unpack(v)) - --end - - lprefix = entry:option(Value, "localprefix", "Prefix for local calls (optional)") - - return zoneedit - -end diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/meetme.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/meetme.lua deleted file mode 100644 index e409d706ae..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/meetme.lua +++ /dev/null @@ -1,38 +0,0 @@ --- Copyright 2009 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -local ast = require "luci.asterisk" - -cbimap = Map("asterisk", "MeetMe - Rooms") - -meetme = cbimap:section(TypedSection, "meetme", "MeetMe Rooms") -meetme.addremove = true -meetme.anonymous = true -meetme.template = "cbi/tblsection" -meetme:option(Value, "_description", "Description", "Short room description") - -room = meetme:option(Value, "room", "Room Number", "Unique room identifier") - -function room.write(self, s, val) - if val and #val > 0 then - local old = self:cfgvalue(s) - self.map.uci:foreach("asterisk", "dialplanmeetme", - function(v) - if v.room == old then - self.map:set(v['.name'], "room", val) - end - end) - Value.write(self, s, val) - end -end - - -meetme:option(Value, "pin", "PIN", "PIN required to access") -meetme:option(Value, "adminpin", "Admin PIN", "PIN required for administration") - -function meetme.remove(self, s) - return ast.meetme.remove(self.map:get(s, "room"), self.map.uci) -end - - -return cbimap diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/meetme_settings.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/meetme_settings.lua deleted file mode 100644 index 9e5aed7f34..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/meetme_settings.lua +++ /dev/null @@ -1,17 +0,0 @@ --- Copyright 2009 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -cbimap = Map("asterisk", "MeetMe - Common Settings", - "Common settings for MeetMe phone conferences.") - -meetme = cbimap:section(TypedSection, "meetmegeneral", "General MeetMe Options") -meetme.addremove = false -meetme.anonymous = true - -audiobuffers = meetme:option(ListValue, "audiobuffers", - "Number of 20ms audio buffers to use for conferences") - -for i = 2, 32 do audiobuffers:value(i) end - - -return cbimap diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/phone_sip.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/phone_sip.lua deleted file mode 100644 index 01dfc1682f..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/phone_sip.lua +++ /dev/null @@ -1,145 +0,0 @@ --- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -local ast = require("luci.asterisk") - -local function find_outgoing_contexts(uci) - local c = { } - local h = { } - - uci:foreach("asterisk", "dialplan", - function(s) - if not h[s['.name']] then - c[#c+1] = { s['.name'], "Dialplan: %s" % s['.name'] } - h[s['.name']] = true - end - end) - - return c -end - -local function find_incoming_contexts(uci) - local c = { } - local h = { } - - uci:foreach("asterisk", "sip", - function(s) - if s.context and not h[s.context] and - uci:get_bool("asterisk", s['.name'], "provider") - then - c[#c+1] = { s.context, "Incoming: %s" % s['.name'] or s.context } - h[s.context] = true - end - end) - - return c -end - - --- --- SIP phone info --- -if arg[2] == "info" then - form = SimpleForm("asterisk", "SIP Phone Information") - form.reset = false - form.submit = "Back to overview" - - local info, keys = ast.sip.peer(arg[1]) - local data = { } - - for _, key in ipairs(keys) do - data[#data+1] = { - key = key, - val = type(info[key]) == "boolean" - and ( info[key] and "yes" or "no" ) - or ( info[key] == nil or #info[key] == 0 ) - and "(none)" - or tostring(info[key]) - } - end - - itbl = form:section(Table, data, "SIP Phone %q" % arg[1]) - itbl:option(DummyValue, "key", "Key") - itbl:option(DummyValue, "val", "Value") - - function itbl.parse(...) - luci.http.redirect( - luci.dispatcher.build_url("admin", "asterisk", "phones") - ) - end - - return form - --- --- SIP phone configuration --- -elseif arg[1] then - cbimap = Map("asterisk", "Edit SIP Client") - - peer = cbimap:section(NamedSection, arg[1]) - peer.hidden = { - type = "friend", - qualify = "yes", - host = "dynamic", - nat = "no", - canreinvite = "no" - } - - back = peer:option(DummyValue, "_overview", "Back to phone overview") - back.value = "" - back.titleref = luci.dispatcher.build_url("admin", "asterisk", "phones") - - active = peer:option(Flag, "disable", "Account enabled") - active.enabled = "yes" - active.disabled = "no" - function active.cfgvalue(...) - return AbstractValue.cfgvalue(...) or "yes" - end - - exten = peer:option(Value, "extension", "Extension Number") - cbimap.uci:foreach("asterisk", "dialplanexten", - function(s) - exten:value( - s.extension, - "%s (via %s/%s)" %{ s.extension, s.type:upper(), s.target } - ) - end) - - display = peer:option(Value, "callerid", "Display Name") - - username = peer:option(Value, "username", "Authorization ID") - password = peer:option(Value, "secret", "Authorization Password") - password.password = true - - regtimeout = peer:option(Value, "registertimeout", "Registration Time Value") - function regtimeout.cfgvalue(...) - return AbstractValue.cfgvalue(...) or "60" - end - - sipport = peer:option(Value, "port", "SIP Port") - function sipport.cfgvalue(...) - return AbstractValue.cfgvalue(...) or "5060" - end - - linekey = peer:option(ListValue, "_linekey", "Linekey Mode (broken)") - linekey:value("", "Off") - linekey:value("trunk", "Trunk Appearance") - linekey:value("call", "Call Appearance") - - dialplan = peer:option(ListValue, "context", "Assign Dialplan") - dialplan.titleref = luci.dispatcher.build_url("admin", "asterisk", "dialplans") - for _, v in ipairs(find_outgoing_contexts(cbimap.uci)) do - dialplan:value(unpack(v)) - end - - incoming = peer:option(StaticList, "incoming", "Receive incoming calls from") - for _, v in ipairs(find_incoming_contexts(cbimap.uci)) do - incoming:value(unpack(v)) - end - - --function incoming.cfgvalue(...) - --error(table.concat(MultiValue.cfgvalue(...),".")) - --end - - return cbimap -end diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/phones.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/phones.lua deleted file mode 100644 index a6c44f9335..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/phones.lua +++ /dev/null @@ -1,104 +0,0 @@ --- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -local ast = require("luci.asterisk") - -cbimap = Map("asterisk", "Registered Phones") -cbimap.pageaction = false - -local sip_peers = { } -cbimap.uci:foreach("asterisk", "sip", - function(s) - if s.type ~= "peer" then - s.name = s['.name'] - s.info = ast.sip.peer(s.name) - sip_peers[s.name] = s - end - end) - - -sip_table = cbimap:section(TypedSection, "sip", "SIP Phones") -sip_table.template = "cbi/tblsection" -sip_table.extedit = luci.dispatcher.build_url("admin", "asterisk", "phones", "sip", "%s") -sip_table.addremove = true - -function sip_table.filter(self, s) - return s and not cbimap.uci:get_bool("asterisk", s, "provider") -end - -function sip_table.create(self, section) - if TypedSection.create(self, section) then - created = section - cbimap.uci:tset("asterisk", section, { - type = "friend", - qualify = "yes", - provider = "no", - host = "dynamic", - nat = "no", - canreinvite = "no", - extension = section:match("^%d+$") and section or "", - username = section:match("^%d+$") and section or "" - }) - else - self.invalid_cts = true - end -end - -function sip_table.parse(self, ...) - TypedSection.parse(self, ...) - if created then - cbimap.uci:save("asterisk") - luci.http.redirect(luci.dispatcher.build_url( - "admin", "asterisk", "phones", "sip", created - )) - end -end - - -user = sip_table:option(DummyValue, "username", "Username") -function user.cfgvalue(self, s) - return sip_peers[s] and sip_peers[s].callerid or - AbstractValue.cfgvalue(self, s) -end - -host = sip_table:option(DummyValue, "host", "Hostname") -function host.cfgvalue(self, s) - if sip_peers[s] and sip_peers[s].info.address then - return "%s:%i" %{ sip_peers[s].info.address, sip_peers[s].info.port } - else - return "n/a" - end -end - -context = sip_table:option(DummyValue, "context", "Dialplan") -context.href = luci.dispatcher.build_url("admin", "asterisk", "dialplan") - -online = sip_table:option(DummyValue, "online", "Registered") -function online.cfgvalue(self, s) - if sip_peers[s] and sip_peers[s].info.online == nil then - return "n/a" - else - return sip_peers[s] and sip_peers[s].info.online - and "yes" or "no (%s)" % { - sip_peers[s] and sip_peers[s].info.Status:lower() or "unknown" - } - end -end - -delay = sip_table:option(DummyValue, "delay", "Delay") -function delay.cfgvalue(self, s) - if sip_peers[s] and sip_peers[s].info.online then - return "%i ms" % sip_peers[s].info.delay - else - return "n/a" - end -end - -info = sip_table:option(Button, "_info", "Info") -function info.write(self, s) - luci.http.redirect(luci.dispatcher.build_url( - "admin", "asterisk", "phones", "sip", s, "info" - )) -end - -return cbimap diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/trunk_sip.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/trunk_sip.lua deleted file mode 100644 index eedc1c2cac..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/trunk_sip.lua +++ /dev/null @@ -1,86 +0,0 @@ --- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -local ast = require("luci.asterisk") - --- --- SIP trunk info --- -if arg[2] == "info" then - form = SimpleForm("asterisk", "SIP Trunk Information") - form.reset = false - form.submit = "Back to overview" - - local info, keys = ast.sip.peer(arg[1]) - local data = { } - - for _, key in ipairs(keys) do - data[#data+1] = { - key = key, - val = type(info[key]) == "boolean" - and ( info[key] and "yes" or "no" ) - or ( info[key] == nil or #info[key] == 0 ) - and "(none)" - or tostring(info[key]) - } - end - - itbl = form:section(Table, data, "SIP Trunk %q" % arg[1]) - itbl:option(DummyValue, "key", "Key") - itbl:option(DummyValue, "val", "Value") - - function itbl.parse(...) - luci.http.redirect( - luci.dispatcher.build_url("admin", "asterisk", "trunks") - ) - end - - return form - --- --- SIP trunk config --- -elseif arg[1] then - cbimap = Map("asterisk", "Edit SIP Trunk") - - peer = cbimap:section(NamedSection, arg[1]) - peer.hidden = { - type = "peer", - qualify = "yes", - } - - back = peer:option(DummyValue, "_overview", "Back to trunk overview") - back.value = "" - back.titleref = luci.dispatcher.build_url("admin", "asterisk", "trunks") - - sipdomain = peer:option(Value, "host", "SIP Domain") - sipport = peer:option(Value, "port", "SIP Port") - function sipport.cfgvalue(...) - return AbstractValue.cfgvalue(...) or "5060" - end - - username = peer:option(Value, "username", "Authorization ID") - password = peer:option(Value, "secret", "Authorization Password") - password.password = true - - outboundproxy = peer:option(Value, "outboundproxy", "Outbound Proxy") - outboundport = peer:option(Value, "outboundproxyport", "Outbound Proxy Port") - - register = peer:option(Flag, "register", "Register with peer") - register.enabled = "yes" - register.disabled = "no" - - regext = peer:option(Value, "registerextension", "Extension to register (optional)") - regext:depends({register="1"}) - - didval = peer:option(ListValue, "_did", "Number of assigned DID numbers") - didval:value("", "(none)") - for i=1,24 do didval:value(i) end - - dialplan = peer:option(ListValue, "context", "Dialplan Context") - dialplan:value(arg[1] .. "_inbound", "(default)") - cbimap.uci:foreach("asterisk", "dialplan", - function(s) dialplan:value(s['.name']) end) - - return cbimap -end diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/trunks.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/trunks.lua deleted file mode 100644 index 44c8ca87d5..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/trunks.lua +++ /dev/null @@ -1,94 +0,0 @@ --- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -local ast = require("luci.asterisk") - -cbimap = Map("asterisk", "Trunks") -cbimap.pageaction = false - -local sip_peers = { } -cbimap.uci:foreach("asterisk", "sip", - function(s) - if s.type == "peer" then - s.name = s['.name'] - s.info = ast.sip.peer(s.name) - sip_peers[s.name] = s - end - end) - - -sip_table = cbimap:section(TypedSection, "sip", "SIP Trunks") -sip_table.template = "cbi/tblsection" -sip_table.extedit = luci.dispatcher.build_url("admin", "asterisk", "trunks", "sip", "%s") -sip_table.addremove = true -sip_table.sectionhead = "Extension" - -function sip_table.filter(self, s) - return s and ( - cbimap.uci:get("asterisk", s, "type") == nil or - cbimap.uci:get_bool("asterisk", s, "provider") - ) -end - -function sip_table.create(self, section) - if TypedSection.create(self, section) then - created = section - else - self.invalid_cts = true - end -end - -function sip_table.parse(self, ...) - TypedSection.parse(self, ...) - if created then - cbimap.uci:tset("asterisk", created, { - type = "friend", - qualify = "yes", - provider = "yes" - }) - - cbimap.uci:save("asterisk") - luci.http.redirect(luci.dispatcher.build_url( - "admin", "asterisk", "trunks", "sip", created - )) - end -end - - -user = sip_table:option(DummyValue, "username", "Username") - -context = sip_table:option(DummyValue, "context", "Dialplan") -context.href = luci.dispatcher.build_url("admin", "asterisk", "dialplan") -function context.cfgvalue(...) - return AbstractValue.cfgvalue(...) or "(default)" -end - -online = sip_table:option(DummyValue, "online", "Registered") -function online.cfgvalue(self, s) - if sip_peers[s] and sip_peers[s].info.online == nil then - return "n/a" - else - return sip_peers[s] and sip_peers[s].info.online - and "yes" or "no (%s)" %{ - sip_peers[s] and sip_peers[s].info.Status:lower() or "unknown" - } - end -end - -delay = sip_table:option(DummyValue, "delay", "Delay") -function delay.cfgvalue(self, s) - if sip_peers[s] and sip_peers[s].info.online then - return "%i ms" % sip_peers[s].info.delay - else - return "n/a" - end -end - -info = sip_table:option(Button, "_info", "Info") -function info.write(self, s) - luci.http.redirect(luci.dispatcher.build_url( - "admin", "asterisk", "trunks", "sip", s, "info" - )) -end - -return cbimap diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/voicemail.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/voicemail.lua deleted file mode 100644 index 51143e6a88..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/voicemail.lua +++ /dev/null @@ -1,48 +0,0 @@ --- Copyright 2009 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -local ast = require "luci.asterisk" - -cbimap = Map("asterisk", "Voicemail - Mailboxes") - -voicemail = cbimap:section(TypedSection, "voicemail", "Voicemail Boxes") -voicemail.addremove = true -voicemail.anonymous = true -voicemail.template = "cbi/tblsection" - -context = voicemail:option(ListValue, "context", "Context") -context:value("default") - -number = voicemail:option(Value, "number", - "Mailbox Number", "Unique mailbox identifier") - -function number.write(self, s, val) - if val and #val > 0 then - local old = self:cfgvalue(s) - self.map.uci:foreach("asterisk", "dialplanvoice", - function(v) - if v.voicebox == old then - self.map:set(v['.name'], "voicebox", val) - end - end) - Value.write(self, s, val) - end -end - - -voicemail:option(Value, "name", "Ownername", "Human readable display name") -voicemail:option(Value, "password", "Password", "Access protection") -voicemail:option(Value, "email", "eMail", "Where to send voice messages") -voicemail:option(Value, "page", "Pager", "Pager number") - -zone = voicemail:option(ListValue, "zone", "Timezone", "Used time format") -zone.titleref = luci.dispatcher.build_url("admin/asterisk/voicemail/settings") -cbimap.uci:foreach("asterisk", "voicezone", - function(s) zone:value(s['.name']) end) - -function voicemail.remove(self, s) - return ast.voicemail.remove(self.map:get(s, "number"), self.map.uci) -end - - -return cbimap diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/voicemail_settings.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/voicemail_settings.lua deleted file mode 100644 index ef52a32e7d..0000000000 --- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk/voicemail_settings.lua +++ /dev/null @@ -1,51 +0,0 @@ --- Copyright 2009 Jo-Philipp Wich <jow@openwrt.org> --- Licensed to the public under the Apache License 2.0. - -require "luci.sys.zoneinfo" - - -cbimap = Map("asterisk", "Voicemail - Common Settings") - -voicegeneral = cbimap:section(TypedSection, "voicegeneral", - "General Voicemail Options", "Common settings for all mailboxes are " .. - "defined here. Most of them are optional. The storage format should " .. - "never be changed once set.") - -voicegeneral.anonymous = true -voicegeneral.addremove = false - -format = voicegeneral:option(MultiValue, "Used storage formats") -format.widget = "checkbox" -format:value("wav49") -format:value("gsm") -format:value("wav") - -voicegeneral:option(Flag, "sendvoicemail", "Enable sending of emails") -voicegeneral:option(Flag, "attach", "Attach voice messages to emails") -voicegeneral:option(Value, "serveremail", "Used email sender address") -voicegeneral:option(Value, "emaildateformat", "Date format used in emails").optional = true -voicegeneral:option(Value, "maxlogins", "Max. failed login attempts").optional = true -voicegeneral:option(Value, "maxmsg", "Max. allowed messages per mailbox").optional = true -voicegeneral:option(Value, "minmessage", "Min. number of seconds for voicemail").optional = true -voicegeneral:option(Value, "maxmessage", "Max. number of seconds for voicemail").optional = true -voicegeneral:option(Value, "maxsilence", "Seconds of silence until stop recording").optional = true -voicegeneral:option(Value, "maxgreet", "Max. number of seconds for greetings").optional = true -voicegeneral:option(Value, "skipms", "Milliseconds to skip for rew./ff.").optional = true -voicegeneral:option(Value, "silencethreshold", "Threshold to detect silence").optional = true - - -voicezone = cbimap:section(TypedSection, "voicezone", "Time Zones", - "Time zones define how dates and times are expressen when used in " .. - "an voice mails. Refer to the asterisk manual for placeholder values.") - -voicezone.addremove = true -voicezone.sectionhead = "Name" -voicezone.template = "cbi/tblsection" - -tz = voicezone:option(ListValue, "zone", "Location") -for _, z in ipairs(luci.sys.zoneinfo.TZ) do tz:value(z[1]) end - -voicezone:option(Value, "message", "Date Format") - - -return cbimap |