Commit Graph

73 Commits

Author SHA1 Message Date
Alexey Melnichuk 93e50ff1df Add. `role` to be able select database backend in constructor.
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`
```
2016-03-25 10:04:48 +03:00
mafoo 0eb7d5ddac WhitespaceClean-resources/install/scripts
whitespace pass over files
for reference regex that was used s/[ \t]+(\r?\n)/\1/
2016-03-11 13:21:52 +00:00
Alexey Melnichuk f2c43cb441 Fix. FreeSWITCH also breaks loop if return string value which contain number.
```Lua
dbh:query(sql, function()
  return "1" -- breaks loop
end)
2016-02-26 14:17:28 +03:00
Alexey Melnichuk bd4fa2a537 Fix. LuaSQL db backend breaks loop only on positive numbers. 2016-02-26 13:57:32 +03:00
Alexey Melnichuk b797775720 Fix. ODBC db backend should breaks loop only when callback returns number ~= 0
```Lua
dbh:query(sql, function(row)
  -- return 0     -- should not break loop
  -- return true  -- should not break loop
  return 1 -- should break loop
end)
```
2016-02-26 13:52:27 +03:00
Alexey Melnichuk 466f85a0be Move scripts to separate dirs. 2016-02-24 14:44:50 +03:00
Alexey Melnichuk 4735d9f41c Fix. `unpack` moved to `table` in Lua 5.2 2016-02-20 15:22:28 +03:00
Alexey Melnichuk 6035d4033c Fix. `connected` method on LuaSQL backend. 2016-02-20 15:20:38 +03:00
Alexey Melnichuk 80746dbe3b Add. Support multiple database backends.
```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")
```
2016-02-19 17:03:45 +03:00
markjcrane e18a556643 Prevent nil from crashing the lua script. 2016-02-10 13:49:31 -07:00
FusionPBX 254ecafad3 Merge pull request #1420 from moteus/fix_partial_dialplan
Fix. Do not build context if there error.
2016-02-03 21:32:15 -07:00
Alexey Melnichuk 05188ffd24 Fix. cache.support always returns `false` 2016-02-02 19:54:23 +03:00
Alexey Melnichuk 69be506311 Add. debug message to log. 2016-02-02 19:32:27 +03:00
markjcrane 1a0301f6f7 Call center used with xml handler does not have access to the session. Remove session and replace it with api global_getvar as session is not always available. 2016-02-01 11:16:23 -07:00
markjcrane 28b7905c76 LUA function format_ringback the session:getVariable must have quotes around the 'hold_music' string. Next check to see if the ringback is nil or an empty string first before trying to use 'match'. 2016-01-31 10:10:08 -07:00
mafoo b655a064fd Converted uses of ringback to common function 2016-01-28 15:51:50 +00:00
markjcrane 724afd7c17 FusionPBX source coding standard uses tabs instead of spaces for indentation. 2016-01-04 13:04:51 -07:00
Alexey Melnichuk 7a45e14c8c Add. mail templates for fax server responses. 2015-12-09 12:43:40 +03:00
Alexey Melnichuk 5c8aa45d44 Fix. send_mail without file. 2015-12-04 16:18:53 +03:00
FusionPBX 8bb6d70e64 Merge pull request #1273 from moteus/fax_queue
Add. `Tasks.send_mail_task` function to send task reply.
2015-12-01 11:01:32 -07:00
Alexey Melnichuk efc62b064b Remove unused code. 2015-12-01 16:24:53 +03:00
Alexey Melnichuk 20a84ee9b5 Fix. Remove global variable. 2015-12-01 14:35:17 +03:00
Alexey Melnichuk fedd5ba9fc Add. Text class to manage translate texts. 2015-11-30 10:22:55 +03:00
Alexey Melnichuk 83022b60b2 Fix. json encode x-headers 2015-11-27 16:29:52 +03:00
Alexey Melnichuk 406e95ab29 Add. `send_mail` wrapper function to freeswitch.email and v_mailto.php.
Fix. Send voicemail when set unknown language/dialect.
2015-11-27 15:47:14 +03:00
Alexey Melnichuk ac44787e36 Fix. problem when same session can release task multiple times.
It can be when originate has group dial-string. So it call `api_hangup_hook`
for each channel.
Now we release task in `retry.lua` only if originate success and this is same channel
which execute `exec.lua`.
If originate fail we release task `next.lua`
2015-11-26 17:23:33 +03:00
Alexey Melnichuk 6d1e73ca13 Fix. Add `split` function (required by lazy_settings). 2015-11-24 14:26:21 +03:00
Alexey Melnichuk e769a0eafe Add. Lua part of fax_queue.
To poll active task you can run `luarun fax_queue_poll_once.lua`
2015-11-18 16:27:55 +03:00
markjcrane 0215800778 Change the Database:query to make the fn optional which will make it more backwards compatible with current code. This fixes an issue with recent movement to the database class in call_forward.lua. 2015-11-10 17:04:42 -07:00
FusionPBX c5cb52707f Merge pull request #1174 from moteus/intercept_load_balance
Add. Support intercept FIFO/CallCenter/Enterprise in load balancing mode
2015-11-10 11:55:18 -07:00
Alexey Melnichuk 85041fabea Merge branch 'master' into intercept_load_balance
# Conflicts:
#	resources/install/scripts/intercept_group.lua
2015-11-10 12:30:45 +03:00
Alexey Melnichuk dc0b71987b Update follow_me.lua
1. Use `cache` class so now it generates memcache events.
2. Do not use nested if (simplify code)
3. Use local variables.
4. Remove redundant checks.
2015-11-05 18:02:08 +03:00
markjcrane be5a8a31dd Add the functions to the path for channel_utils. 2015-11-03 16:44:51 -07:00
markjcrane 9e25d4d49a Add functions to the config require 'resources.functions.config' 2015-11-03 16:41:59 -07:00
FusionPBX fd397f53c1 Merge pull request #1179 from moteus/call_flow
Fix small bugs and clear code in call_flow.
2015-11-03 03:30:02 -07:00
FusionPBX d937f29813 Merge pull request #1186 from moteus/cache_emit_event
Add. `cache` class emit MEMCACHE events.
2015-11-03 03:19:36 -07:00
Alexey Melnichuk fb0aea39df Update comment. 2015-10-26 12:27:14 +03:00
Alexey Melnichuk e3a324a302 Use database class 2015-10-25 10:05:44 +03:00
Alexey Melnichuk 8b931e7751 Merge branch 'master' into show_channels 2015-10-25 10:00:05 +03:00
Alexey Melnichuk 54aca55836 Use local variables. 2015-10-25 09:57:20 +03:00
FusionPBX 494afd97ca Merge pull request #1152 from moteus/database_class
Add. database class
2015-10-24 19:50:43 -06:00
Alexey Melnichuk 64cb9fd01f Add. cache `switchname` 2015-10-20 20:29:57 +03:00
Alexey Melnichuk c7197c1ccf Fix. Use `api show channels like` did not work on fusion with BDR. 2015-10-20 15:15:42 +03:00
Alexey Melnichuk 94240c769b Add. `cache` class emit MEMCACHE events. 2015-10-06 16:01:24 +04:00
Alexey Melnichuk 679905e171 Fix small bags and clear code in call_flow.
Move code to turn on/off BLF to separate function.
```Lua
presence_in.turn_lamp( toggle == "false",
  call_flow_feature_code.."@"..domain_name,
  call_flow_uuid
);
```

Close temp file in call_flow_monitor because on Windows it prevent to remove it.
Connect/release to database inside call_flow_monitor loop.
Check successful connection to database in call_flow_monitor loop so monitor did not crash
if connection temporary lost.
2015-10-02 14:02:13 +04:00
Alexey Melnichuk e8aee11931 Add. Support intercept FIFO/CallCenter/Enterprise in load balancing mode.
Change. `intercept.lua` and `intercept_group.lua` merge in one `intercept.lua` file.
Call `intercept.lua` without arguments behave like `intercept_group.lua`.
2015-09-25 15:30:57 +04:00
Alexey Melnichuk 279f194b39 Fix. Intercept enterprise ring group.
With enterprise call each outbound channel has its own call_uuid.
But we have to use `intercept` for call_uuid of inbound channel.
2015-09-22 19:33:41 +04:00
Alexey Melnichuk 0c35f41e65 Fix. `cache.del` method.
Fix. cache.set returns boolean value.
Add. basic self_test
2015-09-15 18:02:46 +04:00
Alexey Melnichuk d146029f59 Fix. load `file_exists` function 2015-09-10 14:36:30 +04:00
Alexey Melnichuk 60b0f48228 Add. database class
```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
```
2015-09-10 14:29:13 +04:00