diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2010-12-01 08:20:28 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2010-12-01 08:20:28 +0000 |
commit | a8e98c468d836b37bd202d356626a22a0a8863ea (patch) | |
tree | a5ad1c58c6847ebe5a8a5a90d8dc604ef555d598 /pjmedia | |
parent | 186a61a84e87b3e0c1d4944a3b79ad94a999b744 (diff) |
Fix #1165:
- Fixed pjsua_media_channel_create_sdp() to re-calculate audio index of the remote offer, instead of using existing audio index calculated by pjsua_media_channel_init(), as for subsequent SDP offer/answer, pjsua_media_channel_init() may not be called.
- Fixed SRTP transport to be able to switch SRTP status from active to inactive/by-passed and vice versa.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3376 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r-- | pjmedia/src/pjmedia/transport_srtp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_srtp.c index 1c6c7f93..4a1d08de 100644 --- a/pjmedia/src/pjmedia/transport_srtp.c +++ b/pjmedia/src/pjmedia/transport_srtp.c @@ -645,6 +645,8 @@ PJ_DEF(pj_status_t) pjmedia_transport_srtp_stop(pjmedia_transport *srtp) } p_srtp->session_inited = PJ_FALSE; + pj_bzero(&p_srtp->rx_policy, sizeof(p_srtp->rx_policy)); + pj_bzero(&p_srtp->tx_policy, sizeof(p_srtp->tx_policy)); pj_lock_release(p_srtp->mutex); @@ -1221,6 +1223,7 @@ static pj_status_t transport_encode_sdp(pjmedia_transport *tp, PJ_ASSERT_RETURN(tp && sdp_pool && sdp_local, PJ_EINVAL); srtp->offerer_side = sdp_remote == NULL; + srtp->bypass_srtp = PJ_FALSE; m_rem = sdp_remote ? sdp_remote->media[media_index] : NULL; m_loc = sdp_local->media[media_index]; @@ -1576,6 +1579,9 @@ static pj_status_t transport_media_start(pjmedia_transport *tp, BYPASS_SRTP: srtp->bypass_srtp = PJ_TRUE; srtp->peer_use = PJMEDIA_SRTP_DISABLED; + if (srtp->session_inited) { + pjmedia_transport_srtp_stop(tp); + } PROPAGATE_MEDIA_START: return pjmedia_transport_media_start(srtp->member_tp, pool, |