Re: [MEDIACTRL] ISSUE 4 - IVR Package - <record> append

Stéphane Bastien <> Thu, 07 October 2010 18:24 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 5132C3A700A for <>; Thu, 7 Oct 2010 11:24:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.299
X-Spam-Status: No, score=-2.299 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, MIME_8BIT_HEADER=0.3]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id pMtJhtOsu8uF for <>; Thu, 7 Oct 2010 11:24:37 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 70CB23A6F9B for <>; Thu, 7 Oct 2010 11:24:37 -0700 (PDT)
Received: from EXMBXCLUS01.citservers.local ([fe80::a488:d1ec:a706:3a6d]) by CASUMHUB02.citservers.local ([::1]) with mapi; Thu, 7 Oct 2010 11:25:39 -0700
From: =?iso-8859-1?Q?St=E9phane_Bastien?= <>
To: "McGlashan, Scott" <>, "" <>
Date: Thu, 7 Oct 2010 11:25:33 -0700
Thread-Topic: ISSUE 4 - IVR Package - <record> append
Thread-Index: ActmSv1nBVytziezTKOx0HPAIAv/IAAAMsyQ
Message-ID: <21866C7FE177A4449B9136B5B24B1B13052A10605C@EXMBXCLUS01.citservers.local>
References: <>
In-Reply-To: <>
Accept-Language: fr-FR, en-US
Content-Language: en-US
acceptlanguage: fr-FR, en-US
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: Melnikov Alexey <>, "" <>, "" <>
Subject: Re: [MEDIACTRL] ISSUE 4 - IVR Package - <record> append
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Media Control WG Discussion List <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 07 Oct 2010 18:24:39 -0000


We use extensively the append attribute. We implemented this behavior:

1. append=false: Use HTTP PUT to overwrite the content of the URL after the recording is completed.

2. append=true: 
	a) Perform an HTTP GET on the URL
      b) Record new audio/video
      c) Append the new audio/video to the media file that was downloaded in step a)
      d) Perform an HTTP PUT to overwrite the old URL with the new media file.

Note that our implementation also matches the behavior expected for a media file stored on the local filesystem and accessed using the URI file://.

I do not agree with the proposal to enforce the usage of HTTP POST if append=true; because it makes the assumption that the remote HTTP server can append audio/video to an existing media file. The Media Server already knows how to handle audio tracks and video tracks, duplicating this functionality in the remote HTTP server seems counterproductive.


-----Original Message-----
From: [] On Behalf Of McGlashan, Scott
Sent: 7 octobre 2010 14:11
Cc: Melnikov Alexey;;
Subject: [MEDIACTRL] ISSUE 4 - IVR Package - <record> append

Fourth (and final I think) issue for mailing list discussion following IESG review of the IVR package:


   append:  indicates whether recorded data is appended or not to a
      recording location if a resource already exists.  A valid value is
      a boolean (see Section 4.6.1).  A value of true indicates that
      recorded data is appended to the existing resource at a recording
      location.  A value of false indicates that recorded data is to
      overwrite the existing resource.  The attribute is optional.  The
      default value is false.

How is append/overwrite mapped to underlying protocol being used?
In particular, I think this is underspecified in case of HTTP.

This is a good point and we don't say anything about how to map record upload to the underlying protocol. Since we mandated HTTP (and HTTPS), I'd prefer if we specify a mapping to HTTP. I'd propose something like:

When a recording location is specified using the HTTP or HTTPS protocol, the recording operation is mapped to the HTTP POST and PUT operations depending on whether the append attribute is true or false:

1. append = false. The recording data is uploaded to the specified location using HTTP PUT and replaces any data that location on the origin server. Success if the origin server returns 201 (Created); any other HTTP response is treated as an upload error.

2. append = true. The recording data is uploaded to the specified location using HTTP POST and is added to the resource - if any - at that location. Success if the origin server returns 204 (No Content) or 205 (Reset Content); any other HTTP response is treated as an upload error.

Let me know if you think this is along the right lines - any improvements (or other implementation experiences) welcome.  The other alternative is to delete the append attribute - especially if  no-one implements it .. If we do decide to delete the append attribute, I still think some text around the HTTP protocol mapping is useful.


MEDIACTRL mailing list
Supplemental Web Site: