mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-04 05:15:22 +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
					
				
			
			
				
	
			
			
			
						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