- Used api_on_answer so that the recording only starts when the call is answered. Should save diskspace and prevent the need for using action: ringback.
- Added 'both,self' to the end of the bind_digit_action to fix inbound call mask.
Sometimes you can have multiple registrations for the same extension across multiple SIP profiles. This adds the functionality to fire an event for each unique SIP profile. I also added a check to see if we have already send an event for a profile since you don't want multiple events fired one SIP profile.
Context and domain are usually the same but there could be times that they are different. However code is always using the domain name for the cache key.
In troubleshooting a known FreeSwitch bug with mod_callcenter, I started to try out mod_fifo as an alternative. I realized that the dialplan that was being created by Fusion was not working. Creating a queue is very simple so I knew it wasn't a user error on my part so I dug in deeper. There were a few issues I needed to fix to get queues working again.
1. Add a "break on-true" to each condition destination_number (it was changed in two places)
2. populate the "action" for callers entering the queue via the $agent_queue_extension_number
3. remove the appended "_agent" which was added to the $queue_name which was causing the queue for entering and retrieving calls different.
4. remove the inline="true" for the action that executes the lua script
I also fixed the example comments to be accurate to how the queues should be written in the dialplan.
This is a dialplan approach to fix the feature key sync loop/race with yealink phones. This aproach may also need to be extended to the Call Forward dialplans as well. It limits the number of simultaneous calls for a particular user to change their DND/Forwarding status to a single call at a time. This prevents the infinite loops that the yealinks can get into if the user presses the DND button too quickly with feature key sync enabled.
I am also reverting the lua fix because it was not reliable and can still easily allow the loop to occur.
This variable should be optional as it can be defined in other places as well. It should not be assumed that this is the only place it could be set for those that need it.