diff --git a/app/switch/resources/scripts/app/xml_handler/resources/scripts/directory/directory.lua b/app/switch/resources/scripts/app/xml_handler/resources/scripts/directory/directory.lua index 9a91b7d81c..921858748f 100644 --- a/app/switch/resources/scripts/app/xml_handler/resources/scripts/directory/directory.lua +++ b/app/switch/resources/scripts/app/xml_handler/resources/scripts/directory/directory.lua @@ -284,13 +284,12 @@ --get the extension from the database if (continue) then - local sql = "SELECT e.* FROM v_extensions as e, v_domains as d " + local sql = "SELECT e.*, random() FROM v_extensions as e, v_domains as d " .. "WHERE e.domain_uuid = :domain_uuid " .. "AND d.domain_uuid = :domain_uuid " .. "AND d.domain_enabled = 'true' " .. "AND (e.extension = :user or e.number_alias = :user) " - .. "AND e.enabled = 'true' " - .. "AND (e.extension_type = 'default' or extension_type is null) "; + .. "AND e.enabled = 'true' "; local params = {domain_uuid=domain_uuid, user=user}; if (debug["sql"]) then freeswitch.consoleLog("notice", "[xml_handler] SQL: " .. sql .. "; params:" .. json.encode(params) .. "\n"); @@ -370,6 +369,11 @@ forward_user_not_registered_destination = row.forward_user_not_registered_destination; do_not_disturb = row.do_not_disturb; + --if the extension is virtual set register to false + if (row.extension_type == 'virtual') then + auth_acl = 'virtual.' .. row.random; + end + -- get the follow me information if (row.follow_me_uuid ~= nil and string.len(row.follow_me_uuid) > 0) then follow_me_uuid = row.follow_me_uuid; @@ -531,7 +535,7 @@ xml:append([[ ]]); end if (string.len(auth_acl) > 0) then - xml:append([[ ]]); + xml:append([[ ]]); end xml:append([[ ]]); xml:append([[ ]]); @@ -539,6 +543,7 @@ xml:append([[ ]]); xml:append([[ ]]); xml:append([[ ]]); + for key,row in pairs(extension_settings) do if (row.extension_setting_type == 'param') then xml:append([[ ]]);