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")) {