asterisk/res
Richard Mudgett 68077634fe pjsip_options.c: Fix race condition stopping periodic out of dialog OPTIONS request.
The crash on the issues is a result of an invalid transport configuration
change when asterisk is restarted.  The attempt to send the qualify
request fails and we cleaned up.  However, the callback is also called
which results in a double unref of the objects involved.

* Put a wrapper around pjsip_endpt_send_request() to detect when the
passed in callback is called because of an error so callers can know to
not cleanup.

* Made send_request_cb() able to handle repeated challenges (Up to 10).

* Fix periodic endpoint qualify OPTIONS sched deletion race by avoiding
it.  The sched entry will no longer self stop and must be externally
stopped.

* Added REF_DEBUG description tags to struct sched_data in
pjsip_options.c.

* Fix some off-nominal ref leaks in schedule_qualify(),
qualify_and_schedule().

* Reordered pjsip_options.c module start/stop code to cleanup better on
error.

ASTERISK-24295 #close
Reported by: Rogger Padilla

Review: https://reviewboard.asterisk.org/r/3954/
........

Merged revisions 423866 from http://svn.asterisk.org/svn/asterisk/branches/12
........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@423868 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-09-24 18:35:47 +00:00
..
ael Remove many deprecated modules 2014-07-04 13:26:37 +00:00
ari Stasis: Add information to blind transfer event 2014-08-20 13:06:33 +00:00
parking Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
res_pjsip pjsip_options.c: Fix race condition stopping periodic out of dialog OPTIONS request. 2014-09-24 18:35:47 +00:00
snmp Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
stasis res_stasis: Don't play MoH to channels by default when added to holding bridges 2014-09-01 14:15:32 +00:00
stasis_recording ari: Add a copy operation for stored recordings 2014-07-18 21:48:46 +00:00
ari.make ARI: Add mailboxes resource for controlling and polling external MWI 2014-01-14 23:44:57 +00:00
Makefile ARI: Implement /recordings/stored API's 2013-08-30 13:28:50 +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 Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +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 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_channels.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_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 Multiple revisions 420089-420090,420097 2014-08-05 21:44:09 +00:00
res_ari_events.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_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 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.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 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_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 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_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 Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +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 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.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_spandsp: Properly handle cleanup before starting FAXes. 2014-09-18 16:24:48 +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 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_silk.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_hep.c res_hep: Remove disabling of modules 2014-08-11 13:57:53 +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 res_hep: Remove disabling of modules 2014-08-11 13:57:53 +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: Include query parameters in client connection requests. 2014-08-17 16:11:27 +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 manager: Add state list commands 2014-07-30 18:32:25 +00:00
res_manager_presencestate.c manager: Add state list commands 2014-07-30 18:32:25 +00:00
res_monitor.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_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 sort=randstart, and deprecate old stuff. 2014-09-14 15:41:58 +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 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.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 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.c pjsip_options.c: Fix race condition stopping periodic out of dialog OPTIONS request. 2014-09-24 18:35:47 +00:00
res_pjsip.exports.in res_pjsip: AMI commands and events. 2013-11-23 17:26:57 +00:00
res_pjsip_acl.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_authenticator_digest.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_caller_id.c CallerID: Fix parsing of malformed callerid 2014-08-27 15:39:35 +00:00
res_pjsip_dialog_info_body_generator.c res_pjsip_pubsub: Add some type safety when generating NOTIFY bodies. 2014-09-18 16:09:25 +00:00
res_pjsip_diversion.c Resolve race condition where channels enter dialplan application before media has been negotiated. 2014-09-02 20:29:58 +00:00
res_pjsip_dtmf_info.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_endpoint_identifier_anonymous.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_endpoint_identifier_ip.c res_pjsip_endpoint_identifier_ip: Fix parsing of match value with CIDR 2014-09-18 17:22:03 +00:00
res_pjsip_endpoint_identifier_user.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_exten_state.c res_pjsip_pubsub: Add some type safety when generating NOTIFY bodies. 2014-09-18 16:09:25 +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 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_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 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_messaging.c Multiple revisions 420089-420090,420097 2014-08-05 21:44:09 +00:00
res_pjsip_multihomed.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_mwi.c res_pjsip_pubsub: Add some type safety when generating NOTIFY bodies. 2014-09-18 16:09:25 +00:00
res_pjsip_mwi_body_generator.c res_pjsip_pubsub: Add some type safety when generating NOTIFY bodies. 2014-09-18 16:09:25 +00:00
res_pjsip_nat.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_notify.c res_pjsip_notify: Fix crash on unload/load and don't say the module doesn't exist on reload. 2014-09-19 19:51:50 +00:00
res_pjsip_one_touch_record_info.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_outbound_authenticator_digest.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_outbound_publish.c res_pjsip_outbound_publish: Add module which provides outbound PUBLISH support. 2014-08-07 14:35:09 +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 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_path.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_pidf_body_generator.c res_pjsip_pubsub: Add some type safety when generating NOTIFY bodies. 2014-09-18 16:09:25 +00:00
res_pjsip_pidf_digium_body_supplement.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_pidf_eyebeam_body_supplement.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_publish_asterisk.c res_pjsip_publish_asterisk: Add support for exchanging device and mailbox state using SIP. 2014-08-07 14:37:26 +00:00
res_pjsip_pubsub.c Add subscription state test events. 2014-09-18 18:56:54 +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 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_registrar.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_registrar_expire.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_rfc3326.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_sdp_rtp.c res_pjsip_sdp_rtp.c: Fix native formats containing formats that were not negotiated. 2014-09-19 17:16:32 +00:00
res_pjsip_send_to_voicemail.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_session.c res_pjsip_session: Fix usage of wrong memory pool when creating local SDP. 2014-09-16 12:12:36 +00:00
res_pjsip_session.exports.in The large GULP->PJSIP renaming effort. 2013-07-30 18:14:50 +00:00
res_pjsip_t38.c PJSIP: Prevent T38 framehook being put on wrong channel 2014-09-19 12:50:08 +00:00
res_pjsip_transport_websocket.c res_pjsip_transport_websocket: Fix crash when the Contact header is not a URI. 2014-09-03 14:05:58 +00:00
res_pjsip_xpidf_body_generator.c res_pjsip_pubsub: Add some type safety when generating NOTIFY bodies. 2014-09-18 16:09:25 +00:00
res_pktccops.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_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: Ensure that the thread terminating pj stuff is registered. 2014-09-17 18:06:06 +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 Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +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 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_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 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.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 Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_srtp.exports.in Add SRTP support for Asterisk 2010-06-08 05:29:08 +00:00
res_stasis.c res_stasis: Don't play MoH to channels by default when added to holding bridges 2014-09-01 14:15:32 +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 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_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 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_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 Multiple revisions 420089-420090,420097 2014-08-05 21:44:09 +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