]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Only set the DTMF flag on the rtp structure if the DTMF mode is actually
authorRussell Bryant <russell@russellbryant.com>
Tue, 30 Jan 2007 19:33:12 +0000 (19:33 +0000)
committerRussell Bryant <russell@russellbryant.com>
Tue, 30 Jan 2007 19:33:12 +0000 (19:33 +0000)
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/branches/1.4@52952 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 6f76acda388f4524a677c78c7bdef98aed5fb395..fd71c464b65dc5bbe47a5249c81fdfcffc3be363 100644 (file)
@@ -2626,7 +2626,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);
@@ -4221,7 +4221,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);
@@ -13342,7 +13342,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));
                }