Commit Graph
100 Commits
Author SHA1 Message Date
Alexey Melnichuk 10b3321042 Change. library loads only needed files. (#2987) 2018-02-11 08:56:01 -07:00
Alexey Melnichuk fab5b5a970 Fix. Use preloaded dialplan more then once. (#2986) 2018-02-10 13:27:07 -07:00
Alexey Melnichuk 5beb80c294 Fix. Use number_alias as VM id when do generation extensions (#2969) 2018-01-29 22:38:51 -07:00
Alexey Melnichuk df441e9625 Fix. Create database scheme before trying insert record to v_database (#2965)
Problem that `create_database_pgsql` does not create actual scheme
but `create_odbc_database_connection` try insert record to v_database and
installation fails.
2018-01-27 12:12:11 -07:00
Alexey Melnichuk b08e02e77d Fix. Do not request number when do call forward toggle. (#2938)
It is consistent with enable/disable actions.
2018-01-07 01:05:58 -07:00
Alexey Melnichuk a7de7f0baa Fix. Use external numbers in ring groups with global outbound routes (#2937) 2017-11-29 00:21:21 -07:00
Alexey Melnichuk ff5355e840 Add. Support variables in ring groups when use dierect dial (#2924)
Add. Support variables in ring groups when use direct dial
2017-11-29 00:20:45 -07:00
Alexey Melnichuk 00159b0cc2 Add. Lua script to set call forward for ring group. (#2934) 2017-11-29 00:19:43 -07:00
Alexey Melnichuk 9ee2b71ce2 Fix. Extension summary for local calls (#2918) 2017-11-21 09:13:58 -07:00
Alexey Melnichuk ebfa022a90 Fix. Display domain name for inbound calls in calls_active app (#2917) 2017-11-21 09:09:57 -07:00
Alexey Melnichuk 45879e80ce Fix. Show registrations for extensions with number alias. (#2914) 2017-11-20 13:59:50 -07:00
Alexey Melnichuk d707c966fe Fix. Display statistic for all domains (showall=true) (#2915) 2017-11-20 13:58:35 -07:00
Alexey Melnichuk 679d4e1fb5 Add. Use route_to_bridge module to build routes for ring groups. (#2907)
* 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.
2017-11-17 07:15:47 -07:00
Alexey Melnichuk a73ffd731d Fix. Dialplan may loose its app_uuid (#2910)
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.
2017-11-16 08:04:23 -07:00
Alexey Melnichuk d321965e37 Fix. Do not try fetch git repo when open system page. (#2903)
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.
2017-11-07 08:22:33 -07:00
Alexey Melnichuk 43941f998f Change. Treat sofia xmlstatus as UTF8 (#2901)
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
```
2017-11-02 07:50:16 -06:00
Alexey Melnichuk 74355eee06 Fix. Export call direction to B-Leg. (#2895)
It is needed to use with b-leg filtering.
2017-10-26 10:33:35 -06:00
Alexey Melnichuk 03355ff9ff Small optimization with intercept. (#2892)
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.
2017-10-26 08:56:37 -06:00
Alexey Melnichuk f91c6eb163 Change. Use BasicEventService to implement MWI service. (#2855) 2017-10-06 13:13:33 -06:00
Alexey Melnichuk 41083c7a8c Fix. crash when using EventCounsumer.ievents iterator. (#2865)
Problem code is
``` Lua
for event in ievents{'SHUTDOWN','CUSTOM::event'} do
end
```
2017-10-06 12:36:23 -06:00
Alexey Melnichuk c72fca1c6b Fix. Send message notify when toggle vm message in Web UI. (#2774) 2017-08-01 16:02:08 -06:00
Alexey Melnichuk f308e2a30e Fix. Cache class. (#2755)
* 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.
2017-07-26 09:40:53 -06:00
Alexey Melnichuk b820d07f12 Add. Make legend outside of graphic of CDR Statistic. (#2760) 2017-07-25 14:38:57 -06:00
Alexey Melnichuk 272d1c2f30 Change. Use new service class to implement ha_monitor.lua (#2710)
This allows remove code related to create pid file and
handle system commands (e.g. to stop service) from service
file and leave it to base class.
2017-07-24 23:38:43 -06:00
Alexey Melnichuk 6adce64d7f Add. Support missed argument in xml_cdr.php (#2711)
This argument used when build link in xml_cdr_statistics.php.
2017-06-23 09:21:25 -06:00
Alexey Melnichuk 9ccf44e059 Add. Display both CPM for all calls and for answered only. (#2707) 2017-06-22 09:04:44 -06:00
Alexey Melnichuk c36be184b8 Fix. Stack overflow when calls base actor. (#2706) 2017-06-22 00:14:28 -06:00
Alexey Melnichuk 74454b738f Update CDR Stats application. (#2704)
* 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.
2017-06-21 08:20:29 -06:00
Alexey Melnichuk 6fc6e231c8 Add. BLF indication for call forward. (#2664)
* 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>`
2017-06-20 09:23:23 -06:00
Alexey Melnichuk d093b37c22 Add. Statistics takes account to leg. (#2653)
Add. Leg field to advanced search form.
2017-06-08 09:45:27 -06:00
Alexey Melnichuk f939c82862 Add. Allow use call_flow_subscribe.lua with feature codes without flow+ prefix. (#2609)
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.
2017-06-08 09:44:45 -06:00
Alexey Melnichuk 46f74ab726 Fix. Properly handle error from memcached when load configs. (#2641)
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.
2017-06-08 09:38:28 -06:00
Alexey Melnichuk cfeb809900 Add. Use cache class in xml_handler/directory (#2647) 2017-06-08 09:37:30 -06:00
Alexey Melnichuk 4115ca3bd9 Fix. Find php interpreter when use CGI/FastCGI mode. (#2640)
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
2017-06-05 08:47:38 -06:00
Alexey Melnichuk 9050da03cc Add. Handle b legs in CDR. (#2626)
* 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.
2017-06-02 22:31:20 -06:00
Alexey Melnichuk a7d58e14c7 Add. Support DND feature via BLF key (#2606) 2017-05-29 09:50:20 -06:00
Alexey Melnichuk c4c97fee29 Fix. Remove using call_prompt field. (#2589)
It marked as deprecated and do not used anywhere.
2017-05-21 01:32:24 -06:00
Alexey Melnichuk a75d89ef73 Fix. Load Message class (#2585)
Fix. Use correct way to get text message.
Fix. Use `Database Username` to create database if no `Create Database Username` specified.
2017-05-18 08:43:43 -06:00
Alexey Melnichuk d390270b2e Fix. Improve parameters patterns. (#2218)
E.g. now it handle queries like
```Lua
local sql = "select :J::text as value"
print(dbh:first_value(sql, {J='hello'}))
```
2017-04-22 10:18:10 -06:00
Alexey Melnichuk d6efebf13f Fix. Remove unused code from mwi_subscribe.lua (#2527) 2017-04-21 05:59:38 -06:00
Alexey Melnichuk debfcbbc5b Fix. Escape strings in regex api (#2523) 2017-04-20 07:48:49 -06:00
Alexey Melnichuk 110086f75a Update code to iterate over numbers. (#1727)
* 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`
2017-04-18 12:11:39 -06:00
Alexey Melnichuk 8f2782e8dd Add. Speed dial respects contacts user. (#2249)
* 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.
2017-04-17 09:02:36 -06:00
Alexey Melnichuk bbe117cd0e Fix. Create needed number of extensions (#2509) 2017-04-14 04:09:11 -06:00
Alexey Melnichuk 11510645a0 Fix. Add extension with non numeric extension number. (#2508) 2017-04-14 02:12:24 -06:00
Alexey Melnichuk 1b2cdb633d Fix. Redirect back to correct profile after delete setting. (#2501)
Fix. Add setting (seems need also set sip_profile_uuid)
Change. Order settings by name when output.
2017-04-13 10:24:48 -06:00
Alexey Melnichuk 167bcca992 Fix. Add new sip profile setting. (#2500) 2017-04-13 10:06:52 -06:00
Alexey Melnichuk 080763cee7 Add. Support remote reboot Panasonic devices. (#2326)
Tested with Panasonic KX-TGP500 Firmware 22.90
User agent string `Panasonic_KX-TGP500B09/22.90 (<MAC>)`
2017-01-31 00:35:24 -07:00
Alexey Melnichuk 795e45227d Fix. Russia has 11 digits (close #2303) (#2304) 2017-01-17 10:14:49 -07:00
Alexey Melnichuk a9bb5f9b8f Fix. Display Lan IP for Grandstream (#2297)
Grandstream send IP like `BJC.BGI.B.CAB` so we
should convert it to numeric form.
2017-01-13 14:24:32 -07:00
Alexey Melnichuk f79418079c Fix. Use CID from extension for call forward if set call_forward_fix. (#2260)
This is same behavior as in Web UI.
2016-12-20 09:07:58 -07:00
Alexey Melnichuk 72dfd3a362 Fix. Find in database not empty phone number for speed dial. (#2242)
Also do not store `context` in memcache
2016-12-09 00:49:51 -07:00
Alexey Melnichuk 90dc900933 Fix. logs sql only if debug flag set. (#2243) 2016-12-09 00:42:20 -07:00
Alexey Melnichuk 984e8f16e7 Rewrite speed_dial Lua script. (#2239) 2016-12-08 10:23:38 -07:00
Alexey Melnichuk cddb1da5a9 Fix. Group intercept with not empty group name (#2232) 2016-12-07 23:47:37 -07:00
Alexey Melnichuk faf90fe297 Fix. Remove unused code. (#2233) 2016-12-07 23:46:47 -07:00
Alexey Melnichuk b33ea1b1c2 Remove unused database connection. (#2235) 2016-12-06 09:52:51 -07:00
Alexey Melnichuk f9fa141d46 Fix. Set correct values for voicemail_to_sms_* settings (#2229)
`true` and `false` string literals evaluates to `true` boolean value.
2016-12-05 16:02:32 -07:00
Alexey Melnichuk 569250d098 Fix. group_call pass params to query (#2227) 2016-12-02 17:29:42 -07:00
Alexey Melnichuk 4498f4c9d9 Fix. Sync building $provision array in all places. (#2226) 2016-12-02 12:11:47 -07:00
Alexey Melnichuk 9d592f3318 Fix. Set correct dial-string in fax_to_email (#2223) 2016-12-02 02:08:43 -07:00
Alexey Melnichuk 4cf1d7e9b7 Fix. Use Ivr Menu/application settings to switch IVR engine. (#2219) 2016-12-01 11:51:55 -07:00
Alexey Melnichuk 82301775c3 Fix. Build correct SQL in vm/menu_messages.lua (close #2189) (#2195) 2016-11-25 23:03:19 -07:00
Alexey Melnichuk c28fbf9c6a Fix. Close database object in vm/forward_to_extension.lua (#2196) 2016-11-25 23:01:43 -07:00
Alexey Melnichuk 21b63b086b Fix. Store message_intro_base64 in database. (#2197) 2016-11-25 23:01:18 -07:00
Alexey Melnichuk e3e5e2fcfc Fix. Add missing braces in gateways.php (#2179) 2016-11-24 10:09:14 -07:00
Alexey Melnichuk 69585d2023 Add. ${user_exists} value to check condition when build CF dialstring (#2183) 2016-11-24 10:07:55 -07:00
Alexey Melnichuk b16dbcc125 Fix some minor typos related with new Database class. (#2174) 2016-11-24 10:04:42 -07:00
Alexey Melnichuk 7b71ddcab1 Add. Use params in provision/index.lua (#2173) 2016-11-24 10:01:06 -07:00
Alexey Melnichuk 0c28bdadc3 Add. call_flow_monitor.lua uses Database class. (#2172) 2016-11-24 09:57:18 -07:00
Alexey Melnichuk 9963e94c0f Add. Use params in disa.*.lua (#2171) 2016-11-24 09:56:09 -07:00
Alexey Melnichuk 4ba9e89765 Fix. Find call_group with NULL in intercept.lua (#2169) 2016-11-24 03:04:52 -07:00
Alexey Melnichuk 36e12ec0ae Fix. Add missing file for #1629 (#2077) 2016-11-24 00:41:43 -07:00
Alexey Melnichuk fa82309dc5 Fix. Create dbh object in fax_retry.lua (#2168) 2016-11-23 23:14:58 -07:00
Alexey Melnichuk 28b04d9200 Add. Use params in ring_groups/destination.lua (#2163) 2016-11-23 03:50:22 -07:00
Alexey Melnichuk 915c5dea48 Fix. Fetch correct arrays from settings. (#2162)
* 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.
2016-11-23 03:50:00 -07:00
Alexey Melnichuk 928b1afb72 Add. Use params in call_block/index.lua (#2161) 2016-11-23 02:18:36 -07:00
Alexey Melnichuk 559a16b461 Fix. Use correct database class in hangup_rx.lua (#2155) 2016-11-23 02:02:06 -07:00
Alexey Melnichuk c43f71c177 Add. Use params in vm/change_password.lua (#2156) 2016-11-23 02:01:50 -07:00
Alexey Melnichuk 9c687dc20c Add. Use params in directory.lua (#2157) 2016-11-23 02:01:29 -07:00
Alexey Melnichuk 5d1606a2c3 Add. Use params in group_call.lua (#2158) 2016-11-23 02:00:44 -07:00
Alexey Melnichuk fa9e294932 Fix. Pass params to query call in destination_caller_id.lua (#2159) 2016-11-23 02:00:17 -07:00
Alexey Melnichuk 5a8b6bb332 Fix. Pass params in query call in do_not_disturb.lua (#2160) 2016-11-23 01:59:58 -07:00
Alexey Melnichuk 085b6e9419 Fix. Use local err variable in apply_param (#2152) 2016-11-22 16:48:54 -07:00
Alexey Melnichuk 58b2dae615 Add. Use params in vm/record_menu.lua (#2130) 2016-11-22 11:22:41 -07:00
Alexey Melnichuk 4097d449f8 Add. Use params in vm/message_waiting.lua (#2132) 2016-11-22 11:19:38 -07:00
Alexey Melnichuk 6ac04e29cd Add. Use params in vm/message_saved.lua (#2133) 2016-11-22 11:19:04 -07:00
Alexey Melnichuk af88889983 Add. Use params in vm/message_count.lua (#2134)
* Add. Use params in vm/message_count.lua

* Update message_count.lua

Change spelling prams to params.
2016-11-22 11:18:38 -07:00
Alexey Melnichuk b8537b2f35 Add. Use params in vm/menu_messages.lua (#2135) 2016-11-22 11:15:40 -07:00
Alexey Melnichuk 26e3c5b0fb Add. Use params in vm/main_menu.lua (#2136) 2016-11-22 11:14:28 -07:00
Alexey Melnichuk adc852563d Add. Use params in vm/listen_to_recording.lua (#2137) 2016-11-22 11:14:04 -07:00
Alexey Melnichuk 3ef2f69a3e Add. Use params in vm/forward_to_extension.lua (#2138) 2016-11-22 11:13:40 -07:00
Alexey Melnichuk 38dc420655 Add. Use params in vm/delete_recording.lua (#2139) 2016-11-22 11:13:19 -07:00
Alexey Melnichuk a7d54f03fe Add. Use params in vm/choose_greeting.lua (#2140) 2016-11-22 11:13:03 -07:00
Alexey Melnichuk 79dd1faaea Add. Use params in vm/check_password.lua (#2141) 2016-11-22 11:12:50 -07:00
Alexey Melnichuk ad542a5db5 Add. Use params in vm/mwi_subscribe.lua (#2143) 2016-11-22 11:12:37 -07:00
Alexey Melnichuk 09bdea108f Add. Use params in vm/play_greeting.lua (#2131) 2016-11-22 11:12:10 -07:00
Alexey Melnichuk 86bdf059e0 Add. Use params in vm/record_message.lua (#2129) 2016-11-22 11:11:55 -07:00
Alexey Melnichuk bf4922387b Add. Use params in vm/record_name.lua (#2128) 2016-11-22 11:11:36 -07:00
Alexey Melnichuk b347917700 Add. Use params in send_mail.lua (#2142) 2016-11-22 11:10:18 -07:00