asterisk/res
Scott Griepentrog 388d691f34 stasis transfer: fix stasis bridge push race part two
When swapping a Local channel in place of one already
in a bridge (to complete a bridge attended transfer),
the channel that was swapped out can actually be hung
up before the stasis bridge push callback executes on
the independant transfer thread.  This results in the
stasis app loop dropping out and removing the control
that has the the app name which the local replacement
channel needs so it can re-enter stasis.

To avoid this race condition a new push_peek callback
has been added, and called from the ast_bridge_impart
thread before it launches the independant thread that
will complete the transfer.  Now the stasis push_peek
callback can copy the stasis app name before the swap
channel can hang up.

ASTERISK-24649
Review: https://reviewboard.asterisk.org/r/4382/
........

Merged revisions 431450 from http://svn.asterisk.org/svn/asterisk/branches/13


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@431451 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2015-01-29 23:03:14 +00:00
..
ael core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
ari ARI: Improve wiki documentation 2015-01-27 17:21:03 +00:00
parking res_parking: Fix crash due to race condition when unloading. 2015-01-27 11:47:57 +00:00
res_pjsip Allow disabling of 100rel support on PJSIP endpoints. 2015-01-29 21:20:07 +00:00
snmp CHANNEL(peer), chan_iax2, res_fax, SNMP agent: Fix deadlock from reaching across a bridge. 2015-01-20 16:59:30 +00:00
stasis stasis transfer: fix stasis bridge push race part two 2015-01-29 23:03:14 +00:00
stasis_recording ari: Add a copy operation for stored recordings 2014-07-18 21:48:46 +00:00
Makefile ARI: Implement /recordings/stored API's 2013-08-30 13:28:50 +00:00
ari.make ARI: Add mailboxes resource for controlling and polling external MWI 2014-01-14 23:44:57 +00:00
res_adsi.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ael_share.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ael_share.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_agi.c res/res_agi: Make Verbose message for 'stream file' match other playbacks 2014-12-12 22:54:02 +00:00
res_agi.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_ari.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari.exports.in Rename everything Stasis-HTTP to ARI 2013-07-27 23:11:02 +00:00
res_ari_applications.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_asterisk.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_bridges.c ARI: Improve wiki documentation 2015-01-27 17:21:03 +00:00
res_ari_channels.c Investigate and fix memory leaks in Asterisk 2015-01-23 15:21:56 +00:00
res_ari_device_states.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_endpoints.c Investigate and fix memory leaks in Asterisk 2015-01-23 15:21:56 +00:00
res_ari_events.c Investigate and fix memory leaks in Asterisk 2015-01-23 15:21:56 +00:00
res_ari_mailboxes.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_model.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_model.exports.in Rename everything Stasis-HTTP to ARI 2013-07-27 23:11:02 +00:00
res_ari_playbacks.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_recordings.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_sounds.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_calendar.c ast_str: Fix improper member access to struct ast_str members. 2014-11-19 17:22:29 +00:00
res_calendar.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_calendar_caldav.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_calendar_ews.c res_calendar_ews: Relax neon version check to work with 0.30 too. 2014-10-12 07:47:52 +00:00
res_calendar_exchange.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_calendar_icalendar.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_chan_stats.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_clialiases.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_clioriginate.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
res_config_curl.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_config_ldap.c core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
res_config_odbc.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_config_pgsql.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_config_sqlite.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_config_sqlite3.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_convert.c Merged revisions 328247 via svnmerge from 2011-07-14 20:28:54 +00:00
res_corosync.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
res_crypto.c Fix printf problems with high ascii characters after r413586 (1.8). 2014-12-17 10:23:32 +00:00
res_crypto.exports.in Remove built-in AES code and use optional_api instead 2010-07-21 19:11:32 +00:00
res_curl.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_fax.c Fix typo's (retrieve, specified, address). 2015-01-23 15:13:08 +00:00
res_fax.exports.in res_fax: Provide AMI equivalents for fax CLI commands 2014-07-18 15:49:46 +00:00
res_fax_spandsp.c res_fax.c, res_fax_spandsp.c: Remove redundant locking. 2015-01-15 17:36:37 +00:00
res_format_attr_celt.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_format_attr_h263.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_format_attr_h264.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_format_attr_opus.c media formats: update res_format_attr_opus & silk 2015-01-28 12:19:28 +00:00
res_format_attr_silk.c media formats: update res_format_attr_opus & silk 2015-01-28 12:19:28 +00:00
res_hep.c res_hep: fix major leak that occurs when config is missing or enabled=no. 2014-11-06 09:24:26 +00:00
res_hep.exports.in res_hep/res_hep_pjsip: Add a HEPv3 capture agent module and a logger for PJSIP 2014-03-28 18:32:50 +00:00
res_hep_pjsip.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_hep_rtcp.c res/res_hep_rtcp: Remove dependency on PJSIP 2014-08-14 21:16:32 +00:00
res_http_post.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_http_websocket.c res_http_websocket.c: Fix incorrect use of sizeof in ast_websocket_write(). 2014-12-19 20:56:12 +00:00
res_http_websocket.exports.in res_http_websocket: Export symbol for ast_websocket_set_timeout 2014-06-26 18:27:53 +00:00
res_jabber.exports.in Fix chan_jingle/gtalk load regression introduced in r346087 2011-12-05 14:47:11 +00:00
res_limit.c Doxygen Updates - Title update 2012-10-14 21:44:27 +00:00
res_manager_devicestate.c Revert -r430452 It needs to be redone for the next major AMI version change instead. 2015-01-12 18:09:27 +00:00
res_manager_presencestate.c Revert -r430452 It needs to be redone for the next major AMI version change instead. 2015-01-12 18:09:27 +00:00
res_monitor.c res/res_monitor: Reset in/out sample counts on Monitor start 2014-12-06 18:16:49 +00:00
res_monitor.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_musiconhold.c musiconhold: Add preferchannelclass=no option to prefer app class. 2014-09-25 20:49:04 +00:00
res_mutestream.c Fix dialplan function NULL channel safety issues 2014-03-27 19:21:44 +00:00
res_mwi_external.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_mwi_external.exports.in External MWI core support. 2014-01-06 17:45:25 +00:00
res_mwi_external_ami.c Revert -r430452 It needs to be redone for the next major AMI version change instead. 2015-01-12 18:09:27 +00:00
res_odbc.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_odbc.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_parking.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_phoneprov.c res/res_phoneprov: Fix crash on shutdown caused by container cleanup 2014-10-27 02:27:56 +00:00
res_phoneprov.exports.in res_phoneprov: Refactor phoneprov to allow pluggable config providers 2014-10-09 17:46:23 +00:00
res_pjsip.c Use SIPS URIs in Contact headers when appropriate. 2015-01-29 21:02:23 +00:00
res_pjsip.exports.in res_pjsip: AMI commands and events. 2013-11-23 17:26:57 +00:00
res_pjsip_acl.c PJSIP ACLs: Fix ACLs not loading on startup and apply/acl issues on contact 2014-11-20 16:25:19 +00:00
res_pjsip_authenticator_digest.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_caller_id.c res_pjsip: Add 'user_eq_phone' option to add a 'user=phone' parameter when applicable. 2014-10-17 11:30:23 +00:00
res_pjsip_config_wizard.c Add depend on pjproject to res_pjsip_config_wizard.c 2015-01-23 18:46:09 +00:00
res_pjsip_dialog_info_body_generator.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_diversion.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_dtmf_info.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_endpoint_identifier_anonymous.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_endpoint_identifier_ip.c res_pjsip_endpoint_identifier_ip: Add 'show identify(ies)' cli commands 2014-12-02 00:31:49 +00:00
res_pjsip_endpoint_identifier_user.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_exten_state.c res_pjsip_exten_state: Reduce log clutter... change a WARNING to a VERBOSE/2 2015-01-29 16:47:28 +00:00
res_pjsip_exten_state.exports.in The large GULP->PJSIP renaming effort. 2013-07-30 18:14:50 +00:00
res_pjsip_header_funcs.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_keepalive.c res_pjsip_keepalive: Add runtime configurable keepalive module for connection-oriented transports. 2014-10-17 13:17:58 +00:00
res_pjsip_log_forwarder.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_pjsip_logger.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_messaging.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_multihomed.c res_pjsip / res_pjsip_multihomed: Use the correct transport and addressing information on UAS sessions. 2015-01-19 13:19:11 +00:00
res_pjsip_mwi.c Investigate and fix memory leaks in Asterisk 2015-01-23 15:21:56 +00:00
res_pjsip_mwi_body_generator.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_nat.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_notify.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_one_touch_record_info.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_outbound_authenticator_digest.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_outbound_publish.c Prevent slow graceful shutdown when outbound publications never started. 2015-01-14 20:39:01 +00:00
res_pjsip_outbound_publish.exports.in res_pjsip_outbound_publish: Add module which provides outbound PUBLISH support. 2014-08-07 14:35:09 +00:00
res_pjsip_outbound_registration.c res_pjsip_outbound_registration: Fix reload race condition. 2015-01-28 04:29:23 +00:00
res_pjsip_path.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_phoneprov_provider.c res_pjsip_phoneprovi_provider: Fix reload 2014-12-22 00:17:49 +00:00
res_pjsip_pidf_body_generator.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_pidf_digium_body_supplement.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_pidf_eyebeam_body_supplement.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_publish_asterisk.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_pubsub.c Investigate and fix memory leaks in Asterisk 2015-01-23 15:21:56 +00:00
res_pjsip_pubsub.exports.in res_pjsip_publish_asterisk: Add support for exchanging device and mailbox state using SIP. 2014-08-07 14:37:26 +00:00
res_pjsip_refer.c Fix ability to perform a remote attended transfer with PJSIP. 2015-01-07 17:45:56 +00:00
res_pjsip_registrar.c Revert -r430452 It needs to be redone for the next major AMI version change instead. 2015-01-12 18:09:27 +00:00
res_pjsip_registrar_expire.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_rfc3326.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_sdp_rtp.c Fix file descriptor leak in RTP code. 2015-01-28 17:42:48 +00:00
res_pjsip_send_to_voicemail.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_session.c Fix file descriptor leak in RTP code. 2015-01-28 17:42:48 +00:00
res_pjsip_session.exports.in res_pjsip_session: Delay sending BYE if a re-INVITE transaction is in progress. 2014-12-12 13:06:24 +00:00
res_pjsip_sips_contact.c Use SIPS URIs in Contact headers when appropriate. 2015-01-29 21:02:23 +00:00
res_pjsip_t38.c Fix file descriptor leak in RTP code. 2015-01-28 17:42:48 +00:00
res_pjsip_transport_websocket.c res_http_websocket: Fix crash due to double freeing memory when receiving a payload length of zero. 2014-12-10 13:35:52 +00:00
res_pjsip_xpidf_body_generator.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pktccops.c Fix printf problems with high ascii characters after r413586 (1.8). 2014-12-17 10:23:32 +00:00
res_pktccops.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_realtime.c Cleanup references to sipusers and sipfriends dynamic realtime families 2011-11-01 19:53:26 +00:00
res_rtp_asterisk.c res_rtp_asterisk: Fix DTLS when used with OpenSSL 1.0.1k 2015-01-29 12:09:58 +00:00
res_rtp_multicast.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_security_log.c Multiple revisions 399887,400138,400178,400180-400181 2013-09-30 18:55:27 +00:00
res_smdi.c core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
res_smdi.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_snmp.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_sorcery_astdb.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_sorcery_config.c Sorcery: Log when old config remains in use 2014-12-12 14:04:06 +00:00
res_sorcery_memory.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_sorcery_realtime.c manager/config: Support templates and non-unique category names via AMI 2014-10-13 16:12:17 +00:00
res_speech.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_speech.exports.in app_speech_utils: Fix unresolved symbol ast_speech_get_setting(). 2013-09-16 18:00:32 +00:00
res_srtp.c res/res_srtp: Fix include issue for libsrtp 1.5.0 2014-10-27 01:47:56 +00:00
res_srtp.exports.in Add SRTP support for Asterisk 2010-06-08 05:29:08 +00:00
res_stasis.c Investigate and fix memory leaks in Asterisk 2015-01-23 15:21:56 +00:00
res_stasis.exports.in Moved core logic from app_stasis to res_stasis 2013-04-15 16:43:47 +00:00
res_stasis_answer.c ARI: Fix a crash caused by hanging during playback to a channel in a bridge 2014-08-22 16:52:51 +00:00
res_stasis_answer.exports.in Add missing exports file 2013-05-20 14:21:39 +00:00
res_stasis_device_state.c main/stasis: Allow subscriptions to use a threadpool for message delivery 2014-12-01 17:59:21 +00:00
res_stasis_device_state.exports.in ARI: Implement device state API 2013-11-23 17:48:28 +00:00
res_stasis_mailbox.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_stasis_mailbox.exports.in ARI: Add mailboxes resource for controlling and polling external MWI 2014-01-14 23:44:57 +00:00
res_stasis_playback.c ARI: Fix a crash caused by hanging during playback to a channel in a bridge 2014-08-22 16:52:51 +00:00
res_stasis_playback.exports.in This patch implements the REST API's for POST /channels/{channelId}/play 2013-05-23 20:11:35 +00:00
res_stasis_recording.c ARI: Fix a crash caused by hanging during playback to a channel in a bridge 2014-08-22 16:52:51 +00:00
res_stasis_recording.exports.in ARI - channel recording support 2013-07-03 17:58:45 +00:00
res_stasis_snoop.c res_stasis_snoop.c: Fix off nominial exit path leaving Snoop channel locked and not hungup. 2014-08-12 23:36:37 +00:00
res_stasis_snoop.exports.in ari: Add Snoop operation for spying/whispering on channels. 2013-11-23 12:40:46 +00:00
res_stasis_test.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
res_stasis_test.exports.in Initial support for endpoints. 2013-05-08 13:39:08 +00:00
res_statsd.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_statsd.exports.in Example of how to use the Stasis message bus 2013-04-26 20:05:15 +00:00
res_stun_monitor.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
res_timing_dahdi.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_timing_kqueue.c Various fixes for OS X 2015-01-26 14:50:40 +00:00
res_timing_pthread.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_timing_timerfd.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_xmpp.c main/stasis: Allow subscriptions to use a threadpool for message delivery 2014-12-01 17:59:21 +00:00
res_xmpp.exports.in Add a new unified Jingle, Google Jingle, and Google Talk channel driver written from scratch called chan_motif. 2012-07-07 17:06:51 +00:00