rtp: keep recently finished calls when matching media streams - #563
Open
Kaian wants to merge 1 commit into
Open
Conversation
Since commit dc4148b RTP streams are only matched against calls in the active call list, which greatly reduces processing time on large captures. But calls are removed from that list as soon as their dialog finishes, and endpoints usually keep sending RTP/RTCP for a while after the dialog has been terminated. Keep finished dialogs in the active call list until their last SIP message is older than SIP_CALL_ACTIVE_GRACE_SECS (60 seconds), using the capture timeline as reference so offline captures behave like live ones.
Member
Author
|
This requires additional testing, not sure how slow this will be with big pcap files |
Contributor
|
You could look for RTCP BYE packets (there's one in I think ending the call after a timeout is reasonable. 60 seconds seems a little high but I don't think it's problematic. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Regression introduced in #547
Matching RTP against the active call list instead of the full one is a big speedup, but calls leave that list the moment their dialog finishes, while endpoints usually keep sending RTP/RTCP for a while after that.
Finished dialogs are no longer removed from the active call list right away. They are kept until their last SIP message is older than
SIP_CALL_ACTIVE_GRACE_SECS(60 seconds), and pruned insip_active_calls_expire()on every captured SIP message.