diff --git a/daemon/call.c b/daemon/call.c index fdeb281a4..46871757a 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -1067,15 +1067,17 @@ void call_stream_crypto_reset(struct packet_stream *ps) { crypto_reset(&ps->crypto); - mutex_lock(&ps->in_lock); - if (ps->ssrc_in) - ps->ssrc_in->srtp_index = 0; - mutex_unlock(&ps->in_lock); - - mutex_lock(&ps->out_lock); - if (ps->ssrc_out) - ps->ssrc_out->srtp_index = 0; - mutex_unlock(&ps->out_lock); + if (PS_ISSET(ps, RTP)) { + mutex_lock(&ps->in_lock); + if (ps->ssrc_in) + ps->ssrc_in->srtp_index = 0; + mutex_unlock(&ps->in_lock); + + mutex_lock(&ps->out_lock); + if (ps->ssrc_out) + ps->ssrc_out->srtp_index = 0; + mutex_unlock(&ps->out_lock); + } } /* called with call locked in R or W, but ps not locked */