mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	Merged revisions 244393 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r244393 | tilghman | 2010-02-02 14:32:29 -0600 (Tue, 02 Feb 2010) | 18 lines Properly respect GOSUB_RESULT as to what to do with the master channel. Previously, we would parse GOSUB_RESULT, but not actually do anything with it. (closes issue #16686) Reported by: bklang Patches: app_dial-respect-gosub_result.patch uploaded by bklang (license 919) (with modifications) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@244394 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -1950,23 +1950,23 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags | |||||||
| 				if (!strcasecmp(gosub_result, "BUSY")) { | 				if (!strcasecmp(gosub_result, "BUSY")) { | ||||||
| 					ast_copy_string(pa.status, gosub_result, sizeof(pa.status)); | 					ast_copy_string(pa.status, gosub_result, sizeof(pa.status)); | ||||||
| 					ast_set_flag64(peerflags, OPT_GO_ON); | 					ast_set_flag64(peerflags, OPT_GO_ON); | ||||||
| 					res9 = -1; | 					res = -1; | ||||||
| 				} else if (!strcasecmp(gosub_result, "CONGESTION") || !strcasecmp(gosub_result, "CHANUNAVAIL")) { | 				} else if (!strcasecmp(gosub_result, "CONGESTION") || !strcasecmp(gosub_result, "CHANUNAVAIL")) { | ||||||
| 					ast_copy_string(pa.status, gosub_result, sizeof(pa.status)); | 					ast_copy_string(pa.status, gosub_result, sizeof(pa.status)); | ||||||
| 					ast_set_flag64(peerflags, OPT_GO_ON); | 					ast_set_flag64(peerflags, OPT_GO_ON); | ||||||
| 					res9 = -1; | 					res = -1; | ||||||
| 				} else if (!strcasecmp(gosub_result, "CONTINUE")) { | 				} else if (!strcasecmp(gosub_result, "CONTINUE")) { | ||||||
| 					/* hangup peer and keep chan alive assuming the macro has changed | 					/* hangup peer and keep chan alive assuming the macro has changed | ||||||
| 					   the context / exten / priority or perhaps | 					   the context / exten / priority or perhaps | ||||||
| 					   the next priority in the current exten is desired. | 					   the next priority in the current exten is desired. | ||||||
| 					*/ | 					*/ | ||||||
| 					ast_set_flag64(peerflags, OPT_GO_ON); | 					ast_set_flag64(peerflags, OPT_GO_ON); | ||||||
| 					res9 = -1; | 					res = -1; | ||||||
| 				} else if (!strcasecmp(gosub_result, "ABORT")) { | 				} else if (!strcasecmp(gosub_result, "ABORT")) { | ||||||
| 					/* Hangup both ends unless the caller has the g flag */ | 					/* Hangup both ends unless the caller has the g flag */ | ||||||
| 					res9 = -1; | 					res = -1; | ||||||
| 				} else if (!strncasecmp(gosub_result, "GOTO:", 5) && (gosub_transfer_dest = ast_strdupa(gosub_result + 5))) { | 				} else if (!strncasecmp(gosub_result, "GOTO:", 5) && (gosub_transfer_dest = ast_strdupa(gosub_result + 5))) { | ||||||
| 					res9 = -1; | 					res = -1; | ||||||
| 					/* perform a transfer to a new extension */ | 					/* perform a transfer to a new extension */ | ||||||
| 					if (strchr(gosub_transfer_dest, '^')) { /* context^exten^priority*/ | 					if (strchr(gosub_transfer_dest, '^')) { /* context^exten^priority*/ | ||||||
| 						replace_macro_delimiter(gosub_transfer_dest); | 						replace_macro_delimiter(gosub_transfer_dest); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user