* Add warning_bar style for disabled fax sending
Add styles for .warning_bar class when fax server sending is disabled due to disabled domain.
* Disable fax sending if domain is disabled
When domain is disabled, users should not be able to send faxes either.
* Add text for fax sending disabled warning
* Add extension_effective_caller_id_name and extension_effective_caller_id_number
Adds 2 new variables to the user_exists dialplan:
* extension_caller_id_name
* extension_caller_id_number
This allows us to access these channel variables from the event socket and get the caller id name and number of the dialed extension when an inbound call comes in to that extension.
* Update 010_user_exists.xml
---------
Co-authored-by: FusionPBX <markjcrane@gmail.com>
* Fix fax_queue to Email PDF Instead of TIF
Variables `$fax_file_tif` and `$fax_file_pdf` are missing a period before the extension so file_exists is always evaluating to false. Thus, TIF was always sent. Adds the period back into the path so the check works correctly.
NOTE: `$fax_file_tif` is completely unused and can be removed from this code for cleanup.
* Use single quotes.
* Add db field to v_fax_queue to link to fax log
* Add fax_duration field to v_fax_logs
Add fax duration to db to allow for logging of this data for fax email templates.
* Add new email variables to fax send
* Fix some logging variables and fax_log_uuid
Added back some missing session variables for the fax log.
Also update the email queue db field with the fax_log_uuid to allow us to add variables to the fax email templates later.
* Update hangup_tx.lua
* Update deprecated sip profile params
Parameter names have changed. See here: https://freeswitch.org/confluence/display/FREESWITCH/Sofia+Configuration+Files
When starting a profile, the following warnings would appear:
[WARNING] sofia.c:5332 rtp-hold-timeout-sec deprecated use media_hold_timeout variable.
[WARNING] sofia.c:5325 rtp-timeout-sec deprecated use media_timeout variable.
Updating the parameters fixes the issue.
* Update external.xml.noload
Co-authored-by: FusionPBX <markjcrane@gmail.com>
* Update deprecated sip profile params
Parameter names have changed. See here: https://freeswitch.org/confluence/display/FREESWITCH/Sofia+Configuration+Files
When starting a profile, the following warnings would appear:
[WARNING] sofia.c:5332 rtp-hold-timeout-sec deprecated use media_hold_timeout variable.
[WARNING] sofia.c:5325 rtp-timeout-sec deprecated use media_timeout variable.
Updating the parameters fixes the issue.
* Update external-ipv6.xml.noload
Co-authored-by: FusionPBX <markjcrane@gmail.com>
* Update deprecated sip profile params
Parameter names have changed. See here: https://freeswitch.org/confluence/display/FREESWITCH/Sofia+Configuration+Files
When starting a profile, the following warnings would appear:
[WARNING] sofia.c:5332 rtp-hold-timeout-sec deprecated use media_hold_timeout variable.
[WARNING] sofia.c:5325 rtp-timeout-sec deprecated use media_timeout variable.
Updating the parameters fixes the issue.
* Update internal-ipv6.xml.noload
Co-authored-by: FusionPBX <markjcrane@gmail.com>
* Update deprecated sip profile params
Parameter names have changed. See here: https://freeswitch.org/confluence/display/FREESWITCH/Sofia+Configuration+Files
When starting a profile, the following warnings would appear:
[WARNING] sofia.c:5332 rtp-hold-timeout-sec deprecated use media_hold_timeout variable.
[WARNING] sofia.c:5325 rtp-timeout-sec deprecated use media_timeout variable.
Updating the parameters fixes the issue.
* Update internal.xml.noload
Co-authored-by: FusionPBX <markjcrane@gmail.com>
The accountcode variable is used in a dialstring later on and if it comes back nil for any reason, then the following error is thrown:
2022-07-22 16:19:11.524674 [ERR] mod_lua.cpp:202 /usr/share/freeswitch/scripts/app/follow_me/index.lua:396: attempt to concatenate global 'accountcode' (a nil value)
stack traceback:
/usr/share/freeswitch/scripts/app/follow_me/index.lua:396: in main chunk
/usr/share/freeswitch/scripts/app.lua:48: in main chunk
This completely breaks follow-me.
This code sets the accountcode variable to the domain name if it comes back nil during script execution, thus protecting the script from failing with an empty accountcode value in the db or query.
This change adds support for images of the current selected device on the device_edit.php page.
The images need to be stored with the provisioning templates in the following format:
* /yealink/t21p/t21p.jpg
Images loaded into the page without needing link to the direct path. This makes it possible to store images with the template and not need any form of nginx rewrite rule or any other changes.
The images are zoomable with pure CSS, no javascript required.
The announce sound previously required users to manually type in the full path of the announce sound. It has now been modified to be a hybrid dropdown which shows available recordings on the domain and also allows for the old text entry method (type in the path).
* Update app_languages.php
"At max no answer, then the agent's Status will changed to 'On Break'.";
* Update app_languages.php
* Update app_languages.php
Co-authored-by: FusionPBX <markjcrane@gmail.com>
I have been debugging slow loading on our CDR pages for the last few days now.
One issue that we have encountered is that currently as the page loads, it checks the filesystem for each file one at a time. In our case, we move recordings to object storage after 1 week, so each time we check for a file it passes api calls which take over 1 second each to return a result. This causes this page to not load at all for us in many cases.
Regardless, this current method is unnecessarily I/O intensive and really page load is probably not the time to be checking for each file one by one.
So this PR is the simplest solution - remove the check entirely. I would contend that the administrator should remove the record_path from the database if the file was removed so this should be acceptable.
This solves this particular issue for us, but would need feedback from others if not checking for files makes sense.
In some cases, this seems to speed up xml_cdr loading times by ~10x.
It appears one big cause of this is the final ORDER_BY statements are very slow in PostgreSQL for timestamp fields. Ordering by start_epoch field improves query execution time in a dramatic way and should result in the same ordering.
Added additional command line switches to the Ghostscript command which greatly improves the output quality and legibility of converted faxes.
Now using a simple threshold method - 75% threshold to determine if a pixel will be black or white.
Dithering is turned off completely.
Also switched to newer tiffg4 compression method.
Adds a bit of additional logic to allow the following variable to be set in dialplan:
agent_action
When set to login, this script will always log the agent in regardless of current state.
When set to logout, this script will always log the agent out regardless of current state.
When unset, original behavior is preserved.
The reason for adding this code is to allow us to create a dialplan that puts a user on DND at the same time as logging out the agent, and vice-versa.
Small change that attaches a pdf copy of the sent fax rather than the tif by replacing the extension in the file path.
PDF files are dramatically smaller and more user friendly than TIF files.
Adds ability to set the background to be a centered circular radial gradient
If the following is set: theme > background_radial_gradient > text
Then the radial gradient will be enabled. If not set, it will use linear gradient to preserve previous behavior.
This is going to sound really stupid but I have tested this extensively, submitted a Jira on it months ago (was told FS 1.6.20 was no longer supported) and it's still an issue. Please do not take my word for this and create a ring group to test the delay settings with a stopwatch and you should see the real vs set delay discrepancy.
In FreeSWITCH (both on 1.6.20 and 1.8.5) when sending leg_delay_start values, for whatever reason the actual time is double the value sent. The result of this is that if you send 1000ms as leg_delay_start the actual time the call will be delayed is 2000ms.
Because of this bad behavior, ring group delay settings end up being exactly double what is set. e.g. if you set 10s, you will have to wait 20s for the call to be initiated on leg b.
The easiest way to fix this behavior is to simply multiply leg_delay_start by half as much to get the right "real" delay time. Ugly, I know... I'm not sure if leg_delay_start value is passed elsewhere, I'm thinking this behavior may also be present in find me/follow me. If this gets accepted I will look for other locations where this behavior occurs and submit separate PRs if I find any other instances of this.
When setting call_block_matching, the setting was not being evaluated as true because it was looking for 'call block' group when the actual name is 'call_block'.
Adding the underscore fixes this small syntax issue and the setting works correctly.
Previously, if a bridge statement was written with prepended variables to be passed, the gateway name would not be parsed and replaced. Additionally, if multiple bridges were used in failover in a single bridge statement separated by a pipe, only the first would be parsed and replaced.
I noticed this after upgrade to FreeSWITCH 1.8.5 (from 1.6.20) which changed failover behavior with multiple separate bridge statements. When network returns 486 BUSY, it will proceed to second bridge statement, initiating a second call. To allow failover and not have this behavior, you must write a single statement and separate your failover bridges with a pipe, this change allows the UI to show all gateway names on the line once saved.
Examples:
{fax_use_ecm=on}sofia/gateway/99b1234c-667c-4b31-9d2f-31d4f396abfa/$1
=> {fax_use_ecm=on}sofia/gateway/Gateway_Name/$1
sofia/gateway/0e70e123-00fd-4f0c-b525-bc7f6283cfa1/$1|sofia/gateway/99b1234c-667c-4b31-9d2f-31d4f396abfa/1$1
=> sofia/gateway/Gateway_One/$1|sofia/gateway/Gateway_Two/1$1
New variables for the DP750 to allow the following settings:
$grandstream_repeater_mode_enable
(Enables or disables repeater mode on DP750 base)
$grandstream_hanging_group_mode
(Allows users to set hanging group mode (e.g. ring handsets at the same time, sequentially, etc.)
$grandstream_handset_X_line_Y_enable
(Allows setting of handset to line assignment)
Add the following advanced SIP variable. Disabling this allows Yealink phones to display the SIP error reason in the format sent by the carrier rather than Q.850 format e.g. "User Busy" rather than "NORMAL_CLEARING"
sip.call_fail_use_reason.enable = {$yealink_sip_call_fail_use_reason_enable}
When re-recording the extension voice mail name the new recorded name is appended to the old recorded name file. The new recorded name should replace the old recorded name.
When re-recording the extension voice mail name the new recorded name is appended to the old recorded name file. The new recorded name should replace the old recorded name.
Similar to #3472 needed to allow up to 48 extension to be selectable and editable on the device_edit page.
Additionally, fixed sorting issue so line numbers are correctly sorted sequentially (line number is stored as text field so needed to change cast in SQL query).