summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2016-08-15 09:59:09 +0000
committerNanang Izzuddin <nanang@teluu.com>2016-08-15 09:59:09 +0000
commit8938e5af738137ba56c0705029cd246600aca489 (patch)
treeac8de2f773400973d40bc4e6763c21aaa93c2cc9 /pjmedia
parent362b818503999e298b3ab4b1796b917183a39d84 (diff)
Fix #1952: Skip address type matching in pjmedia_stream_info_from_sdp() when both sides use ICE, the ICE transport will do the matching when it generates ICE checklist.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5419 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/src/pjmedia/stream_info.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/pjmedia/src/pjmedia/stream_info.c b/pjmedia/src/pjmedia/stream_info.c
index 878d44c1..a855dad6 100644
--- a/pjmedia/src/pjmedia/stream_info.c
+++ b/pjmedia/src/pjmedia/stream_info.c
@@ -476,9 +476,17 @@ PJ_DEF(pj_status_t) pjmedia_stream_info_from_sdp(
return PJMEDIA_EINVALIDIP;
}
- /* Local and remote address family must match */
- if (local_af != rem_af)
- return PJ_EAFNOTSUP;
+ /* Local and remote address family must match, except when ICE is used
+ * by both sides (see also ticket #1952).
+ */
+ if (local_af != rem_af) {
+ const pj_str_t STR_ICE_CAND = { "candidate", 9 };
+ if (pjmedia_sdp_media_find_attr(rem_m, &STR_ICE_CAND, NULL)==NULL ||
+ pjmedia_sdp_media_find_attr(local_m, &STR_ICE_CAND, NULL)==NULL)
+ {
+ return PJ_EAFNOTSUP;
+ }
+ }
/* Media direction: */