Commit Graph

891 Commits

Author SHA1 Message Date
pixel2920 e1feb2364d Add silence_stream to default voicemail message (#1761)
This corrects the issue in #1760, where the default voicemail message was not being played and instead skipped directly to recording (start recording tone).
2016-07-18 22:55:41 -06:00
FusionPBX 77712fcbf9 Update conference.conf.lua
Add conference controls to the xml handler.
2016-07-17 15:42:14 -06:00
FusionPBX da8349207a Update conference.conf.lua
Conference profile parameters are now working from the database.
2016-07-17 01:15:35 -06:00
FusionPBX 3bf7b917d4 Update play_greeting.lua
Voicemail greeting will not play after being transferred from IVR #1749. Replace session:streamFile( with session:execute("playback", fixes this problem.
2016-07-15 08:43:53 -06:00
Alexey Melnichuk d2ce44736a Fix. Lua can not generate non CUSTOM event with subclass. (#1756)
There 2 way.
First one generate `MEMCACHE` event without subclass
Second generate `CUSTOM` event with subclass e.g. `fusion::memcache`
2016-07-14 11:33:54 -06:00
Alexey Melnichuk 9076df2302 Add. Support `onInterval` method to EventConsumer class (#1747)
* Add. Support `onInterval` method to EventConsumer class

Usage
```Lua
-- execute action each 30 sec
events:onInterval(30*1000, function() end)

-- execute action once after 5 min
events:onIntervalOnce(5*60*1000, function() end)
```

* Fix. Remove timers

* Fix. Reset timer before callback

It allows stop timer inside callback.
Also it produce more accurate interval invocation
if callback take quite a long time.
E.g. Interval = 10 sec and callback took 5 sec then
if we reset timer after this callback then gap between
invocation will be 15 sec.

* Add. Timers now have TimeEvent class type.

Add. `reset` method to IntervalTimer class.

```Lua
events:onIntervalOnce(1000, function(self, timer)
  -- timer has type TimeEvent

  -- restart timer so it will be invoke again
  timer:restart()

  -- or reset new interval
  -- timer:reset(5000)
end)
```

* Fix. Typo in variable name
2016-07-13 09:43:51 -06:00
Alexey Melnichuk 44196ae739 Fix. Fusion set rate=48000 to all streams. (#1746) 2016-07-12 08:09:54 -06:00
Mafoo 904a52434a BugFix-Add PROJECT_PATH for lua (#1740)
added project_path for lua to use where it needs to build urls
2016-07-08 13:12:37 -06:00
Alexey Melnichuk cae644c8a1 Add. EventConsumer class. (#1741)
Rewrite MWI and CallFlow subscribe handlers based on EventConsumer class.
Also on my test VirtualBox/Debian system Lua function `os.clock` produce
very strange result(delta ~0.015 for 1 second) so I switch to `os.time`.
Now to to stop this background Lua scripts it possible send CUSTOM event
with subclass `fusion::XXX::shutdown`. Where XXX is `mwi` or `flow`.

Usage of EventConsumer class
```Lua
-- create new object with timeout one minute
local events = EventConsumer.new(60000)

-- bind to some FS event
events:bind("SHUTDOW", function(self, name, event) ... end)

-- bind to another FS event with subclass
events:bind("CUSTOM::fusion::mwi::shutdown", function(self, name, event) ... end)

-- handle timeout event
events:on("TIMEOUT", function(self, name) ... end)

--run event loop
events:run()
```
2016-07-08 13:10:43 -06:00
FusionPBX 39bc0cad29 Update local_stream.conf.lua
Set a default rate for chime list if one is not provided.
2016-07-06 16:27:22 -06:00
FusionPBX 0d73573770 Update page.lua
Update page.lua add support for rtp_secure_media=true.
2016-07-06 14:48:00 -06:00
Alexey Melnichuk 3d1f5b6866 Add. Support multiple events. (#1736)
Now subscriber stops and remove pid files when FS shutdown.
So if you use Status->Services you will see correct status.
2016-07-06 12:37:16 -06:00
Alexey Melnichuk 68d65bf835 Fix. `call_flow_monitor` use new field call_flow_alternate_label instead old `call_flow_anti_label` (#1730) 2016-07-04 09:32:22 -06:00
Alexey Melnichuk b7506b5b18 Fix. Send message count in each MWI notify. (#1728)
* move send event code to separate function
* move get message count to separate function
2016-07-01 10:08:55 -06:00
FusionPBX 849f8fd050 Update page.lua
Add leading zero support to page.lua.
2016-06-30 15:08:14 -06:00
FusionPBX 069ad5d580 Update local_stream.conf.lua
Add a more generic query to make this code compatible with MySQL/Mariadb.
2016-06-30 10:03:32 -06:00
Alexey Melnichuk 8a72e2afd8 Add. Event handler to support MWI. (#1720)
* Add. Event handler to support MWI.

* Fix. store cache only when get data from memcache

* Change. Use UUID as PID.
2016-06-30 09:55:37 -06:00
Alexey Melnichuk 65d9424078 Fix. `event_socket_mkdir` for Windows system. (#1724) 2016-06-30 08:11:52 -06:00
FusionPBX 2f9c1a7c9f Update local_stream.conf.lua
Changes to the conditions that build the name to make sure it builds it correctly.
2016-06-30 01:40:48 -06:00
FusionPBX b0c69d6703 Update local_stream.conf.lua
Use the name/rate for global music on hold or domain_name/name/rate for local. If configuring as a default leave the /rate off the end of the string.
2016-06-30 01:18:17 -06:00
FusionPBX bc670abb32 Update local_stream.conf.lua
Remove the default stream will handle it another way.
2016-06-29 17:19:21 -06:00
FusionPBX eb8b64dcd3 Update local_stream.conf.lua
Use UUID for the name of the stream. Add a default to handle systems using default.
2016-06-29 16:25:17 -06:00
FusionPBX bc46191440 Update local_stream.conf.lua
Check if row.music_on_hold_timer_name is empty.
2016-06-28 12:24:31 -06:00
Alexey Melnichuk 2d49b1b211 Change. remove CC configuration dependencies from mod_commands. (#1711) 2016-06-27 07:52:29 -06:00
Alexey Melnichuk f8c2904aaf Add. option to store setting in memcache. (#1707) 2016-06-26 11:43:32 -06:00
Alexey Melnichuk a4dfa0c04d Fix. Set default values for max length settings (#1706) 2016-06-26 11:42:33 -06:00
Alexey Melnichuk 7a9a4bc3da Fix. Load required libraries in voicemail. (#1705) 2016-06-26 09:03:21 -06:00
FusionPBX 8f26972c20 Update ivr.conf.lua
If the IVR Menu recordings are base64 don't update the path.
2016-06-24 18:40:14 -06:00
markjcrane 3e2dea7b70 Get the settings.recordings.storage_type for the ivr menu using xml handler. 2016-06-24 14:55:16 -06:00
Alexey Melnichuk 61d6f0be6c Add. Handler for SUBSCRIBE method for call flow application. (#1701)
* 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.
2016-06-24 10:32:19 -06:00
Mafoo 628c825201 Enhance-make voicemail length configurable (#1702)
allow the voicemail max_lengths to be configured from domain/default
settings
2016-06-24 10:28:47 -06:00
FusionPBX 653a5e007d Update local_stream.conf.lua
Music on hold set the default timer name to 'soft'.
2016-06-23 16:42:12 -06:00
markjcrane 6af584afd5 Uncomment two lines to restore the debug check. 2016-06-23 15:46:59 -06:00
markjcrane 8c7be13133 Add full path to the music on hold chime list. 2016-06-23 15:29:14 -06:00
markjcrane 022247c280 Update music_on_hold_timer to timer_name. 2016-06-23 13:35:53 -06:00
markjcrane 9e175c3d3b Add sip_h_X- prefix to the accountcode in pin_number.lua. 2016-06-22 15:05:33 -06:00
markjcrane 6847889d76 Add domain_uuid check to pin_number.lua. 2016-06-22 13:52:43 -06:00
markjcrane 2fbcf0dddb Remove some trailing spaces and update the copyright year in pin_number.lua. 2016-06-21 19:37:25 -06:00
markjcrane 54354361c0 Add database support to pin_number.lua. 2016-06-21 19:34:17 -06:00
markjcrane 6d6a3a3574 Increase the voicemail greeting length that is allowed to 90 seconds. 2016-06-21 18:35:05 -06:00
markjcrane 7e801f0b76 Correct the variable name. 2016-06-13 19:06:59 -06:00
markjcrane 0ae7d5e2e4 Replace the variable with the path to the sounds directory. 2016-06-13 19:04:23 -06:00
markjcrane bd6b2fb18f Rename local_stream.lua to local_stream.conf.lua. 2016-06-13 18:50:41 -06:00
markjcrane e026c3e5e6 Add local_stream.lua to xml_handler. 2016-06-13 18:30:32 -06:00
FusionPBX 52b5652319 Update call_flow.lua
Call flow feature code update to play the right audio file.
2016-06-12 14:14:52 -06:00
FusionPBX 6ee20145fe Update call_flow.lua
Inside call_flow.lua rename anti to alternate.
2016-06-12 14:02:57 -06:00
FusionPBX 612098e1bc Update call_flow.lua
Rename the variables in call_flow.lua to match. New variables call_flow_sound and call_flow_alternate_sound.
2016-06-11 10:02:31 -06:00
Alexey Melnichuk 03e62d9e91 Add. Support sound prompts on call flow. (#1645)
This file uses new way to load recordings from DB.
2016-06-11 07:33:16 -06:00
Chris Black cfc20ca9bf Add ability for directory to use mod_flite or mod_cepstral (#1644) 2016-06-10 16:07:11 -06:00
Alexey Melnichuk add8222cff Add. Support `bridge` mode to call forward from Lua. (#1631) 2016-06-08 07:33:55 -06:00
Chris Black 43543f8b0c remove SMS (#1612) 2016-05-24 12:57:46 -06:00
Chris Black a78d09cfd5 Add support for twilio (#1610)
added support for twilio and made it a bit easier to add support for
other carriers as well.
2016-05-24 02:02:36 -06:00
Chris Black 93fe11851b Flowroute SMS (#1603)
* Fix Yealink provisioning for contacts/groups

Fix the Yealink provision templates to allow for directory_extensions,
groups and users.

* Fix group_uuid and user_uuid messup

* Yealink directory and provisioning changes

Includes the changes from PR 1582 with some fixes to the SQL.

Also merged all the directory_* options into ONE directory.xml

Will need to call the it with any of these:

http://mydomain/app/provision/?file=directory.xml&contacts=groups

http://mydomain/app/provision/?file=directory.xml&contacts=users

http://mydomain/app/provision/?file=directory.xml&contacts=extensions

http://mydomain/app/provision/?file=directory.xml&contacts=all

* Flow route SMS
2016-05-19 12:09:49 -06:00
Alexey Melnichuk 619912324c Fix. Use correct database for Call Center while FS load. (#1597)
Problem that `mod_commands` may load after than `mod_callcenter` and there no function `global_getvar`
So current code just create database with name `INVALID COMMAND!.db`.
2016-05-13 08:03:48 -06:00
FusionPBX 38c43217ce Update intercept.lua
Account for core.db in intercept.lua
2016-05-12 23:06:45 -06:00
markjcrane 295e63c704 Commented out the new database handle --local dbh = Database.new('switch') as it has a bug when freeswitch is using the DSN with the PostgreSQL driver. This change works around this problem by using the original database handler. 2016-05-12 20:43:57 -06:00
FusionPBX cdba087744 Merge pull request #1553 from moteus/intercept_direction
Add. optional intercept only inbound/outbound calls.
2016-04-18 22:54:03 -06:00
FusionPBX 5b779b5882 Merge pull request #1450 from daniel-lucio/patch-3
Wrong variable in freeswitch.email
2016-04-18 21:20:44 -06:00
Alexey Melnichuk 07b2858852 Add. optional intercept only inbound/outbound calls.
Note.
  * `inbound` is call to some extension
  * `outbound` is call from some extension to external number.

Currently there no way to find call from extension to extension as `outbound`
2016-04-18 16:06:27 +03:00
markjcrane c630449636 Remove contact_email from v_contacts table as this was replaced by the v_contact_emails table. 2016-04-14 10:40:25 -06:00
Alexey Melnichuk d824e80f06 Fix. send fax file as PDF in response message 2016-04-05 13:48:50 +03:00
markjcrane 7f082bdef3 Add a missing permission on backup. 2016-04-04 19:51:22 -06:00
markjcrane 3ad26f1965 Change expire["sofia_conf"] to expire["sofia"] and expire["acl_conf"] to expire["acl"]. Then add a default value to prevent nil errors when the conf.lua script has not been updated. 2016-04-02 08:32:43 -06:00
markjcrane 38858b3f6b Remove the the condition on the direct dial. 2016-03-29 20:57:47 -06:00
markjcrane ec4f523caf Rollback changes to is_local.lua determined that switching to regex would lower perfomance adding an 'or' with a search for prefix would perform better. 2016-03-27 20:44:14 -06:00
markjcrane 2cd979b30c A global domain is optional. Using public context instead. 2016-03-27 04:46:01 -06:00
FusionPBX 71cdf97e5a Merge pull request #1512 from schraegervogel/master
initialize call_context
2016-03-27 04:25:22 -06:00
FusionPBX 0831a99dd0 Merge pull request #1510 from moteus/databas_role
Add. `role` to be able select database backend in constructor.
2016-03-25 15:52:47 -06:00
schraegervogel 919b383c6e initialize call_context
If you use xml_locate dialplan from fs_cli, you get an error, to prevent this I intialized call_context with the "domain"-var
2016-03-25 17:28:10 +01:00
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
FusionPBX 4ce2bb5c8f Update acl.conf.lua
Change expire acl.conf to acl_conf
2016-03-25 01:00:43 -06:00
markjcrane 4a31b2343e Change to the new context require renaming two variables to be consistent and to prevent a problem. 2016-03-24 23:08:23 -06:00
markjcrane 0047f48f45 Use regex with is_local. 2016-03-24 18:43:51 -06:00
markjcrane 08ea915070 In the IVR Menu make sure direct dial checks if the destination is an extension before sending the call to it. 2016-03-23 12:49:32 -06:00
markjcrane 33aed1c15d Update the disa.lua to prevent errors when caller hangs up before the destination is called. 2016-03-23 11:42:20 -06:00
markjcrane fafe273c18 Fix a spelling mistake in xml handler ivr.conf.lua. 2016-03-20 00:49:21 -06:00
markjcrane 2a280afea9 Fix direct dial for IVR using the xml handler. 2016-03-19 18:13:49 -06:00
markjcrane 61987425af Merge branch 'master' of https://github.com/fusionpbx/fusionpbx 2016-03-11 14:21:28 -07:00
markjcrane c11459fae8 Get the domain_name from the array. 2016-03-11 14:21:08 -07:00
FusionPBX ee0df44e0d Merge pull request #1461 from mafoo/BugFix-ring_groups
corrected function definition
2016-03-11 13:25:20 -07:00
FusionPBX 260bf24100 Merge pull request #1479 from mafoo/WhitespaceClean-resources/install/scripts
WhitespaceClean-resources/install/scripts
2016-03-11 13:20:17 -07:00
markjcrane f5c2222f97 Prevent custom sip port from breaking provision.lua and add prevent nil concatenation errors. 2016-03-11 10:31:11 -07: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
markjcrane 66ba2802bd The last two changes to xml handler dialplan.lua did not work well with global dialplans. Removed some of the changes to fix the regression. 2016-03-11 00:58:52 -07:00
markjcrane 7b5d8f08c5 Add missing call_direction for ring group destinations. 2016-03-10 18:10:49 -07:00
markjcrane 833860e067 Use a more efficient way to get the domain name for xml handler - dialplan. 2016-03-10 08:18:46 -07:00
markjcrane d14d4aeb8a Increase efficiency xml handler section dialplan. 2016-03-09 13:09:25 -07:00
mafoo 8ceec465ac corrected function definition
fixed bug introduced on 2/1/2016 in destination.lua
fixed bug introduced on 2/1/2016 in ring_member.lua
2016-03-09 17:54:44 +00:00
markjcrane 6804772e06 Fix the phrases_dir if statement. If the phrases_dir is not null then need to include xml from the file system. 2016-03-07 10:30:29 -07:00
markjcrane 90a9e55b77 Handle the phrases_dir nil in a more flexible way. 2016-03-04 15:51:10 -07:00
markjcrane 9ffcf3d872 Ensure the phrases_dir is not nil. 2016-03-04 15:08:58 -07:00
markjcrane ac0f620302 Prevent a nil error for xml handler languages. 2016-03-04 12:35:37 -07:00
markjcrane cb8aaac1f7 Add ring_member.lua to app/ring_groups/resources/scripts/ring_member.lua. 2016-02-29 18:52:04 -07: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
FusionPBX bb13ec5063 Merge pull request #1443 from moteus/database_backend
Database backend
2016-02-25 08:39:07 -07:00
Luis Daniel Lucio Quiroz 56121737a9 Wrong variable in freeswitch.email
https://wiki.freeswitch.org/wiki/Mod_lua#freeswitch.email   

same as my other pull request
2016-02-24 19:59:54 -05:00
Alexey Melnichuk 7c225b404a Fix. Add `#` to caller ID name when call from IVR 2016-02-24 16:28:38 +03:00
Alexey Melnichuk 466f85a0be Move scripts to separate dirs. 2016-02-24 14:44:50 +03:00