From: Naveen Albert Date: Thu, 13 May 2021 13:50:02 +0000 (-0400) Subject: chan_sip: Expand hook flash recognition. X-Git-Tag: 18.5.0-rc1~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7b82587dd65cd3ddc5e61d8957dd8bbb5fd54a3d;p=thirdparty%2Fasterisk.git chan_sip: Expand hook flash recognition. Some ATAs send hook flash events as application/hook-flash, rather than a DTMF event. Now, we also recognize hook-flash as a flash event. ASTERISK-29370 Change-Id: I1c3b82a040dff3affcd94bad8ce33edc90c04725 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index b13b892644..1c9ba5f9c2 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -22626,6 +22626,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")) {