diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 77e1b24252ee8c3934148d96f19715f147aaaa3e..d00d615ba035838d814a5810e4be937339319e91 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -22627,6 +22627,18 @@ static void handle_request_info(struct sip_pvt *p, struct sip_request *req)
 	const char *c = sip_get_header(req, "Content-Type");
 
 	/* Need to check the media/type */
+
+	if (!strcasecmp(c, "application/hook-flash")) {
+		/* send a FLASH event, for ATAs that send flash as hook-flash not dtmf */
+		struct ast_frame f = { AST_FRAME_CONTROL, { AST_CONTROL_FLASH, } };
+		ast_queue_frame(p->owner, &f);
+		if (sipdebug) {
+			ast_verbose("* DTMF-relay event received: FLASH\n");
+		}
+		transmit_response(p, "200 OK", req);
+		return;
+	}
+
 	if (!strcasecmp(c, "application/dtmf-relay") ||
 	    !strcasecmp(c, "application/vnd.nortelnetworks.digits") ||
 	    !strcasecmp(c, "application/dtmf")) {