diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2016-08-15 09:59:09 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2016-08-15 09:59:09 +0000 |
commit | 8938e5af738137ba56c0705029cd246600aca489 (patch) | |
tree | ac8de2f773400973d40bc4e6763c21aaa93c2cc9 /pjmedia | |
parent | 362b818503999e298b3ab4b1796b917183a39d84 (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.c | 14 |
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: */ |