diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2014-12-03 15:17:05 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2015-01-08 16:26:20 +0100 |
commit | 1bb4822dca6113f73e3bc89e2acf15935e6f8e92 (patch) | |
tree | 35e16f100466e4e00657199b38bb3d87d52bf73f /applications/luci-asterisk/luasrc | |
parent | 9edd0e46c3f880727738ce8ca6ff1c8b85f99ef4 (diff) |
Rework LuCI build system
* Rename subdirectories to their repective OpenWrt package names
* Make each LuCI module its own standalone package
* Deploy a shared luci.mk which is used by each module Makefile
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Diffstat (limited to 'applications/luci-asterisk/luasrc')
32 files changed, 0 insertions, 4220 deletions
diff --git a/applications/luci-asterisk/luasrc/asterisk.lua b/applications/luci-asterisk/luasrc/asterisk.lua deleted file mode 100644 index 15081cc9a4..0000000000 --- a/applications/luci-asterisk/luasrc/asterisk.lua +++ /dev/null @@ -1,759 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface -Asterisk PBX interface library - -Copyright 2009 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - -]]-- - -module("luci.asterisk", package.seeall) -require("luci.asterisk.cc_idd") - -local _io = require("io") -local uci = require("luci.model.uci").cursor() -local sys = require("luci.sys") -local util = require("luci.util") - -AST_BIN = "/usr/sbin/asterisk" -AST_FLAGS = "-r -x" - - ---- LuCI Asterisk - Resync uci context -function uci_resync() - uci = luci.model.uci.cursor() -end - ---- LuCI Asterisk io interface --- Handles low level io. --- @type module -io = luci.util.class() - ---- Execute command and return output --- @param command String containing the command to execute --- @return String containing the command output -function io.exec(command) - local fh = _io.popen( "%s %s %q" %{ AST_BIN, AST_FLAGS, command }, "r" ) - assert(fh, "Failed to invoke asterisk") - - local buffer = fh:read("*a") - fh:close() - return buffer -end - ---- Execute command and invoke given callback for each readed line --- @param command String containing the command to execute --- @param callback Function to call back for each line --- @return Always true -function io.execl(command, callback) - local ln - local fh = _io.popen( "%s %s %q" %{ AST_BIN, AST_FLAGS, command }, "r" ) - assert(fh, "Failed to invoke asterisk") - - repeat - ln = fh:read("*l") - callback(ln) - until not ln - - fh:close() - return true -end - ---- Execute command and return an iterator that returns one line per invokation --- @param command String containing the command to execute --- @return Iterator function -function io.execi(command) - local fh = _io.popen( "%s %s %q" %{ AST_BIN, AST_FLAGS, command }, "r" ) - assert(fh, "Failed to invoke asterisk") - - return function() - local ln = fh:read("*l") - if not ln then fh:close() end - return ln - end -end - - ---- LuCI Asterisk - core status -core = luci.util.class() - ---- Retrive version string. --- @return String containing the reported asterisk version -function core.version(self) - local version = io.exec("core show version") - return version:gsub(" *\n", "") -end - - ---- LuCI Asterisk - SIP information. --- @type module -sip = luci.util.class() - ---- Get a list of known SIP peers --- @return Table containing each SIP peer -function sip.peers(self) - local head = false - local peers = { } - - for line in io.execi("sip show peers") do - if not head then - head = true - elseif not line:match(" sip peers ") then - local online, delay, id, uid - local name, host, dyn, nat, acl, port, status = - line:match("(.-) +(.-) +([D ]) ([N ]) (.) (%d+) +(.+)") - - if host == '(Unspecified)' then host = nil end - if port == '0' then port = nil else port = tonumber(port) end - - dyn = ( dyn == 'D' and true or false ) - nat = ( nat == 'N' and true or false ) - acl = ( acl ~= ' ' and true or false ) - - online, delay = status:match("(OK) %((%d+) ms%)") - - if online == 'OK' then - online = true - delay = tonumber(delay) - elseif status ~= 'Unmonitored' then - online = false - delay = 0 - else - online = nil - delay = 0 - end - - id, uid = name:match("(.+)/(.+)") - - if not ( id and uid ) then - id = name .. "..." - uid = nil - end - - peers[#peers+1] = { - online = online, - delay = delay, - name = id, - user = uid, - dynamic = dyn, - nat = nat, - acl = acl, - host = host, - port = port - } - end - end - - return peers -end - ---- Get informations of given SIP peer --- @param peer String containing the name of the SIP peer -function sip.peer(peer) - local info = { } - local keys = { } - - for line in io.execi("sip show peer " .. peer) do - if #line > 0 then - local key, val = line:match("(.-) *: +(.*)") - if key and val then - - key = key:gsub("^ +",""):gsub(" +$", "") - val = val:gsub("^ +",""):gsub(" +$", "") - - if key == "* Name" then - key = "Name" - elseif key == "Addr->IP" then - info.address, info.port = val:match("(.+) Port (.+)") - info.port = tonumber(info.port) - elseif key == "Status" then - info.online, info.delay = val:match("(OK) %((%d+) ms%)") - if info.online == 'OK' then - info.online = true - info.delay = tonumber(info.delay) - elseif status ~= 'Unmonitored' then - info.online = false - info.delay = 0 - else - info.online = nil - info.delay = 0 - end - end - - if val == 'Yes' or val == 'yes' or val == '<Set>' then - val = true - elseif val == 'No' or val == 'no' then - val = false - elseif val == '<Not set>' or val == '(none)' then - val = nil - end - - keys[#keys+1] = key - info[key] = val - end - end - end - - return info, keys -end - - ---- LuCI Asterisk - Internal helpers --- @type module -tools = luci.util.class() - ---- Convert given value to a list of tokens. Split by white space. --- @param val String or table value --- @return Table containing tokens -function tools.parse_list(v) - local tokens = { } - - v = type(v) == "table" and v or { v } - for _, v in ipairs(v) do - if type(v) == "string" then - for v in v:gmatch("(%S+)") do - tokens[#tokens+1] = v - end - end - end - - return tokens -end - ---- Convert given list to a collection of hyperlinks --- @param list Table of tokens --- @param url String pattern or callback function to construct urls (optional) --- @param sep String containing the seperator (optional, default is ", ") --- @return String containing the html fragment -function tools.hyperlinks(list, url, sep) - local html - - local function mkurl(p, t) - if type(p) == "string" then - return p:format(t) - elseif type(p) == "function" then - return p(t) - else - return '#' - end - end - - list = list or { } - url = url or "%s" - sep = sep or ", " - - for _, token in ipairs(list) do - html = ( html and html .. sep or '' ) .. - '<a href="%s">%s</a>' %{ mkurl(url, token), token } - end - - return html or '' -end - - ---- LuCI Asterisk - International Direct Dialing Prefixes --- @type module -idd = luci.util.class() - ---- Lookup the country name for the given IDD code. --- @param country String containing IDD code --- @return String containing the country name -function idd.country(c) - for _, v in ipairs(cc_idd.CC_IDD) do - if type(v[3]) == "table" then - for _, v2 in ipairs(v[3]) do - if v2 == tostring(c) then - return v[1] - end - end - elseif v[3] == tostring(c) then - return v[1] - end - end -end - ---- Lookup the country code for the given IDD code. --- @param country String containing IDD code --- @return Table containing the country code(s) -function idd.cc(c) - for _, v in ipairs(cc_idd.CC_IDD) do - if type(v[3]) == "table" then - for _, v2 in ipairs(v[3]) do - if v2 == tostring(c) then - return type(v[2]) == "table" - and v[2] or { v[2] } - end - end - elseif v[3] == tostring(c) then - return type(v[2]) == "table" - and v[2] or { v[2] } - end - end -end - ---- Lookup the IDD code(s) for the given country. --- @param idd String containing the country name --- @return Table containing the IDD code(s) -function idd.idd(c) - for _, v in ipairs(cc_idd.CC_IDD) do - if v[1]:lower():match(c:lower()) then - return type(v[3]) == "table" - and v[3] or { v[3] } - end - end -end - ---- Populate given CBI field with IDD codes. --- @param field CBI option object --- @return (nothing) -function idd.cbifill(o) - for i, v in ipairs(cc_idd.CC_IDD) do - o:value("_%i" % i, util.pcdata(v[1])) - end - - o.formvalue = function(...) - local val = luci.cbi.Value.formvalue(...) - if val:sub(1,1) == "_" then - val = tonumber((val:gsub("^_", ""))) - if val then - return type(cc_idd.CC_IDD[val][3]) == "table" - and cc_idd.CC_IDD[val][3] or { cc_idd.CC_IDD[val][3] } - end - end - return val - end - - o.cfgvalue = function(...) - local val = luci.cbi.Value.cfgvalue(...) - if val then - val = tools.parse_list(val) - for i, v in ipairs(cc_idd.CC_IDD) do - if type(v[3]) == "table" then - if v[3][1] == val[1] then - return "_%i" % i - end - else - if v[3] == val[1] then - return "_%i" % i - end - end - end - end - return val - end -end - - ---- LuCI Asterisk - Country Code Prefixes --- @type module -cc = luci.util.class() - ---- Lookup the country name for the given CC code. --- @param country String containing CC code --- @return String containing the country name -function cc.country(c) - for _, v in ipairs(cc_idd.CC_IDD) do - if type(v[2]) == "table" then - for _, v2 in ipairs(v[2]) do - if v2 == tostring(c) then - return v[1] - end - end - elseif v[2] == tostring(c) then - return v[1] - end - end -end - ---- Lookup the international dialing code for the given CC code. --- @param cc String containing CC code --- @return String containing IDD code -function cc.idd(c) - for _, v in ipairs(cc_idd.CC_IDD) do - if type(v[2]) == "table" then - for _, v2 in ipairs(v[2]) do - if v2 == tostring(c) then - return type(v[3]) == "table" - and v[3] or { v[3] } - end - end - elseif v[2] == tostring(c) then - return type(v[3]) == "table" - and v[3] or { v[3] } - end - end -end - ---- Lookup the CC code(s) for the given country. --- @param country String containing the country name --- @return Table containing the CC code(s) -function cc.cc(c) - for _, v in ipairs(cc_idd.CC_IDD) do - if v[1]:lower():match(c:lower()) then - return type(v[2]) == "table" - and v[2] or { v[2] } - end - end -end - ---- Populate given CBI field with CC codes. --- @param field CBI option object --- @return (nothing) -function cc.cbifill(o) - for i, v in ipairs(cc_idd.CC_IDD) do - o:value("_%i" % i, util.pcdata(v[1])) - end - - o.formvalue = function(...) - local val = luci.cbi.Value.formvalue(...) - if val:sub(1,1) == "_" then - val = tonumber((val:gsub("^_", ""))) - if val then - return type(cc_idd.CC_IDD[val][2]) == "table" - and cc_idd.CC_IDD[val][2] or { cc_idd.CC_IDD[val][2] } - end - end - return val - end - - o.cfgvalue = function(...) - local val = luci.cbi.Value.cfgvalue(...) - if val then - val = tools.parse_list(val) - for i, v in ipairs(cc_idd.CC_IDD) do - if type(v[2]) == "table" then - if v[2][1] == val[1] then - return "_%i" % i - end - else - if v[2] == val[1] then - return "_%i" % i - end - end - end - end - return val - end -end - - ---- LuCI Asterisk - Dialzone --- @type module -dialzone = luci.util.class() - ---- Parse a dialzone section --- @param zone Table containing the zone info --- @return Table with parsed information -function dialzone.parse(z) - if z['.name'] then - return { - trunks = tools.parse_list(z.uses), - name = z['.name'], - description = z.description or z['.name'], - addprefix = z.addprefix, - matches = tools.parse_list(z.match), - intlmatches = tools.parse_list(z.international), - countrycode = z.countrycode, - localzone = z.localzone, - localprefix = z.localprefix - } - end -end - ---- Get a list of known dial zones --- @return Associative table of zones and table of zone names -function dialzone.zones() - local zones = { } - local znames = { } - uci:foreach("asterisk", "dialzone", - function(z) - zones[z['.name']] = dialzone.parse(z) - znames[#znames+1] = z['.name'] - end) - return zones, znames -end - ---- Get a specific dial zone --- @param name Name of the dial zone --- @return Table containing zone information -function dialzone.zone(n) - local zone - uci:foreach("asterisk", "dialzone", - function(z) - if z['.name'] == n then - zone = dialzone.parse(z) - end - end) - return zone -end - ---- Find uci section hash for given zone number --- @param idx Zone number --- @return String containing the uci hash pointing to the section -function dialzone.ucisection(i) - local hash - local index = 1 - i = tonumber(i) - uci:foreach("asterisk", "dialzone", - function(z) - if not hash and index == i then - hash = z['.name'] - end - index = index + 1 - end) - return hash -end - - ---- LuCI Asterisk - Voicemailbox --- @type module -voicemail = luci.util.class() - ---- Parse a voicemail section --- @param zone Table containing the mailbox info --- @return Table with parsed information -function voicemail.parse(z) - if z.number and #z.number > 0 then - local v = { - id = '%s@%s' %{ z.number, z.context or 'default' }, - number = z.number, - context = z.context or 'default', - name = z.name or z['.name'] or 'OpenWrt', - zone = z.zone or 'homeloc', - password = z.password or '0000', - email = z.email or '', - page = z.page or '', - dialplans = { } - } - - uci:foreach("asterisk", "dialplanvoice", - function(s) - if s.dialplan and #s.dialplan > 0 and - s.voicebox == v.number - then - v.dialplans[#v.dialplans+1] = s.dialplan - end - end) - - return v - end -end - ---- Get a list of known voicemail boxes --- @return Associative table of boxes and table of box numbers -function voicemail.boxes() - local vboxes = { } - local vnames = { } - uci:foreach("asterisk", "voicemail", - function(z) - local v = voicemail.parse(z) - if v then - local n = '%s@%s' %{ v.number, v.context } - vboxes[n] = v - vnames[#vnames+1] = n - end - end) - return vboxes, vnames -end - ---- Get a specific voicemailbox --- @param number Number of the voicemailbox --- @return Table containing mailbox information -function voicemail.box(n) - local box - n = n:gsub("@.+$","") - uci:foreach("asterisk", "voicemail", - function(z) - if z.number == tostring(n) then - box = voicemail.parse(z) - end - end) - return box -end - ---- Find all voicemailboxes within the given dialplan --- @param plan Dialplan name or table --- @return Associative table containing extensions mapped to mailbox info -function voicemail.in_dialplan(p) - local plan = type(p) == "string" and p or p.name - local boxes = { } - uci:foreach("asterisk", "dialplanvoice", - function(s) - if s.extension and #s.extension > 0 and s.dialplan == plan then - local box = voicemail.box(s.voicebox) - if box then - boxes[s.extension] = box - end - end - end) - return boxes -end - ---- Remove voicemailbox and associated extensions from config --- @param box Voicemailbox number or table --- @param ctx UCI context to use (optional) --- @return Boolean indicating success -function voicemail.remove(v, ctx) - ctx = ctx or uci - local box = type(v) == "string" and v or v.number - local ok1 = ctx:delete_all("asterisk", "voicemail", {number=box}) - local ok2 = ctx:delete_all("asterisk", "dialplanvoice", {voicebox=box}) - return ( ok1 or ok2 ) and true or false -end - - ---- LuCI Asterisk - MeetMe Conferences --- @type module -meetme = luci.util.class() - ---- Parse a meetme section --- @param room Table containing the room info --- @return Table with parsed information -function meetme.parse(r) - if r.room and #r.room > 0 then - local v = { - room = r.room, - pin = r.pin or '', - adminpin = r.adminpin or '', - description = r._description or '', - dialplans = { } - } - - uci:foreach("asterisk", "dialplanmeetme", - function(s) - if s.dialplan and #s.dialplan > 0 and s.room == v.room then - v.dialplans[#v.dialplans+1] = s.dialplan - end - end) - - return v - end -end - ---- Get a list of known meetme rooms --- @return Associative table of rooms and table of room numbers -function meetme.rooms() - local mrooms = { } - local mnames = { } - uci:foreach("asterisk", "meetme", - function(r) - local v = meetme.parse(r) - if v then - mrooms[v.room] = v - mnames[#mnames+1] = v.room - end - end) - return mrooms, mnames -end - ---- Get a specific meetme room --- @param number Number of the room --- @return Table containing room information -function meetme.room(n) - local room - uci:foreach("asterisk", "meetme", - function(r) - if r.room == tostring(n) then - room = meetme.parse(r) - end - end) - return room -end - ---- Find all meetme rooms within the given dialplan --- @param plan Dialplan name or table --- @return Associative table containing extensions mapped to room info -function meetme.in_dialplan(p) - local plan = type(p) == "string" and p or p.name - local rooms = { } - uci:foreach("asterisk", "dialplanmeetme", - function(s) - if s.extension and #s.extension > 0 and s.dialplan == plan then - local room = meetme.room(s.room) - if room then - rooms[s.extension] = room - end - end - end) - return rooms -end - ---- Remove meetme room and associated extensions from config --- @param room Voicemailbox number or table --- @param ctx UCI context to use (optional) --- @return Boolean indicating success -function meetme.remove(v, ctx) - ctx = ctx or uci - local room = type(v) == "string" and v or v.number - local ok1 = ctx:delete_all("asterisk", "meetme", {room=room}) - local ok2 = ctx:delete_all("asterisk", "dialplanmeetme", {room=room}) - return ( ok1 or ok2 ) and true or false -end - - ---- LuCI Asterisk - Dialplan --- @type module -dialplan = luci.util.class() - ---- Parse a dialplan section --- @param plan Table containing the plan info --- @return Table with parsed information -function dialplan.parse(z) - if z['.name'] then - local plan = { - zones = { }, - name = z['.name'], - description = z.description or z['.name'] - } - - -- dialzones - for _, name in ipairs(tools.parse_list(z.include)) do - local zone = dialzone.zone(name) - if zone then - plan.zones[#plan.zones+1] = zone - end - end - - -- voicemailboxes - plan.voicemailboxes = voicemail.in_dialplan(plan) - - -- meetme conferences - plan.meetmerooms = meetme.in_dialplan(plan) - - return plan - end -end - ---- Get a list of known dial plans --- @return Associative table of plans and table of plan names -function dialplan.plans() - local plans = { } - local pnames = { } - uci:foreach("asterisk", "dialplan", - function(p) - plans[p['.name']] = dialplan.parse(p) - pnames[#pnames+1] = p['.name'] - end) - return plans, pnames -end - ---- Get a specific dial plan --- @param name Name of the dial plan --- @return Table containing plan information -function dialplan.plan(n) - local plan - uci:foreach("asterisk", "dialplan", - function(p) - if p['.name'] == n then - plan = dialplan.parse(p) - end - end) - return plan -end diff --git a/applications/luci-asterisk/luasrc/asterisk/cc_idd.lua b/applications/luci-asterisk/luasrc/asterisk/cc_idd.lua deleted file mode 100644 index b209b11397..0000000000 --- a/applications/luci-asterisk/luasrc/asterisk/cc_idd.lua +++ /dev/null @@ -1,254 +0,0 @@ ---[[ -LuCI - Asterisk - International Direct Dialing Prefixes and Country Codes - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -]]-- - -module "luci.asterisk.cc_idd" - -CC_IDD = { --- Country, CC, IDD - { "Afghanistan", "93", "00" }, - { "Albania", "355", "00" }, - { "Algeria", "213", "00" }, - { "American Samoa", "684", "00" }, - { "Andorra", "376", "00" }, - { "Angola", "244", "00" }, - { "Anguilla", "264", "011" }, - { "Antarctica", "672", "" }, - { "Antigua", "268", "011" }, - { "Argentina", "54", "00" }, - { "Armenia", "374", "00" }, - { "Aruba", "297", "00" }, - { "Ascension Island", "247", "00" }, - { "Australia", "61", "0011" }, - { "Austria", "43", "00" }, - { "Azberbaijan", "994", "00" }, - { "Bahamas", "242", "011" }, - { "Bahrain", "973", "00" }, - { "Bangladesh", "880", "00" }, - { "Barbados", "246", "011" }, - { "Barbuda", "268", "011" }, - { "Belarus", "375", "810" }, - { "Belgium", "32", "00" }, - { "Belize", "501", "00" }, - { "Benin", "229", "00" }, - { "Bermuda", "441", "011" }, - { "Bhutan", "975", "00" }, - { "Bolivia", "591", "00" }, - { "Bosnia", "387", "00" }, - { "Botswana", "267", "00" }, - { "Brazil", "55", "00" }, - { "British Virgin Islands", "284", "011" }, - { "Brunei", "673", "00" }, - { "Bulgaria", "359", "00" }, - { "Burkina Faso", "226", "00" }, - { "Burma (Myanmar)", "95", "00" }, - { "Burundi", "257", "00" }, - { "Cambodia", "855", "001" }, - { "Cameroon", "237", "00" }, - { "Canada", "1", "011" }, - { "Cape Verde Islands", "238", "0" }, - { "Cayman Islands", "345", "011" }, - { "Central African Rep.", "236", "00" }, - { "Chad", "235", "15" }, - { "Chile", "56", "00" }, - { "China", "86", "00" }, - { "Christmas Island", "61", "0011" }, - { "Cocos Islands", "61", "0011" }, - { "Colombia", "57", "00" }, - { "Comoros", "269", "00" }, - { "Congo", "242", "00" }, - { "Congo, Dem. Rep. of", "243", "00" }, - { "Cook Islands", "682", "00" }, - { "Costa Rica", "506", "00" }, - { "Croatia", "385", "00" }, - { "Cuba", "53", "119" }, - { "Cyprus", "357", "00" }, - { "Czech Republic", "420", "00" }, - { "Denmark", "45", "00" }, - { "Diego Garcia", "246", "00" }, - { "Djibouti", "253", "00" }, - { "Dominica", "767", "011" }, - { "Dominican Rep.", "809", "011" }, - { "Ecuador", "593", "00" }, - { "Egypt", "20", "00" }, - { "El Salvador", "503", "00" }, - { "Equatorial Guinea", "240", "00" }, - { "Eritrea", "291", "00" }, - { "Estonia", "372", "00" }, - { "Ethiopia", "251", "00" }, - { "Faeroe Islands", "298", "00" }, - { "Falkland Islands", "500", "00" }, - { "Fiji Islands", "679", "00" }, - { "Finland", "358", "00" }, - { "France", "33", "00" }, - { "French Antilles", "596", "00" }, - { "French Guiana", "594", "00" }, - { "French Polynesia", "689", "00" }, - { "Gabon", "241", "00" }, - { "Gambia", "220", "00" }, - { "Georgia", "995", "810" }, - { "Germany", "49", "00" }, - { "Ghana", "233", "00" }, - { "Gibraltar", "350", "00" }, - { "Greece", "30", "00" }, - { "Greenland", "299", "00" }, - { "Grenada", "473", "011" }, - { "Guadeloupe", "590", "00" }, - { "Guam", "671", "011" }, - { "Guantanamo Bay", "5399", "00" }, - { "Guatemala", "502", "00" }, - { "Guinea", "224", "00" }, - { "Guinea Bissau", "245", "00" }, - { "Guyana", "592", "001" }, - { "Haiti", "509", "00" }, - { "Honduras", "504", "00" }, - { "Hong Kong", "852", "001" }, - { "Hungary", "36", "00" }, - { "Iceland", "354", "00" }, - { "India", "91", "00" }, - { "Indonesia", "62", { "001", "008" } }, - { "Iran", "98", "00" }, - { "Iraq", "964", "00" }, - { "Ireland", "353", "00" }, - { "Israel", "972", "00" }, - { "Italy", "39", "00" }, - { "Ivory Coast", "225", "00" }, - { "Jamaica", "876", "011" }, - { "Japan", "81", "001" }, - { "Jordan", "962", "00" }, - { "Kazakhstan", "7", "810" }, - { "Kenya", "254", "000" }, - { "Kiribati", "686", "00" }, - { "Korea, North", "850", "00" }, - { "Korea, South", "82", "001" }, - { "Kuwait", "965", "00" }, - { "Kyrgyzstan", "996", "00" }, - { "Laos", "856", "00" }, - { "Latvia", "371", "00" }, - { "Lebanon", "961", "00" }, - { "Lesotho", "266", "00" }, - { "Liberia", "231", "00" }, - { "Libya", "218", "00" }, - { "Liechtenstein", "423", "00" }, - { "Lithuania", "370", "00" }, - { "Luxembourg", "352", "00" }, - { "Macau", "853", "00" }, - { "Macedonia", "389", "00" }, - { "Madagascar", "261", "00" }, - { "Malawi", "265", "00" }, - { "Malaysia", "60", "00" }, - { "Maldives", "960", "00" }, - { "Mali", "223", "00" }, - { "Malta", "356", "00" }, - { "Mariana Islands", "670", "011" }, - { "Marshall Islands", "692", "011" }, - { "Martinique", "596", "00" }, - { "Mauritania", "222", "00" }, - { "Mauritius", "230", "00" }, - { "Mayotte Islands", "269", "00" }, - { "Mexico", "52", "00" }, - { "Micronesia", "691", "011" }, - { "Midway Island", "808", "011" }, - { "Moldova", "373", "00" }, - { "Monaco", "377", "00" }, - { "Mongolia", "976", "001" }, - { "Montserrat", "664", "011" }, - { "Morocco", "212", "00" }, - { "Mozambique", "258", "00" }, - { "Myanmar (Burma)", "95", "00" }, - { "Namibia", "264", "00" }, - { "Nauru", "674", "00" }, - { "Nepal", "977", "00" }, - { "Netherlands", "31", "00" }, - { "Netherlands Antilles", "599", "00" }, - { "Nevis", "869", "011" }, - { "New Caledonia", "687", "00" }, - { "New Zealand", "64", "00" }, - { "Nicaragua", "505", "00" }, - { "Niger", "227", "00" }, - { "Nigeria", "234", "009" }, - { "Niue", "683", "00" }, - { "Norfolk Island", "672", "00" }, - { "Norway", "47", "00" }, - { "Oman", "968", "00" }, - { "Pakistan", "92", "00" }, - { "Palau", "680", "011" }, - { "Palestine", "970", "00" }, - { "Panama", "507", "00" }, - { "Papua New Guinea", "675", "05" }, - { "Paraguay", "595", "002" }, - { "Peru", "51", "00" }, - { "Philippines", "63", "00" }, - { "Poland", "48", "00" }, - { "Portugal", "351", "00" }, - { "Puerto Rico", { "787", "939" }, "011" }, - { "Qatar", "974", "00" }, - { "Reunion Island", "262", "00" }, - { "Romania", "40", "00" }, - { "Russia", "7", "810" }, - { "Rwanda", "250", "00" }, - { "St. Helena", "290", "00" }, - { "St. Kitts", "869", "011" }, - { "St. Lucia", "758", "011" }, - { "St. Perre & Miquelon", "508", "00" }, - { "St. Vincent", "784", "011" }, - { "San Marino", "378", "00" }, - { "Sao Tome & Principe", "239", "00" }, - { "Saudi Arabia", "966", "00" }, - { "Senegal", "221", "00" }, - { "Serbia", "381", "99" }, - { "Seychelles", "248", "00" }, - { "Sierra Leone", "232", "00" }, - { "Singapore", "65", "001" }, - { "Slovakia", "421", "00" }, - { "Slovenia", "386", "00" }, - { "Solomon Islands", "677", "00" }, - { "Somalia", "252", "00" }, - { "South Africa", "27", "09" }, - { "Spain", "34", "00" }, - { "Sri Lanka", "94", "00" }, - { "Sudan", "249", "00" }, - { "Suriname", "597", "00" }, - { "Swaziland", "268", "00" }, - { "Sweden", "46", "00" }, - { "Switzerland", "41", "00" }, - { "Syria", "963", "00" }, - { "Taiwan", "886", "002" }, - { "Tajikistan", "992", "810" }, - { "Tanzania", "255", "00" }, - { "Thailand", "66", "001" }, - { "Togo", "228", "00" }, - { "Tonga", "676", "00" }, - { "Trinidad & Tobago", "868", "011" }, - { "Tunisia", "216", "00" }, - { "Turkey", "90", "00" }, - { "Turkmenistan", "993", "810" }, - { "Turks & Caicos", "649", "011" }, - { "Tuvalu", "688", "00" }, - { "Uganda", "256", "000" }, - { "Ukraine", "380", "810" }, - { "United Arab Emirates", "971", "00" }, - { "United Kingdom", "44", "00" }, - { "Uruguay", "598", "00" }, - { "USA", "1", "011" }, - { "US Virgin Islands", "340", "011" }, - { "Uzbekistan", "998", "810" }, - { "Vanuatu", "678", "00" }, - { "Vatican City", "39", "00" }, - { "Venezuela", "58", "00" }, - { "Vietnam", "84", "00" }, - { "Wake Island", "808", "00" }, - { "Wallis & Futuna", "681", "19" }, - { "Western Samoa", "685", "00" }, - { "Yemen", "967", "00" }, - { "Yugoslavia", "381", "99" }, - { "Zambia", "260", "00" }, - { "Zimbabwe", "263", "00" } -} diff --git a/applications/luci-asterisk/luasrc/controller/asterisk.lua b/applications/luci-asterisk/luasrc/controller/asterisk.lua deleted file mode 100644 index 54b9525e7b..0000000000 --- a/applications/luci-asterisk/luasrc/controller/asterisk.lua +++ /dev/null @@ -1,205 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -module("luci.controller.asterisk", package.seeall) - -function index() - - entry({"admin", "services", "asterisk"}, cbi("asterisk"), "Asterisk", 80) - - entry({"admin", "services", "asterisk", "voice"}, cbi("asterisk-voice"), "Voice Functions", 1) - entry({"admin", "services", "asterisk", "meetme"}, cbi("asterisk-meetme"), "Meetme Conferences", 2) - - entry({"admin", "services", "asterisk", "iax-conns"}, cbi("asterisk-iax-connections"), "IAX Connections", 3) - entry({"admin", "services", "asterisk", "sip-conns"}, cbi("asterisk-sip-connections"), "SIP Connections", 4) - - entry({"admin", "services", "asterisk", "dialplans"}, cbi("asterisk-dialplans"), "Dial Plans", 5) - - entry({"admin", "services", "asterisk", "mod"}, cbi("asterisk-mod-app"), "Modules", 4) - entry({"admin", "services", "asterisk", "mod", "app"}, cbi("asterisk-mod-app"), "Applications", 1) - entry({"admin", "services", "asterisk", "mod", "cdr"}, cbi("asterisk-mod-cdr"), "Call Detail Records", 2) - entry({"admin", "services", "asterisk", "mod", "chan"}, cbi("asterisk-mod-chan"), "Channels", 3) - entry({"admin", "services", "asterisk", "mod", "codec"}, cbi("asterisk-mod-codec"), "Codecs", 4) - entry({"admin", "services", "asterisk", "mod", "format"}, cbi("asterisk-mod-format"), "Format", 5) - entry({"admin", "services", "asterisk", "mod", "func"}, cbi("asterisk-mod-func"), "Functions", 6) - entry({"admin", "services", "asterisk", "mod", "pbx"}, cbi("asterisk-mod-pbx"), "PBX", 7) - entry({"admin", "services", "asterisk", "mod", "res"}, cbi("asterisk-mod-res"), "Resources", 8) - entry({"admin", "services", "asterisk", "mod", "res", "feature"}, - cbi("asterisk-mod-res-feature"), "Feature Module Configuration", 9 ) - - - entry({"admin", "asterisk"}, cbi("asterisk/main"), "Asterisk", 99).i18n = "asterisk" - - entry({"admin", "asterisk", "phones"}, cbi("asterisk/phones"), "Phones", 1) - entry({"admin", "asterisk", "phones", "sip"}, cbi("asterisk/phone_sip"), nil, 1).leaf = true - --entry({"admin", "asterisk", "phones", "exten"}, cbi("asterisk/phone_exten"), "Extensions", 2).leaf = true - - entry({"admin", "asterisk", "trunks"}, cbi("asterisk/trunks"), "Trunks", 2) - entry({"admin", "asterisk", "trunks", "sip"}, cbi("asterisk/trunk_sip"), nil, 1).leaf = true - - entry({"admin", "asterisk", "voicemail"}, cbi("asterisk/voicemail"), "Voicemail", 3) - entry({"admin", "asterisk", "voicemail", "mailboxes"}, cbi("asterisk/voicemail"), "Mailboxes", 1) - entry({"admin", "asterisk", "voicemail", "settings"}, cbi("asterisk/voicemail_settings"), "Settings", 2) - - entry({"admin", "asterisk", "meetme"}, cbi("asterisk/meetme"), "MeetMe", 4) - entry({"admin", "asterisk", "meetme", "rooms"}, cbi("asterisk/meetme"), "Rooms", 1) - entry({"admin", "asterisk", "meetme", "settings"}, cbi("asterisk/meetme_settings"), "Settings", 2) - - entry({"admin", "asterisk", "dialplans"}, call("handle_dialplan"), "Call Routing", 5) - entry({"admin", "asterisk", "dialplans", "out"}, cbi("asterisk/dialplan_out"), nil, 1).leaf = true - entry({"admin", "asterisk", "dialplans", "zones"}, call("handle_dialzones"), "Dial Zones", 2).leaf = true - -end - - -function handle_dialplan() - local uci = luci.model.uci.cursor() - local ast = require "luci.asterisk" - local err = false - - for k, v in pairs(luci.http.formvaluetable("delzone")) do - local plan = ast.dialplan.plan(k) - if #v > 0 and plan then - local newinc = { } - - for _, z in ipairs(plan.zones) do - if z.name ~= v then - newinc[#newinc+1] = z.name - end - end - - uci:delete("asterisk", plan.name, "include") - - if #newinc > 0 then - uci:set("asterisk", plan.name, "include", newinc) - end - end - end - - for k, v in pairs(luci.http.formvaluetable("addzone")) do - local plan = ast.dialplan.plan(k) - local zone = ast.dialzone.zone(v) - if #v > 0 and plan and zone then - local newinc = { zone.name } - - for _, z in ipairs(plan.zones) do - newinc[#newinc+1] = z.name - end - - uci:delete("asterisk", plan.name, "include") - - if #newinc > 0 then - uci:set("asterisk", plan.name, "include", newinc) - end - end - end - - for k, v in pairs(luci.http.formvaluetable("delvbox")) do - local plan = ast.dialplan.plan(k) - if #v > 0 and plan then - uci:delete_all("asterisk", "dialplanvoice", - { extension=v, dialplan=plan.name }) - end - end - - for k, v in pairs(luci.http.formvaluetable("addvbox")) do - local plan = ast.dialplan.plan(k) - local vbox = ast.voicemail.box(v) - if plan and vbox then - local vext = luci.http.formvalue("addvboxext.%s" % plan.name) - vext = ( vext and #vext > 0 ) and vext or vbox.number - uci:section("asterisk", "dialplanvoice", nil, { - dialplan = plan.name, - extension = vext, - voicebox = vbox.number, - voicecontext = vbox.context - }) - end - end - - for k, v in pairs(luci.http.formvaluetable("delmeetme")) do - local plan = ast.dialplan.plan(k) - if #v > 0 and plan then - uci:delete_all("asterisk", "dialplanmeetme", - { extension=v, dialplan=plan.name }) - end - end - - for k, v in pairs(luci.http.formvaluetable("addmeetme")) do - local plan = ast.dialplan.plan(k) - local meetme = ast.meetme.room(v) - if plan and meetme then - local mext = luci.http.formvalue("addmeetmeext.%s" % plan.name) - mext = ( mext and #mext > 0 ) and mext or meetme.room - uci:section("asterisk", "dialplanmeetme", nil, { - dialplan = plan.name, - extension = mext, - room = meetme.room - }) - end - end - - local aname = luci.http.formvalue("addplan") - if aname and #aname > 0 then - if aname:match("^[a-zA-Z0-9_]+$") then - uci:section("asterisk", "dialplan", aname, { }) - else - err = true - end - end - - local dname = luci.http.formvalue("delplan") - if dname and #dname > 0 then - if uci:get("asterisk", dname) == "dialplan" then - uci:delete("asterisk", dname) - uci:delete_all("asterisk", "dialplanvoice", { dialplan=dname }) - uci:delete_all("asterisk", "dialplanmeetme", { dialplan=dname }) - end - end - - uci:save("asterisk") - ast.uci_resync() - - luci.template.render("asterisk/dialplans", { create_error = err }) -end - -function handle_dialzones() - local ast = require "luci.asterisk" - local uci = luci.model.uci.cursor() - local err = false - - if luci.http.formvalue("newzone") then - local name = luci.http.formvalue("newzone_name") - if name and name:match("^[a-zA-Z0-9_]+$") then - uci:section("asterisk", "dialzone", name, { - uses = ast.tools.parse_list(luci.http.formvalue("newzone_uses") or {}), - match = ast.tools.parse_list(luci.http.formvalue("newzone_match") or {}) - }) - uci:save("asterisk") - else - err = true - end - end - - if luci.http.formvalue("delzone") then - local name = luci.http.formvalue("delzone") - if uci:get("asterisk", name) == "dialzone" then - uci:delete("asterisk", name) - uci:save("asterisk") - end - end - - luci.template.render("asterisk/dialzones", { create_error = err }) -end diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-dialplans.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-dialplans.lua deleted file mode 100644 index 4e4dce06bc..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-dialplans.lua +++ /dev/null @@ -1,102 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -dialplan = cbimap:section(TypedSection, "dialplan", "Section dialplan", "") -dialplan.addremove = true -dialplan.dynamic = true - -include = dialplan:option(MultiValue, "include", "Include zones and plans", "") -cbimap.uci:foreach( "asterisk", "dialplan", function(s) include:value(s['.name']) end ) -cbimap.uci:foreach( "asterisk", "dialzone", function(s) include:value(s['.name']) end ) - -dialplanexten = cbimap:section(TypedSection, "dialplanexten", "Dialplan Extension", "") -dialplanexten.anonymous = true -dialplanexten.addremove = true -dialplanexten.dynamic = true - - -dialplangeneral = cbimap:section(TypedSection, "dialplangeneral", "Dialplan General Options", "") -dialplangeneral.anonymous = true -dialplangeneral.addremove = true - -allowtransfer = dialplangeneral:option(Flag, "allowtransfer", "Allow transfer", "") -allowtransfer.rmempty = true - -canreinvite = dialplangeneral:option(ListValue, "canreinvite", "Reinvite/redirect media connections", "") -canreinvite:value("yes", "Yes") -canreinvite:value("nonat", "Yes when not behind NAT") -canreinvite:value("update", "Use UPDATE rather than INVITE for path redirection") -canreinvite:value("no", "No") -canreinvite.rmempty = true - -clearglobalvars = dialplangeneral:option(Flag, "clearglobalvars", "Clear global vars", "") -clearglobalvars.rmempty = true - - -dialplangoto = cbimap:section(TypedSection, "dialplangoto", "Dialplan Goto", "") -dialplangoto.anonymous = true -dialplangoto.addremove = true -dialplangoto.dynamic = true - - -dialplanmeetme = cbimap:section(TypedSection, "dialplanmeetme", "Dialplan Conference", "") -dialplanmeetme.anonymous = true -dialplanmeetme.addremove = true -dialplanmeetme.dynamic = true - - -dialplansaytime = cbimap:section(TypedSection, "dialplansaytime", "Dialplan Time", "") -dialplansaytime.anonymous = true -dialplansaytime.addremove = true -dialplansaytime.dynamic = true - - -dialplanvoice = cbimap:section(TypedSection, "dialplanvoice", "Dialplan Voicemail", "") -dialplanvoice.anonymous = true -dialplanvoice.addremove = true -dialplanvoice.dynamic = true - - -dialzone = cbimap:section(TypedSection, "dialzone", "Dial Zones for Dialplan", "") -dialzone.addremove = true -dialzone.template = "cbi/tblsection" - -addprefix = dialzone:option(Value, "addprefix", "Prefix to add matching dialplans", "") -addprefix.rmempty = true - ---international = dialzone:option(DynamicList, "international", "Match International prefix", "") -international = dialzone:option(Value, "international", "Match International prefix", "") -international.rmempty = true - -localprefix = dialzone:option(Value, "localprefix", "Prefix (0) to add/remove to/from intl. numbers", "") -localprefix.rmempty = true - -localzone = dialzone:option(Value, "localzone", "Dialzone for intl. numbers matched as local", "") -localzone.titleref = luci.dispatcher.build_url( "admin", "services", "asterisk", "dialplans" ) -cbimap.uci:foreach( "asterisk", "dialplan", function(s) localzone:value(s['.name']) end ) -cbimap.uci:foreach( "asterisk", "dialzone", function(s) localzone:value(s['.name']) end ) - -match = dialzone:option(Value, "match", "Match plan", "") -match.rmempty = true - -uses = dialzone:option(ListValue, "uses", "Connection to use", "") -uses.titleref = luci.dispatcher.build_url( "admin", "services", "asterisk", "sip-conns" ) -cbimap.uci:foreach( "asterisk", "sip", function(s) uses:value('SIP/'..s['.name']) end ) -cbimap.uci:foreach( "asterisk", "iax", function(s) uses:value('IAX/'..s['.name']) end ) - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-iax-connections.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-iax-connections.lua deleted file mode 100644 index 0102c1b937..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-iax-connections.lua +++ /dev/null @@ -1,60 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -iax = cbimap:section(TypedSection, "iax", "IAX Connection", "") -iax.addremove = true - -alwaysinternational = iax:option(Flag, "alwaysinternational", "Always Dial International", "") -alwaysinternational.optional = true - -context = iax:option(ListValue, "context", "Context to use", "") -context.titleref = luci.dispatcher.build_url( "admin", "services", "asterisk", "dialplans" ) -cbimap.uci:foreach( "asterisk", "dialplan", function(s) context:value(s['.name']) end ) -cbimap.uci:foreach( "asterisk", "dialzone", function(s) context:value(s['.name']) end ) - -countrycode = iax:option(Value, "countrycode", "Country Code for connection", "") -countrycode.optional = true - -extension = iax:option(Value, "extension", "Add as Extension", "") -extension.optional = true - -host = iax:option(Value, "host", "Host name (or blank)", "") -host.optional = true - -internationalprefix = iax:option(Value, "internationalprefix", "International Dial Prefix", "") -internationalprefix.optional = true - -prefix = iax:option(Value, "prefix", "Dial Prefix (for external line)", "") -prefix.optional = true - -secret = iax:option(Value, "secret", "Secret", "") -secret.optional = true - -timeout = iax:option(Value, "timeout", "Dial Timeout (sec)", "") -timeout.optional = true - -type = iax:option(ListValue, "type", "Option type", "") -type:value("friend", "Friend (outbound/inbound)") -type:value("user", "User (inbound - authenticate by \"from\")") -type:value("peer", "Peer (outbound - match by host)") -type.optional = true - -username = iax:option(Value, "username", "User name", "") -username.optional = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-meetme.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-meetme.lua deleted file mode 100644 index 0817445989..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-meetme.lua +++ /dev/null @@ -1,33 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -meetmegeneral = cbimap:section(TypedSection, "meetmegeneral", "Meetme Conference General Options", "") - -audiobuffers = meetmegeneral:option(Value, "audiobuffers", "Number of 20ms audio buffers to be used", "") - - -meetme = cbimap:section(TypedSection, "meetme", "Meetme Conference", "") -meetme.addremove = true - -adminpin = meetme:option(Value, "adminpin", "Admin PIN", "") -adminpin.password = true - -pin = meetme:option(Value, "pin", "Meeting PIN", "") -pin.password = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-app.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-app.lua deleted file mode 100644 index 0a0a2d512e..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-app.lua +++ /dev/null @@ -1,391 +0,0 @@ -cbimap = Map("asterisk", "asterisk", "") - -module = cbimap:section(TypedSection, "module", "Modules", "") -module.anonymous = true - -app_alarmreceiver = module:option(ListValue, "app_alarmreceiver", "Alarm Receiver Application", "") -app_alarmreceiver:value("yes", "Load") -app_alarmreceiver:value("no", "Do Not Load") -app_alarmreceiver:value("auto", "Load as Required") -app_alarmreceiver.rmempty = true - -app_authenticate = module:option(ListValue, "app_authenticate", "Authentication Application", "") -app_authenticate:value("yes", "Load") -app_authenticate:value("no", "Do Not Load") -app_authenticate:value("auto", "Load as Required") -app_authenticate.rmempty = true - -app_cdr = module:option(ListValue, "app_cdr", "Make sure asterisk doesnt save CDR", "") -app_cdr:value("yes", "Load") -app_cdr:value("no", "Do Not Load") -app_cdr:value("auto", "Load as Required") -app_cdr.rmempty = true - -app_chanisavail = module:option(ListValue, "app_chanisavail", "Check if channel is available", "") -app_chanisavail:value("yes", "Load") -app_chanisavail:value("no", "Do Not Load") -app_chanisavail:value("auto", "Load as Required") -app_chanisavail.rmempty = true - -app_chanspy = module:option(ListValue, "app_chanspy", "Listen in on any channel", "") -app_chanspy:value("yes", "Load") -app_chanspy:value("no", "Do Not Load") -app_chanspy:value("auto", "Load as Required") -app_chanspy.rmempty = true - -app_controlplayback = module:option(ListValue, "app_controlplayback", "Control Playback Application", "") -app_controlplayback:value("yes", "Load") -app_controlplayback:value("no", "Do Not Load") -app_controlplayback:value("auto", "Load as Required") -app_controlplayback.rmempty = true - -app_cut = module:option(ListValue, "app_cut", "Cuts up variables", "") -app_cut:value("yes", "Load") -app_cut:value("no", "Do Not Load") -app_cut:value("auto", "Load as Required") -app_cut.rmempty = true - -app_db = module:option(ListValue, "app_db", "Database access functions", "") -app_db:value("yes", "Load") -app_db:value("no", "Do Not Load") -app_db:value("auto", "Load as Required") -app_db.rmempty = true - -app_dial = module:option(ListValue, "app_dial", "Dialing Application", "") -app_dial:value("yes", "Load") -app_dial:value("no", "Do Not Load") -app_dial:value("auto", "Load as Required") -app_dial.rmempty = true - -app_dictate = module:option(ListValue, "app_dictate", "Virtual Dictation Machine Application", "") -app_dictate:value("yes", "Load") -app_dictate:value("no", "Do Not Load") -app_dictate:value("auto", "Load as Required") -app_dictate.rmempty = true - -app_directed_pickup = module:option(ListValue, "app_directed_pickup", "Directed Call Pickup Support", "") -app_directed_pickup:value("yes", "Load") -app_directed_pickup:value("no", "Do Not Load") -app_directed_pickup:value("auto", "Load as Required") -app_directed_pickup.rmempty = true - -app_directory = module:option(ListValue, "app_directory", "Extension Directory", "") -app_directory:value("yes", "Load") -app_directory:value("no", "Do Not Load") -app_directory:value("auto", "Load as Required") -app_directory.rmempty = true - -app_disa = module:option(ListValue, "app_disa", "DISA (Direct Inward System Access) Application", "") -app_disa:value("yes", "Load") -app_disa:value("no", "Do Not Load") -app_disa:value("auto", "Load as Required") -app_disa.rmempty = true - -app_dumpchan = module:option(ListValue, "app_dumpchan", "Dump channel variables Application", "") -app_dumpchan:value("yes", "Load") -app_dumpchan:value("no", "Do Not Load") -app_dumpchan:value("auto", "Load as Required") -app_dumpchan.rmempty = true - -app_echo = module:option(ListValue, "app_echo", "Simple Echo Application", "") -app_echo:value("yes", "Load") -app_echo:value("no", "Do Not Load") -app_echo:value("auto", "Load as Required") -app_echo.rmempty = true - -app_enumlookup = module:option(ListValue, "app_enumlookup", "ENUM Lookup", "") -app_enumlookup:value("yes", "Load") -app_enumlookup:value("no", "Do Not Load") -app_enumlookup:value("auto", "Load as Required") -app_enumlookup.rmempty = true - -app_eval = module:option(ListValue, "app_eval", "Reevaluates strings", "") -app_eval:value("yes", "Load") -app_eval:value("no", "Do Not Load") -app_eval:value("auto", "Load as Required") -app_eval.rmempty = true - -app_exec = module:option(ListValue, "app_exec", "Executes applications", "") -app_exec:value("yes", "Load") -app_exec:value("no", "Do Not Load") -app_exec:value("auto", "Load as Required") -app_exec.rmempty = true - -app_externalivr = module:option(ListValue, "app_externalivr", "External IVR application interface", "") -app_externalivr:value("yes", "Load") -app_externalivr:value("no", "Do Not Load") -app_externalivr:value("auto", "Load as Required") -app_externalivr.rmempty = true - -app_forkcdr = module:option(ListValue, "app_forkcdr", "Fork The CDR into 2 seperate entities", "") -app_forkcdr:value("yes", "Load") -app_forkcdr:value("no", "Do Not Load") -app_forkcdr:value("auto", "Load as Required") -app_forkcdr.rmempty = true - -app_getcpeid = module:option(ListValue, "app_getcpeid", "Get ADSI CPE ID", "") -app_getcpeid:value("yes", "Load") -app_getcpeid:value("no", "Do Not Load") -app_getcpeid:value("auto", "Load as Required") -app_getcpeid.rmempty = true - -app_groupcount = module:option(ListValue, "app_groupcount", "Group Management Routines", "") -app_groupcount:value("yes", "Load") -app_groupcount:value("no", "Do Not Load") -app_groupcount:value("auto", "Load as Required") -app_groupcount.rmempty = true - -app_ices = module:option(ListValue, "app_ices", "Encode and Stream via icecast and ices", "") -app_ices:value("yes", "Load") -app_ices:value("no", "Do Not Load") -app_ices:value("auto", "Load as Required") -app_ices.rmempty = true - -app_image = module:option(ListValue, "app_image", "Image Transmission Application", "") -app_image:value("yes", "Load") -app_image:value("no", "Do Not Load") -app_image:value("auto", "Load as Required") -app_image.rmempty = true - -app_lookupblacklist = module:option(ListValue, "app_lookupblacklist", "Look up Caller*ID name/number from black", "") -app_lookupblacklist:value("yes", "Load") -app_lookupblacklist:value("no", "Do Not Load") -app_lookupblacklist:value("auto", "Load as Required") -app_lookupblacklist.rmempty = true - -app_lookupcidname = module:option(ListValue, "app_lookupcidname", "Look up CallerID Name from local databas", "") -app_lookupcidname:value("yes", "Load") -app_lookupcidname:value("no", "Do Not Load") -app_lookupcidname:value("auto", "Load as Required") -app_lookupcidname.rmempty = true - -app_macro = module:option(ListValue, "app_macro", "Extension Macros", "") -app_macro:value("yes", "Load") -app_macro:value("no", "Do Not Load") -app_macro:value("auto", "Load as Required") -app_macro.rmempty = true - -app_math = module:option(ListValue, "app_math", "A simple math Application", "") -app_math:value("yes", "Load") -app_math:value("no", "Do Not Load") -app_math:value("auto", "Load as Required") -app_math.rmempty = true - -app_md5 = module:option(ListValue, "app_md5", "MD5 checksum Application", "") -app_md5:value("yes", "Load") -app_md5:value("no", "Do Not Load") -app_md5:value("auto", "Load as Required") -app_md5.rmempty = true - -app_milliwatt = module:option(ListValue, "app_milliwatt", "Digital Milliwatt (mu-law) Test Application", "") -app_milliwatt:value("yes", "Load") -app_milliwatt:value("no", "Do Not Load") -app_milliwatt:value("auto", "Load as Required") -app_milliwatt.rmempty = true - -app_mixmonitor = module:option(ListValue, "app_mixmonitor", "Record a call and mix the audio during the recording", "") -app_mixmonitor:value("yes", "Load") -app_mixmonitor:value("no", "Do Not Load") -app_mixmonitor:value("auto", "Load as Required") -app_mixmonitor.rmempty = true - -app_parkandannounce = module:option(ListValue, "app_parkandannounce", "Call Parking and Announce Application", "") -app_parkandannounce:value("yes", "Load") -app_parkandannounce:value("no", "Do Not Load") -app_parkandannounce:value("auto", "Load as Required") -app_parkandannounce.rmempty = true - -app_playback = module:option(ListValue, "app_playback", "Trivial Playback Application", "") -app_playback:value("yes", "Load") -app_playback:value("no", "Do Not Load") -app_playback:value("auto", "Load as Required") -app_playback.rmempty = true - -app_privacy = module:option(ListValue, "app_privacy", "Require phone number to be entered", "") -app_privacy:value("yes", "Load") -app_privacy:value("no", "Do Not Load") -app_privacy:value("auto", "Load as Required") -app_privacy.rmempty = true - -app_queue = module:option(ListValue, "app_queue", "True Call Queueing", "") -app_queue:value("yes", "Load") -app_queue:value("no", "Do Not Load") -app_queue:value("auto", "Load as Required") -app_queue.rmempty = true - -app_random = module:option(ListValue, "app_random", "Random goto", "") -app_random:value("yes", "Load") -app_random:value("no", "Do Not Load") -app_random:value("auto", "Load as Required") -app_random.rmempty = true - -app_read = module:option(ListValue, "app_read", "Read Variable Application", "") -app_read:value("yes", "Load") -app_read:value("no", "Do Not Load") -app_read:value("auto", "Load as Required") -app_read.rmempty = true - -app_readfile = module:option(ListValue, "app_readfile", "Read in a file", "") -app_readfile:value("yes", "Load") -app_readfile:value("no", "Do Not Load") -app_readfile:value("auto", "Load as Required") -app_readfile.rmempty = true - -app_realtime = module:option(ListValue, "app_realtime", "Realtime Data Lookup/Rewrite", "") -app_realtime:value("yes", "Load") -app_realtime:value("no", "Do Not Load") -app_realtime:value("auto", "Load as Required") -app_realtime.rmempty = true - -app_record = module:option(ListValue, "app_record", "Trivial Record Application", "") -app_record:value("yes", "Load") -app_record:value("no", "Do Not Load") -app_record:value("auto", "Load as Required") -app_record.rmempty = true - -app_sayunixtime = module:option(ListValue, "app_sayunixtime", "Say time", "") -app_sayunixtime:value("yes", "Load") -app_sayunixtime:value("no", "Do Not Load") -app_sayunixtime:value("auto", "Load as Required") -app_sayunixtime.rmempty = true - -app_senddtmf = module:option(ListValue, "app_senddtmf", "Send DTMF digits Application", "") -app_senddtmf:value("yes", "Load") -app_senddtmf:value("no", "Do Not Load") -app_senddtmf:value("auto", "Load as Required") -app_senddtmf.rmempty = true - -app_sendtext = module:option(ListValue, "app_sendtext", "Send Text Applications", "") -app_sendtext:value("yes", "Load") -app_sendtext:value("no", "Do Not Load") -app_sendtext:value("auto", "Load as Required") -app_sendtext.rmempty = true - -app_setcallerid = module:option(ListValue, "app_setcallerid", "Set CallerID Application", "") -app_setcallerid:value("yes", "Load") -app_setcallerid:value("no", "Do Not Load") -app_setcallerid:value("auto", "Load as Required") -app_setcallerid.rmempty = true - -app_setcdruserfield = module:option(ListValue, "app_setcdruserfield", "CDR user field apps", "") -app_setcdruserfield:value("yes", "Load") -app_setcdruserfield:value("no", "Do Not Load") -app_setcdruserfield:value("auto", "Load as Required") -app_setcdruserfield.rmempty = true - -app_setcidname = module:option(ListValue, "app_setcidname", "load => .so ; Set CallerID Name", "") -app_setcidname:value("yes", "Load") -app_setcidname:value("no", "Do Not Load") -app_setcidname:value("auto", "Load as Required") -app_setcidname.rmempty = true - -app_setcidnum = module:option(ListValue, "app_setcidnum", "load => .so ; Set CallerID Number", "") -app_setcidnum:value("yes", "Load") -app_setcidnum:value("no", "Do Not Load") -app_setcidnum:value("auto", "Load as Required") -app_setcidnum.rmempty = true - -app_setrdnis = module:option(ListValue, "app_setrdnis", "Set RDNIS Number", "") -app_setrdnis:value("yes", "Load") -app_setrdnis:value("no", "Do Not Load") -app_setrdnis:value("auto", "Load as Required") -app_setrdnis.rmempty = true - -app_settransfercapability = module:option(ListValue, "app_settransfercapability", "Set ISDN Transfer Capability", "") -app_settransfercapability:value("yes", "Load") -app_settransfercapability:value("no", "Do Not Load") -app_settransfercapability:value("auto", "Load as Required") -app_settransfercapability.rmempty = true - -app_sms = module:option(ListValue, "app_sms", "SMS/PSTN handler", "") -app_sms:value("yes", "Load") -app_sms:value("no", "Do Not Load") -app_sms:value("auto", "Load as Required") -app_sms.rmempty = true - -app_softhangup = module:option(ListValue, "app_softhangup", "Hangs up the requested channel", "") -app_softhangup:value("yes", "Load") -app_softhangup:value("no", "Do Not Load") -app_softhangup:value("auto", "Load as Required") -app_softhangup.rmempty = true - -app_stack = module:option(ListValue, "app_stack", "Stack Routines", "") -app_stack:value("yes", "Load") -app_stack:value("no", "Do Not Load") -app_stack:value("auto", "Load as Required") -app_stack.rmempty = true - -app_system = module:option(ListValue, "app_system", "Generic System() application", "") -app_system:value("yes", "Load") -app_system:value("no", "Do Not Load") -app_system:value("auto", "Load as Required") -app_system.rmempty = true - -app_talkdetect = module:option(ListValue, "app_talkdetect", "Playback with Talk Detection", "") -app_talkdetect:value("yes", "Load") -app_talkdetect:value("no", "Do Not Load") -app_talkdetect:value("auto", "Load as Required") -app_talkdetect.rmempty = true - -app_test = module:option(ListValue, "app_test", "Interface Test Application", "") -app_test:value("yes", "Load") -app_test:value("no", "Do Not Load") -app_test:value("auto", "Load as Required") -app_test.rmempty = true - -app_transfer = module:option(ListValue, "app_transfer", "Transfer", "") -app_transfer:value("yes", "Load") -app_transfer:value("no", "Do Not Load") -app_transfer:value("auto", "Load as Required") -app_transfer.rmempty = true - -app_txtcidname = module:option(ListValue, "app_txtcidname", "TXTCIDName", "") -app_txtcidname:value("yes", "Load") -app_txtcidname:value("no", "Do Not Load") -app_txtcidname:value("auto", "Load as Required") -app_txtcidname.rmempty = true - -app_url = module:option(ListValue, "app_url", "Send URL Applications", "") -app_url:value("yes", "Load") -app_url:value("no", "Do Not Load") -app_url:value("auto", "Load as Required") -app_url.rmempty = true - -app_userevent = module:option(ListValue, "app_userevent", "Custom User Event Application", "") -app_userevent:value("yes", "Load") -app_userevent:value("no", "Do Not Load") -app_userevent:value("auto", "Load as Required") -app_userevent.rmempty = true - -app_verbose = module:option(ListValue, "app_verbose", "Send verbose output", "") -app_verbose:value("yes", "Load") -app_verbose:value("no", "Do Not Load") -app_verbose:value("auto", "Load as Required") -app_verbose.rmempty = true - -app_voicemail = module:option(ListValue, "app_voicemail", "Voicemail", "") -app_voicemail:value("yes", "Load") -app_voicemail:value("no", "Do Not Load") -app_voicemail:value("auto", "Load as Required") -app_voicemail.rmempty = true - -app_waitforring = module:option(ListValue, "app_waitforring", "Waits until first ring after time", "") -app_waitforring:value("yes", "Load") -app_waitforring:value("no", "Do Not Load") -app_waitforring:value("auto", "Load as Required") -app_waitforring.rmempty = true - -app_waitforsilence = module:option(ListValue, "app_waitforsilence", "Wait For Silence Application", "") -app_waitforsilence:value("yes", "Load") -app_waitforsilence:value("no", "Do Not Load") -app_waitforsilence:value("auto", "Load as Required") -app_waitforsilence.rmempty = true - -app_while = module:option(ListValue, "app_while", "While Loops and Conditional Execution", "") -app_while:value("yes", "Load") -app_while:value("no", "Do Not Load") -app_while:value("auto", "Load as Required") -app_while.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-cdr.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-cdr.lua deleted file mode 100644 index ee1960d1ba..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-cdr.lua +++ /dev/null @@ -1,58 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -module = cbimap:section(TypedSection, "module", "Modules", "") -module.anonymous = true - -cdr_csv = module:option(ListValue, "cdr_csv", "Comma Separated Values CDR Backend", "") -cdr_csv:value("yes", "Load") -cdr_csv:value("no", "Do Not Load") -cdr_csv:value("auto", "Load as Required") -cdr_csv.rmempty = true - -cdr_custom = module:option(ListValue, "cdr_custom", "Customizable Comma Separated Values CDR Backend", "") -cdr_custom:value("yes", "Load") -cdr_custom:value("no", "Do Not Load") -cdr_custom:value("auto", "Load as Required") -cdr_custom.rmempty = true - -cdr_manager = module:option(ListValue, "cdr_manager", "Asterisk Call Manager CDR Backend", "") -cdr_manager:value("yes", "Load") -cdr_manager:value("no", "Do Not Load") -cdr_manager:value("auto", "Load as Required") -cdr_manager.rmempty = true - -cdr_mysql = module:option(ListValue, "cdr_mysql", "MySQL CDR Backend", "") -cdr_mysql:value("yes", "Load") -cdr_mysql:value("no", "Do Not Load") -cdr_mysql:value("auto", "Load as Required") -cdr_mysql.rmempty = true - -cdr_pgsql = module:option(ListValue, "cdr_pgsql", "PostgreSQL CDR Backend", "") -cdr_pgsql:value("yes", "Load") -cdr_pgsql:value("no", "Do Not Load") -cdr_pgsql:value("auto", "Load as Required") -cdr_pgsql.rmempty = true - -cdr_sqlite = module:option(ListValue, "cdr_sqlite", "SQLite CDR Backend", "") -cdr_sqlite:value("yes", "Load") -cdr_sqlite:value("no", "Do Not Load") -cdr_sqlite:value("auto", "Load as Required") -cdr_sqlite.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-chan.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-chan.lua deleted file mode 100644 index 835cbdcfae..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-chan.lua +++ /dev/null @@ -1,56 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - - -module = cbimap:section(TypedSection, "module", "Modules", "") -module.anonymous = true - -chan_agent = module:option(ListValue, "chan_agent", "Agent Proxy Channel", "") -chan_agent:value("yes", "Load") -chan_agent:value("no", "Do Not Load") -chan_agent:value("auto", "Load as Required") -chan_agent.rmempty = true - -chan_alsa = module:option(ListValue, "chan_alsa", "Channel driver for GTalk", "") -chan_alsa:value("yes", "Load") -chan_alsa:value("no", "Do Not Load") -chan_alsa:value("auto", "Load as Required") -chan_alsa.rmempty = true - -chan_gtalk = module:option(ListValue, "chan_gtalk", "Channel driver for GTalk", "") -chan_gtalk:value("yes", "Load") -chan_gtalk:value("no", "Do Not Load") -chan_gtalk:value("auto", "Load as Required") -chan_gtalk.rmempty = true - -chan_iax2 = module:option(Flag, "chan_iax2", "Option chan_iax2", "") -chan_iax2.rmempty = true - -chan_local = module:option(ListValue, "chan_local", "Local Proxy Channel", "") -chan_local:value("yes", "Load") -chan_local:value("no", "Do Not Load") -chan_local:value("auto", "Load as Required") -chan_local.rmempty = true - -chan_sip = module:option(ListValue, "chan_sip", "Session Initiation Protocol (SIP)", "") -chan_sip:value("yes", "Load") -chan_sip:value("no", "Do Not Load") -chan_sip:value("auto", "Load as Required") -chan_sip.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-codec.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-codec.lua deleted file mode 100644 index 3c8d95840e..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-codec.lua +++ /dev/null @@ -1,64 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -module = cbimap:section(TypedSection, "module", "Modules", "") -module.anonymous = true - -codec_a_mu = module:option(ListValue, "codec_a_mu", "A-law and Mulaw direct Coder/Decoder", "") -codec_a_mu:value("yes", "Load") -codec_a_mu:value("no", "Do Not Load") -codec_a_mu:value("auto", "Load as Required") -codec_a_mu.rmempty = true - -codec_adpcm = module:option(ListValue, "codec_adpcm", "Adaptive Differential PCM Coder/Decoder", "") -codec_adpcm:value("yes", "Load") -codec_adpcm:value("no", "Do Not Load") -codec_adpcm:value("auto", "Load as Required") -codec_adpcm.rmempty = true - -codec_alaw = module:option(ListValue, "codec_alaw", "A-law Coder/Decoder", "") -codec_alaw:value("yes", "Load") -codec_alaw:value("no", "Do Not Load") -codec_alaw:value("auto", "Load as Required") -codec_alaw.rmempty = true - -codec_g726 = module:option(ListValue, "codec_g726", "ITU G.726-32kbps G726 Transcoder", "") -codec_g726:value("yes", "Load") -codec_g726:value("no", "Do Not Load") -codec_g726:value("auto", "Load as Required") -codec_g726.rmempty = true - -codec_gsm = module:option(ListValue, "codec_gsm", "GSM/PCM16 (signed linear) Codec Translation", "") -codec_gsm:value("yes", "Load") -codec_gsm:value("no", "Do Not Load") -codec_gsm:value("auto", "Load as Required") -codec_gsm.rmempty = true - -codec_speex = module:option(ListValue, "codec_speex", "Speex/PCM16 (signed linear) Codec Translator", "") -codec_speex:value("yes", "Load") -codec_speex:value("no", "Do Not Load") -codec_speex:value("auto", "Load as Required") -codec_speex.rmempty = true - -codec_ulaw = module:option(ListValue, "codec_ulaw", "Mu-law Coder/Decoder", "") -codec_ulaw:value("yes", "Load") -codec_ulaw:value("no", "Do Not Load") -codec_ulaw:value("auto", "Load as Required") -codec_ulaw.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-format.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-format.lua deleted file mode 100644 index da3989b2d4..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-format.lua +++ /dev/null @@ -1,100 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -module = cbimap:section(TypedSection, "module", "Modules", "") -module.anonymous = true - -format_au = module:option(ListValue, "format_au", "Sun Microsystems AU format (signed linear)", "") -format_au:value("yes", "Load") -format_au:value("no", "Do Not Load") -format_au:value("auto", "Load as Required") -format_au.rmempty = true - -format_g723 = module:option(ListValue, "format_g723", "G.723.1 Simple Timestamp File Format", "") -format_g723:value("yes", "Load") -format_g723:value("no", "Do Not Load") -format_g723:value("auto", "Load as Required") -format_g723.rmempty = true - -format_g726 = module:option(ListValue, "format_g726", "Raw G.726 (16/24/32/40kbps) data", "") -format_g726:value("yes", "Load") -format_g726:value("no", "Do Not Load") -format_g726:value("auto", "Load as Required") -format_g726.rmempty = true - -format_g729 = module:option(ListValue, "format_g729", "Raw G729 data", "") -format_g729:value("yes", "Load") -format_g729:value("no", "Do Not Load") -format_g729:value("auto", "Load as Required") -format_g729.rmempty = true - -format_gsm = module:option(ListValue, "format_gsm", "Raw GSM data", "") -format_gsm:value("yes", "Load") -format_gsm:value("no", "Do Not Load") -format_gsm:value("auto", "Load as Required") -format_gsm.rmempty = true - -format_h263 = module:option(ListValue, "format_h263", "Raw h263 data", "") -format_h263:value("yes", "Load") -format_h263:value("no", "Do Not Load") -format_h263:value("auto", "Load as Required") -format_h263.rmempty = true - -format_jpeg = module:option(ListValue, "format_jpeg", "JPEG (Joint Picture Experts Group) Image", "") -format_jpeg:value("yes", "Load") -format_jpeg:value("no", "Do Not Load") -format_jpeg:value("auto", "Load as Required") -format_jpeg.rmempty = true - -format_pcm = module:option(ListValue, "format_pcm", "Raw uLaw 8khz Audio support (PCM)", "") -format_pcm:value("yes", "Load") -format_pcm:value("no", "Do Not Load") -format_pcm:value("auto", "Load as Required") -format_pcm.rmempty = true - -format_pcm_alaw = module:option(ListValue, "format_pcm_alaw", "load => .so ; Raw aLaw 8khz PCM Audio support", "") -format_pcm_alaw:value("yes", "Load") -format_pcm_alaw:value("no", "Do Not Load") -format_pcm_alaw:value("auto", "Load as Required") -format_pcm_alaw.rmempty = true - -format_sln = module:option(ListValue, "format_sln", "Raw Signed Linear Audio support (SLN)", "") -format_sln:value("yes", "Load") -format_sln:value("no", "Do Not Load") -format_sln:value("auto", "Load as Required") -format_sln.rmempty = true - -format_vox = module:option(ListValue, "format_vox", "Dialogic VOX (ADPCM) File Format", "") -format_vox:value("yes", "Load") -format_vox:value("no", "Do Not Load") -format_vox:value("auto", "Load as Required") -format_vox.rmempty = true - -format_wav = module:option(ListValue, "format_wav", "Microsoft WAV format (8000hz Signed Line", "") -format_wav:value("yes", "Load") -format_wav:value("no", "Do Not Load") -format_wav:value("auto", "Load as Required") -format_wav.rmempty = true - -format_wav_gsm = module:option(ListValue, "format_wav_gsm", "Microsoft WAV format (Proprietary GSM)", "") -format_wav_gsm:value("yes", "Load") -format_wav_gsm:value("no", "Do Not Load") -format_wav_gsm:value("auto", "Load as Required") -format_wav_gsm.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-func.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-func.lua deleted file mode 100644 index 7d80641f30..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-func.lua +++ /dev/null @@ -1,40 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -module = cbimap:section(TypedSection, "module", "Modules", "") -module.anonymous = true - -func_callerid = module:option(ListValue, "func_callerid", "Caller ID related dialplan functions", "") -func_callerid:value("yes", "Load") -func_callerid:value("no", "Do Not Load") -func_callerid:value("auto", "Load as Required") -func_callerid.rmempty = true - -func_enum = module:option(ListValue, "func_enum", "ENUM Functions", "") -func_enum:value("yes", "Load") -func_enum:value("no", "Do Not Load") -func_enum:value("auto", "Load as Required") -func_enum.rmempty = true - -func_uri = module:option(ListValue, "func_uri", "URI encoding / decoding functions", "") -func_uri:value("yes", "Load") -func_uri:value("no", "Do Not Load") -func_uri:value("auto", "Load as Required") -func_uri.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-pbx.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-pbx.lua deleted file mode 100644 index 8b22b5cb2d..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-pbx.lua +++ /dev/null @@ -1,64 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -module = cbimap:section(TypedSection, "module", "Modules", "") -module.anonymous = true - -pbx_ael = module:option(ListValue, "pbx_ael", "Asterisk Extension Language Compiler", "") -pbx_ael:value("yes", "Load") -pbx_ael:value("no", "Do Not Load") -pbx_ael:value("auto", "Load as Required") -pbx_ael.rmempty = true - -pbx_config = module:option(ListValue, "pbx_config", "Text Extension Configuration", "") -pbx_config:value("yes", "Load") -pbx_config:value("no", "Do Not Load") -pbx_config:value("auto", "Load as Required") -pbx_config.rmempty = true - -pbx_functions = module:option(ListValue, "pbx_functions", "load => .so ; Builtin dialplan functions", "") -pbx_functions:value("yes", "Load") -pbx_functions:value("no", "Do Not Load") -pbx_functions:value("auto", "Load as Required") -pbx_functions.rmempty = true - -pbx_loopback = module:option(ListValue, "pbx_loopback", "Loopback Switch", "") -pbx_loopback:value("yes", "Load") -pbx_loopback:value("no", "Do Not Load") -pbx_loopback:value("auto", "Load as Required") -pbx_loopback.rmempty = true - -pbx_realtime = module:option(ListValue, "pbx_realtime", "Realtime Switch", "") -pbx_realtime:value("yes", "Load") -pbx_realtime:value("no", "Do Not Load") -pbx_realtime:value("auto", "Load as Required") -pbx_realtime.rmempty = true - -pbx_spool = module:option(ListValue, "pbx_spool", "Outgoing Spool Support", "") -pbx_spool:value("yes", "Load") -pbx_spool:value("no", "Do Not Load") -pbx_spool:value("auto", "Load as Required") -pbx_spool.rmempty = true - -pbx_wilcalu = module:option(ListValue, "pbx_wilcalu", "Wil Cal U (Auto Dialer)", "") -pbx_wilcalu:value("yes", "Load") -pbx_wilcalu:value("no", "Do Not Load") -pbx_wilcalu:value("auto", "Load as Required") -pbx_wilcalu.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua deleted file mode 100644 index 35c5d47607..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua +++ /dev/null @@ -1,111 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -featuremap = cbimap:section(TypedSection, "featuremap", "Feature Key maps", "") -featuremap.anonymous = true -featuremap.addremove = true - -atxfer = featuremap:option(Value, "atxfer", "Attended transfer key", "") -atxfer.rmempty = true - -blindxfer = featuremap:option(Value, "blindxfer", "Blind transfer key", "") -blindxfer.rmempty = true - -disconnect = featuremap:option(Value, "disconnect", "Key to Disconnect call", "") -disconnect.rmempty = true - -parkcall = featuremap:option(Value, "parkcall", "Key to Park call", "") -parkcall.rmempty = true - - -featurepark = cbimap:section(TypedSection, "featurepark", "Parking Feature", "") -featurepark.anonymous = true - -parkenabled = featurepark:option(Flag, "parkenabled", "Enable Parking", "") - -adsipark = featurepark:option(Flag, "adsipark", "ADSI Park", "") -adsipark.rmempty = true -adsipark:depends({ parkenabled = "1" }) - -atxfernoanswertimeout = featurepark:option(Value, "atxfernoanswertimeout", "Attended transfer timeout (sec)", "") -atxfernoanswertimeout.rmempty = true -atxfernoanswertimeout:depends({ parkenabled = "1" }) - -automon = featurepark:option(Value, "automon", "One touch record key", "") -automon.rmempty = true -automon:depends({ parkenabled = "1" }) - -context = featurepark:option(Value, "context", "Name of call context for parking", "") -context.rmempty = true -context:depends({ parkenabled = "1" }) - -courtesytone = featurepark:option(Value, "courtesytone", "Sound file to play to parked caller", "") -courtesytone.rmempty = true -courtesytone:depends({ parkenabled = "1" }) - -featuredigittimeout = featurepark:option(Value, "featuredigittimeout", "Max time (ms) between digits for feature activation", "") -featuredigittimeout.rmempty = true -featuredigittimeout:depends({ parkenabled = "1" }) - -findslot = featurepark:option(ListValue, "findslot", "Method to Find Parking slot", "") -findslot:value("first", "First available slot") -findslot:value("next", "Next free parking space") -findslot.rmempty = true -findslot:depends({ parkenabled = "1" }) - -parkedmusicclass = featurepark:option(ListValue, "parkedmusicclass", "Music on Hold class for the parked channel", "") -parkedmusicclass.titleref = luci.dispatcher.build_url( "admin", "services", "asterisk" ) -parkedmusicclass:depends({ parkenabled = "1" }) -cbimap.uci:foreach( "asterisk", "moh", function(s) parkedmusicclass:value(s['.name']) end ) - -parkedplay = featurepark:option(ListValue, "parkedplay", "Play courtesy tone to", "") -parkedplay:value("caller", "Caller") -parkedplay:value("parked", "Parked user") -parkedplay:value("both", "Both") -parkedplay.rmempty = true -parkedplay:depends({ parkenabled = "1" }) - -parkext = featurepark:option(Value, "parkext", "Extension to dial to park", "") -parkext.rmempty = true -parkext:depends({ parkenabled = "1" }) - -parkingtime = featurepark:option(Value, "parkingtime", "Parking time (secs)", "") -parkingtime.rmempty = true -parkingtime:depends({ parkenabled = "1" }) - -parkpos = featurepark:option(Value, "parkpos", "Range of extensions for call parking", "") -parkpos.rmempty = true -parkpos:depends({ parkenabled = "1" }) - -pickupexten = featurepark:option(Value, "pickupexten", "Pickup extension", "") -pickupexten.rmempty = true -pickupexten:depends({ parkenabled = "1" }) - -transferdigittimeout = featurepark:option(Value, "transferdigittimeout", "Seconds to wait bewteen digits when transferring", "") -transferdigittimeout.rmempty = true -transferdigittimeout:depends({ parkenabled = "1" }) - -xferfailsound = featurepark:option(Value, "xferfailsound", "sound when attended transfer is complete", "") -xferfailsound.rmempty = true -xferfailsound:depends({ parkenabled = "1" }) - -xfersound = featurepark:option(Value, "xfersound", "Sound when attended transfer fails", "") -xfersound.rmempty = true -xfersound:depends({ parkenabled = "1" }) - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-res.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-res.lua deleted file mode 100644 index 5ef6bddd49..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-res.lua +++ /dev/null @@ -1,88 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -module = cbimap:section(TypedSection, "module", "Modules", "") -module.anonymous = true - -res_config_mysql = module:option(ListValue, "res_config_mysql", "MySQL Config Resource", "") -res_config_mysql:value("yes", "Load") -res_config_mysql:value("no", "Do Not Load") -res_config_mysql:value("auto", "Load as Required") -res_config_mysql.rmempty = true - -res_config_odbc = module:option(ListValue, "res_config_odbc", "ODBC Config Resource", "") -res_config_odbc:value("yes", "Load") -res_config_odbc:value("no", "Do Not Load") -res_config_odbc:value("auto", "Load as Required") -res_config_odbc.rmempty = true - -res_config_pgsql = module:option(ListValue, "res_config_pgsql", "PGSQL Module", "") -res_config_pgsql:value("yes", "Load") -res_config_pgsql:value("no", "Do Not Load") -res_config_pgsql:value("auto", "Load as Required") -res_config_pgsql.rmempty = true - -res_crypto = module:option(ListValue, "res_crypto", "Cryptographic Digital Signatures", "") -res_crypto:value("yes", "Load") -res_crypto:value("no", "Do Not Load") -res_crypto:value("auto", "Load as Required") -res_crypto.rmempty = true - -res_features = module:option(ListValue, "res_features", "Call Parking Resource", "") -res_features:value("yes", "Load") -res_features:value("no", "Do Not Load") -res_features:value("auto", "Load as Required") -res_features.rmempty = true - -res_indications = module:option(ListValue, "res_indications", "Indications Configuration", "") -res_indications:value("yes", "Load") -res_indications:value("no", "Do Not Load") -res_indications:value("auto", "Load as Required") -res_indications.rmempty = true - -res_monitor = module:option(ListValue, "res_monitor", "Call Monitoring Resource", "") -res_monitor:value("yes", "Load") -res_monitor:value("no", "Do Not Load") -res_monitor:value("auto", "Load as Required") -res_monitor.rmempty = true - -res_musiconhold = module:option(ListValue, "res_musiconhold", "Music On Hold Resource", "") -res_musiconhold:value("yes", "Load") -res_musiconhold:value("no", "Do Not Load") -res_musiconhold:value("auto", "Load as Required") -res_musiconhold.rmempty = true - -res_odbc = module:option(ListValue, "res_odbc", "ODBC Resource", "") -res_odbc:value("yes", "Load") -res_odbc:value("no", "Do Not Load") -res_odbc:value("auto", "Load as Required") -res_odbc.rmempty = true - -res_smdi = module:option(ListValue, "res_smdi", "SMDI Module", "") -res_smdi:value("yes", "Load") -res_smdi:value("no", "Do Not Load") -res_smdi:value("auto", "Load as Required") -res_smdi.rmempty = true - -res_snmp = module:option(ListValue, "res_snmp", "SNMP Module", "") -res_snmp:value("yes", "Load") -res_snmp:value("no", "Do Not Load") -res_snmp:value("auto", "Load as Required") -res_snmp.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-sip-connections.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-sip-connections.lua deleted file mode 100644 index efb84a01f7..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-sip-connections.lua +++ /dev/null @@ -1,109 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -sip = cbimap:section(TypedSection, "sip", "SIP Connection", "") -sip.addremove = true - -alwaysinternational = sip:option(Flag, "alwaysinternational", "Always Dial International", "") -alwaysinternational.optional = true - -canreinvite = sip:option(ListValue, "canreinvite", "Reinvite/redirect media connections", "") -canreinvite:value("yes", "Yes") -canreinvite:value("nonat", "Yes when not behind NAT") -canreinvite:value("update", "Use UPDATE rather than INVITE for path redirection") -canreinvite:value("no", "No") -canreinvite.optional = true - -context = sip:option(ListValue, "context", "Context to use", "") -context.titleref = luci.dispatcher.build_url( "admin", "services", "asterisk", "dialplans" ) -cbimap.uci:foreach( "asterisk", "dialplan", function(s) context:value(s['.name']) end ) -cbimap.uci:foreach( "asterisk", "dialzone", function(s) context:value(s['.name']) end ) - -countrycode = sip:option(Value, "countrycode", "Country Code for connection", "") -countrycode.optional = true - -dtmfmode = sip:option(ListValue, "dtmfmode", "DTMF mode", "") -dtmfmode:value("info", "Use RFC2833 or INFO for the BudgeTone") -dtmfmode:value("rfc2833", "Use RFC2833 for the BudgeTone") -dtmfmode:value("inband", "Use Inband (only with ulaw/alaw)") -dtmfmode.optional = true - -extension = sip:option(Value, "extension", "Add as Extension", "") -extension.optional = true - -fromdomain = sip:option(Value, "fromdomain", "Primary domain identity for From: headers", "") -fromdomain.optional = true - -fromuser = sip:option(Value, "fromuser", "From user (required by many SIP providers)", "") -fromuser.optional = true - -host = sip:option(Value, "host", "Host name (or blank)", "") -host.optional = true - -incoming = sip:option(DynamicList, "incoming", "Ring on incoming dialplan contexts", "") -incoming.optional = true - -insecure = sip:option(ListValue, "insecure", "Allow Insecure for", "") -insecure:value("port", "Allow mismatched port number") -insecure:value("invite", "Do not require auth of incoming INVITE") -insecure:value("port,invite", "Allow mismatched port and Do not require auth of incoming INVITE") -insecure.optional = true - -internationalprefix = sip:option(Value, "internationalprefix", "International Dial Prefix", "") -internationalprefix.optional = true - -mailbox = sip:option(Value, "mailbox", "Mailbox for MWI", "") -mailbox.optional = true - -nat = sip:option(Flag, "nat", "NAT between phone and Asterisk", "") -nat.optional = true - -pedantic = sip:option(Flag, "pedantic", "Check tags in headers", "") -pedantic.optional = true - -port = sip:option(Value, "port", "SIP Port", "") -port.optional = true - -prefix = sip:option(Value, "prefix", "Dial Prefix (for external line)", "") -prefix.optional = true - -qualify = sip:option(Value, "qualify", "Reply Timeout (ms) for down connection", "") -qualify.optional = true - -register = sip:option(Flag, "register", "Register connection", "") -register.optional = true - -secret = sip:option(Value, "secret", "Secret", "") -secret.optional = true - -selfmailbox = sip:option(Flag, "selfmailbox", "Dial own extension for mailbox", "") -selfmailbox.optional = true - -timeout = sip:option(Value, "timeout", "Dial Timeout (sec)", "") -timeout.optional = true - -type = sip:option(ListValue, "type", "Client Type", "") -type:value("friend", "Friend (outbound/inbound)") -type:value("user", "User (inbound - authenticate by \"from\")") -type:value("peer", "Peer (outbound - match by host)") -type.optional = true - -username = sip:option(Value, "username", "Username", "") -username.optional = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-voice.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-voice.lua deleted file mode 100644 index af0259549a..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-voice.lua +++ /dev/null @@ -1,52 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -voicegeneral = cbimap:section(TypedSection, "voicegeneral", "Voicemail general options", "") - -serveremail = voicegeneral:option(Value, "serveremail", "From Email address of server", "") - - -voicemail = cbimap:section(TypedSection, "voicemail", "Voice Mail boxes", "") -voicemail.addremove = true - -attach = voicemail:option(Flag, "attach", "Email contains attachment", "") -attach.rmempty = true - -email = voicemail:option(Value, "email", "Email", "") -email.rmempty = true - -name = voicemail:option(Value, "name", "Display Name", "") -name.rmempty = true - -password = voicemail:option(Value, "password", "Password", "") -password.rmempty = true - -zone = voicemail:option(ListValue, "zone", "Voice Zone", "") -cbimap.uci:foreach( "asterisk", "voicezone", function(s) zone:value(s['.name']) end ) - - -voicezone = cbimap:section(TypedSection, "voicezone", "Voice Zone settings", "") -voicezone.addremove = true - -message = voicezone:option(Value, "message", "Message Format", "") -message.rmempty = true - -zone = voicezone:option(Value, "zone", "Time Zone", "") -zone.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk.lua deleted file mode 100644 index 7580f22ecc..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk.lua +++ /dev/null @@ -1,162 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -cbimap = Map("asterisk", "asterisk", "") - -asterisk = cbimap:section(TypedSection, "asterisk", "Asterisk General Options", "") -asterisk.anonymous = true - -agidir = asterisk:option(Value, "agidir", "AGI directory", "") -agidir.rmempty = true - -cache_record_files = asterisk:option(Flag, "cache_record_files", "Cache recorded sound files during recording", "") -cache_record_files.rmempty = true - -debug = asterisk:option(Value, "debug", "Debug Level", "") -debug.rmempty = true - -dontwarn = asterisk:option(Flag, "dontwarn", "Disable some warnings", "") -dontwarn.rmempty = true - -dumpcore = asterisk:option(Flag, "dumpcore", "Dump core on crash", "") -dumpcore.rmempty = true - -highpriority = asterisk:option(Flag, "highpriority", "High Priority", "") -highpriority.rmempty = true - -initcrypto = asterisk:option(Flag, "initcrypto", "Initialise Crypto", "") -initcrypto.rmempty = true - -internal_timing = asterisk:option(Flag, "internal_timing", "Use Internal Timing", "") -internal_timing.rmempty = true - -logdir = asterisk:option(Value, "logdir", "Log directory", "") -logdir.rmempty = true - -maxcalls = asterisk:option(Value, "maxcalls", "Maximum number of calls allowed", "") -maxcalls.rmempty = true - -maxload = asterisk:option(Value, "maxload", "Maximum load to stop accepting new calls", "") -maxload.rmempty = true - -nocolor = asterisk:option(Flag, "nocolor", "Disable console colors", "") -nocolor.rmempty = true - -record_cache_dir = asterisk:option(Value, "record_cache_dir", "Sound files Cache directory", "") -record_cache_dir.rmempty = true -record_cache_dir:depends({ ["cache_record_files"] = "true" }) - -rungroup = asterisk:option(Flag, "rungroup", "The Group to run as", "") -rungroup.rmempty = true - -runuser = asterisk:option(Flag, "runuser", "The User to run as", "") -runuser.rmempty = true - -spooldir = asterisk:option(Value, "spooldir", "Voicemail Spool directory", "") -spooldir.rmempty = true - -systemname = asterisk:option(Value, "systemname", "Prefix UniquID with system name", "") -systemname.rmempty = true - -transcode_via_sln = asterisk:option(Flag, "transcode_via_sln", "Build transcode paths via SLINEAR, not directly", "") -transcode_via_sln.rmempty = true - -transmit_silence_during_record = asterisk:option(Flag, "transmit_silence_during_record", "Transmit SLINEAR silence while recording a channel", "") -transmit_silence_during_record.rmempty = true - -verbose = asterisk:option(Value, "verbose", "Verbose Level", "") -verbose.rmempty = true - -zone = asterisk:option(Value, "zone", "Time Zone", "") -zone.rmempty = true - - -hardwarereboot = cbimap:section(TypedSection, "hardwarereboot", "Reload Hardware Config", "") - -method = hardwarereboot:option(ListValue, "method", "Reboot Method", "") -method:value("web", "Web URL (wget)") -method:value("system", "program to run") -method.rmempty = true - -param = hardwarereboot:option(Value, "param", "Parameter", "") -param.rmempty = true - - -iaxgeneral = cbimap:section(TypedSection, "iaxgeneral", "IAX General Options", "") -iaxgeneral.anonymous = true -iaxgeneral.addremove = true - -allow = iaxgeneral:option(MultiValue, "allow", "Allow Codecs", "") -allow:value("alaw", "alaw") -allow:value("gsm", "gsm") -allow:value("g726", "g726") -allow.rmempty = true - -canreinvite = iaxgeneral:option(ListValue, "canreinvite", "Reinvite/redirect media connections", "") -canreinvite:value("yes", "Yes") -canreinvite:value("nonat", "Yes when not behind NAT") -canreinvite:value("update", "Use UPDATE rather than INVITE for path redirection") -canreinvite:value("no", "No") -canreinvite.rmempty = true - -static = iaxgeneral:option(Flag, "static", "Static", "") -static.rmempty = true - -writeprotect = iaxgeneral:option(Flag, "writeprotect", "Write Protect", "") -writeprotect.rmempty = true - - -sipgeneral = cbimap:section(TypedSection, "sipgeneral", "Section sipgeneral", "") -sipgeneral.anonymous = true -sipgeneral.addremove = true - -allow = sipgeneral:option(MultiValue, "allow", "Allow codecs", "") -allow:value("ulaw", "ulaw") -allow:value("alaw", "alaw") -allow:value("gsm", "gsm") -allow:value("g726", "g726") -allow.rmempty = true - -port = sipgeneral:option(Value, "port", "SIP Port", "") -port.rmempty = true - -realm = sipgeneral:option(Value, "realm", "SIP realm", "") -realm.rmempty = true - - -moh = cbimap:section(TypedSection, "moh", "Music On Hold", "") - -application = moh:option(Value, "application", "Application", "") -application.rmempty = true -application:depends({ ["asterisk.moh.mode"] = "custom" }) - -directory = moh:option(Value, "directory", "Directory of Music", "") -directory.rmempty = true - -mode = moh:option(ListValue, "mode", "Option mode", "") -mode:value("system", "program to run") -mode:value("files", "Read files from directory") -mode:value("quietmp3", "Quite MP3") -mode:value("mp3", "Loud MP3") -mode:value("mp3nb", "unbuffered MP3") -mode:value("quietmp3nb", "Quiet Unbuffered MP3") -mode:value("custom", "Run a custom application") -mode.rmempty = true - -random = moh:option(Flag, "random", "Random Play", "") -random.rmempty = true - - -return cbimap diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk/dialplan_out.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/dialplan_out.lua deleted file mode 100644 index 3115e10d6b..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/dialplan_out.lua +++ /dev/null @@ -1,137 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/dialplans.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/dialplans.lua deleted file mode 100644 index 3a993da456..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/dialplans.lua +++ /dev/null @@ -1,115 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/dialzones.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/dialzones.lua deleted file mode 100644 index 4867911c54..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/dialzones.lua +++ /dev/null @@ -1,135 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id: trunks.lua 4025 2009-01-11 23:37:21Z jow $ - -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/meetme.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/meetme.lua deleted file mode 100644 index b02a8f6120..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/meetme.lua +++ /dev/null @@ -1,49 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2009 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/meetme_settings.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/meetme_settings.lua deleted file mode 100644 index 511d7a71a7..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/meetme_settings.lua +++ /dev/null @@ -1,28 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2009 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/phone_sip.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/phone_sip.lua deleted file mode 100644 index 49d3a07763..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/phone_sip.lua +++ /dev/null @@ -1,157 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/phones.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/phones.lua deleted file mode 100644 index 7c8f03f000..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/phones.lua +++ /dev/null @@ -1,116 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/trunk_sip.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/trunk_sip.lua deleted file mode 100644 index e2e73eefbe..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/trunk_sip.lua +++ /dev/null @@ -1,98 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/trunks.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/trunks.lua deleted file mode 100644 index 85527c297c..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/trunks.lua +++ /dev/null @@ -1,106 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/voicemail.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail.lua deleted file mode 100644 index 5d0de756b3..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail.lua +++ /dev/null @@ -1,59 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2009 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -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-asterisk/luasrc/model/cbi/asterisk/voicemail_settings.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail_settings.lua deleted file mode 100644 index cad2adb95f..0000000000 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail_settings.lua +++ /dev/null @@ -1,62 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2009 Jo-Philipp Wich <xm@subsignal.org> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -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 diff --git a/applications/luci-asterisk/luasrc/view/asterisk/cbi/cell.htm b/applications/luci-asterisk/luasrc/view/asterisk/cbi/cell.htm deleted file mode 100644 index b5d618ff95..0000000000 --- a/applications/luci-asterisk/luasrc/view/asterisk/cbi/cell.htm +++ /dev/null @@ -1,22 +0,0 @@ -<%# -LuCI - Lua Configuration Interface -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id: dvalue.htm 3367 2008-09-19 10:42:02Z Cyrus $ - --%> - -<%+cbi/valueheader%> -<% if self.href then %><a href="<%=self.href%>"><% end -%> - <%=self:cfgvalue(section)%> -<%- if self.href then %></a><%end%> -  -<input type="hidden" id="<%=cbid%>" value="<%=luci.util.pcdata(self:cfgvalue(section))%>" /> -<%+cbi/valuefooter%> diff --git a/applications/luci-asterisk/luasrc/view/asterisk/dialplans.htm b/applications/luci-asterisk/luasrc/view/asterisk/dialplans.htm deleted file mode 100644 index a46a8db179..0000000000 --- a/applications/luci-asterisk/luasrc/view/asterisk/dialplans.htm +++ /dev/null @@ -1,254 +0,0 @@ -<%# -LuCI - Lua Configuration Interface -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - --%> - -<%+header%> - -<% - local uci = luci.model.uci.cursor_state() - local ast = require "luci.asterisk" - - function digit_pattern(s,t) - return "<code style='padding: 2px; border:1px solid #CCCCCC; background-color: #FFFFFF'%s>%s</code>" - %{ t and " title='" .. t .. "'" or "", s } - end - - function rowstyle(i) - return "cbi-rowstyle-%i" %{ - ( i % 2 ) == 0 and 2 or 1 - } - end - - function format_matches(z) - local html = { } - - if type(z) ~= "table" then - z = { matches = { z } } - end - - if z.localprefix then - for _, m in ipairs(z.matches) do - html[#html+1] = - digit_pattern(z.localprefix, "local prefix") .. " " .. - digit_pattern(m) - end - end - - if z.intlmatches and #z.intlmatches > 0 then - for _, i in ipairs(z.intlmatches) do - for _, m in ipairs(z.matches) do - html[#html+1] = "%s %s" %{ - digit_pattern("(%s)" % i, "intl. prefix"), - digit_pattern(m) - } - end - end - else - for _, m in ipairs(z.matches) do - html[#html+1] = digit_pattern(m) - end - end - - return table.concat(html, "; ") - end -%> - - -<form method="post" action="<%=luci.dispatcher.build_url("admin", "asterisk", "dialplans")%>" enctype="multipart/form-data"> - <div> - <script type="text/javascript" src="/luci-static/resources/cbi.js"></script> - <input type="hidden" name="cbi.submit" value="1" /> - <input type="submit" value="Save" class="hidden" /> - </div> - -<div class="cbi-map" id="cbi-asterisk"> - <h2><a id="content" name="content">Outgoing Call Routing</a></h2> - <div class="cbi-map-descr"> - Here you can manage your dial plans which are used to route outgoing calls from your local extensions.<br /><br /> - Related tasks:<br /> - <a href="<%=luci.dispatcher.build_url('admin/asterisk/dialplans/zones')%>" class="cbi-title-ref">Manage dialzones</a> | - <a href="<%=luci.dispatcher.build_url('admin/asterisk/voicemail/mailboxes')%>" class="cbi-title-ref">Manage voicemail boxes</a> | - <a href="<%=luci.dispatcher.build_url('admin/asterisk/meetme/rooms')%>" class="cbi-title-ref">Manage meetme rooms</a> - </div> - <!-- tblsection --> - <fieldset class="cbi-section" id="cbi-asterisk-sip"> - <!--<legend>Dialplans</legend>--> - <div class="cbi-section-descr"></div> - - <% for i, plan in pairs(ast.dialplan.plans()) do %> - <div class="cbi-section-node"> - <table class="cbi-section-table"> - <tr class="cbi-section-table-titles"> - <th style="text-align: left; padding: 3px" class="cbi-section-table-cell"> - <big>Dialplan <em><%=plan.name%></em></big> - </th> - <td> - <a href="<%=luci.dispatcher.build_url('admin', 'asterisk', 'dialplans')%>?delplan=<%=plan.name%>"> - <img style="border:none" alt="Remove this dialplan" title="Remove this dialplan" src="/luci-static/resources/cbi/remove.gif" /> - </a> - </td> - </tr> - - <!-- dialzones --> - <% local zones_used = { }; local row = 0 %> - <% for i, zone in ipairs(plan.zones) do zones_used[zone.name] = true %> - <tr class="cbi-section-table-row <%=rowstyle(row)%>"> - <td style="text-align: left; padding: 3px" class="cbi-section-table-cell"> - <strong>└ Dialzone <em><%=zone.name%></em></strong> (<%=zone.description%>) - <p style="padding-left: 1em; margin-bottom:0"> - Lines: - <%=ast.tools.hyperlinks( - zone.trunks, function(v) - return luci.dispatcher.build_url("admin", "asterisk", "trunks", "%s") % v:lower() - end - )%><br /> - Matches: - <%=format_matches(zone)%> - </p> - </td> - <td style="width:5%" class="cbi-value-field"> - <a href="<%=luci.dispatcher.build_url('admin/asterisk/dialplans/out', zone.name)%>"> - <img style="border:none" alt="Edit dialzone" title="Edit dialzone" src="/luci-static/resources/cbi/edit.gif" /> - </a> - <a href="<%=luci.dispatcher.build_url('admin/asterisk/dialplans')%>?delzone.<%=plan.name%>=<%=zone.name%>"> - <img style="border:none" alt="Remove from this dialplan" title="Remove from this dialplan" src="/luci-static/resources/cbi/remove.gif" /> - </a> - </td> - </tr> - <% row = row + 1; end %> - <!-- /dialzones --> - - <!-- voicemail --> - <% local boxes_used = { } %> - <% for ext, box in luci.util.kspairs(plan.voicemailboxes) do boxes_used[box.id] = true %> - <tr class="cbi-section-table-row <%=rowstyle(row)%>"> - <td style="text-align: left; padding: 3px" class="cbi-section-table-cell"> - <strong>└ Voicemailbox <em><%=box.id%></em></strong> (<%=box.name%>) - <p style="padding-left: 1em; margin-bottom:0"> - Owner: <%=box.name%> | - eMail: <%=#box.email > 0 and box.email or 'n/a'%> | - Pager: <%=#box.page > 0 and box.page or 'n/a'%><br /> - Matches: <%=format_matches(ext)%> - </p> - </td> - <td style="width:5%" class="cbi-value-field"> - <a href="<%=luci.dispatcher.build_url('admin/asterisk/voicemail/mailboxes')%>"> - <img style="border:none" alt="Manage mailboxes ..." title="Manage mailboxes ..." src="/luci-static/resources/cbi/edit.gif" /> - </a> - <a href="<%=luci.dispatcher.build_url('admin/asterisk/dialplans')%>?delvbox.<%=plan.name%>=<%=ext%>"> - <img style="border:none" alt="Remove from this dialplan" title="Remove from this dialplan" src="/luci-static/resources/cbi/remove.gif" /> - </a> - </td> - </tr> - <% row = row + 1; end %> - <!-- /voicemail --> - - <!-- meetme --> - <% local rooms_used = { } %> - <% for ext, room in luci.util.kspairs(plan.meetmerooms) do rooms_used[room.room] = true %> - <tr class="cbi-section-table-row <%=rowstyle(row)%>"> - <td style="text-align: left; padding: 3px" class="cbi-section-table-cell"> - <strong>└ MeetMe Room <em><%=room.room%></em></strong> - <% if room.description and #room.description > 0 then %> (<%=room.description%>)<% end %> - <p style="padding-left: 1em; margin-bottom:0"> - Matches: <%=format_matches(ext)%> - </p> - </td> - <td style="width:5%" class="cbi-value-field"> - <a href="<%=luci.dispatcher.build_url('admin/asterisk/meetme/rooms')%>"> - <img style="border:none" alt="Manage conferences ..." title="Manage conferences ..." src="/luci-static/resources/cbi/edit.gif" /> - </a> - <a href="<%=luci.dispatcher.build_url('admin/asterisk/dialplans')%>?delmeetme.<%=plan.name%>=<%=ext%>"> - <img style="border:none" alt="Remove from this dialplan" title="Remove from this dialplan" src="/luci-static/resources/cbi/remove.gif" /> - </a> - </td> - </tr> - <% row = row + 1; end %> - <!-- /meetme --> - - <tr class="cbi-section-table-row"> - <td style="text-align: left; padding: 3px" class="cbi-section-table-cell" colspan="2"> - <hr style="margin-bottom:0.5em; border-width:0 0 1px 0" /> - - Add Dialzone:<br /> - <select style="width:30%" name="addzone.<%=plan.name%>"> - <option value="">-- please select --</option> - <% for _, zone in luci.util.kspairs(ast.dialzone.zones()) do %> - <% if not zones_used[zone.name] then %> - <option value="<%=zone.name%>"><%=zone.name%> (<%=zone.description%>)</option> - <% end %> - <% end %> - </select> - <br /><br /> - - Add Voicemailbox:<br /> - <select style="width:20%" name="addvbox.<%=plan.name%>" onchange="this.form['addvboxext.<%=plan.name%>'].value=this.options[this.selectedIndex].value.split('@')[0]"> - <option value="">-- please select --</option> - <% for ext, box in luci.util.kspairs(ast.voicemail.boxes()) do %> - <% if not boxes_used[box.id] then %> - <option value="<%=box.id%>"><%=box.id%> (<%=box.name%>)</option> - <% end %> - <% end %> - </select> - as extension - <input type="text" style="width:5%" name="addvboxext.<%=plan.name%>" /> - <br /><br /> - - Add MeetMe Conference:<br /> - <select style="width:20%" name="addmeetme.<%=plan.name%>" onchange="this.form['addmeetmeext.<%=plan.name%>'].value=this.options[this.selectedIndex].value"> - <option value="">-- please select --</option> - <% for ext, room in luci.util.kspairs(ast.meetme.rooms()) do %> - <%# if not rooms_used[room.room] then %> - <option value="<%=room.room%>"> - <%=room.room%> - <% if room.description and #room.description > 0 then %>(<%=room.description%>)<% end %> - </option> - <%# end %> - <% end %> - </select> - as extension - <input type="text" style="width:5%" name="addmeetmeext.<%=plan.name%>" /> - <br /><br /> - - <input type="submit" class="cbi-button cbi-button-add" value="Add item »" title="Add item ..."/> - </td> - </tr> - - </table> - - <div class="cbi-section-create cbi-tblsection-create"></div> - </div> - <br /> - <% end %> - - <div class="cbi-section-node"> - <div class="cbi-section-create cbi-tblsection-create" style="padding: 3px"> - <h3>Create a new dialplan</h3> - The name is required and must be unique. It may only contain the characters A-Z, a-z, 0-9 and _ .<br /> - - <%- if create_error then %> - <br /><span style="color:red">Invalid name given!</span><br /> - <% end -%> - - <br /> - <input type="text" class="cbi-section-create-name" name="addplan" style="width:200px" /> - <input type="submit" class="cbi-button cbi-button-add" value="Add dialplan" title="Add dialplan"/> - </div> - </div> - - </fieldset> -</div> -</form> -<div class="clear"></div> -<%+footer%> diff --git a/applications/luci-asterisk/luasrc/view/asterisk/dialzones.htm b/applications/luci-asterisk/luasrc/view/asterisk/dialzones.htm deleted file mode 100644 index f93496df8b..0000000000 --- a/applications/luci-asterisk/luasrc/view/asterisk/dialzones.htm +++ /dev/null @@ -1,174 +0,0 @@ -<%# -LuCI - Lua Configuration Interface -Copyright 2008 Steven Barth <steven@midlink.org> -Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ - --%> - -<%+header%> - -<% - local uci = luci.model.uci.cursor_state() - local ast = require("luci.asterisk") - - function digit_pattern(s) - return "<code style='padding: 2px; border:1px solid #CCCCCC; background-color: #FFFFFF'>%s</code>" % s - end - - function rowstyle(i) - return "cbi-rowstyle-%i" %{ - ( i % 2 ) == 0 and 2 or 1 - } - end - - local function find_trunks() - 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 - -%> - - -<form method="post" action="<%=luci.dispatcher.build_url("admin", "asterisk", "dialplans", "zones")%>" enctype="multipart/form-data"> - <div> - <script type="text/javascript" src="/luci-static/resources/cbi.js"></script> - <input type="hidden" name="cbi.submit" value="1" /> - <input type="submit" value="Save" class="hidden" /> - </div> - -<div class="cbi-map" id="cbi-asterisk"> - <h2><a id="content" name="content">Dial Zone Management</a></h2> - <div class="cbi-map-descr"> - <a href="<%=luci.dispatcher.build_url("admin/asterisk/dialplans")%>" class="cbi-title-ref">Back to dialplan overview</a><br /><br /> - Here you can manage your dial zones. The zones are used to route outgoing calls to the destination. - Each zone groups multiple trunks and number matches to represent a logical destination. Zones can - also be used to enforce certain dial restrictions on selected extensions. - </div> - - <!-- tblsection --> - <fieldset class="cbi-section" id="cbi-asterisk-sip"> - <div class="cbi-section-node"> - <table class="cbi-section-table"> - <tr class="cbi-section-table-titles"> - <th style="text-align: left; padding: 3px" class="cbi-section-table-cell" colspan="6"> - <h3>Dialzone Overview</h3> - </th> - </tr> - - <tr class="cbi-section-table-descr"> - <th style="width: 5%; text-align:right" class="cbi-section-table-cell">Name</th> - <th style="width: 5%; text-align:right" class="cbi-section-table-cell">Prepend</th> - <th style="width: 20%; text-align:left" class="cbi-section-table-cell">- Match</th> - <th style="text-align:left" class="cbi-section-table-cell">Trunk</th> - <th style="width: 35%; text-align:left" class="cbi-section-table-cell">Description</th> - <th style="width: 4%; text-align:left" class="cbi-section-table-cell"></th> - </tr> - - <% for i, rule in pairs(ast.dialzone.zones()) do %> - <tr class="cbi-section-table-row <%=rowstyle(i)%>"> - <td style="text-align:right" class="cbi-value-field"> - <%=rule.name%> - </td> - <td style="text-align:right" class="cbi-value-field"> - <% for _ in ipairs(rule.matches) do %> - <%=rule.addprefix and digit_pattern(rule.addprefix)%> <br /> - <% end %> - </td> - <td style="text-align:left" class="cbi-value-field"> - <% for _, m in ipairs(rule.matches) do %> - <%=rule.localprefix and "%s " % digit_pattern(rule.localprefix)%> - <%=digit_pattern(m)%><br /> - <% end %> - </td> - <td style="text-align:left" class="cbi-value-field"> - <%=ast.tools.hyperlinks( - rule.trunks, function(v) - return luci.dispatcher.build_url("admin", "asterisk", "trunks", "%s") % v:lower() - end - )%> - </td> - <td style="text-align:left" class="cbi-value-field"> - <%=rule.description or rule.name%> - </td> - <td style="text-align:left" class="cbi-value-field"> - <a href="<%=luci.dispatcher.build_url('admin', 'asterisk', 'dialplans', 'out', rule.name)%>"> - <img style="border:none" alt="Edit entry" title="Edit entry" src="/luci-static/resources/cbi/edit.gif" /> - </a> - <a href="<%=luci.dispatcher.build_url('admin', 'asterisk', 'dialplans', 'zones')%>?delzone=<%=rule.name%>"> - <img style="border:none" alt="Delete entry" title="Delete entry" src="/luci-static/resources/cbi/remove.gif" /> - </a> - </td> - </tr> - <% end %> - </table> - <div class="cbi-section-create cbi-tblsection-create"></div> - </div> - <br /> - - <div class="cbi-section-node"> - <div class="cbi-section-create cbi-tblsection-create" style="padding: 3px"> - <h3>Create a new dialzone</h3> - The name is required and must be unique. It may only contain the characters A-Z, a-z, 0-9 and _ .<br /> - You can specifiy multiple number matches by separating them with spaces.<br /> - - <%- if create_error then %> - <br /><span style="color:red">Invalid name given!</span><br /> - <% end -%> - - <table> - <tr> - <td style="padding:3px"> - <label for="create1">1) Name</label><br /> - <input type="text" class="cbi-section-create-name" id="create1" name="newzone_name" style="width:200px" /> - <br /><br /> - - <label for="create2">2) Number Match</label><br /> - <input type="text" class="cbi-section-create-name" id="create2" name="newzone_match" style="width:200px" /> - </td> - <td style="padding:3px"> - <label for="create3">3) Trunks</label><br /> - <select class="cbi-input-select" multiple="multiple" id="create3" name="newzone_uses" size="4" style="width:200px"> - <% for i, t in ipairs(find_trunks()) do %> - <option value="<%=t[1]%>"><%=t[2]%></option> - <% end %> - </select> - </td> - </tr> - </table> - <br /> - - <input type="submit" class="cbi-button cbi-button-add" name="newzone" value="Add entry" title="Add entry"/> - </div> - </div> - </fieldset> -</div> -</form> -<div class="clear"></div> -<%+footer%> |