Internet DRAFT - draft-hutton-dispatch-session-recording-arch
draft-hutton-dispatch-session-recording-arch
DISPATCH Working Group A. Hutton
Internet-Draft Siemens Enterprise Communications
Intended status: BCP L. Portman
Expires: August 30, 2010 Nice Systems
R. Jain
IPC Systems
K. Rehor
Cisco Systems, Inc.
February 26, 2010
An Architecture for Media Recording using the Session Initiation
Protocol
draft-hutton-dispatch-session-recording-arch-00
Abstract
Session recording is a critical requirement in many communications
environments such as call centers and financial trading. In some of
these environments, all calls must be recorded for regulatory,
compliance, and consumer protection reasons. Recording of a session
is typically performed by sending a copy of a media stream to a
recording device. This document describes architectures for
deploying session recording solutions in an environment which is
based on the Session Initiation Protocol (SIP). This is an initial
draft which explores possible architectural solutions and has many
open issues.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Hutton, et al. Expires August 30, 2010 [Page 1]
Internet-Draft Architecture for Media Recording February 2010
This Internet-Draft will expire on August 30, 2010.
Copyright Notice
Copyright (c) 2010 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.
Hutton, et al. Expires August 30, 2010 [Page 2]
Internet-Draft Architecture for Media Recording February 2010
Table of Contents
1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Session Recording Architectures . . . . . . . . . . . . . . . 5
4.1. Location of the Recording Client . . . . . . . . . . . . . 5
4.1.1. B2BUA acts as a Recording Client . . . . . . . . . . . 5
4.1.2. Endpoint acts as Recording Client . . . . . . . . . . 6
4.2. Establishing the Recording Session . . . . . . . . . . . . 7
4.2.1. Recording Client Initiated Recording . . . . . . . . . 8
4.2.2. Recording Server Initiated Recording . . . . . . . . . 8
4.2.3. Pause/Resume Recording Session . . . . . . . . . . . . 9
4.2.4. Media Stream Mixing . . . . . . . . . . . . . . . . . 9
4.3. Media Recording Metadata . . . . . . . . . . . . . . . . . 9
4.3.1. Contents of recording metadata . . . . . . . . . . . . 9
4.3.2. Mechanisms for delivery of metadata to Recording
Server . . . . . . . . . . . . . . . . . . . . . . . . 10
4.4. Notifications to the Recorded User Agents . . . . . . . . 10
4.5. Preventing the recording of a SIP session . . . . . . . . 10
5. IANA considerations . . . . . . . . . . . . . . . . . . . . . 11
6. Security considerations . . . . . . . . . . . . . . . . . . . 11
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.1. Normative References . . . . . . . . . . . . . . . . . . . 11
7.2. Informative References . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12
Hutton, et al. Expires August 30, 2010 [Page 3]
Internet-Draft Architecture for Media Recording February 2010
1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in [RFC2119] and
indicate requirement levels for compliant mechanisms.
2. Definitions
Recording Server (RS): A Recording Server (RS) is a SIP User Agent
(UA) that is a specialized media server or collector that acts as the
sink of the recorded media. An Recording Server is typically
implemented as a multi-port device that is capable of receiving media
from several sources simultaneously. An Recording Server is
typically also the sink of the Media Recording Metadata.
Recording Client (RC): A Recording Client (RC) is a SIP User Agent
(UA) that acts as the source of the recorded media, sending it to the
Recording Server. An Recording Client is a logical function. Its
capabilities may be implemented across one or more physical devices.
In practice, an Recording Client could be a personal device (such as
a SIP phone), a SIP Media Gateway (MG), a Session Border Controller
(SBC) or an Application Server. The Recording Client is also the
source of the recorded session metadata
Communication Session: A SIP session created between two or more
UA's for the purpose of communication which may be recorded (I.e.
Not the Recording Session).
Recording Session: The session created between an Recording Client
and Recording Server for the purpose of recording a Communication
Session.
Recording aware UA: A SIP User Agent that can at a minimum
understand notifications indicating that a Communication Session in
which it is involved is being recorded. It may also be able to
express preferences relating to whether a Communication session can
or should be recorded.
Media Recording Metadata: The metadata describing the communication
session that is required by the Recording Server. This will include
for example the identity of users that participate in the
Communication Session and dialog state. Typically this metadata is
archived with the replicated media at the recording server. The
media recording metadata is delivered in real-time to the Recording
Server.
Hutton, et al. Expires August 30, 2010 [Page 4]
Internet-Draft Architecture for Media Recording February 2010
Replicated Media: A copy of the media associated with the
Communication Session created by the Recording Client and sent to the
Recording Server. It may contain all the media associated with the
communication session (E.g. Audio and Video) or just a subset (E.g.
Audio).
3. Introduction
Session recording is a critical requirement in many communications
environments such as call centers and financial trading. In some of
these environments, all calls must be recorded for regulatory,
compliance, and consumer protection reasons. Recording of a session
is typically performed by sending a copy of a media stream to a
recording device. This document describes architectures for
deploying session recording solutions in an environment which is
based on the Session Initiation Protocol (SIP) the requirements for
which are described in [I-D.rehor-dispatch-session-recording-req].
This is an initial draft which explores possible architectural
solutions and has many open issues.
This document focuses on how sessions are established between a
Recording Client (RC) and the Recording Server for the purpose of
conveying the Replicated Media and Media Recording Metadata (e.g.
Identity of parties involves) relating to the Communication Session.
Once the Replicated Media and Media Recording Metadata have been
received by the Recording Server they will typically be archived for
retrieval at a later time. The procedures relating to the archiving
and retrieval of this information in outside the scope of this
document.
This document only considers active recording, where the Recording
Client purposefully streams media to a Recording Server. Passive
recording, where a recording device detects media directly from the
network (E.g. using port mirroring techniques), is outside the scope
of this document. In addition, lawful intercept are outside the
scope of this document which takes account of the IETF policy on
wiretapping [RFC2804].
The Recording Session that is established between the Recording
Client and the Recording Server uses the normal procedures for
establishing INVITE initiated dialogs as specified in [RFC3261] and
uses SDP for describing the media to be used during the session as
specified in [RFC4566]. However it is intended that some extensions
to SIP (E.g. Headers, Option Tags, Etc.) will be defined to support
the requirements for media recording. The Replicated Media is
required to be sent in real-time to the Recording Server and is not
Hutton, et al. Expires August 30, 2010 [Page 5]
Internet-Draft Architecture for Media Recording February 2010
buffered by the Recording Client to allow for real-time analysis of
the media by the Recording Server.
This is an initial draft which explores some possible architectural
solutions for media recording using SIP and it is intended as a basis
for discussion. A future version of this document will focus on a
specific architectural solution and protocol extensions.
4. Session Recording Architectures
4.1. Location of the Recording Client
This section contains some example session recording architectures
showing how the Recording Client is a logical function that can be
located in or split between various physical components.
4.1.1. B2BUA acts as a Recording Client
A SIP B2BUA which has access to the media that is to be recorded may
act as a Recording Client. The B2BUA may already be aware that a
session needs to be recorded before the initial establishment of the
communication session or the decision to record the session may occur
after the session has been established.
If the B2BUA/RC makes the decision to initiate the Recording Session
then it will initiate the establishment of a SIP Session by sending
an INVITE to the Recording Server.
If the Recording Server makes the decision to initiate the recording
session then it will initiate the establishment of a SIP Session by
sending an INVITE to the B2BUA/Recording Client.
OPEN ISSUE: What would the Recording Server use as the Request-URI
and how does it indicate that it wishes to record the session (i.e.
recvonly the media). The Recording server will probably need to use
an offerless INVITE to allow the RC to provide the offer. We also
want to make sure the Recording Session actually terminates at a
Recording Server and is not accidently retargeted so probably need to
include a require header indicating that recording is required.
The B2BUA/RC is responsible for notifying the UA's involved in the
communication session that the session is being recorded.
The B2BUA/RC is responsible for honouring any indication from
recording aware UA's that the communication session must not be
recorded.
Hutton, et al. Expires August 30, 2010 [Page 6]
Internet-Draft Architecture for Media Recording February 2010
The Recording Server if it requires Media Recording Metadata relating
to the communications session will request this information from the
Recording Client.
OPEN ISSUE: Does the Recording Server have to request metadata from
the Recording Client our does the Recording Client provide it anyway?
(Recording Session) +-----------+
+----------------- RTP -------------->| |
| +--------- SIP --->| Recording |
| | | Server |
| | +- MetaData ->| (RS) |
| | | +-----------+
| | |
| | |
| V |
| +-------------+
| +--- SIP --->| |
| | | B2BUA |
| | | |
| V | Recording |
+--------+ | Client | +---------+
| |<- SIP ->| |<- SIP ->| |
| UA-A | +-------------+ | UA-B |
| | | |
| |<------------- RTP ------------->| |
+--------+ (Recorded Session) +---------+
Figure 1: B2BUA Acts as the Recording Client.
4.1.2. Endpoint acts as Recording Client
A SIP Endpoint / User Agent may act as a Recording Client in which
case the endpoint sends the Replicated Media to the Recording Server
If the endpoint makes the decision to initiate the Recording Session
then it will initiate the establishment of a SIP Session by sending
an INVITE to the Recording Server.
If the Recording Server makes the decision to initiate the Recording
Session then it will initiate the establishment of a SIP Session by
Hutton, et al. Expires August 30, 2010 [Page 7]
Internet-Draft Architecture for Media Recording February 2010
sending an INVITE to the endpoint.
OPEN ISSUE: What would the Recording Server use as the Request-URI
and how does it indicate that it wishes to record the session (i.e.
recvonly the media).
(Recording Session) +-----------+
+----------SIP------>| |
| +-------RTP------>| Recording |
| | | Server |
| | + (RS) |
| | +-- Metadata -->| |
| | | | |
| | | +-----------+
| | |
| | |
| | |
| | |
V | | (Communication Session)
+--+------+ +---------+
| |<-------SIP--------->| |
| UA-A | | UA-B |
| |<-------RTP--------->| |
+---------+ +---------+
Figure 2: SIP Endpoint acts as the Recording Client
4.2. Establishing the Recording Session
The Recording Client or the Recording Server may initiate the
Recording Session.
It should be noted that the Recording Session is a completely
independent from the Communication Session that is being recorded at
both the SIP dialog level and at the session level. For example if
media encryption is used for the Communication Session the Recording
Client must decrypt any media received on the Communication Session
and, if required, re-encrypt the media using a separate SRTP key for
the Recording Session before sending the media to the Recording
Server.
Hutton, et al. Expires August 30, 2010 [Page 8]
Internet-Draft Architecture for Media Recording February 2010
4.2.1. Recording Client Initiated Recording
When the Recording Client initiates the Recording Session for the
purpose of conveying media to the Recording Server it performs the
following actions.
o Initiates the dialog by sending an INVITE request to the Recording
Server. The dialog is established according to the normal
procedures for establishing an INVITE initiated dialog as
specified in [RFC3261].
o Include in the INVITE an indication that the session is
established for the purpose of recording the associated media.
Possible mechanisms for this include using the Require header
and/or a new media feature tag similar to the use of "isfocus" as
defined in [RFC3840]
o Indicate support for the recording metadata event package. Still
to be decided what this is
o If the Replicated Media is to be started immediately then the
Recording Client will include an SDP attribute of "a=sendonly" for
each media line or "a=inactive" if it is not ready to transmit the
media.
o The Recording Session may replicate all media associated with the
Communication Session or only a subset.
o Replicate the media streams that are to be recorded and transmit
the media to the Recording Server.
4.2.2. Recording Server Initiated Recording
When the Recording Server initiates the media recording session with
the Recording Client it performs the following actions.
o Send an INVITE request to the Recording Client
o Include in the INVITE an indication that the session is
established for the purpose of recording the associated media.
Possible mechanisms for this include using the Require header or a
media feature tag similar to the use of "isfocus" as defined in
[RFC3840]
o Identify the session that is to be recorded - Possibly using the
Join header [RFC3911]
Hutton, et al. Expires August 30, 2010 [Page 9]
Internet-Draft Architecture for Media Recording February 2010
o If the Recording Session is to be started immediately then the
Recording Client will include an SDP attribute of "a=recvonly" for
each media line or "a=inactive" if it is not ready to receive the
media
OPEN ISSUE: How does the Recording Server discover what media
streams are available to be recorded does it use an offerless INVITE
and leave this decision to the Recording Client.
OPEN ISSUE: If the Recording Server wants to invoke persistent
recording (I.e. all calls) and establish the recording session before
the recorded session is established what are the procedures for this
?
4.2.3. Pause/Resume Recording Session
The Recording Server or the Recording Client may pause the recording
by changing the SDP direction attribute to "inactive" and resume the
recording by changing the direction back to "sendonly" or "recvonly"
4.2.4. Media Stream Mixing
In a basic session involving only audio there are typically two
audio/RTP streams between the two UA's involved transporting media in
each direction. When recording this media the two streams may be
mixed at the Recording Client before being transmitted to the
Recording Server or it may be a requirement of the recoding server
that the media streams are not mixed and are sent to the Recording
Server as two separate streams. The case when media is mixed at the
Recording Client is simple as only a single media stream is required
to be sent to the Recording Server. However in the case when the
media streams are not mixed then the SDP offer sent to the Recording
Server must describe two separate media streams. OPEN ISSUE: HOW TO
DO THIS COULD BE TWO SEPERATE INVITE DIALOGS OR SOME SDP ENHANCEMENTS
?
4.3. Media Recording Metadata
4.3.1. Contents of recording metadata
The content of the recording metadata will be defined in a separate
specification and therefore the following list is just a guide to the
type of information that may be conveyed by the Recording Client to
the Recording Server in the recording metadata. OPEN ISSUE: Need
some discussion on this.
Hutton, et al. Expires August 30, 2010 [Page 10]
Internet-Draft Architecture for Media Recording February 2010
o Dialog identifiers for the Communication Session
o Identities of users taking part in the Communication Session
o Dialog state of the Communication Session
o Session state relating to the Communication Session(i.e. sendonly,
inactive, sendrecv).
o Etc.
4.3.2. Mechanisms for delivery of metadata to Recording Server
OPEN ISSUE: How should the metadata be transported possible
mechanisms include an INFO package [I-D.ietf-sipcore-info-events]or
an event package (possibly the dialog event package).
4.4. Notifications to the Recorded User Agents
Typically a user that is involved in a session that is to be recorded
is notified by an announcement at the beginning of the session or may
receive some warning tones within the media. However the
standardization of media recording protocols when using SIP enable an
indication that the call is being recorded to be included in the
signaling associated with that communication session
It is the Recording Client that must provide a notification to all
users for which it is replicated received media for the purpose of
recording including the local user if the Recording Client is a SIP
endpoint.
If the Recording Client is aware that the remote UA is a recording
aware UA then it MUST notify the UA using a SIP based mechanism.
OPEN ISSUE: TO BE DEFINED. If the Recording Client is not aware
that the peer UA is a recording aware UA then it MUST use an in-band
tone or announcement to notify the remote UA.
4.5. Preventing the recording of a SIP session
A Recording Aware UA may include one of the following indications in
an INVITE request.
o No Recording Allowed
o Recording Required
OPEN ISSUES: How are these conveyed one possibility is to use the
require header so that if they are not understood the dialog will be
Hutton, et al. Expires August 30, 2010 [Page 11]
Internet-Draft Architecture for Media Recording February 2010
terminated.
5. IANA considerations
None.
6. Security considerations
The Recording Session is fundamentally a standard SIP dialog and
media session and therefore make use of existing SIP security
mechanisms for securing the Recording Session and Media Recording
Metadata. SRTP is used for securing the Replicated Media.
The intended use of this architecture is only for the case where the
users are aware of that they are being recorded and the architecture
provides the means for the Recording Client to notify users that they
are being recorded.
This architectural solution is not intended to support lawful
intercept which in contrast requires that users are not informed.
The Recording Client act that the Recording Client decrypts and re-
encrypts media, means the Recording Client must take precautions to
prevent disclosure of media in the clear. Also the Recording Client
has to be trusted not to manipulate or suppress media.
It is the responsibility of the Recording Server to protect the
Replicated Media and Media Recording Metadata once it has been
received and archived.
7. References
7.1. Normative References
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, July 2003.
Hutton, et al. Expires August 30, 2010 [Page 12]
Internet-Draft Architecture for Media Recording February 2010
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3911] Mahy, R. and D. Petrie, "The Session Initiation Protocol
(SIP) "Join" Header", RFC 3911, October 2004.
7.2. Informative References
[I-D.rehor-dispatch-session-recording-req]
Rehor, K., Jain, R., Portman, L., Gurbani, V., and H.
Kaplan, "Requirements for Session Recording Protocol
(SRP)", draft-rehor-dispatch-session-recording-req-00
(work in progress), October 2009.
[RFC3840] Rosenberg, J., Schulzrinne, H., and P. Kyzivat,
"Indicating User Agent Capabilities in the Session
Initiation Protocol (SIP)", RFC 3840, August 2004.
[RFC2804] IAB and IESG, "IETF Policy on Wiretapping", RFC 2804,
May 2000.
[I-D.ietf-sipcore-info-events]
Holmberg, C., Burger, E., and H. Kaplan, "Session
Initiation Protocol (SIP) INFO Method and Package
Framework", draft-ietf-sipcore-info-events-07 (work in
progress), February 2010.
Authors' Addresses
Andrew Hutton
Siemens Enterprise Communications
KG Hofmannstrasse 51
Munich D-81379
Germany
Phone: +44 1908 855395
Email: andrew.hutton@siemens-enterprise.com
URI: http://www.siemens-enterprise.com
Hutton, et al. Expires August 30, 2010 [Page 13]
Internet-Draft Architecture for Media Recording February 2010
Leon Portman
Nice Systems
8 Hapnina
Ra'anana 43017
Israel
Email: leon.portman@nice.com
Rajnish Jain
IPC Systems
777 Commerce Drive
Fairfield, CT 06825
USA
Email: rajnish.jain@ipc.com
Ken Rehor
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706
USA
Email: krehor@cisco.com
Hutton, et al. Expires August 30, 2010 [Page 14]