Commit Graph

916 Commits

Author SHA1 Message Date
FusionPBX 161666297a Update ivr.conf.lua
Add direct dial message to the IVR Menu so that it states  'your call is being transferred' or 'that was an invalid entry'.
2016-08-14 10:26:32 -06:00
FusionPBX 1e5870802e Update ivr.conf.lua
Since we are checking the direct dial for user_exists we can allow more up to 11 digits by default.
2016-08-13 20:04:23 -06:00
FusionPBX 3be7aa13cb Update ivr.conf.lua
Check to see if the number dialed matches an extension if it does then transfer to the extension if it doesn't then transfer the call back to the IVR Menu.
2016-08-13 19:57:15 -06:00
Mafoo 4b0f3c38a0 BugFix-Support spaces in streamfile.lua (#1811)
use table.concat as a workaround to spaces in filesames
alternative is adjust all destiantions to quote filenames, but would
require app_defaults catch to fix all exisiting written destinations.
2016-08-13 08:59:37 -06:00
Alexey Melnichuk 065a04ccb2 Add. `force_ping` option for extension (#1809)
* Add. `force_ping` option for extension

This option force FS send SIP OPTIONS message to
detect if this reged device still available.

* Update language file.
2016-08-11 09:46:54 -06:00
FusionPBX 390cfd09e2 Create forward_add_intro.lua 2016-08-10 16:10:22 -06:00
FusionPBX 2afdd589b1 Update directory.lua 2016-08-08 09:45:16 -06:00
FusionPBX 8b535a3d70 Update index.lua 2016-08-05 08:42:51 -06:00
DigiDaz 98a184c835 Fixed scripts to get multiserver memcache working (#1795) 2016-08-04 11:40:36 -06:00
FusionPBX 7693844dde Update index.lua
Set regex_match = false; before the loop.
2016-08-03 00:23:58 -06:00
Alexey Melnichuk f214625ead Change. Use `service::control` event to control services (#1790)
* Change. Use `service::control` event to control services

This is more FS way. E.g. sofia sends `sofia::register` event
and add all information to headers. So now `service` script
emit `fusion::service::control` event and each service responsible
for test its own name. This also allows add in future evnets to
e.g. monitor service status like `fusion::service::satus` so it
will be possible write service which will be restart services.

* Change. rename service name from `flow` to `call_flow`
2016-08-02 14:00:49 -06:00
FusionPBX 294acd84ff Update ivr.conf.lua
IVR Menu direct dial move it before the options defined by the users so that users can override it.
2016-08-02 10:17:02 -06:00
FusionPBX 795113c2b1 Update macro.lua
Add forward_add_intro to macro.lua.
2016-07-29 09:46:56 -06:00
Alexey Melnichuk e7c813a559 Simplify `is_uuid` function. (#1781)
* Simplify `is_uuid` function.

Also because it returns now value itself it possible write
```Lua
my_uuid = is_uuid(value1) or is_uuid(value2)
```

* Change. Ensure `is_uuid` returns only boolean value
2016-07-28 16:49:36 -06:00
Alexey Melnichuk 58ec22a759 Add. Support service stop command for odbc_pool. (#1782) 2016-07-28 08:16:54 -06:00
Mafoo 951bef85d4 BugFix-add missing default ringback to lua (#1682)
add processing of when ringback is set to default_ringback and correctly
set it to the current value of the globalvar for ringback
2016-07-27 20:06:41 -06:00
FusionPBX eef8fdbc12 Update index.lua
Improve on the call center agent status use agent_authorized true instead of auto_authorized.
2016-07-27 19:17:10 -06:00
DigiDaz 00b2449168 Allow * 22 login/logout of queue without password by adding variable auto_authorized to dialplan (#1776) 2016-07-27 19:13:50 -06:00
Alexey Melnichuk a73b8680cb Add `service` script and make timout optional for EventConsumer ctor (#1775)
* Change. Pass pid file first. Because there really no need pass timeout.
Add. `fsc` script to be able shutdown MWI and Call Flow subscribe services.

* Change. rename `fsc` to `service`.

* Change. Use `stop` command instead of `shutdown`
2016-07-26 11:58:37 -06:00
FusionPBX da6f71323c Update languages.lua
Don't cache the not found.
2016-07-24 00:22:18 -06:00
FusionPBX 92f9f45e6c Update languages.lua
When handling phrases get the specific phrase instead of all of them. Remove the code that tried to build the XML from the file system. Replace it with a 'not found' response so that FreeSWITCH will check the filesystem for the XML of the phrase that was not found.
2016-07-24 00:09:48 -06:00
FusionPBX b236a737bf Create is_uuid.lua
Add a new lua function to determine if a string is a uuid.
2016-07-23 13:40:57 -06:00
FusionPBX 90bd147d43 Update directory.lua
Add a timeout_destination option for directory.lua.
2016-07-22 11:48:29 -06:00
Mafoo 613b9c9bea Enhance Voicemail Emails (#1738)
* Renamed template variable account to voicemail_id and adjusted all
templates
* Added ${voicemail_description}
* Added ${voicemail_name_formatted} (will render the voicemail identifier in accordance with Default/Domain Settings > Voicemail > display_domain_name)
* Updated templates to be consistent spacing
* Updated templates to include use of ${voicemail_name_formatted}
* Changed ${account} to be voicemail_name_formatted instead of id
2016-07-22 09:23:03 -06:00
Alexey Melnichuk 207cf08e88 Fix. Properly stop (e.g. remove pid file) event consumer loop in case of error. (#1766) 2016-07-21 07:47:54 -06:00
pixel2920 c26fc36bd1 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 fda0e722b4 Update conference.conf.lua
Add conference controls to the xml handler.
2016-07-17 15:42:14 -06:00
FusionPBX 338936c906 Update conference.conf.lua
Conference profile parameters are now working from the database.
2016-07-17 01:15:35 -06:00
FusionPBX 2373b38630 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 10f460cfd2 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 1834be5042 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 9da40dc7b1 Fix. Fusion set rate=48000 to all streams. (#1746) 2016-07-12 08:09:54 -06:00
Mafoo 9bc0fded96 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 a52e9c3626 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 1a76484b5f 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 0f84dbc9cd Update page.lua
Update page.lua add support for rtp_secure_media=true.
2016-07-06 14:48:00 -06:00
Alexey Melnichuk 79cdf70ebd 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 9e5ce425b5 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 dc3575c05c 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 35149d0ff3 Update page.lua
Add leading zero support to page.lua.
2016-06-30 15:08:14 -06:00
FusionPBX 2b9311031d 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 ba857b6acf 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 a6a6a1aaac Fix. `event_socket_mkdir` for Windows system. (#1724) 2016-06-30 08:11:52 -06:00
FusionPBX 3ca2b832ca 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 4bbf0983bf 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 05ff231f9a Update local_stream.conf.lua
Remove the default stream will handle it another way.
2016-06-29 17:19:21 -06:00
FusionPBX d884a18cc0 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 0354e137ea 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 873c7ad0a2 Change. remove CC configuration dependencies from mod_commands. (#1711) 2016-06-27 07:52:29 -06:00
Alexey Melnichuk ebfa71298d Add. option to store setting in memcache. (#1707) 2016-06-26 11:43:32 -06:00
Alexey Melnichuk 5a58cf1436 Fix. Set default values for max length settings (#1706) 2016-06-26 11:42:33 -06:00
Alexey Melnichuk c0739c4d40 Fix. Load required libraries in voicemail. (#1705) 2016-06-26 09:03:21 -06:00
FusionPBX c3463392eb 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 4757123d4b Get the settings.recordings.storage_type for the ivr menu using xml handler. 2016-06-24 14:55:16 -06:00
Alexey Melnichuk 0a0383db9a 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 f88691618e 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 23fb7118a6 Update local_stream.conf.lua
Music on hold set the default timer name to 'soft'.
2016-06-23 16:42:12 -06:00
markjcrane af0c7cfe6a Uncomment two lines to restore the debug check. 2016-06-23 15:46:59 -06:00
markjcrane f9d191c520 Add full path to the music on hold chime list. 2016-06-23 15:29:14 -06:00
markjcrane 8e8454ff19 Update music_on_hold_timer to timer_name. 2016-06-23 13:35:53 -06:00
markjcrane ef43f49b9e Add sip_h_X- prefix to the accountcode in pin_number.lua. 2016-06-22 15:05:33 -06:00
markjcrane 4b17d5dac2 Add domain_uuid check to pin_number.lua. 2016-06-22 13:52:43 -06:00
markjcrane dfb6489334 Remove some trailing spaces and update the copyright year in pin_number.lua. 2016-06-21 19:37:25 -06:00
markjcrane 5db79b687c Add database support to pin_number.lua. 2016-06-21 19:34:17 -06:00
markjcrane 2955b8447e Increase the voicemail greeting length that is allowed to 90 seconds. 2016-06-21 18:35:05 -06:00
markjcrane 07c038308f Correct the variable name. 2016-06-13 19:06:59 -06:00
markjcrane 2e0de74055 Replace the variable with the path to the sounds directory. 2016-06-13 19:04:23 -06:00
markjcrane 787502ea48 Rename local_stream.lua to local_stream.conf.lua. 2016-06-13 18:50:41 -06:00
markjcrane 366bf5fbea Add local_stream.lua to xml_handler. 2016-06-13 18:30:32 -06:00
FusionPBX 3ad7fe027c Update call_flow.lua
Call flow feature code update to play the right audio file.
2016-06-12 14:14:52 -06:00
FusionPBX a66324a242 Update call_flow.lua
Inside call_flow.lua rename anti to alternate.
2016-06-12 14:02:57 -06:00
FusionPBX dcb9a655cd 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 6095609c5a 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 96e1ad2cf4 Add ability for directory to use mod_flite or mod_cepstral (#1644) 2016-06-10 16:07:11 -06:00
Alexey Melnichuk 644996b1f7 Add. Support `bridge` mode to call forward from Lua. (#1631) 2016-06-08 07:33:55 -06:00
Chris Black 4a4a613902 remove SMS (#1612) 2016-05-24 12:57:46 -06:00
Chris Black 2d05685103 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 a8d5033953 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 6df1dae2a9 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 edfe01b0c5 Update intercept.lua
Account for core.db in intercept.lua
2016-05-12 23:06:45 -06:00
markjcrane 6ba188dc5e 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 06f6f1302e Merge pull request #1553 from moteus/intercept_direction
Add. optional intercept only inbound/outbound calls.
2016-04-18 22:54:03 -06:00
FusionPBX 4230d3b414 Merge pull request #1450 from daniel-lucio/patch-3
Wrong variable in freeswitch.email
2016-04-18 21:20:44 -06:00
Alexey Melnichuk 15fbc21b4d 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 8b5e166eda 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 1fea16de71 Fix. send fax file as PDF in response message 2016-04-05 13:48:50 +03:00
markjcrane 4ac03a8d1a Add a missing permission on backup. 2016-04-04 19:51:22 -06:00
markjcrane 11f4fea479 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 5f5ae59c41 Remove the the condition on the direct dial. 2016-03-29 20:57:47 -06:00
markjcrane 0e73d0d3dc 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 abef8c5d3c A global domain is optional. Using public context instead. 2016-03-27 04:46:01 -06:00
FusionPBX b03d978bb0 Merge pull request #1512 from schraegervogel/master
initialize call_context
2016-03-27 04:25:22 -06:00
FusionPBX 5906618ff3 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 39754a505e 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 423e0ab503 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 c5e804cb3c Update acl.conf.lua
Change expire acl.conf to acl_conf
2016-03-25 01:00:43 -06:00
markjcrane 66e01ef9dc 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 e1b6087e04 Use regex with is_local. 2016-03-24 18:43:51 -06:00
markjcrane 785071cde6 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 db3c649aaf Update the disa.lua to prevent errors when caller hangs up before the destination is called. 2016-03-23 11:42:20 -06:00