diff options
Diffstat (limited to 'applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail.lua')
-rw-r--r-- | applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail.lua | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail.lua b/applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail.lua index 1c92d0dbf..5d0de756b 100644 --- a/applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail.lua +++ b/applications/luci-asterisk/luasrc/model/cbi/asterisk/voicemail.lua @@ -12,6 +12,8 @@ You may obtain a copy of the License at $Id$ ]]-- +local ast = require "luci.asterisk" + cbimap = Map("asterisk", "Voicemail - Mailboxes") voicemail = cbimap:section(TypedSection, "voicemail", "Voicemail Boxes") @@ -22,7 +24,23 @@ voicemail.template = "cbi/tblsection" context = voicemail:option(ListValue, "context", "Context") context:value("default") -voicemail:option(Value, "number", "Mailbox Number", "Unique mailbox identifier") +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") @@ -33,5 +51,9 @@ 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 |