Adjust the domain_name, and domain_uuid. Then add the dialplan_uuid to the order by to prevent duplicate dialplan names from creating invalid xml.

This commit is contained in:
Mark Crane 2012-12-16 00:53:12 +00:00
parent c6fb54c508
commit 219fbced48
1 changed files with 24 additions and 14 deletions

View File

@ -74,7 +74,11 @@
end
--get the params and set them as variables
local domain_uuid = params:getHeader("variable_domain_uuid");
local domain_name = params:getHeader("domain");
if (domain_name == nil) then
local domain_name = params:getHeader("variable_domain_name");
end
local purpose = params:getHeader("purpose");
local profile = params:getHeader("profile");
local key = params:getHeader("key");
@ -83,23 +87,27 @@
local call_context = params:getHeader("Caller-Context");
local destination_number = params:getHeader("Caller-Destination-Number");
local caller_id_number = params:getHeader("Caller-Caller-ID-Number");
local hunt_context = params:getHeader("Hunt-Context");
if (hunt_context ~= nil) then
call_context = hunt_context;
end
--prepare the api object
api = freeswitch.API();
--get the domain_uuid
if (domain_name ~= nil) then
sql = "SELECT domain_uuid FROM v_domains ";
sql = sql .. "WHERE domain_name = '" .. domain_name .."' ";
if (debug["sql"]) then
freeswitch.consoleLog("notice", "[xml_handler] SQL: " .. sql .. "\n");
end
status = dbh:query(sql, function(rows)
domain_uuid = rows["domain_uuid"];
end);
end
if (domain_uuid == nil) then
domain_uuid = "00000000-0000-0000-0000-000000000000";
--get the domain_uuid
if (domain_name ~= nil) then
sql = "SELECT domain_uuid FROM v_domains ";
sql = sql .. "WHERE domain_name = '" .. domain_name .."' ";
if (debug["sql"]) then
freeswitch.consoleLog("notice", "[xml_handler] SQL: " .. sql .. "\n");
end
status = dbh:query(sql, function(rows)
domain_uuid = rows["domain_uuid"];
end);
end
end
--handle the configuration
@ -602,9 +610,7 @@
table.insert(xml, [[ </params>]]);
table.insert(xml, [[ <variables>]]);
table.insert(xml, [[ <variable name="domain_uuid" value="]] .. domain_uuid .. [["/>]]);
if (user_context ~= "default" and user_context ~= "public" and user_context ~= "features") then
table.insert(xml, [[ <variable name="domain_name" value="]] .. user_context .. [["/>]]);
end
table.insert(xml, [[ <variable name="domain_name" value="]] .. domain_name .. [["/>]]);
table.insert(xml, [[ <variable name="caller_id_name" value="]] .. sip_from_user .. [["/>]]);
table.insert(xml, [[ <variable name="caller_id_number" value="]] .. sip_from_user .. [["/>]]);
if (string.len(call_group) > 0) then
@ -744,9 +750,13 @@
sql = sql .. "where d.dialplan_context = '" .. call_context .. "' ";
sql = sql .. "and d.dialplan_enabled = 'true' ";
sql = sql .. "and d.dialplan_uuid = s.dialplan_uuid ";
if (call_context ~= "public") then
sql = sql .. "and d.domain_uuid = '" .. domain_uuid .. "' ";
end
sql = sql .. "order by ";
sql = sql .. "d.dialplan_order asc, ";
sql = sql .. "d.dialplan_name asc, ";
sql = sql .. "d.dialplan_uuid asc, ";
sql = sql .. "s.dialplan_detail_group asc, ";
sql = sql .. "CASE s.dialplan_detail_tag ";
sql = sql .. "WHEN 'condition' THEN 1 ";