mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	res_pjsip_dtmf_info: Hook flash
Adds hook flash recognition support for application/hook-flash. ASTERISK-29460 Change-Id: I1d060fa89a7cf41244c98f892fff44eb1c9738ea
This commit is contained in:
		
				
					committed by
					
						 George Joseph
						George Joseph
					
				
			
			
				
	
			
			
			
						parent
						
							5f8cabc232
						
					
				
				
					commit
					1b38e89734
				
			| @@ -87,7 +87,7 @@ static int dtmf_info_incoming_request(struct ast_sip_session *session, struct pj | ||||
| 	char *line; | ||||
| 	char event = '\0'; | ||||
| 	unsigned int duration = 100; | ||||
| 	char is_dtmf; | ||||
| 	char is_dtmf, is_dtmf_relay, is_flash; | ||||
| 	int res; | ||||
|  | ||||
| 	if (!session->channel) { | ||||
| @@ -95,8 +95,10 @@ static int dtmf_info_incoming_request(struct ast_sip_session *session, struct pj | ||||
| 	} | ||||
|  | ||||
| 	is_dtmf = is_media_type(rdata, "dtmf"); | ||||
| 	is_dtmf_relay = is_media_type(rdata, "dtmf-relay"); | ||||
| 	is_flash = is_media_type(rdata, "hook-flash"); | ||||
|  | ||||
| 	if (!is_dtmf && !is_media_type(rdata, "dtmf-relay")) { | ||||
| 	if (!is_flash && !is_dtmf && !is_dtmf_relay) { | ||||
| 		return 0; | ||||
| 	} | ||||
|  | ||||
| @@ -116,7 +118,7 @@ static int dtmf_info_incoming_request(struct ast_sip_session *session, struct pj | ||||
| 	if (is_dtmf) { | ||||
| 		/* directly use what is in the message body */ | ||||
| 		event = get_event(cur); | ||||
| 	} else { /* content type = application/dtmf-relay */ | ||||
| 	} else if (is_dtmf_relay) { /* content type = application/dtmf-relay */ | ||||
| 		while ((line = strsep(&cur, "\r\n"))) { | ||||
| 			char *c; | ||||
|  | ||||
| @@ -137,7 +139,7 @@ static int dtmf_info_incoming_request(struct ast_sip_session *session, struct pj | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if (event == '!') { | ||||
| 	if (event == '!' || is_flash) { | ||||
| 		struct ast_frame f = { AST_FRAME_CONTROL, { AST_CONTROL_FLASH, } }; | ||||
| 		ast_queue_frame(session->channel, &f); | ||||
| 	} else if (event != '\0') { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user