This change reduces the strain on the system by running the OS command through Freeswitch rather than directly from Lua. When running directly from Lua it causes RTP jitter in a high capacity system.
* Fixed formatting.
* Sendmail to use smtp_from variable
Changed sendmail to use smtp_from as the from address to keep from being blocked by spf check during spam filtering on recieving end.
* Add. Use `route_to_bridge` module to build routes fro ring groups.
This commit has several improvements
1. Select only needed fields. (do not select quite big XML text strings)
2. Filter routes also by context name
3. Filter dialplans also by hostname
4. Handle conditions based not only `destination_number`
5. Handle `break` and `continue` attributes for extensions
6. Escape vars inside dial-string
7. Add log messages similar as FS dialplan do
* Add. `route_to_bridge` set inline vars so it possible use then in next conditions.
Add. `route_to_bridge` can execute basic api commands from allowed lists.
`route_to_bridge` expand all known vars. If var is unknown then it pass as is.
Fix. `export nolocal:` action.
* Fix. Short variable names
* Add. some comments
* Fix. Do not try execute empty string
This produce error messages `[ERR] switch_cpp.cpp:759 No application specified`
* Fix. Export nolocal values.
* Fix. Cache class.
* `send_event` raise error so `Cache.del` did not remove key or send any event
* use `memcache` method by default even if `cache` table does not defined in config
* `Cache.get` did not return any data when use `memcache` method
* `Cache.get` did not close file. (Its should not be a big problem because GC should do it by self).
* `Cache.get` can returns some undefined global value. (if method is `file` and file not exists then method returns global `result` value)
* `Cache.get` does not need check for file existence
* Value escaping does not needed for `file` method
* Needed different key escaping for `memcache` and `file` methods
* Update self test
* Change. Use random names for temp files.
* Add. BLF indication for call forward.
To display general status of CallForward use blf like `forward+<extension>`
To display status for specific phone number use blf like `forward+<extension>/<number>`
* Fix. Escape variable in regex expression.
* Fix. Sync DND and CF blf.
* Add. `blf_subscribe` service which can handle all custom subscriptions.
To run for specific protocol it possible run as `luarun blf_subscribe.lua <PROTO>`
* Fix. Fetch correct arrays from settings.
Add. Use params in `settings.lua`
* Fix. array from domain settings overwrite entire array from default settings instead of appends it.
* add built in ability for microsoft bing speech to text
* move json.lua to lower case and more error checking in record_message
* Replaced Creative Commons json.lua with lunajson.lua which is MIT license
https://github.com/grafi-tt/lunajson/blob/master/LICENSE
* Add. attr_xfer analog based on conference.
Control DTMF sequence
`*0` transfer `self` to `enter number` state and `peer` leg to conference room
`##` transfer `self` to `enter number` state and hangup `peer` leg
`*#` transfer `self` to conference room and hangup `peer` leg
* Remove spaces.
* Add. Commented action to ring group.
* 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`
* 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
* 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`