* Add. Handler for SUBSCRIBE method for call flow application.
Usage:
1. Run form fs_cli `luarun call_flow_subscribe`
2. Create new call flow extension and set feature code to `flow+<EXTENSION>`(e.g. `flow+401`).
3. Set on the phone BLF key to `flow+401`
This code based on `mod_valet_parking`.
* Add. prevent running 2 copy of script.
Remove some unused vars and simplify implementation.
* Fix. Use correct protocol for send event.
* Fix. Do escape SQL arguments
* Fix. escape `+` sign in call flow extension.
To configure use `database.backend` option
It can be a string value like `database.backend = 'native'`.
So it will always use same backend.
Or it can be a table value like
```Lua
database.backend = {
main = 'native';
base64 = '';
}
```
Role `database.backend.main` is predefined and it equal to `native` if not set.
If there no role when Database class creates or role unknown role `main` is used
```Lua
dbh = Database.new('system') -- uses role `main`
dbh = Database.new('system', 'main') -- same as previews
dbh = Database.new('system', 'base64') -- uses role `base64`
dbh = Database.new('system', 'test') -- uses role `main`
```
```Lua
local Database = require 'resources.functions.database'
-- Default backend configured via xml_handler.db_backend = 'native'
dbh = Database.new("system")
-- To use other backends you can use
dbh = Database.backend.luasql("system")
```
Change. `intercept.lua` and `intercept_group.lua` merge in one `intercept.lua` file.
Call `intercept.lua` without arguments behave like `intercept_group.lua`.
```Lua
local Database = require "resources.functions.database"
local dbh = Database.new('system')
--get the domain_uuid
if (domain_uuid == nil) and (domain_name ~= nil) then
local sql = "SELECT domain_uuid FROM v_domains "
sql = sql .. "WHERE domain_name='" .. domain_name .. "';"
domain_uuid = dbh:first_value(sql)
end
local dbh_switch = Database.new('switch') -- check also SQLite file.
local row = dbh_switch:first_row(sql)
if row then
...
end
```