* [call_center] Stop uuid_broadcast on answer
* [mod_callcenter] Fix stale members in database
When a channel is originated to an agent but the
member fails to bridge to that agent, the database is
not updated with the member status and a stale entry
of 'Answered' persists until mod_callcenter is restarted.
Additionally, cc_agent_found is set before the bridge,
therefore ending the while loop on the member channel.
If there is a problem with the agent bridge, the call is
terminated prematurely.
In this commit, we:
* Move the SQL update of the member
to the 'Answered' state to the agent thread instead of
the member's thread, so that correct data is populated.
* Reset the members state accordingly to Abandoned or
Waiting if the channels fail to bridge.
* Use cc_agent_bridged to end the member loop,
so that a member is put back on queue if the agent
channel fails to bridge.
In mod_cidlookup and several other modules, config parameters
are read from external XML files using the SWITCH_CONFIG_ITEM_STRING_STRDUP
method. These items do not have string_options, and are not freed
with switch_xml_config_cleanup. We therefore need to call switch_safe_free
for config without string_options. We also add switch_xml_config_cleanup
to mod_cidlookup. There are other modules that may be affected but this
commit makes no attempt at fixing those.
Fixes#1752
Without these -- especially activate() -- stateful plugins will not be
set up correctly.
For example, the low-pass filter "lpf" in the CMT library may produce
a pop when starting since its state is not zeroed out.
`globals` was getting initialized to null after `switch_event_bind_removable` binding causing `globals.nodes` to get set to NULL causing `switch_event_unbind` not to be able to unbind the SWITCH_EVENT_PRESENCE_PROBE event when unloading the module. Besides not being able to unbind the event, this was also causing a segfault upon receiving a PRESENCE_PROBE event when unloading or reloading the module
adds a check on startup for global variable disable_system_app_commands. if the
global variable is set to true, the system and bgsystem dialplan apps will not
have their app_interface loaded via SWITCH_ADD_APP() leaving them effectively
disabled at run time.