From: Kinsey Moore Date: Wed, 20 Jul 2011 19:00:23 +0000 (+0000) Subject: Inband DTMF regression X-Git-Tag: 1.8.6.0-rc1~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58548d6eb99d19dd7c97fba5c7776ea990c61282;p=thirdparty%2Fasterisk.git 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/branches/1.8@328935 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 21919cd45b..429a1b60f3 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -6486,11 +6486,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) @@ -6522,11 +6518,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);