From: Russell Bryant Date: Fri, 10 Dec 2004 11:32:12 +0000 (+0000) Subject: implement fmtp 16 in rtp (bug #2999) X-Git-Tag: 1.0.11.1~345 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a5b4c8881e0565ab13094fc7791f6724981db8d4;p=thirdparty%2Fasterisk.git implement fmtp 16 in rtp (bug #2999) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@4415 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/rtp.c b/rtp.c index 3c6a5ea829..3d60c3abb4 100755 --- a/rtp.c +++ b/rtp.c @@ -188,8 +188,13 @@ static struct ast_frame *send_dtmf(struct ast_rtp *rtp) return &null_frame; } ast_log(LOG_DEBUG, "Sending dtmf: %d (%c), at %s\n", rtp->resp, rtp->resp, ast_inet_ntoa(iabuf, sizeof(iabuf), rtp->them.sin_addr)); - rtp->f.frametype = AST_FRAME_DTMF; - rtp->f.subclass = rtp->resp; + if (rtp->resp == 'X') { + rtp->f.frametype = AST_FRAME_CONTROL; + rtp->f.subclass = AST_CONTROL_FLASH; + } else { + rtp->f.frametype = AST_FRAME_DTMF; + rtp->f.subclass = rtp->resp; + } rtp->f.datalen = 0; rtp->f.samples = 0; rtp->f.mallocd = 0; @@ -218,6 +223,8 @@ static struct ast_frame *process_cisco_dtmf(struct ast_rtp *rtp, unsigned char * resp = '#'; } else if (event < 16) { resp = 'A' + (event - 12); + } else if (event < 17) { + resp = 'X'; } if (rtp->resp && (rtp->resp != resp)) { f = send_dtmf(rtp); @@ -252,6 +259,8 @@ static struct ast_frame *process_rfc2833(struct ast_rtp *rtp, unsigned char *dat resp = '#'; } else if (event < 16) { resp = 'A' + (event - 12); + } else if (event < 17) { + resp = 'X'; } if (rtp->resp && (rtp->resp != resp)) { f = send_dtmf(rtp);