From 6f8bb769cc8396c51a9e3e348e02eab833f31d4c Mon Sep 17 00:00:00 2001 From: Mark Crane Date: Thu, 7 Nov 2013 23:49:09 +0000 Subject: [PATCH] Add new and old message count to the mwi event to the dev branch. --- .../install/scripts/app/voicemail/index.lua | 23 ++++++++++++++++++ .../app/voicemail/resources/scripts/mwi.lua | 24 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/resources/install/scripts/app/voicemail/index.lua b/resources/install/scripts/app/voicemail/index.lua index c200b67ba7..56293a54a9 100644 --- a/resources/install/scripts/app/voicemail/index.lua +++ b/resources/install/scripts/app/voicemail/index.lua @@ -264,12 +264,35 @@ end dbh:query(sql); end + + --get saved and new message counts + sql = [[SELECT count(*) as new_messages FROM v_voicemail_messages + WHERE domain_uuid = ']] .. domain_uuid ..[[' + AND voicemail_uuid = ']] .. voicemail_uuid ..[[' + AND (message_status is null or message_status = '') ]]; + if (debug["sql"]) then + freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n"); + end + status = dbh:query(sql, function(row) + new_messages = row["new_messages"]; + end); + sql = [[SELECT count(*) as saved_messages FROM v_voicemail_messages + WHERE domain_uuid = ']] .. domain_uuid ..[[' + AND voicemail_uuid = ']] .. voicemail_uuid ..[[' + AND message_status = 'saved' ]]; + if (debug["sql"]) then + freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n"); + end + status = dbh:query(sql, function(row) + saved_messages = row["saved_messages"]; + end); --set the message waiting event if (message_length > 2) then local event = freeswitch.Event("message_waiting"); event:addHeader("MWI-Messages-Waiting", "yes"); event:addHeader("MWI-Message-Account", "sip:"..voicemail_id.."@"..domain_name); + event:addHeader("MWI-Voice-Message", new_messages.."/"..saved_messages.." (0/0)"); event:fire(); end diff --git a/resources/install/scripts/app/voicemail/resources/scripts/mwi.lua b/resources/install/scripts/app/voicemail/resources/scripts/mwi.lua index 78068110bf..11ed3ecbe6 100644 --- a/resources/install/scripts/app/voicemail/resources/scripts/mwi.lua +++ b/resources/install/scripts/app/voicemail/resources/scripts/mwi.lua @@ -77,6 +77,29 @@ freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n"); end status = dbh:query(sql, function(row) + + --get saved and new message counts + sql = [[SELECT count(*) as new_messages FROM v_voicemail_messages + WHERE domain_uuid = ']] .. row["domain_uuid"] ..[[' + AND voicemail_uuid = ']] .. row["voicemail_uuid"] ..[[' + AND (message_status is null or message_status = '') ]]; + if (debug["sql"]) then + freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n"); + end + status = dbh:query(sql, function(r) + new_messages = r["new_messages"]; + end); + sql = [[SELECT count(*) as saved_messages FROM v_voicemail_messages + WHERE domain_uuid = ']] .. row["domain_uuid"] ..[[' + AND voicemail_uuid = ']] .. row["voicemail_uuid"] ..[[' + AND message_status = 'saved' ]]; + if (debug["sql"]) then + freeswitch.consoleLog("notice", "[voicemail] SQL: " .. sql .. "\n"); + end + status = dbh:query(sql, function(r) + saved_messages = r["saved_messages"]; + end); + --send the message waiting event local event = freeswitch.Event("message_waiting"); if (row["message_count"] == "0") then @@ -85,6 +108,7 @@ event:addHeader("MWI-Messages-Waiting", "yes"); end event:addHeader("MWI-Message-Account", "sip:"..row["voicemail_id"].."@"..row["domain_name"]); + event:addHeader("MWI-Voice-Message", new_messages.."/"..saved_messages.." (0/0)"); event:fire(); --log to console if (debug["info"]) then