summaryrefslogtreecommitdiff
path: root/res/res_pjsip_sdp_rtp.c
diff options
context:
space:
mode:
authorKevin Harwell <kharwell@digium.com>2014-12-18 15:55:03 +0000
committerKevin Harwell <kharwell@digium.com>2014-12-18 15:55:03 +0000
commit546a54574fead96ca2e762e8811d3e640b763c8a (patch)
treeb6c2dfc986de06c20e2e7660699161ad1660bdd0 /res/res_pjsip_sdp_rtp.c
parent2f3e5b494a213c20d93257a17b98a5a08525ccc1 (diff)
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/ ........ Merged revisions 429763 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@429764 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_pjsip_sdp_rtp.c')
-rw-r--r--res/res_pjsip_sdp_rtp.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c
index ec1141a94..4077caad3 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);
}