[Asterisk-code-review] res pjsip sdp rtp.c: Set preferred rx payload type mapping o... (asterisk[master])
Richard Mudgett
asteriskteam at digium.com
Thu Jul 30 20:48:11 CDT 2015
Richard Mudgett has uploaded a new change for review.
https://gerrit.asterisk.org/1021
Change subject: res_pjsip_sdp_rtp.c: Set preferred rx payload type mapping on incoming offers.
......................................................................
res_pjsip_sdp_rtp.c: Set preferred rx payload type mapping on incoming offers.
ASTERISK-25166
Reported by: Kevin Harwell
ASTERISK-17410
Reported by: Boris Fox
Change-Id: I97ecebc1ab9b5654fb918bf1f4c98c956b852369
---
M res/res_pjsip_sdp_rtp.c
1 file changed, 13 insertions(+), 4 deletions(-)
git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/21/1021/1
diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c
index 652188d..843a344 100644
--- a/res/res_pjsip_sdp_rtp.c
+++ b/res/res_pjsip_sdp_rtp.c
@@ -282,8 +282,10 @@
}
}
-static int set_caps(struct ast_sip_session *session, struct ast_sip_session_media *session_media,
- const struct pjmedia_sdp_media *stream)
+static int set_caps(struct ast_sip_session *session,
+ struct ast_sip_session_media *session_media,
+ const struct pjmedia_sdp_media *stream,
+ int is_offer)
{
RAII_VAR(struct ast_format_cap *, caps, NULL, ao2_cleanup);
RAII_VAR(struct ast_format_cap *, peer, NULL, ao2_cleanup);
@@ -328,6 +330,13 @@
return -1;
}
+ if (is_offer) {
+ /*
+ * Setup rx payload type mapping to prefer the mapping
+ * from the peer that the RFC says we SHOULD use.
+ */
+ ast_rtp_codecs_payloads_xover(&codecs, &codecs, NULL);
+ }
ast_rtp_codecs_payloads_copy(&codecs, ast_rtp_instance_get_codecs(session_media->rtp),
session_media->rtp);
@@ -897,7 +906,7 @@
pj_strdup(session->inv_session->pool, &session_media->transport, &stream->desc.transport);
}
- if (set_caps(session, session_media, stream)) {
+ if (set_caps(session, session_media, stream, 1)) {
return 0;
}
return 1;
@@ -1245,7 +1254,7 @@
/* Apply connection information to the RTP instance */
ast_sockaddr_set_port(addrs, remote_stream->desc.port);
ast_rtp_instance_set_remote_address(session_media->rtp, addrs);
- if (set_caps(session, session_media, remote_stream)) {
+ if (set_caps(session, session_media, remote_stream, 0)) {
return 1;
}
--
To view, visit https://gerrit.asterisk.org/1021
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I97ecebc1ab9b5654fb918bf1f4c98c956b852369
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Owner: Richard Mudgett <rmudgett at digium.com>
More information about the asterisk-code-review
mailing list