mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +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
				
			
							
								
								
									
										5
									
								
								doc/CHANGES-staging/res_pjsip_dtmf.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								doc/CHANGES-staging/res_pjsip_dtmf.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | res_pjsip_dtmf_info: Hook flash | ||||||
|  |  | ||||||
|  | Adds recognition for application/ | ||||||
|  | hook-flash as a hook flash event. | ||||||
|  |  | ||||||
| @@ -87,7 +87,7 @@ static int dtmf_info_incoming_request(struct ast_sip_session *session, struct pj | |||||||
| 	char *line; | 	char *line; | ||||||
| 	char event = '\0'; | 	char event = '\0'; | ||||||
| 	unsigned int duration = 100; | 	unsigned int duration = 100; | ||||||
| 	char is_dtmf; | 	char is_dtmf, is_dtmf_relay, is_flash; | ||||||
| 	int res; | 	int res; | ||||||
|  |  | ||||||
| 	if (!session->channel) { | 	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 = 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; | 		return 0; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -116,7 +118,7 @@ static int dtmf_info_incoming_request(struct ast_sip_session *session, struct pj | |||||||
| 	if (is_dtmf) { | 	if (is_dtmf) { | ||||||
| 		/* directly use what is in the message body */ | 		/* directly use what is in the message body */ | ||||||
| 		event = get_event(cur); | 		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"))) { | 		while ((line = strsep(&cur, "\r\n"))) { | ||||||
| 			char *c; | 			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, } }; | 		struct ast_frame f = { AST_FRAME_CONTROL, { AST_CONTROL_FLASH, } }; | ||||||
| 		ast_queue_frame(session->channel, &f); | 		ast_queue_frame(session->channel, &f); | ||||||
| 	} else if (event != '\0') { | 	} else if (event != '\0') { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user