summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2010-06-23 12:38:28 +0000
committerBenny Prijono <bennylp@teluu.com>2010-06-23 12:38:28 +0000
commitc05e6f6d3a1ac90dd2930184aa895bc57d840536 (patch)
treeccab35fd4fe7354e4908647f5adff2a49f36012c /pjmedia
parentfc7d78d6dc115e3f70eb40c3d5cdaba5cce64de9 (diff)
Fixed #1079 (Media transport should be kept alive during double-hold scenario). Details:
- now the stream will be destroyed but the media transport will be kept alive during doublehold scenario - small fix in SRTP to also negotiate crypto even when the media is marked as inactive, otherwise it's possible that an "optional" endpoint would create RTP/AVP offer and send it to "mandatory" endpoint, which would be rejected and cause the media port to be set to zero git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3219 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/src/pjmedia/transport_srtp.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_srtp.c
index 20005c39..d8f41a95 100644
--- a/pjmedia/src/pjmedia/transport_srtp.c
+++ b/pjmedia/src/pjmedia/transport_srtp.c
@@ -1165,9 +1165,16 @@ static pj_status_t transport_encode_sdp(pjmedia_transport *tp,
goto BYPASS_SRTP;
/* If the media is inactive, do nothing. */
+ /* No, we still need to process SRTP offer/answer even if the media is
+ * marked as inactive, because the transport is still alive in this
+ * case (e.g. for keep-alive). See:
+ * http://trac.pjsip.org/repos/ticket/1079
+ */
+ /*
if (pjmedia_sdp_media_find_attr(m_loc, &ID_INACTIVE, NULL) ||
(m_rem && pjmedia_sdp_media_find_attr(m_rem, &ID_INACTIVE, NULL)))
goto BYPASS_SRTP;
+ */
/* Check remote media transport & set local media transport
* based on SRTP usage option.