Problem that `create_database_pgsql` does not create actual scheme
but `create_odbc_database_connection` try insert record to v_database and
installation fails.
* 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.
When in dialplan edit form press `XML` and then `Back`
Fusion build wrong URL like `&?app_uuid` so if then press
save server will do not get this arg and change it.
Fix. Symbol '^' should be inside double quotes on Windows system.
Fetch may be not possible in some cases but git still be valid.
I test git status on repo with changes. And it also returns 0 as
return code.
FS Always mark xml as ISO-8859-1, but pass info as-is.
So if user send its contact info as UTF-8 then we get
corrupted xml. But RFC describe text as UTF8
RFC 3261 - 25.1 Basic Rules
```
qdtext = LWS / %x21 / %x23-5B / %x5D-7E / UTF8-NONASCII
```
In cluster installation first node search channel uuid
and send it inside special SIP header. So other node
can just use it and do not call Lua script again.
* 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.
* Update CDR Stats application.
Fix. Number of calls always calculate only for all domain.
Fix. Number of missed calls ignores any search parameters and use only `inbound` filter.
Fix. Calls duration for days use only domain filter and do not use any other filters.
Add. Limit setting for number of hours to calculate statistic.
Add. When timestamp set then calculate statistic only for this period.
* Fix. Calculate `Calls per minute`
Fix. Prevent divide `0/0` when calculate `ALOC`
* Fix. `Hours` have to be integer type.
* 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>`
This commit allows create call flow extension with some feature code (e.g. `*401`)
Then on the phone you can configure BLF like `flow+*401` and use `call_flow_subscribe` to
track current status of this call flow. BLF like `*401` will also works but only if
use `call_flow_monitor` script.
Also it is possible dial `flow+*401` as well as `*401` to toggle call flow state.
On my system mod_memcached returns `-ERR SOME ERRORS WERE REPORTED` when
memcached service not available. And sofia.conf.lua does not handle this case
and interpret this response as valid one.
Using `cache` class allows handle such errors. Also this class handle all
escaping operation which makes code more clear.
Prev version has bug when extension_dir has relative path (e.g. `ext`)
`basedir('ext')` returns not empty string by dot symbol `.` so it going to
infinity loop.
Also official distro of PHP has no executable binaries with version (phpX.exe)
only `php.exe`.
Tested on OpenServer with PHP 5.3-7.1 under Apache/Nginx.
And also on manual install of Nginx 1.11 / PHP 5.4
* Add. Handle `b` legs in CDR.
CDR list/statistic by default handle only `a` legs.
So it prevent display wrong result when b-leg turn on.
Add ability to write to db `b` legs only for specific call directions.
To be able see b-legs in CDR need set xml_cdr_b_leg permission.
To add specific call direction to filter need add element to `cdr/b_leg/array` in default/domain settings.
* Add. `b_leg` to defalut settings.
* Update code to iterate over numbers.
This code fixes some problems
* range like `009-010` current code produce numbers `009` and `0010`
* range like `200-100` now raise error so it will be easy to debug
* range like `010-20` now generate error.
* `destination` is string so condition `destination == tonumber(sip_from_user)` is always false so change it `destination == sip_from_user`
* Fix. handle ranges like `100-100`
* Add. Speed dial respects contacts user.
One user can not use speed dial numbers from contacts
associated with another user
* Make SQL query more efficient
* Add. Support find contacts by user groups as well
If contact has set any `user` or `group` then only this users can use speed dial numbers
in other case speed dial numbers are global for domain.
* 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.