Skip to content
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

[FEATURE] Add stream object in SIPREC metadata #3287

Closed
siadatism opened this issue Jan 22, 2024 · 1 comment · May be fixed by #3293
Closed

[FEATURE] Add stream object in SIPREC metadata #3287

siadatism opened this issue Jan 22, 2024 · 1 comment · May be fixed by #3293
Assignees
Milestone

Comments

@siadatism
Copy link
Contributor

Requirement

RFC 7865 described the SIPREC metadata format. The main object is recording and it includes these objects:

  • datamode
  • group
  • session
  • participant
  • stream
  • sessionrecordingassoc
  • participantsessionassoc
  • participantstreamassoc

Currently, the SIPREC module does not have the stream object, and the participantstreamassoc does not contain send and receive attributes. An example of the current SIPREC metadata is this:

<recording xmlns='urn:ietf:params:xml:ns:recording:1'>
    <datamode>complete</datamode>
    <session session_id="zt5VmPy6ToGd2UtWgw94WA==">
        <sipSessionID>cd71dcbcb5fd46b6b6c77aa135bbd30a</sipSessionID>
    </session>
    <participant participant_id="u9SaBH9XTC2Vvlp4VoL+XA==">
        <nameID aor="sip:[email protected]"/>
    </participant>
    <participant participant_id="gAQi+24ERG2zlxBGXN4BVQ==">
        <nameID aor="sip:[email protected]"/>
    </participant>
    <sessionrecordingassoc session_id="zt5VmPy6ToGd2UtWgw94WA==">
        <associate-time>2024-01-21T16:24:58+0000</associate-time>
    </sessionrecordingassoc>
    <participantsessionassoc participant_id="u9SaBH9XTC2Vvlp4VoL+XA==" session_id="zt5VmPy6ToGd2UtWgw94WA==">
        <associate-time>2024-01-21T16:24:58+0000</associate-time>
    </participantsessionassoc>
    <participantsessionassoc participant_id="gAQi+24ERG2zlxBGXN4BVQ==" session_id="zt5VmPy6ToGd2UtWgw94WA==">
        <associate-time>2024-01-21T16:24:58+0000</associate-time>
    </participantsessionassoc>
    <participantstreamassoc participant_id="u9SaBH9XTC2Vvlp4VoL+XA==">
    </participantstreamassoc>
    <participantstreamassoc participant_id="gAQi+24ERG2zlxBGXN4BVQ==">
    </participantstreamassoc>
</recording>

The stream object has label attribute which is associated with the label parameter is the SDP protocol and specifies the corresponding media stream. Also, the participantstreamassoc object has send and recv attributes to specify which participant sends or receives in that stream. An example of a SIPREC metadata with these extra fields is this:

<recording xmlns='urn:ietf:params:xml:ns:recording:1'>
      <datamode>complete</datamode>
      <session session_id="zt5VmPy6ToGd2UtWgw94WA==">
            <sipSessionID>cd71dcbcb5fd46b6b6c77aa135bbd30a</sipSessionID>
      </session>
      <participant participant_id="u9SaBH9XTC2Vvlp4VoL+XA==">
            <nameID aor="sip:[email protected]"/>
      </participant>
      <participant participant_id="gAQi+24ERG2zlxBGXN4BVQ==">
            <nameID aor="sip:[email protected]"/>
      </participant>
      <sessionrecordingassoc session_id="zt5VmPy6ToGd2UtWgw94WA==">
            <associate-time>2024-01-21T16:24:58+0000</associate-time>
      </sessionrecordingassoc>
      <participantsessionassoc participant_id="u9SaBH9XTC2Vvlp4VoL+XA==" session_id="zt5VmPy6ToGd2UtWgw94WA==">
            <associate-time>2024-01-21T16:24:58+0000</associate-time>
      </participantsessionassoc>
      <participantsessionassoc participant_id="gAQi+24ERG2zlxBGXN4BVQ==" session_id="zt5VmPy6ToGd2UtWgw94WA==">
            <associate-time>2024-01-21T16:24:58+0000</associate-time>
      </participantsessionassoc>
      <stream stream_id="MIlSKnTLEemWG6Qi1vyb4Q==" session_id="zt5VmPy6ToGd2UtWgw94WA==">
            <label>0</label>
      </stream>
      <stream stream_id="MIlSKnTLEemWHKQi1vyb4Q==" session_id="zt5VmPy6ToGd2UtWgw94WA==">
            <label>1</label>
      </stream>
      <participantstreamassoc participant_id="u9SaBH9XTC2Vvlp4VoL+XA==">
            <send>MIlSKnTLEemWG6Qi1vyb4Q==</send>
            <recv>MIlSKnTLEemWHKQi1vyb4Q==</recv>
      </participantstreamassoc>
      <participantstreamassoc participant_id="gAQi+24ERG2zlxBGXN4BVQ==">
            <send>MIlSKnTLEemWHKQi1vyb4Q==</send>
            <recv>MIlSKnTLEemWG6Qi1vyb4Q==</recv>
      </participantstreamassoc>
</recording>

Solution

The stream info should be added in SIPREC metadata by changing the SIPREC module code.

Implementation

  • Component: SIPREC module
@razvancrainea
Copy link
Member

Unfortunately this feature was not an easy one, but I've finally got some time to implement it properly. I've just pushed the fix upstream.

razvancrainea added a commit that referenced this issue Jun 13, 2024
Close #3287 and #3293

(cherry picked from commit fb4402d)
razvancrainea added a commit that referenced this issue Jun 13, 2024
Close #3287 and #3293

(cherry picked from commit fb4402d)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants