* 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.
1. Allow custom sound_pin & sound_extension
2. Allow customization of max_tries, pin_tries & extension_tries
3. Add fallback_destination - fall to it if caller did not entered extension number
4. Allow custom digit_timeout
This scenario was broken:
A ring group member forwards their phone to a destination. The destination is an external number and the outbound route had a toll_allow condition.
This error would be generated: [ERR] switch_cpp.cpp:1376 [route_to_bridge] Unsupportded condition: ${toll_allow}
This PR will get the toll_allow values from the RG member that is forwarding their phone. Then it will pass it to 'route_to_bridge.lua'.
* 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 MWI for Extensions that with 0
MWI was not turning off after messages were deleted for extensions that start with 0. This requires that real voicemail_id to be pulled from the database and not just taken from the destination number. To get around this we try to send mwi to the original vociemail_id (destination number) and voicemail_id_copy (from database). Index.lua is already doing something similar.
* Update listen_to_recording.lua
* Update menu_messages.lua
when debug["xml_string"] is on, it will overwrite /tmp/ivr.conf.xml file each hit an ivr goes. this makes very hard to trouble shoot in a living system. this patch allows to put one ivr menu per file.
* Add sendevent when using file caching
* Create clear_cache.lua
FS receives a command via curl to call this script which deletes the single cache entry or flushes the entire cache.
* Create file_cache.lua
This scripts monitors for custom events. When an event is processed it will send out a command via curl to other FS servers telling them to clear their cache.
This must be called from conf/autoload_configs/lua.conf.xml
<param name="startup-script" value="app/server/resources/memcache.lua"/>
Search all profiles for the sofia_contact. For some reason on server it would automatically search all profiles, but on the other servers I had to add "*/".
Break the ring group query into two parts. One for getting the ring group info. Another for getting the ring group user.
If a user was not assigned to a ring group, then the query will fail to return a result. This will cause forward, prefix, distinctive ring, etc to not work properly.
* Update index.lua
Store password complexity settings as variables.
* Update macro.lua
Add macros for "password is below minimum length" and "password is not secure"
* Update change_password.lua
Adds the ability to check for password complexity and minimum length.
Also, fixes a bug where the password was changed if the caller hung up in the middle of changing their password.
* 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>`
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.
Had an issue with malformed email confirmation where the number_dialed was showing up with a bunch of random repeating strings after it. This resolved it for me. Also fixed a grammar error.
* Merge (#4)
* Added variables to disable call waiting and t.38 faxing
* HT702 config file variables: grandstream_disable_call_waiting, grandstream_disable_fax_t38
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update app_config.php
* Corrected bug with expansion board and call park value. Was 19, should be 16.
* MAC detection for some Grandstream phones (#2486)
Some GS models send the Mac address in the user agent
* Add/Update German and Austrian translations (#2483)
Updates to the following apps:
call_broadcast
call_flows
devices
dialplan_inbound
dialplan_outbound
edit
emails
exec
extensions
fax
fifo
fifo_list
gateways
ivr_menus
* Update destinations.php
* Update xml_cdr_inc.php
* Update status_registrations.php
* Update y000000000028.cfg
* Update y000000000066.cfg
* Update y000000000035.cfg
* Update y000000000065.cfg
* Update y000000000051.cfg
* Update y000000000023.cfg
* Update y000000000025.cfg
* Update y000000000029.cfg
* Update y000000000036.cfg
* Update y000000000038.cfg
* Update y000000000032.cfg
* Update y000000000046.cfg
* Update y000000000000.cfg
* Update y000000000054.cfg
* Update y000000000045.cfg
* Update y000000000069.cfg
* Update y000000000004.cfg
* Update y000000000044.cfg
* Update y000000000044.cfg
* Update y000000000005.cfg
* Update y000000000052.cfg
* Update y000000000007.cfg
* Update y000000000037.cfg
* BugFix for VM Transcription (#2491)
Records as MP3 and skips transcription steps if a user has transcription set to false.
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Yet another ip phone reporting MAC in the UserAgent (#2492)
* Update app_config.php
Begin adding uuid's for key functions.
* Update app_config.php
* Update app_config.php
* Update app_config.php
* Update app_config.php
* Update app_config.php
* Update app_config.php
* Create 560_extension_queue.xml
* Update y000000000037.cfg
* Update y000000000007.cfg
* Update app_config.php
* Update y000000000052.cfg
* Update y000000000028.cfg
* Update y000000000005.cfg
* Update y000000000044.cfg
* Update y000000000044.cfg
* Update y000000000004.cfg
* Update y000000000069.cfg
* Update y000000000045.cfg
* Update y000000000000.cfg
* Update y000000000046.cfg
* Update y000000000032.cfg
* Update y000000000038.cfg
* Update y000000000054.cfg
* Update y000000000036.cfg
* Update y000000000029.cfg
* Update y000000000066.cfg
* Update y000000000035.cfg
* Update y000000000065.cfg
* Update y000000000051.cfg
* Update y000000000023.cfg
* Update y000000000025.cfg
* Update app_config.php
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update app_config.php
* Fix. Add new sip profile setting. (#2500)
* BugFix [master] system information git (#2499)
fix for if the .git folder is present but corrupt
* 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.
* Restore Button + Audiocodes preliminary support (#2502)
* Audiocodes phone support + restore default for vendors
* Restore button
* Restore script
* Update device_vendors.php
* Some FR & ES translation fixes (#2503)
* Update app_config.php
* Update app_config.php
* Create {$mac}.cfg
* Create directory.xml
* Create favorite_setting.xml
* Create y000000000025.cfg
* Fix. Add extension with non numeric extension number. (#2508)
* Update ring_group_edit.php
* Update call_edit.php
* Create 080_default_caller_id
* Update 080_default_caller_id
* Rename 080_default_caller_id to 080_default_caller_id.xml
* Fix. Create needed number of extensions (#2509)
* Update dialplan_edit.php
* Update switch.php
* Update index.php
* Update switch.php
* Update voicemail_edit.php
* Update app_config.php (#2515)
Add the necessary permissions in order to use the database save function (fusion 4.3) when coding for voicemail option adds/deletes/updates.
I realize these voicemail permissions overall will probably get cleaned up even more once the whole app is updated to use the database function, but this is a stop gap measure. I am working on adding voicemail options to the Bulk Account Settings app and I'm stuck without these permissions. The function is kicking a out 403 Forbidden.
* Update app_config.php
* Really use configured transcribe_language for transcription (#2513)
* Fix renaming domains (#2512)
* Make presence for conferences work out of the box (#2514)
Use '@' instead of '-' for separating conference name and domain, which
is what FreeSWITCH mod_conference uses.
* 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.
* Fixup for renaming domains (#2517)
The previous fix was incomplete, this one should do it.
* Create app_defaults.php
* Update page.lua
* CC Key Support for Call Center (#2518)
* Exit Keys support
* Multilanguage support
* CC Key Support
* Update call_center.php
* 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`
* Update index.lua
* Update start_recording.lua
* Merge (#4)
* Added variables to disable call waiting and t.38 faxing
* HT702 config file variables: grandstream_disable_call_waiting, grandstream_disable_fax_t38
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update {$mac}.cfg
* Update app_config.php
* Corrected bug with expansion board and call park value. Was 19, should be 16.
* MAC detection for some Grandstream phones (#2486)
Some GS models send the Mac address in the user agent
* Add/Update German and Austrian translations (#2483)
Updates to the following apps:
call_broadcast
call_flows
devices
dialplan_inbound
dialplan_outbound
edit
emails
exec
extensions
fax
fifo
fifo_list
gateways
ivr_menus
* Update destinations.php
* Update xml_cdr_inc.php
* Update status_registrations.php
* Update y000000000028.cfg
* Update y000000000066.cfg
* Update y000000000035.cfg
* Update y000000000065.cfg
* Update y000000000051.cfg
* Update y000000000023.cfg
* Update y000000000025.cfg
* Update y000000000029.cfg
* Update y000000000036.cfg
* Update y000000000038.cfg
* Update y000000000032.cfg
* Update y000000000046.cfg
* Update y000000000000.cfg
* Update y000000000054.cfg
* Update y000000000045.cfg
* Update y000000000069.cfg
* Update y000000000004.cfg
* Update y000000000044.cfg
* Update y000000000044.cfg
* Update y000000000005.cfg
* Update y000000000052.cfg
* Update y000000000007.cfg
* Update y000000000037.cfg
* BugFix for VM Transcription (#2491)
Records as MP3 and skips transcription steps if a user has transcription set to false.
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Yet another ip phone reporting MAC in the UserAgent (#2492)
* Update app_config.php
Begin adding uuid's for key functions.
* Update app_config.php
* Update app_config.php
* Update app_config.php
* Update app_config.php
* Update app_config.php
* Update app_config.php
* Create 560_extension_queue.xml
* Update y000000000037.cfg
* Update y000000000007.cfg
* Update app_config.php
* Update y000000000052.cfg
* Update y000000000028.cfg
* Update y000000000005.cfg
* Update y000000000044.cfg
* Update y000000000044.cfg
* Update y000000000004.cfg
* Update y000000000069.cfg
* Update y000000000045.cfg
* Update y000000000000.cfg
* Update y000000000046.cfg
* Update y000000000032.cfg
* Update y000000000038.cfg
* Update y000000000054.cfg
* Update y000000000036.cfg
* Update y000000000029.cfg
* Update y000000000066.cfg
* Update y000000000035.cfg
* Update y000000000065.cfg
* Update y000000000051.cfg
* Update y000000000023.cfg
* Update y000000000025.cfg
* Update app_config.php
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update {$mac}.xml
* Update app_config.php
* Fix. Add new sip profile setting. (#2500)
* BugFix [master] system information git (#2499)
fix for if the .git folder is present but corrupt
* 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.
* Restore Button + Audiocodes preliminary support (#2502)
* Audiocodes phone support + restore default for vendors
* Restore button
* Restore script
* Update device_vendors.php
* Some FR & ES translation fixes (#2503)
* Update app_config.php
* Update app_config.php
* Create {$mac}.cfg
* Create directory.xml
* Create favorite_setting.xml
* Create y000000000025.cfg
* Fix. Add extension with non numeric extension number. (#2508)
* Update ring_group_edit.php
* Update call_edit.php
* Create 080_default_caller_id
* Update 080_default_caller_id
* Rename 080_default_caller_id to 080_default_caller_id.xml
* Fix. Create needed number of extensions (#2509)
* Update dialplan_edit.php
* Update switch.php
* Update index.php
* Update switch.php
* Update voicemail_edit.php
* Update app_config.php (#2515)
Add the necessary permissions in order to use the database save function (fusion 4.3) when coding for voicemail option adds/deletes/updates.
I realize these voicemail permissions overall will probably get cleaned up even more once the whole app is updated to use the database function, but this is a stop gap measure. I am working on adding voicemail options to the Bulk Account Settings app and I'm stuck without these permissions. The function is kicking a out 403 Forbidden.
* Update app_config.php
* Really use configured transcribe_language for transcription (#2513)
* Fix renaming domains (#2512)
* Make presence for conferences work out of the box (#2514)
Use '@' instead of '-' for separating conference name and domain, which
is what FreeSWITCH mod_conference uses.
* 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.
* Fixup for renaming domains (#2517)
The previous fix was incomplete, this one should do it.
* Create app_defaults.php
* Update page.lua
* CC Key Support for Call Center (#2518)
* Exit Keys support
* Multilanguage support
* CC Key Support
* Update call_center.php
* 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`
* Update app_config.php
* Update app_languages.php
* Update ring_group_edit.php
* Update index.lua
* 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.
I really don't know if this is an IP phone issue (tested on grandstream) or a new behavior on FreeSWITCH, but in order to add the prefix to the caller id (name or number) correctly, you need to export instead of set.
* Update macro.lua
Add additional macros for the tutorial.
* Create tutorial.lua
* Update index.lua
* Update record_greeting.lua
Add menu variable to route back to appropriate place in the flow.
* Update record_menu.lua
Add menu variable to accommodate the tutorial.
* Update change_password.lua
Add menu variable to accommodate the tutorial.
* Update record_name.lua
Add menu variable to accommodate the tutorial.
* Update voicemail_edit.php
Add option to play tutorial on next login.
* Update app_languages.php
* Update app_config.php
Add voicemail_tutorial to database.
* Update extension_edit.php
Set "voicemail_tutorial" to true for new extensions.
Please do further testing/review and give comments and suggest cleanup, etc.
This bug is only tripped if all of the following are true:
a) fax send fails
b) email notification of fax failure also fails
c) Other?
how to test
- have a 100% working fax to email setup.
- Change Advanced->defaults->email and set the port to be something invalid.
- e.g. smtp port 9999 is invalid
- send a test fax to something without a fax
- e.g. I just faxed my own DID which does NOT have fax answering
- each time the phone rings answer...wait 5 seconds, and then hang up
- note: it will retry sending the fax 5 times so repeat the above.
- on the last try it will give up, and try to send the failure email
- the email will fail (bad port) and then it will insert the failed email into v_emails
- the insert will fail and nothing in v_emails
Error was caused by trying to insert '' into the domain_uuid field.
'' is invalid in a uuid field, but null is okay.
The null is caused by no x-headers being passed. So these two fields end up null:
$headers["X-FusionPBX-Domain-UUID"]
$headers["X-FusionPBX-Email-Type"]
Ignoring unset/uninitialized variables hides bugs.
Fix: feed the X-Header in the calling lua code.
Requires that you have fusionpbx-apps/sms
Doesn’t impact anything if you don’t have it. Must be enabled with
default_setting voicemail_to_sms
Everything is disabled by default and the fields in voicemail_edit.php
are hidden by default.
* 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.
When saving Caller ID numbers which are in E-164 format these may include a '/' prefix used to escape '+'. This causes the '/' to be saved with the number which prevents the call from being returned.
The above fixes the issue by removing '/' prefix from the start of the Caller ID number before saving the voicemail message.
* 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
Expected result: The person at extension XXX is unavailable ...
Actual result: The person at is unavailable...
i.e. it doesn't say the extension number.
bug: trying to access local variable voicemail_greet_id outside it's scope...so it doesn't exist and you get this in the logs:
2016-09-18 12:32:54.615249 [ERR] switch_cpp.cpp:977 Error! invalid args.
Fix moves local variable creation outside the inner "if" so it's available for the later table.insert
Moved the UPDATE sip request to the end as it was sending the UPDATE request sometimes before the ACK had been received to the 200OK. This was sometimes causing it to fail.
Also removed a couple of commented out lines.