Use regex with is_local.

This commit is contained in:
markjcrane 2016-03-24 18:43:51 -06:00
parent b940749eb5
commit e1b6087e04
1 changed files with 8 additions and 4 deletions

View File

@ -45,7 +45,11 @@
if (cache == "-ERR NOT FOUND") then if (cache == "-ERR NOT FOUND") then
sql = "SELECT destination_number, destination_context " sql = "SELECT destination_number, destination_context "
sql = sql .. "FROM v_destinations " sql = sql .. "FROM v_destinations "
sql = sql .. "WHERE destination_number = '"..destination_number.."' " if (database["type"] == "pgsql") then
sql = sql .. "WHERE destination_number_regex ~ '"..destination_number.."' "
else
sql = sql .. "WHERE destination_number_regex REGEXP '"..destination_number.."' "
end
sql = sql .. "AND destination_type = 'inbound' " sql = sql .. "AND destination_type = 'inbound' "
sql = sql .. "AND destination_enabled = 'true' " sql = sql .. "AND destination_enabled = 'true' "
--freeswitch.consoleLog("notice", "SQL:" .. sql .. "\n"); --freeswitch.consoleLog("notice", "SQL:" .. sql .. "\n");
@ -69,14 +73,14 @@
result = trim(api:execute("memcache", "set app:dialplan:outbound:is_local:" .. destination_number .. "@" .. domain_name .. " 'destination_number=" .. row.destination_number .. "&destination_context=" .. destination_context .. "' "..expire["is_local"])); result = trim(api:execute("memcache", "set app:dialplan:outbound:is_local:" .. destination_number .. "@" .. domain_name .. " 'destination_number=" .. row.destination_number .. "&destination_context=" .. destination_context .. "' "..expire["is_local"]));
else else
result = trim(api:execute("memcache", "set app:dialplan:outbound:is_local:" .. destination_number .. "@" .. domain_name .. " 'destination_number=" .. row.destination_number .. "&destination_context=" .. destination_context .. "' "..expire["is_local"])); result = trim(api:execute("memcache", "set app:dialplan:outbound:is_local:" .. destination_number .. "@" .. domain_name .. " 'destination_number=" .. row.destination_number .. "&destination_context=" .. destination_context .. "' "..expire["is_local"]));
result = trim(api:execute("memcache", "set app:dialplan:outbound:is_local:" .. row.destination_number .. "@" .. domain_name .. " 'destination_number=" .. row.destination_number .. "&destination_context=" .. destination_context .. "' "..expire["is_local"])); result = trim(api:execute("memcache", "set app:dialplan:outbound:is_local:" .. destination_number .. "@" .. domain_name .. " 'destination_number=" .. row.destination_number .. "&destination_context=" .. destination_context .. "' "..expire["is_local"]));
end end
--log the result --log the result
freeswitch.consoleLog("notice", "[app:dialplan:outbound:is_local] " .. destination_number .. " XML " .. destination_context .. " source: database\n"); freeswitch.consoleLog("notice", "[app:dialplan:outbound:is_local] " .. destination_number .. " XML " .. destination_context .. " source: database\n");
--transfer the call --transfer the call
session:transfer(row.destination_number, "XML", row.destination_context); session:transfer(destination_number, "XML", row.destination_context);
end)); end));
else else
--add the function --add the function
@ -111,4 +115,4 @@
--transfer the call --transfer the call
session:transfer(var["destination_number"], "XML", var["destination_context"]); session:transfer(var["destination_number"], "XML", var["destination_context"]);
end end