applications/luci-asterisk: add meetme support, data integrity improvements
[project/luci.git] / applications / luci-asterisk / luasrc / model / cbi / asterisk / voicemail.lua
index 1c92d0d..5d0de75 100644 (file)
@@ -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