From 9c232a54703b9f819c2da5576163a85d18874471 Mon Sep 17 00:00:00 2001
From: Kinsey Moore <kmoore@digium.com>
Date: Wed, 20 Jul 2011 19:03:17 +0000
Subject: [PATCH] Merged revisions 328936 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/2.0

................
  r328936 | kmoore | 2011-07-20 14:01:37 -0500 (Wed, 20 Jul 2011) | 15 lines

  Merged revisions 328935 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.8

  ........
    r328935 | kmoore | 2011-07-20 14:00:23 -0500 (Wed, 20 Jul 2011) | 8 lines

    Inband DTMF regression

    The functionality of inband DTMF in chan_sip relied upon
    ast_rtp_instance_dtmf_mode_get/set not working properly to avoid calling
    ast_rtp_instance_dtmf_begin/end on RTP streams with inband DTMF. According to
    documentation, ast_rtp_instance_dtmf_begin/end is meant only for RFC2833 DTMF,
    never inband.  This fixes the regression introduced in revision 328823.
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@328937 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_sip.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 0e5d27f797..a0b9cb037a 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6536,11 +6536,7 @@ static int sip_senddigit_begin(struct ast_channel *ast, char digit)
 	sip_pvt_lock(p);
 	switch (ast_test_flag(&p->flags[0], SIP_DTMF)) {
 	case SIP_DTMF_INBAND:
-		if (p->rtp && ast_rtp_instance_dtmf_mode_get(p->rtp) == AST_RTP_DTMF_MODE_INBAND) {
-			ast_rtp_instance_dtmf_begin(p->rtp, digit);
-		} else {
-			res = -1; /* Tell Asterisk to generate inband indications */
-		}
+		res = -1; /* Tell Asterisk to generate inband indications */
 		break;
 	case SIP_DTMF_RFC2833:
 		if (p->rtp)
@@ -6572,11 +6568,7 @@ static int sip_senddigit_end(struct ast_channel *ast, char digit, unsigned int d
 			ast_rtp_instance_dtmf_end_with_duration(p->rtp, digit, duration);
 		break;
 	case SIP_DTMF_INBAND:
-		if (p->rtp && ast_rtp_instance_dtmf_mode_get(p->rtp) == AST_RTP_DTMF_MODE_INBAND) {
-			ast_rtp_instance_dtmf_end(p->rtp, digit);
-		} else {
-			res = -1; /* Tell Asterisk to stop inband indications */
-		}
+		res = -1; /* Tell Asterisk to stop inband indications */
 		break;
 	}
 	sip_pvt_unlock(p);
-- 
GitLab