rfc7866v3.txt   rfc7866.txt 
skipping to change at page 3, line 37 skipping to change at page 3, line 37
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35
11.1. Registration of Option Tags . . . . . . . . . . . . . . 35 11.1. Registration of Option Tags . . . . . . . . . . . . . . 35
11.1.1. "siprec" Option Tag . . . . . . . . . . . . . . . . 35 11.1.1. "siprec" Option Tag . . . . . . . . . . . . . . . . 35
11.1.2. "record-aware" Option Tag . . . . . . . . . . . . . 36 11.1.2. "record-aware" Option Tag . . . . . . . . . . . . . 36
11.2. Registration of Media Feature Tags . . . . . . . . . . . 36 11.2. Registration of Media Feature Tags . . . . . . . . . . . 36
11.2.1. Feature Tag for the SRC . . . . . . . . . . . . . . 36 11.2.1. Feature Tag for the SRC . . . . . . . . . . . . . . 36
11.2.2. Feature Tag for the SRS . . . . . . . . . . . . . . 36 11.2.2. Feature Tag for the SRS . . . . . . . . . . . . . . 36
11.3. New Content-Disposition Parameter Registrations . . . . 37 11.3. New Content-Disposition Parameter Registrations . . . . 37
11.4. Media Type Registration . . . . . . . . . . . . . . . . 37 11.4. Media Type Registration . . . . . . . . . . . . . . . . 37
11.5. SDP Attributes . . . . . . . . . . . . . . . . . . . . . 37 11.5. SDP Attributes . . . . . . . . . . . . . . . . . . . . . 37
11.5.1. 'record' SDP Attribute . . . . . . . . . . . . . . . 37 11.5.1. "record" SDP Attribute . . . . . . . . . . . . . . . 37
11.5.2. 'recordpref' SDP Attribute . . . . . . . . . . . . . 38 11.5.2. "recordpref" SDP Attribute . . . . . . . . . . . . . 38
12. Security Considerations . . . . . . . . . . . . . . . . . . . 38 12. Security Considerations . . . . . . . . . . . . . . . . . . . 38
12.1. Authentication and Authorization . . . . . . . . . . . . 38 12.1. Authentication and Authorization . . . . . . . . . . . . 38
12.2. RTP Handling . . . . . . . . . . . . . . . . . . . . . . 39 12.2. RTP Handling . . . . . . . . . . . . . . . . . . . . . . 39
12.3. Metadata . . . . . . . . . . . . . . . . . . . . . . . . 40 12.3. Metadata . . . . . . . . . . . . . . . . . . . . . . . . 40
12.4. Storage and Playback . . . . . . . . . . . . . . . . . . 40 12.4. Storage and Playback . . . . . . . . . . . . . . . . . . 40
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 40 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 40
13.1. Normative References . . . . . . . . . . . . . . . . . . 41 13.1. Normative References . . . . . . . . . . . . . . . . . . 41
13.2. Informative References . . . . . . . . . . . . . . . . . 42 13.2. Informative References . . . . . . . . . . . . . . . . . 42
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 44 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 44
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44
skipping to change at page 9, line 44 skipping to change at page 9, line 44
| (14) 200 OK | | (14) 200 OK |
|<----------------------------------------------------| |<----------------------------------------------------|
Figure 3: Delivering Metadata via SIP UPDATE Figure 3: Delivering Metadata via SIP UPDATE
5.3. Receiving Recording Indications and Providing Recording 5.3. Receiving Recording Indications and Providing Recording
Preferences Preferences
The SRC is responsible for providing recording indications to the The SRC is responsible for providing recording indications to the
participants in the CS. A recording-aware UA supports receiving participants in the CS. A recording-aware UA supports receiving
recording indications via the SDP attribute a=record, and it can recording indications via the SDP "a=record" attribute, and it can
specify a recording preference in the CS by including the SDP specify a recording preference in the CS by including the SDP
attribute a=recordpref. The recording attribute is a declaration by "a=recordpref" attribute. The recording attribute is a declaration
the SRC in the CS to indicate whether recording is taking place. The by the SRC in the CS to indicate whether recording is taking place.
recording preference attribute is a declaration by the recording- The recording preference attribute is a declaration by the recording-
aware UA in the CS to indicate its recording preference. A UA that aware UA in the CS to indicate its recording preference. A UA that
does not want to be recorded may still be notified that recording is does not want to be recorded may still be notified that recording is
occurring, for a number of reasons (e.g., it was not capable of occurring, for a number of reasons (e.g., it was not capable of
indicating its preference, its preference was ignored). If this indicating its preference, its preference was ignored). If this
occurs, the UA's only mechanism to avoid being recorded is to occurs, the UA's only mechanism to avoid being recorded is to
terminate its participation in the session. terminate its participation in the session.
To illustrate how the attributes are used, if UA A is initiating a To illustrate how the attributes are used, if UA A is initiating a
call to UA B and UA A is also an SRC that is performing the call to UA B and UA A is also an SRC that is performing the
recording, then UA A provides the recording indication in the SDP recording, then UA A provides the recording indication in the SDP
skipping to change at page 10, line 43 skipping to change at page 10, line 43
| [SRC honors the preference and stops recording] | | [SRC honors the preference and stops recording] |
|(6) 200 OK (SDP answer + a=record:off) | |(6) 200 OK (SDP answer + a=record:off) |
|---------------------------------------------------->| |---------------------------------------------------->|
| (7) ACK | | (7) ACK |
|<----------------------------------------------------| |<----------------------------------------------------|
Figure 4: Recording Indication and Recording Preference Figure 4: Recording Indication and Recording Preference
After the call is established and recording is in progress, UA B After the call is established and recording is in progress, UA B
later decides to change the recording preference to no recording and later decides to change the recording preference to no recording and
sends a re-INVITE with the a=recordpref attribute. It is up to the sends a re-INVITE with the "a=recordpref" attribute. It is up to the
SRC to honor the preference, and in this case the SRC decides to stop SRC to honor the preference, and in this case the SRC decides to stop
the recording and updates the recording indication in the SDP answer. the recording and updates the recording indication in the SDP answer.
Note that UA B could have explicitly indicated a recording preference Note that UA B could have explicitly indicated a recording preference
in (2), the 200 OK for the original INVITE. Indicating a preference in (2), the 200 OK for the original INVITE. Indicating a preference
of no recording in an initial INVITE or an initial response to an of no recording in an initial INVITE or an initial response to an
INVITE may reduce the chance of a user being recorded in the INVITE may reduce the chance of a user being recorded in the
first place. first place.
6. SIP Handling 6. SIP Handling
skipping to change at page 11, line 47 skipping to change at page 11, line 47
When an SRC receives a new INVITE, the SRC MUST only consider the SIP When an SRC receives a new INVITE, the SRC MUST only consider the SIP
session as an RS when both the "+sip.srs" feature tag and the session as an RS when both the "+sip.srs" feature tag and the
"siprec" option tag are included in the INVITE request. "siprec" option tag are included in the INVITE request.
6.1.2. SIP Extensions for Recording Indications and Preferences 6.1.2. SIP Extensions for Recording Indications and Preferences
For the CS, the SRC MUST provide recording indications to all For the CS, the SRC MUST provide recording indications to all
participants in the CS. A participant UA in a CS can indicate that participants in the CS. A participant UA in a CS can indicate that
it is recording aware by providing the "record-aware" option tag, and it is recording aware by providing the "record-aware" option tag, and
the SRC MUST provide recording indications in the new SDP a=record the SRC MUST provide recording indications in the new SDP "a=record"
attribute described in Section 7 below. In the absence of the attribute described in Section 7 below. In the absence of the
"record-aware" option tag -- meaning that the participant UA is not "record-aware" option tag -- meaning that the participant UA is not
recording aware -- an SRC MUST provide recording indications through recording aware -- an SRC MUST provide recording indications through
other means, such as playing a tone in-band or having a signed other means, such as playing a tone in-band or having a signed
participant contract in place. participant contract in place.
An SRC in the CS may also indicate itself as a session recording An SRC in the CS may also indicate itself as a session recording
client by including the "+sip.src" feature tag. A recording-aware client by including the "+sip.src" feature tag. A recording-aware
participant can learn that an SRC is in the CS and can set the participant can learn that an SRC is in the CS and can set the
recording preference for the CS with the new SDP a=recordpref recording preference for the CS with the new SDP "a=recordpref"
attribute described in Section 7. attribute described in Section 7.
6.2. Procedures at the SRS 6.2. Procedures at the SRS
When an SRS receives a new INVITE, the SRS MUST only consider the SIP When an SRS receives a new INVITE, the SRS MUST only consider the SIP
session as an RS when both the "+sip.src" feature tag and the session as an RS when both the "+sip.src" feature tag and the
"siprec" option tag are included in the INVITE request. "siprec" option tag are included in the INVITE request.
The SRS can initiate an RS by sending a SIP INVITE request to the The SRS can initiate an RS by sending a SIP INVITE request to the
SRC. The SRS and the SRC are identified in the From and To headers, SRC. The SRS and the SRC are identified in the From and To headers,
skipping to change at page 13, line 24 skipping to change at page 13, line 24
7.1. Procedures at the SRC 7.1. Procedures at the SRC
The SRC and SRS follow the SDP offer/answer model described in The SRC and SRS follow the SDP offer/answer model described in
[RFC3264]. The procedures for the SRC and SRS describe the [RFC3264]. The procedures for the SRC and SRS describe the
conventions used in an RS. conventions used in an RS.
7.1.1. SDP Handling in the RS 7.1.1. SDP Handling in the RS
Since the SRC does not expect to receive media from the SRS, the SRC Since the SRC does not expect to receive media from the SRS, the SRC
typically sets each media stream of the SDP offer to only send media, typically sets each media stream of the SDP offer to only send media,
by qualifying them with the a=sendonly attribute, according to the by qualifying them with the "a=sendonly" attribute, according to the
procedures in [RFC3264]. procedures in [RFC3264].
The SRC sends recorded streams of participants to the SRS, and the The SRC sends recorded streams of participants to the SRS, and the
SRC MUST provide a label attribute (a=label), as per [RFC4574], on SRC MUST provide a "label" attribute ("a=label"), as per [RFC4574],
each media stream in order to identify the recorded stream with the on each media stream in order to identify the recorded stream with
rest of the metadata. The a=label attribute identifies each recorded the rest of the metadata. The "a=label" attribute identifies each
media stream, and the label name is mapped to the Media Stream recorded media stream, and the label name is mapped to the Media
Reference in the metadata as per [RFC7865]. The scope of the a=label Stream Reference in the metadata as per [RFC7865]. The scope of the
attribute only applies to the SDP and metadata conveyed in the bodies "a=label" attribute only applies to the SDP and metadata conveyed in
of the SIP request or response that the label appeared in. Note that the bodies of the SIP request or response that the label appeared in.
a recorded stream is distinct from a CS stream; the metadata provides Note that a recorded stream is distinct from a CS stream; the
a list of participants that contribute to each recorded stream. metadata provides a list of participants that contribute to each
recorded stream.
Figure 5 shows an example SDP offer from an SRC with both audio and Figure 5 shows an example SDP offer from an SRC with both audio and
video recorded streams. Note that this example contains unfolded video recorded streams. Note that this example contains unfolded
lines longer than 72 characters; these lines are captured between lines longer than 72 characters; these lines are captured between
<allOneLine> tags. <allOneLine> tags.
v=0 v=0
o=SRC 2890844526 2890844526 IN IP4 198.51.100.1 o=SRC 2890844526 2890844526 IN IP4 198.51.100.1
s=- s=-
c=IN IP4 198.51.100.1 c=IN IP4 198.51.100.1
skipping to change at page 15, line 20 skipping to change at page 15, line 20
corresponding RS media stream is governed by SRC policy. The SRC MAY corresponding RS media stream is governed by SRC policy. The SRC MAY
have a local policy to pause an RS media stream when the have a local policy to pause an RS media stream when the
corresponding CS media stream is inactive, or it MAY leave the RS corresponding CS media stream is inactive, or it MAY leave the RS
media stream as sendonly. media stream as sendonly.
7.1.2. Recording Indication in the CS 7.1.2. Recording Indication in the CS
While there are existing mechanisms for providing an indication that While there are existing mechanisms for providing an indication that
a CS is being recorded, these mechanisms are usually delivered on the a CS is being recorded, these mechanisms are usually delivered on the
CS media streams, such as playing an in-band tone or an announcement CS media streams, such as playing an in-band tone or an announcement
to the participants. A new 'record' SDP attribute is introduced to to the participants. A new "record" SDP attribute is introduced to
allow the SRC to indicate recording state to a recording-aware UA in allow the SRC to indicate recording state to a recording-aware UA in
a CS. a CS.
The 'record' SDP attribute appears at the media level or The "record" SDP attribute appears at the media level or
session level in either an SDP offer or answer. When the attribute session level in either an SDP offer or answer. When the attribute
is applied at the session level, the indication applies to all media is applied at the session level, the indication applies to all media
streams in the SDP. When the attribute is applied at the streams in the SDP. When the attribute is applied at the
media level, the indication applies to that one media stream only, media level, the indication applies to that one media stream only,
and that overrides the indication if also set at the session level. and that overrides the indication if also set at the session level.
Whenever the recording indication needs to change, such as Whenever the recording indication needs to change, such as
termination of recording, the SRC MUST initiate a re-INVITE or UPDATE termination of recording, the SRC MUST initiate a re-INVITE or UPDATE
to update the SDP a=record attribute. to update the SDP "a=record" attribute.
The following is the ABNF [RFC5234] of the 'record' attribute: The following is the ABNF [RFC5234] of the "record" attribute:
attribute =/ record-attr attribute =/ record-attr
; attribute defined in RFC 4566 ; attribute defined in RFC 4566
record-attr = "record:" indication record-attr = "record:" indication
indication = "on" / "off" / "paused" indication = "on" / "off" / "paused"
on: Recording is in progress. on: Recording is in progress.
off: No recording is in progress. off: No recording is in progress.
paused: Recording is in progress but media is paused. paused: Recording is in progress but media is paused.
7.1.3. Recording Preference in the CS 7.1.3. Recording Preference in the CS
When the SRC receives the a=recordpref SDP in an SDP offer or answer, When the SRC receives the "a=recordpref" SDP in an SDP offer or
the SRC chooses to honor the preference to record based on local answer, the SRC chooses to honor the preference to record based on
policy at the SRC. If the SRC makes a change in recording state, the local policy at the SRC. If the SRC makes a change in recording
SRC MUST report the new recording state in the a=record attribute in state, the SRC MUST report the new recording state in the "a=record"
the SDP answer or in a subsequent SDP offer. attribute in the SDP answer or in a subsequent SDP offer.
7.2. Procedures at the SRS 7.2. Procedures at the SRS
Typically, the SRS only receives RTP streams from the SRC; therefore, Typically, the SRS only receives RTP streams from the SRC; therefore,
the SDP offer/answer from the SRS normally sets each media stream to the SDP offer/answer from the SRS normally sets each media stream to
receive media, by setting them with the a=recvonly attribute, receive media, by setting them with the "a=recvonly" attribute,
according to the procedures of [RFC3264]. When the SRS is not ready according to the procedures of [RFC3264]. When the SRS is not ready
to receive a recorded stream, the SRS sets the media stream as to receive a recorded stream, the SRS sets the media stream as
inactive in the SDP offer or answer by setting it with an a=inactive inactive in the SDP offer or answer by setting it with an
attribute, according to the procedures of [RFC3264]. When the SRS is "a=inactive" attribute, according to the procedures of [RFC3264].
ready to receive recorded streams, the SRS sends a new SDP offer and When the SRS is ready to receive recorded streams, the SRS sends a
sets the media streams with an a=recvonly attribute. new SDP offer and sets the media streams with an "a=recvonly"
attribute.
Figure 6 shows an example of an SDP answer from the SRS for the SDP Figure 6 shows an example of an SDP answer from the SRS for the SDP
offer from Figure 5. Note that this example contains unfolded lines offer from Figure 5. Note that this example contains unfolded lines
longer than 72 characters; these lines are captured between longer than 72 characters; these lines are captured between
<allOneLine> tags. <allOneLine> tags.
v=0 v=0
o=SRS 0 0 IN IP4 198.51.100.20 o=SRS 0 0 IN IP4 198.51.100.20
s=- s=-
c=IN IP4 198.51.100.20 c=IN IP4 198.51.100.20
skipping to change at page 18, line 37 skipping to change at page 18, line 37
| (9) OK | | (9) OK |
|<----------------------------------------------------| |<----------------------------------------------------|
Figure 7: SRS Responding to Offer with a=inactive Figure 7: SRS Responding to Offer with a=inactive
7.3. Procedures for Recording-Aware User Agents 7.3. Procedures for Recording-Aware User Agents
7.3.1. Recording Indication 7.3.1. Recording Indication
When a recording-aware UA receives an SDP offer or answer that When a recording-aware UA receives an SDP offer or answer that
includes the a=record attribute, the UA provides to the end user an includes the "a=record" attribute, the UA provides to the end user an
indication as to whether the recording is on, off, or paused for each indication as to whether the recording is on, off, or paused for each
medium, based on the most recently received a=record SDP attribute medium, based on the most recently received "a=record" SDP attribute
for that medium. for that medium.
When a CS is traversed through multiple UAs such as a B2BUA or a When a CS is traversed through multiple UAs such as a B2BUA or a
conference focus, each UA involved in the CS that is aware that the conference focus, each UA involved in the CS that is aware that the
CS is being recorded MUST provide the recording indication through CS is being recorded MUST provide the recording indication through
the a=record attribute to all other parties in the CS. the "a=record" attribute to all other parties in the CS.
It is possible that more than one SRC is in the call path of the same It is possible that more than one SRC is in the call path of the same
CS, but the recording indication attribute does not provide any hint CS, but the recording indication attribute does not provide any hint
as to which SRC or how many SRCs are recording. An endpoint knows as to which SRC or how many SRCs are recording. An endpoint knows
only that the call is being recorded. Furthermore, this attribute is only that the call is being recorded. Furthermore, this attribute is
not used as a request for a specific SRC to start or stop recording. not used as a request for a specific SRC to start or stop recording.
7.3.2. Recording Preference 7.3.2. Recording Preference
A participant in a CS MAY set the recording preference in the CS to A participant in a CS MAY set the recording preference in the CS to
be recorded or not recorded at session establishment or during the be recorded or not recorded at session establishment or during the
session. A new 'recordpref' SDP attribute is introduced, and the session. A new "recordpref" SDP attribute is introduced, and the
participant in the CS may set this recording preference attribute in participant in the CS may set this recording preference attribute in
any SDP offer/answer at session establishment time or during the any SDP offer/answer at session establishment time or during the
session. The SRC is not required to honor the recording preference session. The SRC is not required to honor the recording preference
from a participant, based on local policies at the SRC, and the from a participant, based on local policies at the SRC, and the
participant can learn the recording indication through the a=record participant can learn the recording indication through the "a=record"
SDP attribute as described in Section 7.3.1. SDP attribute as described in Section 7.3.1.
The SDP a=recordpref attribute can appear at the media level or The SDP "a=recordpref" attribute can appear at the media level or
session level and can appear in an SDP offer or answer. When the session level and can appear in an SDP offer or answer. When the
attribute is applied at the session level, the recording preference attribute is applied at the session level, the recording preference
applies to all media streams in the SDP. When the attribute is applies to all media streams in the SDP. When the attribute is
applied at the media level, the recording preference applies to that applied at the media level, the recording preference applies to that
one media stream only, and that overrides the recording preference if one media stream only, and that overrides the recording preference if
also set at the session level. The UA can change the recording also set at the session level. The UA can change the recording
preference by changing the a=recordpref attribute in a subsequent SDP preference by changing the "a=recordpref" attribute in a subsequent
offer or answer. The absence of the a=recordpref attribute in the SDP offer or answer. The absence of the "a=recordpref" attribute in
SDP indicates that the UA has no recording preference. the SDP indicates that the UA has no recording preference.
The following is the ABNF of the 'recordpref' attribute: The following is the ABNF of the "recordpref" attribute:
attribute =/ recordpref-attr attribute =/ recordpref-attr
; attribute defined in RFC 4566 ; attribute defined in RFC 4566
recordpref-attr = "a=recordpref:" pref recordpref-attr = "a=recordpref:" pref
pref = "on" / "off" / "pause" / "nopreference" pref = "on" / "off" / "pause" / "nopreference"
on: Sets the preference to record if it has not already been on: Sets the preference to record if it has not already been
started. If the recording is currently paused, the started. If the recording is currently paused, the
preference is to resume recording. preference is to resume recording.
skipping to change at page 37, line 35 skipping to change at page 37, line 35
* the reason for the metadata snapshot request * the reason for the metadata snapshot request
as determined by the MIME value indicated in the Content-Type. as determined by the MIME value indicated in the Content-Type.
11.4. Media Type Registration 11.4. Media Type Registration
11.5. SDP Attributes 11.5. SDP Attributes
This document registers the following new SDP attributes. This document registers the following new SDP attributes.
11.5.1. 'record' SDP Attribute 11.5.1. "record" SDP Attribute
Contact names: Contact names:
Leon Portman, leon.portman@nice.com; Leon Portman, leon.portman@nice.com;
Henry Lum, henry.lum@genesyslab.com Henry Lum, henry.lum@genesyslab.com
Attribute name: record Attribute name: record
Long-form attribute name: Recording Indication Long-form attribute name: Recording Indication
Type of attribute: session level or media level Type of attribute: session level or media level
Subject to charset: no Subject to charset: no
This attribute provides the recording indication for the session or This attribute provides the recording indication for the session or
media stream. media stream.
Allowed attribute values: on, off, paused Allowed attribute values: on, off, paused
11.5.2. 'recordpref' SDP Attribute 11.5.2. "recordpref" SDP Attribute
Contact names: Contact names:
Leon Portman, leon.portman@nice.com; Leon Portman, leon.portman@nice.com;
Henry Lum, henry.lum@genesyslab.com Henry Lum, henry.lum@genesyslab.com
Attribute name: recordpref Attribute name: recordpref
Long-form attribute name: Recording Preference Long-form attribute name: Recording Preference
Type of attribute: session level or media level Type of attribute: session level or media level
 End of changes. 25 change blocks. 
45 lines changed or deleted 47 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/