]> git.ipfire.org Git - thirdparty/asterisk.git/commit
HTTP: Stop accepting requests on final system shutdown.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 11 Feb 2015 17:48:10 +0000 (17:48 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 11 Feb 2015 17:48:10 +0000 (17:48 +0000)
commit340588c721fb7a8d03247b5ef86b31bca066af4b
treecb9b70c4e0fd714550d2a17faf3f5b46c5687016
parent69dc8f9ec2e7b0d24e83f216853c219c9c5acc37
HTTP: Stop accepting requests on final system shutdown.

There are three CLI commands to stop and restart Asterisk each.

1) core stop/restart now - Hangup all calls and stop or restart Asterisk.
New channels are prevented while the shutdown request is pending.

2) core stop/restart gracefully - Stop or restart Asterisk when there are
no calls remaining in the system.  New channels are prevented while the
shutdown request is pending.

3) core stop/restart when convenient - Stop or restart Asterisk when there
are no calls in the system.  New calls are not prevented while the
shutdown request is pending.

ARI has made stopping/restarting Asterisk more problematic.  While a
shutdown request is pending it is desirable to continue to process ARI
HTTP requests for current calls.  To handle the current calls while a
shutdown request is pending, a new committed to shutdown phase is needed
so ARI applications can deal with the calls until the system is fully
committed to shutdown.

* Added a new shutdown committed phase so ARI applications can deal with
calls until the final committed to shutdown phase is reached.

* Made refuse new HTTP requests when the system has reached the final
system shutdown phase.  Starting anything while the system is actively
releasing resources and unloading modules is not a good thing.

* Split the bridging framework shutdown to not cleanup the global bridging
containers when shutting down in a hurry.  This is similar to how other
modules prevent crashes on rapid system shutdown.

* Moved ast_begin_shutdown(), ast_cancel_shutdown(), and
ast_shutting_down().  You should not have to include channel.h just to
access these system functions.

ASTERISK-24752 #close
Reported by: Matthew Jordan

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

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@431696 65c4cc65-6c06-0410-ace0-fbb531ad65f3
apps/app_confbridge.c
channels/chan_sip.c
include/asterisk.h
include/asterisk/channel.h
main/asterisk.c
main/bridge.c
main/channel.c
main/http.c
res/res_pjsip/pjsip_options.c