-
Notifications
You must be signed in to change notification settings - Fork 995
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Colibri msg initiated pcap capture #2072
base: master
Are you sure you want to change the base?
Conversation
@damencho , @emcho , @bgrozev , @JonathanLennox please review. |
Hi, thanks for your contribution! |
Jenkins, add to whitelist |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #2072 +/- ##
============================================
- Coverage 44.23% 43.91% -0.32%
- Complexity 1924 1928 +4
============================================
Files 340 341 +1
Lines 18879 19031 +152
Branches 2592 2620 +28
============================================
+ Hits 8351 8358 +7
- Misses 9663 9809 +146
+ Partials 865 864 -1
... and 3 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
jitsi-media-transform/src/main/kotlin/org/jitsi/nlj/transform/node/CompliancePcapWriter.kt
Outdated
Show resolved
Hide resolved
jitsi-media-transform/src/main/kotlin/org/jitsi/nlj/transform/node/CompliancePcapWriter.kt
Outdated
Show resolved
Hide resolved
Are you also planning to contribute changes to jicofo for this feature? |
@bgrozev I am not sure if changes in jicofo are needed for this and we need your team advice here.
But technically speaking, the "context-id" is more appropriately placed in the conference-modify section and not in the endpoint section, but that would require changing the classes that define the message structures. |
This PR introduces new functionality to start pcap capture per endpoint from a colibri message.
If the colibri message "conference-modify"/"endpoint" has new parameters "context-id" and "pcap-rec-mode" set to enable capture, then jvb will produce pcap files for this specific endpoint.
The new functionality is configured / enabled by adding a new section named "metadata-pcap-recording" in
jitsi-media-transform/src/main/resources/reference.conf
For each recorded endpoint / context pair, JVB produces 2 pcap and 2 json metadata files describing the pcap files.
The file name is generated as a function of
For example:
919633fd-93f7-43eb-802e-f285a0248065_5d9bdf3b_fe.json
919633fd-93f7-43eb-802e-f285a0248065_5d9bdf3b_fe.pcap
919633fd-93f7-43eb-802e-f285a0248065_5d9bdf3b_ne.json
919633fd-93f7-43eb-802e-f285a0248065_5d9bdf3b_ne.pcap
The JSON metadata file includes the endpoint_id, context_id, capture_end and payload_map describing a specific pcap file with the same name.
The pcap file will contain RTP packets for audio if the new parameter pcap-rec-mode = "audio" or "audio-video" and it will contain video packets if pcap-rec-mode = "video" or "audio-video".
The "context-id" identifies a specific instance of a jitsi room and allows a jitsi customer to select whether jvb should produce pcap files for a specific endpoint on the fly and to correlate a specific instance of a video conferencing room with a specific participant / endpoint pcap captures.
This new functionality should be considered as an extension or replacement of TRANSCEIVER_PCAP_DUMP debug feature that is driven from colibri message instead of config settings.
A system integrator can simply start pcap with metadata recordings from prosody plugin for a specific participant of a video conferencing room based on a logic specific to this system integrator and without any other changes in the jitsi code.