Merged revisions 52952 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Tue, 30 Jan 2007 19:36:28 +0000 (19:36 +0000)
committerRussell Bryant <russell@russellbryant.com>
Tue, 30 Jan 2007 19:36:28 +0000 (19:36 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r52952 | russell | 2007-01-30 13:33:12 -0600 (Tue, 30 Jan 2007) | 5 lines

Only set the DTMF flag on the rtp structure if the DTMF mode is actually
RFC2833, not just that it is not INFO.  This makes it get set for inband DTMF
as well, which is not valid.
(issue #8936)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@52953 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index d3c611d..c1478a5 100644 (file)
@@ -2756,7 +2756,7 @@ static int create_addr_from_peer(struct sip_pvt *dialog, struct sip_peer *peer)
        do_setnat(dialog, ast_test_flag(&dialog->flags[0], SIP_NAT) & SIP_NAT_ROUTE );
 
        if (dialog->rtp) {
-               ast_rtp_setdtmf(dialog->rtp, ast_test_flag(&dialog->flags[0], SIP_DTMF) != SIP_DTMF_INFO);
+               ast_rtp_setdtmf(dialog->rtp, ast_test_flag(&dialog->flags[0], SIP_DTMF) == SIP_DTMF_RFC2833);
                ast_rtp_setdtmfcompensate(dialog->rtp, ast_test_flag(&dialog->flags[1], SIP_PAGE2_RFC2833_COMPENSATE));
                ast_rtp_set_rtptimeout(dialog->rtp, peer->rtptimeout);
                ast_rtp_set_rtpholdtimeout(dialog->rtp, peer->rtpholdtimeout);
@@ -4341,7 +4341,7 @@ static struct sip_pvt *sip_alloc(ast_string_field callid, struct sockaddr_in *si
                        free(p);
                        return NULL;
                }
-               ast_rtp_setdtmf(p->rtp, ast_test_flag(&p->flags[0], SIP_DTMF) != SIP_DTMF_INFO);
+               ast_rtp_setdtmf(p->rtp, ast_test_flag(&p->flags[0], SIP_DTMF) == SIP_DTMF_RFC2833);
                ast_rtp_setdtmfcompensate(p->rtp, ast_test_flag(&p->flags[1], SIP_PAGE2_RFC2833_COMPENSATE));
                ast_rtp_settos(p->rtp, global_tos_audio);
                ast_rtp_set_rtptimeout(p->rtp, global_rtptimeout);
@@ -13556,7 +13556,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
                build_contact(p);                       /* Build our contact header */
 
                if (p->rtp) {
-                       ast_rtp_setdtmf(p->rtp, ast_test_flag(&p->flags[0], SIP_DTMF) != SIP_DTMF_INFO);
+                       ast_rtp_setdtmf(p->rtp, ast_test_flag(&p->flags[0], SIP_DTMF) == SIP_DTMF_RFC2833);
                        ast_rtp_setdtmfcompensate(p->rtp, ast_test_flag(&p->flags[1], SIP_PAGE2_RFC2833_COMPENSATE));
                }