mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	stasis/control.c: Set Hangup Cause to No Answer on Dial timeout
Other Dial operations (dial, app_dial) use Q.850 cause 19 when a dial timeout occurs, but the Dial command via ARI did not set an explicit reason. This resulted in a CANCEL with Normal Call Clearing and corresponding ChannelDestroyed. This change sets the hangup cause to AST_CAUSE_NO_ANSWER to be consistent with the other operations. Fixes: #963 UserNote: A Dial timeout on POST /channels/{channelId}/dial will now result in a CANCEL and ChannelDestroyed with cause 19 / User alerting, no answer. Previously no explicit cause was set, resulting in a cause of 16 / Normal Call Clearing.
This commit is contained in:
		
				
					committed by
					
						![github-actions[bot]](/avatar/af2ab225b7c0eec44a8d0eba6b5c869a?size=40) github-actions[bot]
						github-actions[bot]
					
				
			
			
				
	
			
			
			
						parent
						
							d60bcc56a7
						
					
				
				
					commit
					8924258639
				
			| @@ -27,6 +27,7 @@ | ||||
|  | ||||
| #include "asterisk/stasis_channels.h" | ||||
| #include "asterisk/stasis_app.h" | ||||
| #include "asterisk/causes.h" | ||||
|  | ||||
| #include "command.h" | ||||
| #include "control.h" | ||||
| @@ -1221,6 +1222,10 @@ struct ast_datastore_info timeout_datastore = { | ||||
| static int hangup_channel(struct stasis_app_control *control, | ||||
| 	struct ast_channel *chan, void *data) | ||||
| { | ||||
| 	/* Set cause code to No Answer to be consistent with other dial timeout operations */ | ||||
| 	ast_channel_lock(chan); | ||||
| 	ast_channel_hangupcause_set(chan, AST_CAUSE_NO_ANSWER); | ||||
| 	ast_channel_unlock(chan); | ||||
| 	ast_softhangup(chan, AST_SOFTHANGUP_EXPLICIT); | ||||
| 	return 0; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user