From 4fad85f9bf58ed2a11acd5559ca9bce097f2f1cf Mon Sep 17 00:00:00 2001 From: Kevin Harwell Date: Thu, 18 Dec 2014 15:50:26 +0000 Subject: res_pjsip_sdp_rtp: wrong bridge chosen when the DTMF mode is not compatible A native rtp bridge was being chosen (it shouldn't have been) when using two pjsip channels with incompatible DTMF modes. This patch sets the rtp instance property, AST_RTP_PROPERTY_DTMF, for the appropriate DTMF mode(s) for pjsip. It was not being set before, meaning all DTMF modes for pjsip were being treated as compatible, thus native bridging would be chosen as the bridge type when it shouldn't have been. ASTERISK-24459 #close Reported by: Yaniv Simhi Review: https://reviewboard.asterisk.org/r/4265/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429763 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/res_pjsip_sdp_rtp.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'res/res_pjsip_sdp_rtp.c') diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c index 05e840427..0f5eec8ef 100644 --- a/res/res_pjsip_sdp_rtp.c +++ b/res/res_pjsip_sdp_rtp.c @@ -119,16 +119,13 @@ static int create_rtp(struct ast_sip_session *session, struct ast_sip_session_me ast_rtp_instance_set_prop(session_media->rtp, AST_RTP_PROPERTY_RTCP, 1); ast_rtp_instance_set_prop(session_media->rtp, AST_RTP_PROPERTY_NAT, session->endpoint->media.rtp.symmetric); - if (session->endpoint->dtmf == AST_SIP_DTMF_INBAND) { - ast_rtp_instance_dtmf_mode_set(session_media->rtp, AST_RTP_DTMF_MODE_INBAND); - } - if (!session->endpoint->media.rtp.ice_support && (ice = ast_rtp_instance_get_ice(session_media->rtp))) { ice->stop(session_media->rtp); } if (session->endpoint->dtmf == AST_SIP_DTMF_RFC_4733) { ast_rtp_instance_dtmf_mode_set(session_media->rtp, AST_RTP_DTMF_MODE_RFC2833); + ast_rtp_instance_set_prop(session_media->rtp, AST_RTP_PROPERTY_DTMF, 1); } else if (session->endpoint->dtmf == AST_SIP_DTMF_INBAND) { ast_rtp_instance_dtmf_mode_set(session_media->rtp, AST_RTP_DTMF_MODE_INBAND); } -- cgit v1.2.3