summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8068.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8068.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8068.txt')
-rw-r--r--doc/rfc/rfc8068.txt1907
1 files changed, 1907 insertions, 0 deletions
diff --git a/doc/rfc/rfc8068.txt b/doc/rfc/rfc8068.txt
new file mode 100644
index 0000000..7fed496
--- /dev/null
+++ b/doc/rfc/rfc8068.txt
@@ -0,0 +1,1907 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) R. Ravindranath
+Request for Comments: 8068 Cisco Systems, Inc.
+Category: Informational P. Ravindran
+ISSN: 2070-1721 Nokia Networks
+ P. Kyzivat
+ Huawei
+ February 2017
+
+
+ Session Initiation Protocol (SIP) Recording Call Flows
+
+Abstract
+
+ Session recording is a critical requirement in many communications
+ environments, such as call centers and financial trading
+ organizations. In some of these environments, all calls must be
+ recorded for regulatory, compliance, and consumer-protection reasons.
+ The recording of a session is typically performed by sending a copy
+ of a media stream to a recording device. This document lists call
+ flows with metadata snapshots sent from a Session Recording Client
+ (SRC) to a Session Recording Server (SRS).
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for informational purposes.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Not all documents
+ approved by the IESG are a candidate for any level of Internet
+ Standard; see Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc8068.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 1]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+Copyright Notice
+
+ Copyright (c) 2017 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Overview ........................................................3
+ 2. Terminology .....................................................3
+ 3. Metadata XML Instances ..........................................3
+ 3.1. Sample Call Flow ...........................................3
+ 3.2. Call Scenarios with SRC Recording Streams without Mixing ...5
+ 3.2.1. Example 1: Basic Call ...............................5
+ 3.2.2. Example 2: Hold/Resume ..............................9
+ 3.2.3. Example 3:Call Transfer (RE-INVITE and
+ REFER Based) .......................................12
+ 3.2.4. Example 4: Call Disconnect .........................19
+ 3.3. Call Scenarios with SRC Recording Streams by Mixing .......20
+ 3.3.1. Example 1: Basic Call with SRC Mixing Streams ......20
+ 3.3.2. Example 2: Hold/Resume with SRC Recording
+ by Mixing Streams ..................................23
+ 3.3.3. Example 3: Metadata Snapshot of
+ Joining/Dropping of a ..............................25
+ 3.3.4. Example 4: Call Disconnect .........................28
+ 3.4. Call Scenarios with Persistent RS between SRC and SRS .....28
+ 3.4.1. Example 1: Metadata Snapshot during CS
+ Disconnect with ....................................29
+ 3.5. Turret-Case: Multiple CS into Single RS with Mixed
+ Stream ....................................................30
+ 4. Security Considerations ........................................32
+ 5. IANA Considerations ............................................32
+ 6. References .....................................................33
+ 6.1. Normative References ......................................33
+ 6.2. Informative References ....................................33
+ Acknowledgements ..................................................34
+ Authors' Addresses ................................................34
+
+
+
+
+
+Ravindranath, et al. Informational [Page 2]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+1. Overview
+
+ Session recording is a critical requirement in many communications
+ environments, such as call centers and financial trading
+ organizations. In some of these environments, all calls must be
+ recorded for regulatory, compliance, and consumer-protection reasons.
+ The recording of a session is typically performed by sending a copy
+ of a media stream to a recording device. [RFC7865] focuses on the
+ recording metadata that describes the Communication Session (CS).
+ This document lists few examples and shows the snapshots of metadata
+ sent from a Session Recording Client (SRC) to Session Recording
+ Server (SRS). For the sake of simplicity, the entire Session
+ Initiation Protocol (SIP) [RFC3261] messages are not shown, instead
+ only snippets of the SIP and Session Description Protocol (SDP)
+ [RFC4566] messages and the XML snapshot of metadata is shown.
+
+2. Terminology
+
+ The terms used in this document are defined in [RFC7865] and
+ [RFC6341]. No new definitions are introduced in this document.
+
+3. Metadata XML Instances
+
+ The following subsections have examples that contain the metadata
+ snapshot sent from the SRC to the SRS.
+
+3.1. Sample Call Flow
+
+ The following is a sample call flow that shows the SRC establishing a
+ Recording Session (RS) towards the SRS. In this example, the SRC
+ could be part of any one of the architectures described in Section 3
+ of [RFC7245].
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 3]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ Figure 1: Sample Call Flow between SRC and SRS
+
+ SRC SRS
+ | |
+ |(1) INVITE (metadata snapshot) F1 |
+ |---------------------------------------------------->|
+ | 200 OK |
+ |<----------------------------------------------------|
+ |(3) ACK |
+ |---------------------------------------------------->|
+ |(4) RTP |
+ |====================================================>|
+ |====================================================>|
+ |====================================================>|
+ |====================================================>|
+ |(5) UPDATE/RE-INVITE (metadata update 1) F2 |
+ |---------------------------------------------------->|
+ | 200 OK |
+ |<----------------------------------------------------|
+ | ................................................... |
+ | ................................................... |
+ | |
+ |====================================================>|
+ |====================================================>|
+ |(7) UPDATE/RE-INVITE (metadata update n-1) Fn-1 |
+ |---------------------------------------------------->|
+ | 200 OK |
+ |<----------------------------------------------------|
+
+ For the sake of simplicity, ACKs to RE-INVITES and BYEs are not
+ shown. The subsequent sections describe the snapshot of metadata
+ sent from the SRC to the SRS for each of the above transactions (F1
+ ... Fn-1). There may be multiple UPDATES/RE-INVITES mid call to
+ indicate snapshots of different CS changes. Depending on the
+ architecture described in Section 3 of [RFC7245], an SRC may be an
+ endpoint, a B2BUA, or part of the MEDIACTRL architecture or the
+ Conference focus. The subsequent sections in this document try to
+ list some example metadata snapshots for three major categories.
+
+ o The SRC recording streams unmixed to the SRS. This includes cases
+ where the SRC is a SIP UA or B2BUA.
+
+ o The SRC recording mixed streams to the SRS. This includes cases
+ where the SRC is part of SIP conference model, as explained in
+ [RFC4353].
+
+ o The SRC having a persistent RS with the SRS.
+
+
+
+
+Ravindranath, et al. Informational [Page 4]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ o Special flows like turret flows (used on financial trading floors
+ to manage call activity). A trading turret is a specialized
+ telephony key system that has a highly distributed switching
+ architecture enabling parallel processing of calls. Figure 6 in
+ Section 4 of [RFC6341] has the turret use case.
+
+ Note that only those examples where metadata changes are listed in
+ each category. For some of the call flows, the snapshots may be the
+ same (like in case of endpoint or B2BUA acting as SRC) and the same
+ is mentioned in the text preceding the example.
+
+3.2. Call Scenarios with SRC Recording Streams without Mixing
+
+ This section describes example flows where SRC can be a SIP-UA or
+ B2BUA as described in Section 3 of [RFC7245]. The SRS here can be a
+ SIP-UA or an entity part of the MEDIACTRL architecture described in
+ Section 3 of [RFC7245].
+
+3.2.1. Example 1: Basic Call
+
+ Basic call between two participants, Alice and Bob, who are part of
+ the same CS. In this use case, each participant sends two media
+ streams (audio and video). Media streams sent by each participant
+ are received by the other participant in this use case. In this
+ example, the SRC is a B2BUA in the path between Alice and Bob, as
+ described in Section 3.1.1 of [RFC7245]. Below is the initial
+ snapshot sent by SRC in the INVITE to SRS. This snapshot has the
+ complete metadata. For the sake of simplicity, only snippets of SIP/
+ SDP are shown. In this example, the SRCs records the streams of each
+ participant to SRS without mixing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 5]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ Metadata snapshot for CS setup:
+
+ INVITE SRC --------------> SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: ab30317f1a784dc48ff824d0d3715d86
+ ;remote=00000000000000000000000000000000
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49170 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+ ...
+ m=video 49174 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:97
+ a=sendonly
+ ...
+ m=audio 51372 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:98
+ a=sendonly
+ ...
+ m=video 49176 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:99
+ a=sendonly
+ ....
+--foobar
+Content-Type: application/rs-metadata
+Content-Disposition: recording-session
+
+
+
+
+
+Ravindranath, et al. Informational [Page 6]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+<?xml version="1.0" encoding="UTF-8"?>
+<recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>complete</datamode>
+ <group group_id="7+OTCyoxTmqmqyA/1weDAg==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ <!-- Standardized extension -->
+ <call-center xmlns='urn:ietf:params:xml:ns:callcenter'>
+ <supervisor>sip:alice@atlanta.com</supervisor>
+ </call-center>
+ <mydata xmlns='http://example.com/my'>
+ <structure>FOO!</structure>
+ <whatever>bar</whatever>
+ </mydata>
+ </group>
+ <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <sipSessionID>ab30317f1a784dc48ff824d0d3715d86;
+ remote=47755a9de7794ba387653f2099600ef2</sipSessionID>
+ <group-ref>7+OTCyoxTmqmqyA/1weDAg==
+ </group-ref>
+ <!-- Standardized extension -->
+ <mydata xmlns='http://example.com/my'>
+ <structure>FOO!</structure>
+ <whatever>bar</whatever>
+ </mydata>
+ </session>
+ <participant
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <nameID aor="sip:alice@atlanta.com">
+ <name xml:lang="it">Alice</name>
+ </nameID>
+ <!-- Standardized extension -->
+ <mydata xmlns='http://example.com/my'>
+ <structure>FOO!</structure>
+ <whatever>bar</whatever>
+ </mydata>
+ </participant>
+ <participant
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <nameID aor="sip:bob@biloxy.com">
+ <name xml:lang="it">Bob</name>
+ </nameID>
+ <!-- Standardized extension -->
+ <mydata xmlns='http://example.com/my'>
+ <structure>FOO!</structure>
+ <whatever>bar</whatever>
+ </mydata>
+ </participant>
+
+
+
+
+Ravindranath, et al. Informational [Page 7]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ <stream stream_id="UAAMm5GRQKSCMVvLyl4rFw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <label>96</label>
+ </stream>
+ <stream stream_id="i1Pz3to5hGk8fuXl+PbwCw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <label>97</label>
+ </stream>
+ <stream stream_id="8zc6e0lYTlWIINA6GR+3ag=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <label>98</label>
+ </stream>
+ <stream stream_id="EiXGlc+4TruqqoDaNE76ag=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <label>99</label>
+ </stream>
+ <sessionrecordingassoc session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ </sessionrecordingassoc>
+ <participantsessionassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ </participantsessionassoc>
+ <participantsessionassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ </participantsessionassoc>
+ <participantstreamassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
+ <send>UAAMm5GRQKSCMVvLyl4rFw==</send>
+ <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
+ <recv>EiXGlc+4TruqqoDaNE76ag==</recv>
+ </participantstreamassoc>
+ <participantstreamassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <send>8zc6e0lYTlWIINA6GR+3ag==</send>
+ <send>EiXGlc+4TruqqoDaNE76ag==</send>
+ <recv>UAAMm5GRQKSCMVvLyl4rFw==</recv>
+ <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
+ </participantstreamassoc>
+</recording>
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 8]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+3.2.2. Example 2: Hold/Resume
+
+ A call between two participants Alice and Bob is established and an
+ RS is created for recording, as in example 1. Bob puts Alice on hold
+ and then resumes as part of the same CS. The 'send' and 'recv' XML
+ elements of a 'participantstreamassoc' XML element is used to
+ indicate whether or not a participant is contributing to a media
+ stream. SRC sends a snapshot with only the changed XML elements.
+
+ During hold
+
+ Metadata snapshot for CS hold:
+
+ RE-INVITE SRC-------------------->SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: ab30317f1a784dc48ff824d0d3715d86
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49170 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+ ...
+ m=video 49174 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:97
+ a=sendonly
+ ...
+ m=audio 51372 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:98
+ a=sendonly
+
+
+
+Ravindranath, et al. Informational [Page 9]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ ...
+ m=video 49176 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:99
+ a=sendonly
+ ....
+
+ --foobar
+ Content-Type: application/rs-metadata
+ Content-Disposition: recording-session
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <participantstreamassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
+ <recv>EiXGlc+4TruqqoDaNE76ag==</recv>
+ </participantstreamassoc>
+ <participantstreamassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <send>8zc6e0lYTlWIINA6GR+3ag==</send>
+ <send>EiXGlc+4TruqqoDaNE76ag==</send>
+ </participantstreamassoc>
+ </recording>
+
+ In the above snippet, Alice with participant_id
+ srfBElmCRp2QB23b7Mpk0w== only receives media streams and does not
+ send any media. The same is indicated by the absence of a 'send' XML
+ element. On the other hand, Bob (participant_id
+ zSfPoSvdSDCmU3A3TRDxAw==) would be sending media, but he does not
+ receive any media from Alice; therefore, the 'recv' XML element is
+ absent in this instance.
+
+ During resume
+
+ The snapshot now has 'send' and 'recv' XML elements for both Alice
+ and Bob, indicating that both are receiving and sending media.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 10]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ Metadata snapshot for CS resume:
+
+ RE-INVITE SRC-------------------->SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: ab30317f1a784dc48ff824d0d3715d86
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49170 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+ ...
+ m=video 49174 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:97
+ a=sendonly
+ ...
+ m=audio 51372 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:98
+ a=sendonly
+ ...
+ m=video 49176 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:99
+ a=sendonly
+ ....
+ --foobar
+ Content-Type: application/rs-metadata
+ Content-Disposition: recording-session
+
+
+
+
+
+Ravindranath, et al. Informational [Page 11]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <participantstreamassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
+ <send>UAAMm5GRQKSCMVvLyl4rFw==</send>
+ <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
+ <recv>EiXGlc+4TruqqoDaNE76ag==</recv>
+ </participantstreamassoc>
+ <participantstreamassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <send>8zc6e0lYTlWIINA6GR+3ag==</send>
+ <send>EiXGlc+4TruqqoDaNE76ag==</send>
+ <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
+ <recv>UAAMm5GRQKSCMVvLyl4rFw==</recv>
+ </participantstreamassoc>
+ </recording>
+
+3.2.3. Example 3:Call Transfer (RE-INVITE and REFER Based)
+
+ A basic call between two participants, Alice and Bob, is connected,
+ and SRC (a B2BUA acting as SRC as per Section 3.1.1 of [RFC7245]) has
+ sent a snapshot as described in example 1. Transfer is initiated by
+ one of the participants (Alice). After the transfer is completed,
+ the SRC sends a snapshot of the participant changes to the SRS. In
+ this transfer scenario, Alice drops out after transfer is completed,
+ Bob and Carol get connected, and recording of media between Bob and
+ Carol is done by the SRC. There are two flows that can happen here
+ as described below.
+
+ Transfer within the same session (e.g., a RE-INVITE-based transfer):
+ Alice drops out and Carol is added to the same session. No change to
+ the session/group element is made. A 'participantsessassoc' XML
+ element indicating that Alice has disassociated from the CS will be
+ present in the snapshot. A new 'participant' XML element
+ representing Carol with mapping to the same RS SDP stream used for
+ mapping earlier Alice's stream is sent in the snapshot. A new
+ 'sipSessionID' XML element that has Universally Unique Identifier
+ (UUID) tuples and that corresponds to Bob and Carol is sent in the
+ snapshot from the SRC to the SRS. Note that one half of the session
+ ID, that which corresponds to Bob, remains the same.
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 12]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ Metadata snapshot for INVITE based transfer in CS:
+
+ RE-INVITE SRC-------------------->SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: ab30317f1a784dc48ff824d0d3715d86
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49180 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+ ...
+ m=video 49182 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:97
+ a=sendonly
+ ...
+ m=audio 51374 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:98
+ a=sendonly
+ ...
+ m=video 49178 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:99
+ a=sendonly
+ ....
+ --foobar
+ Content-Type: application/rs-metadata
+ Content-Disposition: recording-session
+
+
+
+
+
+Ravindranath, et al. Informational [Page 13]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <sipSessionID>3363127f0d084c10876dddd4f8e5eeb9
+ ;remote=2272bb7e70fe41dba0025ae9a26d54cf</sipSessionID>
+ </session>
+ <participant
+ participant_id="Atnm1ZRnOC6Pm5MApkrDzQ==">
+ <nameID aor="sip:carol@example.com">
+ <name xml:lang="it">Carol</name>
+ </nameID>
+ </participant>
+ <participantsessionassoc
+ participant_id="Atnm1ZRnOC6Pm5MApkrDzQ=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <associate-time>2013-12-16T23:41:07Z</associate-time>
+ </participantsessionassoc>
+ <participantsessionassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <disassociate-time>2013-12-16T23:41:07Z</disassociate-time>
+ </participantsessionassoc>
+ <participantstreamassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <send>8zc6e0lYTlWIINA6GR+3ag==</send>
+ <send>EiXGlc+4TruqqoDaNE76ag==</send>
+ <recv>60JAJm9UTvik0Ltlih/Gzw==</recv>
+ <recv>AcR5FUd3Edi8cACQJy/3JQ==</recv>
+ </participantstreamassoc>
+ <participantstreamassoc
+ participant_id="Atnm1ZRnOC6Pm5MApkrDzQ==">
+ <send>60JAJm9UTvik0Ltlih/Gzw==</send>
+ <send>AcR5FUd3Edi8cACQJy/3JQ==</send>
+ <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
+ <recv>EiXGlc+4TruqqoDaNE76ag==</recv>
+ <associate-time>2013-12-16T23:42:07Z</associate-time>
+ </participantstreamassoc>
+ </recording>
+
+
+
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 14]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ Transfer with a new session (e.g., REFER-based transfer): in this
+ case, a new session (CS) is created and shall be part of same CS-
+ group (done by the SRC).
+
+ The SRC first sends an *optional* snapshot indicating disassociation
+ of the participant from the old CS. An SRC may choose to just send
+ an INVITE with a new 'session' XML element to implicitly indicate
+ that the participants are now part of a different CS without sending
+ disassociation from the old CS. In this example, the SRC uses the
+ same RS. In case the SRC wishes to use a new RS, it will tear down
+ the current RS using normal SIP procedures (BYE) with metadata, as in
+ example 4.
+
+ Metadata snapshot for REFER based transfer in CS:
+
+ RE-INVITE SRC-------------------->SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: ab30317f1a784dc48ff824d0d3715d86
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49180 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+ ...
+ m=video 49182 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:97
+ a=sendonly
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 15]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ ...
+ m=audio 51374 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:98
+ a=sendonly
+ ...
+ m=video 49178 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:99
+ a=sendonly
+ ....
+
+ --foobar
+ Content-Type: application/rs-metadata
+ Content-Disposition: recording-session
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <stop-time>2010-12-16T23:41:07Z</stop-time>
+ </session>
+ <participantsessionassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <disassociate-time>2010-12-16T23:41:07Z</disassociate-time>
+ </participantsessionassoc>
+ <participantsessionassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <disassociate-time>2010-12-16T23:41:07Z</disassociate-time>
+ </participantsessionassoc>
+ </recording>
+
+ In the above snapshot, the 'participantsessionassoc' XML element is
+ optional as indicating a 'session' XML element with a 'stop-time' XML
+ element implicitly means that all the participants associated with
+ that session have been disassociated.
+
+ The SRC sends another snapshot to indicate the participant change
+ (due to REFER) and new session information after transfer. In this
+ example, it is assumed that the SRC uses the same RS to continue
+ recording the call. The 'sipSessionID' XML element in the metadata
+ snapshot now indicates Bob and Carol in the (local, remote) UUID
+ pair.
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 16]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ Metadata snapshot for REFER based transfer in CS:
+
+ RE-INVITE SRC-------------------->SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: ab30317f1a784dc48ff824d0d3715d86
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49180 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+ ...
+ m=video 49182 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:97
+ a=sendonly
+ ...
+ m=audio 51374 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:98
+ a=sendonly
+ ...
+ m=video 49178 RTP/AVPF 96
+ a=rtpmap:96 H.264/90000
+ a=label:99
+ a=sendonly
+ ....
+
+ --foobar
+ Content-Type: application/rs-metadata
+
+
+
+
+
+Ravindranath, et al. Informational [Page 17]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>complete</datamode>
+ <session session_id="bfLZ+NTFEeCNxQTuRyQBmw==">
+ <sipSessionID>3363127f0d084c10876dddd4f8e5eeb9
+ ;remote=2272bb7e70fe41dba0025ae9a26d54cf</sipSessionID>
+ <start-time>2010-12-16T23:41:07Z</start-time>
+ </session>
+ <participant
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <nameID aor="sip:Bob@biloxy.com"/>
+ </participant>
+ <participant
+ participant_id="Atnm1ZRnOC6Pm5MApkrDzQ==">
+ <nameID aor="sip:carol@example.com"/>
+ </participant>
+ <stream stream_id="60JAJm9UTvik0Ltlih/Gzw=="
+ session_id="bfLZ+NTFEeCNxQTuRyQBmw==">
+ <label>96</label>
+ </stream>
+ <stream stream_id="AcR5FUd3Edi8cACQJy/3JQ=="
+ session_id="bfLZ+NTFEeCNxQTuRyQBmw==">
+ <label>97</label>
+ </stream>
+ <stream stream_id="8zc6e0lYTlWIINA6GR+3ag=="
+ session_id="bfLZ+NTFEeCNxQTuRyQBmw==">
+ <label>98</label>
+ </stream>
+ <stream stream_id="EiXGlc+4TruqqoDaNE76ag=="
+ session_id="bfLZ+NTFEeCNxQTuRyQBmw==">
+ <label>99</label>
+ </stream>
+ <participantsessionassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw=="
+ session_id="bfLZ+NTFEeCNxQTuRyQBmw==">
+ <associate-time>2010-12-16T23:32:03Z</associate-time>
+ </participantsessionassoc>
+ <participantsessionassoc
+ participant_id="Atnm1ZRnOC6Pm5MApkrDzQ=="
+ session_id="bfLZ+NTFEeCNxQTuRyQBmw==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ </participantsessionassoc>
+ <participantstreamassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <send>8zc6e0lYTlWIINA6GR+3ag==</send>
+ <send>EiXGlc+4TruqqoDaNE76ag==</send>
+ <recv>60JAJm9UTvik0Ltlih/Gzw==</recv>
+ <recv>AcR5FUd3Edi8cACQJy/3JQ==</recv>
+
+
+
+Ravindranath, et al. Informational [Page 18]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ </participantstreamassoc>
+ <participantstreamassoc
+ participant_id="Atnm1ZRnOC6Pm5MApkrDzQ==">
+ <send>60JAJm9UTvik0Ltlih/Gzw==</send>
+ <send>AcR5FUd3Edi8cACQJy/3JQ==</send>
+ <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
+ <recv>EiXGlc+4TruqqoDaNE76ag==</recv>
+ </participantstreamassoc>
+ </recording>
+
+3.2.4. Example 4: Call Disconnect
+
+ This example shows a snapshot of metadata sent by the SRC to the SRS
+ when a CS with Alice and Bob as participants is disconnected.
+
+ SRC SRS
+ | |
+ |(1) BYE (metadata snapshot) F1 |
+ |---------------------------------------------------->|
+ | 200 OK F2 |
+ |<----------------------------------------------------|
+
+ Metadata snapshot for a CS disconnect:
+
+ F1 BYE SRC -----------> SRS
+
+ BYE sip:2001@example.com SIP/2.0
+ Via: SIP/2.0/UDP src.example.com;branch=z9hG4bK47c8eb30
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: ab30317f1a784dc48ff824d0d3715d86
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 102 BYE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/rs-metadata
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 19]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <stop-time>2010-12-16T23:41:07Z</stop-time>
+ </session>
+ <participantsessionassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <disassociate-time>2010-12-16T23:41:07Z</disassociate-time>
+ </participantsessionassoc>
+
+ <participantsessionassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <disassociate-time>2010-12-16T23:41:07Z</disassociate-time>
+ </participantsessionassoc>
+ </recording>
+
+3.3. Call Scenarios with SRC Recording Streams by Mixing
+
+ This section describes a few example call flows where the SRC may be
+ part of conference model either as focus or a participant in
+ conference as explained in Section 3.1.5 of [RFC7245]. The SRS here
+ can be a SIP User Agent (UA) or an entity part of the MEDIACTRL
+ architecture. Note that the disconnect case is not shown since the
+ metadata snapshot will be same as for a non-mixing case.
+
+3.3.1. Example 1: Basic Call with SRC Mixing Streams
+
+ A basic call between two participants, Alice and Bob, who are part of
+ one CS. In this use case, each participant calls into a conference
+ server (say, a Multipoint Control Unit (MCU)) to attend one of many
+ conferences hosted on or managed by that server. Media streams sent
+ by each participant are received by all the other participants in the
+ conference. Below is the initial snapshot sent by the SRC in the
+ INVITE to the SRS that has the complete metadata. For the sake of
+ simplicity, only snippets of SIP/SDP are shown. The SRC records the
+ streams of each participant to SRS by mixing in this example. The
+ SRC here is part of conference model described in Section 3 of
+ [RFC7245] as a focus and does mixing. The SRC here is not a
+ participant by itself and hence it does not contribute to media.
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 20]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ Metadata snapshot with the SRC mixing streams to the SRS:
+
+ F1 INVITE SRC --------------> SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: a358d2b81a444a8c8fb05950cef331e7
+ ;remote=00000000000000000000000000000000
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49170 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+
+ ....
+ --foobar
+ Content-Type: application/rs-metadata
+ Content-Disposition: recording-session
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>complete</datamode>
+ <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <sipSessionID>fa3b60f27e91441e84c55a9a0095f075
+ ;remote=a358d2b81a444a8c8fb05950cef331e7</sipSessionID>
+ <sipSessionID>ca718e1430474b5485a53aa5d0bea45e
+ ;remote=68caf509b9284b7ea45f84a049febf0a</sipSessionID>
+ <start-time>2010-12-16T23:41:07Z</start-time>
+ </session>
+ <participant
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <nameID aor="sip:alice@atlanta.com">
+ <name xml:lang="it">Alice</name>
+ </nameID>
+
+
+
+Ravindranath, et al. Informational [Page 21]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ </participant>
+ <participant
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <nameID aor="sip:bob@biloxy.com">
+ <name xml:lang="it">Bob</name>
+ </nameID>
+ </participant>
+ <stream stream_id="i1Pz3to5hGk8fuXl+PbwCw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <label>96</label>
+ </stream>
+ <participantsessionassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ </participantsessionassoc>
+ <participantsessionassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ </participantsessionassoc>
+ <participantstreamassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
+ <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
+ </participantstreamassoc>
+
+ <participantstreamassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
+ <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
+ </participantstreamassoc>
+ </recording>
+
+ In the above example, there are two participants, Alice and Bob, in
+ the conference. Among other things, the SRC sends Session-ID in the
+ metadata snapshot. There are two Session-IDs here: one that
+ corresponds to the SIP session between Alice and the Conference focus
+ and the other for the SIP session between Bob and the Conference
+ focus. In this use case, since Alice and Bob call into the
+ conference, these Session-IDs are different.
+
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 22]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+3.3.2. Example 2: Hold/Resume with SRC Recording by Mixing Streams
+
+ This is the continuation of example 1 (basic call with SRC mixing
+ streams). A call between two participants, Alice and Bob, is
+ established and an RS is created for recording, as in example 5. One
+ of the participants, Bob, puts Alice on hold, and then resumes as
+ part of the same CS. The 'send' and 'recv' XML elements of a
+ 'participant' XML element are used to indicate whether or not a
+ participant is contributing to a media stream. The metadata snapshot
+ is represented below:
+
+ During hold
+
+ Metadata snapshot when a CS participant goes on hold
+ and the SRC is mixing the streams:
+
+ RE-INVITE SRC --------------> SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: a358d2b81a444a8c8fb05950cef331e7
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49170 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+
+ ....
+ --foobar
+ Content-Type: application/rs-metadata
+ Content-Disposition: recording-session
+
+
+
+
+
+Ravindranath, et al. Informational [Page 23]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <stream stream_id="i1Pz3to5hGk8fuXl+PbwCw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <label>96</label>
+ </stream>
+ <participantstreamassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
+ </participantstreamassoc>
+ <participantstreamassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
+ </participantstreamassoc>
+ </recording>
+
+ During resumption, a snapshot shown below will be sent from the SRC
+ to the SRS.
+
+ Metadata snapshot when a CS participant resumes and
+ the SRC is mixing the streams:
+
+ RE-INVITE SRC --------------> SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: a358d2b81a444a8c8fb05950cef331e7
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 24]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49170 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+
+ ....
+ --foobar
+ Content-Type: application/rs-metadata
+ Content-Disposition: recording-session
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <stream stream_id="i1Pz3to5hGk8fuXl+PbwCw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <label>96</label>
+ </stream>
+ <participantstreamassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
+ <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
+ </participantstreamassoc>
+ <participantstreamassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
+ <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
+ </participantstreamassoc>
+ </recording>
+
+3.3.3. Example 3: Metadata Snapshot of Joining/Dropping of a
+ Participant to a Session
+
+ In a conference model, participants can join and drop a session any
+ time during the session. Below is a snapshot sent from the SRC to
+ the SRS in this case. Note the SRC here can be a focus or a
+ participant in the conference. In the case where the SRC is a
+ participant, it may learn the information required for metadata by
+ subscribing to a conference event package [RFC4575]. Assume Alice
+ and Bob were in the conference and a third participant (Carol) joins,
+ then the SRC sends the below snapshot with the indication of new
+ participant.
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 25]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ Metadata snapshot for a new participant joining CS:
+
+ RE-INVITE SRC --------------> SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: a358d2b81a444a8c8fb05950cef331e7
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49170 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+
+ ....
+ --foobar
+ Content-Type: application/rs-metadata
+ Content-Disposition: recording-session
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <sipSessionID>fa3b60f27e91441e84c55a9a0095f075
+ ;remote=a358d2b81a444a8c8fb05950cef331e7</sipSessionID>
+ <sipSessionID>ca718e1430474b5485a53aa5d0bea45e
+ ;remote=68caf509b9284b7ea45f84a049febf0a</sipSessionID>
+ <sipSessionID>497c0f13929643b4a16858e2a3885edc
+ ;remote=0e8a82bedda74f57be4a4a4da54167c4</sipSessionID>
+ </session>
+ <participant
+ participant_id="Atnm1ZRnOC6Pm5MApkrDzQ==">
+ <nameID aor="sip:carol@example.com">
+ <name xml:lang="it">Carol</name>
+
+
+
+Ravindranath, et al. Informational [Page 26]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ </nameID>
+ </participant>
+ <participantsessionassoc
+ participant_id="Atnm1ZRnOC6Pm5MApkrDzQ=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <associate-time>2013-12-16T23:41:07Z</associate-time>
+ </participantsessionassoc>
+ <participantstreamassoc
+ participant_id="Atnm1ZRnOC6Pm5MApkrDzQ==">
+ <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
+ <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
+ </participantstreamassoc>
+ </recording>
+
+ After some time, Alice drops from the conference. The SRC generates
+ a new snapshot showing Alice disassociating from the session.
+
+ Metadata snapshot for a participant dropping from CS:
+
+ RE-INVITE SRC --------------> SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: a358d2b81a444a8c8fb05950cef331e7
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/sdp, application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/SDP
+ ...
+ m=audio 49170 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 27]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ ....
+ --foobar
+ Content-Type: application/rs-metadata
+ Content-Disposition: recording-session
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <sipSessionID>ca718e1430474b5485a53aa5d0bea45e
+ ;remote=68caf509b9284b7ea45f84a049febf0a</sipSessionID>
+ <sipSessionID>497c0f13929643b4a16858e2a3885edc
+ ;remote=0e8a82bedda74f57be4a4a4da54167c4</sipSessionID>
+ </session>
+ <participantsessionassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <disassociate-time>2010-12-16T23:41:07Z</disassociate-time>
+ </participantsessionassoc>
+ </recording>
+
+
+3.3.4. Example 4: Call Disconnect
+
+ When a CS is disconnected, the SRC sends a BYE with a snapshot of
+ metadata having a session stop time and participant disassociation
+ times. The snapshot looks the same as listed in Section 3.2.4.
+
+3.4. Call Scenarios with Persistent RS between SRC and SRS
+
+ This section shows the snapshots of metadata for the cases where a
+ persistent RS exists between the SRC and the SRS. An SRC here may be
+ a SIP UA or a B2BUA, or it may be part of a conference model as
+ either the focus or a participant in a conference. The SRS here
+ could be a SIP UA or an entity part of the MEDIACTRL architecture.
+ Except in the disconnect case, the snapshot remains same as mentioned
+ in previous sections.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 28]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+3.4.1. Example 1: Metadata Snapshot during CS Disconnect with
+ Persistent RS between SRC and SRS
+
+ Metadata snapshot for a CS disconnect with a persistent RS:
+
+ RE-INVITE sent from SRC -----------> SRS
+
+ INVITE sip:2001@example.com SIP/2.0
+ Via: SIP/2.0/UDP src.example.com;branch=z9hG4bK47c8eb30
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: ab30317f1a784dc48ff824d0d3715d86
+ ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
+ CSeq: 101 INVITE
+ Max-Forwards: 70
+ Require: siprec
+ Accept: application/rs-metadata,
+ application/rs-metadata-request
+ Contact: <sip:2000@src.example.com>;+sip.src
+ Content-Type: multipart/mixed;boundary=foobar
+ Content-Length: [length]
+
+ --foobar
+ Content-Type: application/rs-metadata
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>partial</datamode>
+ <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <stop-time>2010-12-16T23:41:07Z</stop-time>
+ </session>
+ <participantsessionassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <disassociate-time>2010-12-16T23:41:07Z</disassociate-time>
+ </participantsessionassoc>
+
+ <participantsessionassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <disassociate-time>2010-12-16T23:41:07Z</disassociate-time>
+ </participantsessionassoc>
+ </recording>
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 29]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+3.5. Turret-Case: Multiple CS into Single RS with Mixed Stream
+
+ In trading-floor environments, in order to minimize storage and
+ recording system resources, it may be preferable to mix multiple
+ concurrent calls (each call is one CS) on different handsets/speakers
+ on the same turret into a single RS. This would mean media in each
+ CS is mixed and recorded as part of single media stream, and multiple
+ such CSs are recording in one RS from an SRC to an SRS.
+
+ Taking an example where there are two CSs [CS1 and CS2]: assume
+ mixing is done in each of these CSs and both these CSs are recorded
+ as part of single RS from a single SRC, which is part of both the
+ CSs. There are three possibilities here:
+
+ o CS1 and CS2 use the same focus for mixing, and that focus is also
+ acting as SRC in each of the CSs.
+
+ o One CS (e.g. CS1) SRC is the focus and the other CS (e.g. CS2),
+ SRC is just one of the participants of the conference.
+
+ o In both CS1 and CS2, the SRC is just a participant of conference.
+
+ The following example shows the first possibility where CS1 and CS2
+ use the same focus for mixing, and that focus is also acting as SRC
+ in each of the CSs.
+
+ Metadata snapshot with two CSs recorded as part of the same RS:
+
+ INVITE SRC --------------> SRS
+
+ INVITE sip:recorder@example.com SIP/2.0
+ Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
+ From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
+ To: <sip:recorder@example.com>
+ Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
+ Session-ID: a358d2b81a444a8c8fb05950cef331e7
+ ;remote=00000000000000000000000000000000
+ Content-Type: application/SDP
+ ...
+ m=audio 49170 RTP/AVP 0
+ a=rtpmap:0 PCMU/8000
+ a=label:96
+ a=sendonly
+ ...
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 30]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
+ <datamode>complete</datamode>
+ <group group_id="7+OTCyoxTmqmqyA/1weDAg==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ </group>
+ <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <sipSessionID>fa3b60f27e91441e84c55a9a0095f075
+ ;remote=a358d2b81a444a8c8fb05950cef331e7</sipSessionID>
+ <sipSessionID>ca718e1430474b5485a53aa5d0bea45e
+ ;remote=a358d2b81a444a8c8fb05950cef331e7</sipSessionID>
+ <sipSessionID>497c0f13929643b4a16858e2a3885edc
+ ;remote=a358d2b81a444a8c8fb05950cef331e7</sipSessionID>
+ <group-ref>7+OTCyoxTmqmqyA/1weDAg==</group-ref>
+ <start-time>2010-12-16T23:41:07Z</start-time>
+ </session>
+ <session session_id="e6370VVGEeWAG6886p18uA==">
+ <sipSessionID>ae10731ca50343a5aaae2dd0904a65de
+ ;remote=a358d2b81a444a8c8fb05950cef331e7</sipSessionID>
+ <sipSessionID>33c77aac7deb414cbc8c10f363fccb71
+ ;remote=a358d2b81a444a8c8fb05950cef331e7</sipSessionID>
+ <sipSessionID>fd6932e9e5fc489fae2d5b3779723b7e
+ ;remote=a358d2b81a444a8c8fb05950cef331e7</sipSessionID>
+ <group-ref>7+OTCyoxTmqmqyA/1weDAg==</group-ref>
+ <start-time>2010-12-16T23:43:07Z</start-time>
+ </session>
+ <participant
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <nameID aor="sip:alice@atlanta.com">
+ <name xml:lang="it">Alice</name>
+ </nameID>
+ </participant>
+ <participant
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <nameID aor="sip:Bob@biloxy.com">
+ <name xml:lang="it">Bob</name>
+ </nameID>
+ </participant>
+ <participant
+ participant_id="EiXGlc+4TruqqoDaNE76ag==">
+ <nameID aor="sip:Carol@example.com">
+ <name xml:lang="it">Carol</name>
+ </nameID>
+ </participant>
+ <stream stream_id="UAAMm5GRQKSCMVvLyl4rFw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <label>96</label>
+ </stream>
+
+
+
+Ravindranath, et al. Informational [Page 31]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+ <participantsessionassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ </participantsessionassoc>
+ <participantsessionassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw=="
+ session_id="hVpd7YQgRW2nD22h7q60JQ==">
+ <associate-time>2010-12-16T23:41:07Z</associate-time>
+ </participantsessionassoc>
+ <participantsessionassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw=="
+ session_id="e6370VVGEeWAG6886p18uA==">
+ <associate-time>2010-12-16T23:43:07Z</associate-time>
+ </participantsessionassoc>
+ <participantsessionassoc
+ participant_id="EiXGlc+4TruqqoDaNE76ag=="
+ session_id="e6370VVGEeWAG6886p18uA==">
+ <associate-time>2010-12-16T23:43:07Z</associate-time>
+ </participantsessionassoc>
+
+ <participantstreamassoc
+ participant_id="srfBElmCRp2QB23b7Mpk0w==">
+ <send>UAAMm5GRQKSCMVvLyl4rFw==</send>
+ <recv>UAAMm5GRQKSCMVvLyl4rFw==</recv>
+ </participantstreamassoc>
+ <participantstreamassoc
+ participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
+ <send>UAAMm5GRQKSCMVvLyl4rFw==</send>
+ <recv>UAAMm5GRQKSCMVvLyl4rFw==</recv>
+ </participantstreamassoc>
+ <participantstreamassoc
+ participant_id="EiXGlc+4TruqqoDaNE76ag==">
+ <send>UAAMm5GRQKSCMVvLyl4rFw==</send>
+ <recv>UAAMm5GRQKSCMVvLyl4rFw==</recv>
+ </participantstreamassoc>
+ </recording>
+
+4. Security Considerations
+
+ Security and privacy considerations mentioned in [RFC7865] and
+ [RFC7866] have to be followed by the SRC and the SRS for setting up
+ RS SIP dialogs and sending metadata.
+
+5. IANA Considerations
+
+ This document does not require any IANA actions.
+
+
+
+
+Ravindranath, et al. Informational [Page 32]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+6. References
+
+6.1. Normative References
+
+ [RFC6341] Rehor, K., Ed., Portman, L., Ed., Hutton, A., and R. Jain,
+ "Use Cases and Requirements for SIP-Based Media Recording
+ (SIPREC)", RFC 6341, DOI 10.17487/RFC6341, August 2011,
+ <http://www.rfc-editor.org/info/rfc6341>.
+
+ [RFC7865] Ravindranath, R., Ravindran, P., and P. Kyzivat, "Session
+ Initiation Protocol (SIP) Recording Metadata", RFC 7865,
+ DOI 10.17487/RFC7865, May 2016,
+ <http://www.rfc-editor.org/info/rfc7865>.
+
+ [RFC7866] Portman, L., Lum, H., Ed., Eckel, C., Johnston, A., and A.
+ Hutton, "Session Recording Protocol", RFC 7866,
+ DOI 10.17487/RFC7866, May 2016,
+ <http://www.rfc-editor.org/info/rfc7866>.
+
+ [RFC7245] Hutton, A., Ed., Portman, L., Ed., Jain, R., and K. Rehor,
+ "An Architecture for Media Recording Using the Session
+ Initiation Protocol", RFC 7245, DOI 10.17487/RFC7245, May
+ 2014, <http://www.rfc-editor.org/info/rfc7245>.
+
+6.2. Informative References
+
+ [RFC4575] Rosenberg, J., Schulzrinne, H., and O. Levin, Ed., "A
+ Session Initiation Protocol (SIP) Event Package for
+ Conference State", RFC 4575, DOI 10.17487/RFC4575, August
+ 2006, <http://www.rfc-editor.org/info/rfc4575>.
+
+ [RFC4353] Rosenberg, J., "A Framework for Conferencing with the
+ Session Initiation Protocol (SIP)", RFC 4353,
+ DOI 10.17487/RFC4353, February 2006,
+ <http://www.rfc-editor.org/info/rfc4353>.
+
+ [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
+ A., Peterson, J., Sparks, R., Handley, M., and E.
+ Schooler, "SIP: Session Initiation Protocol", RFC 3261,
+ DOI 10.17487/RFC3261, June 2002,
+ <http://www.rfc-editor.org/info/rfc3261>.
+
+ [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
+ Description Protocol", RFC 4566, DOI 10.17487/RFC4566,
+ July 2006, <http://www.rfc-editor.org/info/rfc4566>.
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 33]
+
+RFC 8068 SIP Recording Call Flows February 2017
+
+
+Acknowledgements
+
+ Thanks to Ofir Rath, Charles Eckel, Yaron Pdut, Dmitry Andreyev, and
+ Charles Armitage for their review comments.
+
+ Thanks to Alissa Cooper, Stephen Farrell, Kathleen Moriarty, Suresh
+ Krishnan, Benoit Claise, Carlos Pignataro, Dan Romascanu, and Derek
+ Atkins for their feedback and comments during IESG reviews.
+
+Authors' Addresses
+
+ Ram Mohan Ravindranath
+ Cisco Systems, Inc.
+ Cessna Business Park,
+ Kadabeesanahalli Village, Varthur Hobli,
+ Sarjapur-Marathahalli Outer Ring Road
+ Bangalore, Karnataka 560103
+ India
+
+ Email: rmohanr@cisco.com
+
+
+ Parthasarathi Ravindran
+ Nokia Networks
+ Bangalore, Karnataka
+ India
+
+ Email: partha@parthasarathi.co.in
+
+
+ Paul Kyzivat
+ Huawei
+ Hudson, MA
+ United States of America
+
+ Email: pkyzivat@alum.mit.edu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Ravindranath, et al. Informational [Page 34]
+