Merge pull request #5896 from konradSC/patch-91
MWI for Multi Registrations on Multi Profiles
This commit is contained in:
commit
c7076a9883
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
--define a function to send email
|
||||
--define a function to send mwi notify
|
||||
function mwi_notify(account, new_messages, saved_messages)
|
||||
|
||||
--includes
|
||||
|
|
@ -8,26 +8,48 @@
|
|||
|
||||
--create the api object
|
||||
api = freeswitch.API();
|
||||
local sofia_contact = trim(api:executeString("sofia_contact */"..account));
|
||||
array = explode("/", sofia_contact);
|
||||
sip_profile = array[2];
|
||||
|
||||
--debug info
|
||||
--freeswitch.consoleLog("NOTICE", "sofia_contact */"..account.."\n");
|
||||
--freeswitch.consoleLog("NOTICE", "sip_profile="..sip_profile.."\n");
|
||||
--freeswitch.consoleLog("NOTICE", "sofia_contact="..sofia_contact.."\n");
|
||||
local sofia_contacts = trim(api:executeString("sofia_contact */"..account));
|
||||
local sofia_contact_table = explode(",", sofia_contacts);
|
||||
|
||||
--set the variables
|
||||
new_messages = tonumber(new_messages) or 0
|
||||
saved_messages = tonumber(saved_messages) or 0
|
||||
local sip_profile_table = {};
|
||||
|
||||
--set the event and send it
|
||||
local event = freeswitch.Event("message_waiting")
|
||||
event:addHeader("MWI-Messages-Waiting", (new_messages == 0) and "no" or "yes")
|
||||
event:addHeader("MWI-Message-Account", "sip:" .. account)
|
||||
event:addHeader("MWI-Voice-Message", string.format("%d/%d (0/0)", new_messages, saved_messages))
|
||||
event:addHeader("sofia-profile", sip_profile)
|
||||
return event:fire()
|
||||
for key,value in pairs(sofia_contact_table) do
|
||||
f = explode("/", value);
|
||||
sip_profile = f[2];
|
||||
|
||||
|
||||
--check to see if a notify has already been sent to this profile
|
||||
new = "true";
|
||||
for profile_index, profile_table_value in pairs(sip_profile_table) do
|
||||
if profile_table_value == sip_profile then
|
||||
new = "false";
|
||||
end
|
||||
end
|
||||
|
||||
if new == "true" then
|
||||
--debug info
|
||||
--freeswitch.consoleLog("NOTICE", "sofia_contact */"..account.."\n");
|
||||
--freeswitch.consoleLog("NOTICE", "sip_profile="..sip_profile.."\n");
|
||||
--freeswitch.consoleLog("NOTICE", "sofia_contacts="..sofia_contacts.."\n");
|
||||
|
||||
--set the variables
|
||||
new_messages = tonumber(new_messages) or 0
|
||||
saved_messages = tonumber(saved_messages) or 0
|
||||
|
||||
--set the event and send it
|
||||
local event = freeswitch.Event("message_waiting")
|
||||
event:addHeader("MWI-Messages-Waiting", (new_messages == 0) and "no" or "yes")
|
||||
event:addHeader("MWI-Message-Account", "sip:" .. account)
|
||||
event:addHeader("MWI-Voice-Message", string.format("%d/%d (0/0)", new_messages, saved_messages))
|
||||
event:addHeader("sofia-profile", sip_profile)
|
||||
event:fire()
|
||||
|
||||
table.insert(sip_profile_table,sip_profile);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--return module value
|
||||
|
|
|
|||
Loading…
Reference in New Issue