mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-02 02:18:31 +00:00
channels/chan_sip: Don't send a BYE after final response when PBX thread fails
When Asterisk fails to start a PBX thread for a new channel - for example, when the maxcalls setting in asterisk.conf is exceeded - we currently send a final response, and then attempt to send a BYE request to the UA. Since that's all sorts of wrong, this patch fixes that by setting sipalreadygone on the sip_pvt such that we don't get stuck sending BYE requests to something that does not want it. Note that this patch is a slight modification of the one on ASTERISK-15434. For clarity, it explicitly calls sipalreadygone with the calls to transmit a final response. ASTERISK-21845 ASTERISK-15434 #close Reported by: Makoto Dei Tested by: Matt Jordan patches: sip-pbxstart-failed.patch uploaded by Makoto Dei (License 5027) ........ Merged revisions 432320 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432321 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -25806,11 +25806,13 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str
|
||||
|
||||
switch(result) {
|
||||
case AST_PBX_FAILED:
|
||||
sip_alreadygone(p);
|
||||
ast_log(LOG_WARNING, "Failed to start PBX :(\n");
|
||||
p->invitestate = INV_COMPLETED;
|
||||
transmit_response_reliable(p, "503 Unavailable", req);
|
||||
break;
|
||||
case AST_PBX_CALL_LIMIT:
|
||||
sip_alreadygone(p);
|
||||
ast_log(LOG_WARNING, "Failed to start PBX (call limit reached) \n");
|
||||
p->invitestate = INV_COMPLETED;
|
||||
transmit_response_reliable(p, "480 Temporarily Unavailable", req);
|
||||
|
Reference in New Issue
Block a user