Enforce media direction policies when SIP call is on hold #3087
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a PR inspired by this post on the group, where setting a call on hold doesn't seem to be working as expected. In this specific case, it looks like Janus is correctly negotiating sendonly when putting a call on hold, but the call is then handled via a B2BUA, that sets sendrecv on the other end: since we don't have checks on whether we should actually send a packet, or accept an incoming one, when the call is on hold, this results in media still flowing in both directions when it shouldn't.
This patch adds such checks, and adds an enforced check on receiving packets as well when not on hold, which seemed to be missing. I didn't test this yet, so you may want to check whether or not this introduces any regression. While the patch is for
0.x
(that's what the OP is using), I'll port it tomaster
as well in case it's considered safe to merge.