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/model/cbi | |
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/model/cbi')
26 files changed, 0 insertions, 2552 deletions
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 4e4dce06b..000000000 --- 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 0102c1b93..000000000 --- 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 081744598..000000000 --- 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 0a0a2d512..000000000 --- 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 ee1960d1b..000000000 --- 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 835cbdcfa..000000000 --- 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 3c8d95840..000000000 --- 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 da3989b2d..000000000 --- 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 7d80641f3..000000000 --- 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 8b22b5cb2..000000000 --- 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 35c5d4760..000000000 --- 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 5ef6bddd4..000000000 --- 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 efb84a01f..000000000 --- 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 af0259549..000000000 --- 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 7580f22ec..000000000 --- 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 3115e10d6..000000000 --- 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 3a993da45..000000000 --- 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 4867911c5..000000000 --- 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 b02a8f612..000000000 --- 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 511d7a71a..000000000 --- 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 49d3a0776..000000000 --- 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 7c8f03f00..000000000 --- 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 e2e73eefb..000000000 --- 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 85527c297..000000000 --- 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 5d0de756b..000000000 --- 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 cad2adb95..000000000 --- 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 |