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.
With the current implementation, Phrases cannot be used in IVRs as streamfile.lua prevents keypresses from being passed back to the IVR. This fix makes a small change to the way phrases are stored and allows streamfile to be run without blocking IVR keypresses.
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.
Added and optional parameter, argv[2], to take a domain_uuid. This is to fix an issue where if two contact records exist with the same phone number, but in different domains, the CID lookup would always pick the same contact record irrespective of which domain the inbound number belonged to.
This patch adds BING (legacy) some extra fault tolerance support. For those who still use Bing, Bing sometimes fails
It adds another way, which I think it is easier and faster (Azure). Among the outstanding things it has; just configure the zone, and use Memcache to store the access token as per Azure documentation, it saves a query (faster). It also returns the most likely right transcription (digging in the JSON)
Two things:
1. Follow-me should only kick in when using "Enterprise". As it was written, follow-me was looked at for every strategy.
2. Follow-me destinations were writing to 'destinations[x]'. They should write to 'destinations[key]' so they rewrite the current destination that is being analyzed.
When bridge application ends with "originate_disposition: ALLOTTED_TIMEOUT" for example, the "missed call" feature doesn't work for ring group because of hangup hook isn't called. Should we just avoid using this channel variable or add additional processing at the end? Like for timeout action? I choose to call "missed" at the end of script. But may be we should add it to other places too?
* Make storage_path work
if storage_path was set, the script would fail. I have fixed it by removing the references to unset variables. I also made the recordings use the path.
* Update ivr.conf.lua
Add storage_path definition so storage_type of http_cache works correctly
* BLF of agent status "agent+username@domain.com
Add the ability to monitor the availability status of a call center agent with "agent+agentname@domain.com".
* Update index.lua
Send notify to blf with "agent+agentname@domain.com"
* Added a simple selfhosted voicemail transcription API client
* Minor logging cleanup
* Add some string escaping to handle transcription providers
* Add JSON handling (optional) to selfhosted API
If the message is too short then the result is nil.
Error occurs in this case: record_message.lua:97: attempt to index field 'results' (a nil value)
Added check if transcribe_json["results"] is nil.
* Added support for regular expressions in the numbers to be blocked.
Reduced the caching timeout, as the counter is only incremented when a call is blocked and the number is not cached.
* Added default sort order.
* Added option to switch on/off use of regular expression matching for pgsql and mysql.
* Added support for sqlite and updated default number match to "LIKE" as suggested by MafooUK on IRC.
* Selection of behavior (default [=], regex or like matching) is now done via the variable call_block_matching = regex|like|EMPTY - type text - in the Call Block section of Default Settings.
* Updated comment to match new matching.
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.
Changed SIP NOTIFY Event header for Grandstream phones to allow provisioning with out requiring a reboot of the device. Based on communication with a Grandstream support rep. Tested on Grandstream GXP2130 and GXP2160 models.