[siprec] A model of recording metadata

Paul Kyzivat <pkyzivat@cisco.com> Tue, 06 July 2010 20:53 UTC

Return-Path: <pkyzivat@cisco.com>
X-Original-To: siprec@core3.amsl.com
Delivered-To: siprec@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id ED0DA3A6807 for <siprec@core3.amsl.com>; Tue, 6 Jul 2010 13:53:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.999
X-Spam-Level:
X-Spam-Status: No, score=-8.999 tagged_above=-999 required=5 tests=[AWL=-1.600, BAYES_50=0.001, J_CHICKENPOX_45=0.6, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RkBbHf-YKIIX for <siprec@core3.amsl.com>; Tue, 6 Jul 2010 13:53:50 -0700 (PDT)
Received: from rtp-iport-1.cisco.com (rtp-iport-1.cisco.com [64.102.122.148]) by core3.amsl.com (Postfix) with ESMTP id 69D803A681F for <siprec@ietf.org>; Tue, 6 Jul 2010 13:53:50 -0700 (PDT)
Authentication-Results: rtp-iport-1.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-AV: E=Sophos;i="4.53,548,1272844800"; d="scan'208";a="129298502"
Received: from rtp-core-1.cisco.com ([64.102.124.12]) by rtp-iport-1.cisco.com with ESMTP; 06 Jul 2010 20:53:44 +0000
Received: from [161.44.174.142] (dhcp-161-44-174-142.cisco.com [161.44.174.142]) by rtp-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o66Kriqi009068; Tue, 6 Jul 2010 20:53:44 GMT
Message-ID: <4C3397D7.8020802@cisco.com>
Date: Tue, 06 Jul 2010 16:53:43 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
To: "siprec@ietf.org" <siprec@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Subject: [siprec] A model of recording metadata
X-BeenThere: siprec@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Recording Working Group Discussion List <siprec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/siprec>, <mailto:siprec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/siprec>
List-Post: <mailto:siprec@ietf.org>
List-Help: <mailto:siprec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/siprec>, <mailto:siprec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Jul 2010 20:53:52 -0000

I'd like to propose a data model for metadata as viewed by the SRS.
(This is the result of discussions between Ram, Partha, and I.)

IMO we need a model such as this as part of the architecture.
Establishing such a model will help to nail down the implications of 
many of the requirements that have now been gathered. The model is 
conceptual - there is no requirement for the SRS to instantiate this in 
any literal way. And in fact for now there will be no way to verify if 
the SRS collects *anything* about the sessions it is recording. At some 
time in the future I expect that there will probably be work on some 
sort of query interface against the recording metadata. At that point it 
should become possible to verify that this information has indeed been 
captured.

For now, the purpose of this model is as a basis for evaluating 
mechanisms for transporting metadata from the SRC to the SRS: those 
mechanisms must provide the means to convey the information that the SRS 
MAY then use to populate an instance of this model for each RS.

This should probably have been submitted as a draft, but we didn't 
manage to get to that in time. So I'm taking the easy way out of sending 
it as a message to the list. (If it seems appropriate, we can probably 
have a document ready to submit with submissions are opened up again on 
the first day of the upcoming meeting.)

This model is a straw horse - I have no allusions that it is "right". I 
expect people to want to make at least tweaks, and perhaps major revisions.

I'm using UML notation here.

        +-------------------------------+
        | Recording Session Group       |
        +-------------------------------+
                 | 0..*
                 |
                 | 1..*
        +-------------------------------+
        | Recording Session (RS)        |
        +-------------------------------+
                 | 1..*
                 |
                 | 0..*
        +-------------------------------+
        |   Communication Session (CS)  |
        +-------------------------------+
                 | 1
                 |
                 | 0..*
        +-------------------------------+
        |   Recorded Media Stream       |
        +-------------------------------+
        |  Type (audio/video/...)       |
        |  Recorded Encoding            |
        |  Recorded Bits                |
        +-------------------------------+
                 | 1
                 |
                 | 1..*
        +-------------------------------+
        |   Received Media Stream       |
        +-------------------------------+
        |  Start Time                   |
        |  End Time                     |
        |  Codec                        |
        |  Media Stream Reference       |
        +-------------------------------+
                 | 1..*
                 |
                 | 1..*
        +-------------------------------+
        |   Participant                 |
        +-------------------------------+
        |  AoR                          |
        |  Name                         |
        +-------------------------------+


    The model described above provides:

    o  One or more CS per RS, due to private side conversations e.t.c
    o  Multiple RS per CS, due to redundancy or whatever
    o  An optional grouping of multiple RS that are related in some way
    o  Information that describes the participants of Communication
       Session(s)
    o  Information to associate multiple media streams sent for a given
       Communication Session over separate Recording Sessions to the SRS.
    o  Information to associate multiple media streams for a given
       Communication Session over a single Recording Session to the SRS.
    o  Information to associate participants and their associated media
       streams.
    o  Information about media type(mixed or separate), time for each
       media stream.
    o  Received Media Streams will have one participant unless mixed
       before being sent to RS, in which case they can have several.  A
       Participant can of course supply multiple Received Media Streams.
    o  There could be one Received Media Stream per Recorded Media Stream
       if mixing is done before recording, or several if a separate
       unmixed stream per participant is supplied.  Or there could be
       multiple per source (with disjoint time intervals) due to codec
       changes.
    o  Communication Session can have multiple Recorded Media Streams for
       various reasons.  Distinct media might have theiir own.  (Or not -
       maybe audio/video together.)  Independent sources might be
       recorded separately.

The "Media Stream Reference" attribute of a Received Media Stream is a 
place holder. In an implemented mechanism this would be a reference to a 
particular m-line in SDP from the SRC to the SRS, identifying a 
particular media stream. This is clearly essential to the SRS so that it 
might record the stream, and get properties of it. But it isn't anything 
interesting once the recording is complete. So its transient metadata.

The Recording Session Group has been added to model correlation between 
multiple RSs, but I think that concept requires a lot more work. Its far 
from clear to me how the need to associate one RS with another can be 
denoted. And if two RSs to be correlated are captured by different SRSs, 
they might end up in different databases, so even referencing them can 
be problematic. So consider this to be simply a place holder for further 
work.

	Thanks,
	Paul