From: Russell Bryant Date: Tue, 30 Jan 2007 19:33:12 +0000 (+0000) Subject: Only set the DTMF flag on the rtp structure if the DTMF mode is actually X-Git-Tag: 1.4.1~179 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=29b7393d84d899aff1cca1c65c16e106d08ac182;p=thirdparty%2Fasterisk.git 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/branches/1.4@52952 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 6f76acda38..fd71c464b6 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -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)); }