From: Jo-Philipp Wich Date: Thu, 23 Oct 2008 15:42:12 +0000 (+0000) Subject: * luci/app/asterisk: more work on cbi models X-Git-Tag: 0.9.0~1069 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=406400a198a073c54a02eaf3583f26cdab6691bc * luci/app/asterisk: more work on cbi models --- diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-dialplans.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-dialplans.lua index efecc575c..4e4dce06b 100644 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-dialplans.lua +++ b/applications/luci-asterisk/luasrc/model/cbi/asterisk-dialplans.lua @@ -19,9 +19,9 @@ dialplan = cbimap:section(TypedSection, "dialplan", "Section dialplan", "") dialplan.addremove = true dialplan.dynamic = true -include = dialplan:option(Value, "include", "", "") -include.rmempty = 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 @@ -73,24 +73,30 @@ 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(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 international numbers", "") +localprefix = dialzone:option(Value, "localprefix", "Prefix (0) to add/remove to/from intl. numbers", "") localprefix.rmempty = true -localzone = dialzone:option(Value, "localzone", "", "") -localzone.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(Value, "uses", "Connection to use", "") -uses.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 index a6b361e49..0102c1b93 100644 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-iax-connections.lua +++ b/applications/luci-asterisk/luasrc/model/cbi/asterisk-iax-connections.lua @@ -21,8 +21,10 @@ iax.addremove = true alwaysinternational = iax:option(Flag, "alwaysinternational", "Always Dial International", "") alwaysinternational.optional = true -context = iax:option(Value, "context", "", "") -context.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 diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-meetme.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-meetme.lua index 4025e8749..081744598 100644 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-meetme.lua +++ b/applications/luci-asterisk/luasrc/model/cbi/asterisk-meetme.lua @@ -15,21 +15,19 @@ $Id$ cbimap = Map("asterisk", "asterisk", "") -meetme = cbimap:section(TypedSection, "meetme", "Meetme Conference", "") +meetmegeneral = cbimap:section(TypedSection, "meetmegeneral", "Meetme Conference General Options", "") -adminpin = meetme:option(Value, "adminpin", "Admin PIN", "") -adminpin.rmempty = true +audiobuffers = meetmegeneral:option(Value, "audiobuffers", "Number of 20ms audio buffers to be used", "") -pin = meetme:option(Value, "pin", "Meeting PIN", "") -pin.rmempty = true +meetme = cbimap:section(TypedSection, "meetme", "Meetme Conference", "") +meetme.addremove = true -meetmegeneral = cbimap:section(TypedSection, "meetmegeneral", "Meetme Conference General Options", "") -meetmegeneral.anonymous = true -meetmegeneral.addremove = true +adminpin = meetme:option(Value, "adminpin", "Admin PIN", "") +adminpin.password = true -audiobuffers = meetmegeneral:option(Value, "audiobuffers", "Number of 20ms audio buffers to be used", "") -audiobuffers.rmempty = true +pin = meetme:option(Value, "pin", "Meeting PIN", "") +pin.password = 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 index e2d9df7ae..35c5d4760 100644 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua +++ b/applications/luci-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua @@ -34,78 +34,78 @@ parkcall.rmempty = true featurepark = cbimap:section(TypedSection, "featurepark", "Parking Feature", "") featurepark.anonymous = true -featurepark.addremove = true + +parkenabled = featurepark:option(Flag, "parkenabled", "Enable Parking", "") adsipark = featurepark:option(Flag, "adsipark", "ADSI Park", "") adsipark.rmempty = true -adsipark:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +adsipark:depends({ parkenabled = "1" }) atxfernoanswertimeout = featurepark:option(Value, "atxfernoanswertimeout", "Attended transfer timeout (sec)", "") atxfernoanswertimeout.rmempty = true -atxfernoanswertimeout:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +atxfernoanswertimeout:depends({ parkenabled = "1" }) automon = featurepark:option(Value, "automon", "One touch record key", "") automon.rmempty = true -automon:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +automon:depends({ parkenabled = "1" }) context = featurepark:option(Value, "context", "Name of call context for parking", "") context.rmempty = true -context:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +context:depends({ parkenabled = "1" }) courtesytone = featurepark:option(Value, "courtesytone", "Sound file to play to parked caller", "") courtesytone.rmempty = true -courtesytone:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +courtesytone:depends({ parkenabled = "1" }) featuredigittimeout = featurepark:option(Value, "featuredigittimeout", "Max time (ms) between digits for feature activation", "") featuredigittimeout.rmempty = true -featuredigittimeout:depends({ ["asterisk.featurepark.parkenabled"] = "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({ ["asterisk.featurepark.parkenabled"] = "true" }) +findslot:depends({ parkenabled = "1" }) -parkedmusicclass = featurepark:option(Value, "parkedmusicclass", "", "") -parkedmusicclass.rmempty = true +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({ ["asterisk.featurepark.parkenabled"] = "true" }) - -parkenabled = featurepark:option(Flag, "parkenabled", "Enable Parking", "") -parkenabled.rmempty = true +parkedplay:depends({ parkenabled = "1" }) parkext = featurepark:option(Value, "parkext", "Extension to dial to park", "") parkext.rmempty = true -parkext:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +parkext:depends({ parkenabled = "1" }) parkingtime = featurepark:option(Value, "parkingtime", "Parking time (secs)", "") parkingtime.rmempty = true -parkingtime:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +parkingtime:depends({ parkenabled = "1" }) parkpos = featurepark:option(Value, "parkpos", "Range of extensions for call parking", "") parkpos.rmempty = true -parkpos:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +parkpos:depends({ parkenabled = "1" }) pickupexten = featurepark:option(Value, "pickupexten", "Pickup extension", "") pickupexten.rmempty = true -pickupexten:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +pickupexten:depends({ parkenabled = "1" }) transferdigittimeout = featurepark:option(Value, "transferdigittimeout", "Seconds to wait bewteen digits when transferring", "") transferdigittimeout.rmempty = true -transferdigittimeout:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +transferdigittimeout:depends({ parkenabled = "1" }) xferfailsound = featurepark:option(Value, "xferfailsound", "sound when attended transfer is complete", "") xferfailsound.rmempty = true -xferfailsound:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +xferfailsound:depends({ parkenabled = "1" }) xfersound = featurepark:option(Value, "xfersound", "Sound when attended transfer fails", "") xfersound.rmempty = true -xfersound:depends({ ["asterisk.featurepark.parkenabled"] = "true" }) +xfersound:depends({ parkenabled = "1" }) 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 index 3ec1a7019..efb84a01f 100644 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-sip-connections.lua +++ b/applications/luci-asterisk/luasrc/model/cbi/asterisk-sip-connections.lua @@ -28,8 +28,10 @@ canreinvite:value("update", "Use UPDATE rather than INVITE for path redirection" canreinvite:value("no", "No") canreinvite.optional = true -context = sip:option(Value, "context", "", "") -context.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 diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk-voice.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk-voice.lua index 117a11d55..af0259549 100644 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk-voice.lua +++ b/applications/luci-asterisk/luasrc/model/cbi/asterisk-voice.lua @@ -16,14 +16,12 @@ $Id$ cbimap = Map("asterisk", "asterisk", "") voicegeneral = cbimap:section(TypedSection, "voicegeneral", "Voicemail general options", "") -voicegeneral.anonymous = true -voicegeneral.addremove = true serveremail = voicegeneral:option(Value, "serveremail", "From Email address of server", "") -serveremail.rmempty = true voicemail = cbimap:section(TypedSection, "voicemail", "Voice Mail boxes", "") +voicemail.addremove = true attach = voicemail:option(Flag, "attach", "Email contains attachment", "") attach.rmempty = true @@ -37,8 +35,8 @@ name.rmempty = true password = voicemail:option(Value, "password", "Password", "") password.rmempty = true -zone = voicemail:option(Value, "zone", "", "") -zone.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", "") diff --git a/applications/luci-asterisk/root/etc/config/asterisk b/applications/luci-asterisk/root/etc/config/asterisk index 8586a5562..b2fd9ad27 100644 --- a/applications/luci-asterisk/root/etc/config/asterisk +++ b/applications/luci-asterisk/root/etc/config/asterisk @@ -157,7 +157,7 @@ config 'dialplangeneral' option 'allowtransfer' 'no' config 'dialplan' 'internal' - option 'include' 'localcall,interstate,smartnumber,emergency,extensions' + option 'include' 'localcall interstate smartnumber emergency extensions' config 'dialplanvoice' option 'dialplan' 'internal' @@ -180,7 +180,7 @@ config 'dialplanmeetme' option 'room' '' config 'dialplan' 'localinternational' - option 'include' 'mobile,interstate' + option 'include' 'mobile interstate' config 'dialzone' 'interstate' option 'uses' 'SIP/providerphone' diff --git a/applications/luci-asterisk/root/lib/uci/schema/default/asterisk b/applications/luci-asterisk/root/lib/uci/schema/default/asterisk index 5e6dc9f35..85d9cb029 100644 --- a/applications/luci-asterisk/root/lib/uci/schema/default/asterisk +++ b/applications/luci-asterisk/root/lib/uci/schema/default/asterisk @@ -2660,7 +2660,7 @@ config variable option name 'realm' option title 'SIP realm' option section 'asterisk.sipgeneral' - option datatype 'domain' + option datatype 'host' config section @@ -3223,7 +3223,7 @@ config section option title 'Parking Feature' option package 'asterisk' option named false - option unique false + option unique true option dynamic false option required false @@ -3377,7 +3377,7 @@ config section option title 'Feature Key maps' option package 'asterisk' option named false - option unique false + option unique true option dynamic false option required false @@ -3443,7 +3443,7 @@ config section option title 'Meetme Conference General Options' option package 'asterisk' option named false - option unique false + option unique true option dynamic false option required false @@ -3459,7 +3459,7 @@ config section option title 'Meetme Conference' option package 'asterisk' option named true - option unique true + option unique false option dynamic false option required false @@ -3551,7 +3551,7 @@ config section option title 'Voicemail general options' option package 'asterisk' option named false - option unique false + option unique true option dynamic false option required false @@ -3567,7 +3567,7 @@ config section option title 'Voice Mail boxes' option package 'asterisk' option named true - option unique true + option unique false option dynamic false option required false