From dd65620aa2737480f17e17b6e4863e0353f3b217 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Wed, 21 Dec 2011 13:59:19 +0000 Subject: Mark message as read after playing, downloading, or callback --- vmail-model.lua | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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" -- cgit v1.2.3