summaryrefslogtreecommitdiffstats
path: root/vmail-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2011-12-21 13:59:19 +0000
committerTed Trask <ttrask01@yahoo.com>2011-12-21 13:59:19 +0000
commitdd65620aa2737480f17e17b6e4863e0353f3b217 (patch)
treea1f6fe8335ae882d04f65eb28d21854e17cb2b52 /vmail-model.lua
parent49805a968a2d2738f8c080ad68904fd44fcce23c (diff)
downloadacf-freeswitch-vmail-dd65620aa2737480f17e17b6e4863e0353f3b217.tar.bz2
acf-freeswitch-vmail-dd65620aa2737480f17e17b6e4863e0353f3b217.tar.xz
Mark message as read after playing, downloading, or callback
Diffstat (limited to 'vmail-model.lua')
-rw-r--r--vmail-model.lua16
1 files changed, 15 insertions, 1 deletions
diff --git a/vmail-model.lua b/vmail-model.lua
index a7c318e..45cce6d 100644
--- a/vmail-model.lua
+++ b/vmail-model.lua
@@ -97,6 +97,16 @@ local function voicemail_update(user, domain)
return result
end
+local function voicemail_read(user, domain, message)
+ local cmd = "echo -e 'auth "..escape_quotes(config.event_socket_password).."\n\n"
+ cmd = cmd.."api vm_read "..escape_quotes(user).."@"..escape_quotes(domain).." read "..escape_quotes(message)
+ cmd = cmd.."\n\nexit\n\n' | nc "..format.escapespecialcharacters(config.event_socket_ip).." "..format.escapespecialcharacters(config.event_socket_port).." 2>&1"
+ local f = io.popen( cmd )
+ local result = f:read("*a") or ""
+ f:close()
+ return result
+end
+
local function assert (v, m)
if not v then
m = m or "Assertion failed!"
@@ -401,7 +411,7 @@ get_message = function(message, username)
local retval = cfe({ type="raw", label="error", option="audio/x-wav" })
local res, err = pcall(function()
local connected = databaseconnect()
- local sql = "SELECT file_path FROM voicemail_msgs"
+ local sql = "SELECT username, file_path FROM voicemail_msgs"
sql = sql .. generatewhereclause(username, message)
local tmp = getselectresponse(sql)
if connected then databasedisconnect() end
@@ -410,6 +420,8 @@ get_message = function(message, username)
else
retval.label = posix.basename(tmp[1].file_path)
retval.value = fs.read_file(tmp[1].file_path)
+ -- Mark the message as read
+ voicemail_read(tmp[1].username, config.domain, message)
end
end)
if not res and err then
@@ -604,6 +616,8 @@ callback_message = function(message, extension, username)
local sql = "SELECT * FROM voicemail_msgs" .. generatewhereclause(username, message)
local mess = getselectresponse(sql)
if #mess == 1 then
+ -- Mark the message as read
+ voicemail_read(mess[1].username, config.domain, message)
-- Initiate the call to the extension
voicemail_callback(extension, mess[1].file_path, mess[1].username)
retval.value = "Initiated callback"