Colibri msg initiated pcap capture#2072
Conversation
|
@damencho , @emcho , @bgrozev , @JonathanLennox please review. |
|
Hi, thanks for your contribution! |
|
Jenkins, add to whitelist |
Codecov Report❌ Patch coverage is 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.
🚀 New features to boost your workflow:
|
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.