Re: [siprec] CS hold/resume clarification in protocol draft

"Ram Mohan R (rmohanr)" <rmohanr@cisco.com> Thu, 09 May 2013 06:30 UTC

Return-Path: <rmohanr@cisco.com>
X-Original-To: siprec@ietfa.amsl.com
Delivered-To: siprec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 21AD121F9184 for <siprec@ietfa.amsl.com>; Wed, 8 May 2013 23:30:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.799
X-Spam-Level:
X-Spam-Status: No, score=-8.799 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_15=0.6, J_CHICKENPOX_18=0.6, J_CHICKENPOX_54=0.6, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FANdf7UR9S3M for <siprec@ietfa.amsl.com>; Wed, 8 May 2013 23:30:06 -0700 (PDT)
Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) by ietfa.amsl.com (Postfix) with ESMTP id 0BCB821F9104 for <siprec@ietf.org>; Wed, 8 May 2013 23:30:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=13994; q=dns/txt; s=iport; t=1368081006; x=1369290606; h=from:to:subject:date:message-id:in-reply-to:content-id: content-transfer-encoding:mime-version; bh=NgeX2i6wSWaiwHI4DfdVGoRRkcBqjdhfZKuzhyA5CKE=; b=b4IRAB2kBhWO8HRJ3920DtUMl/Qz1+sfUFRyJkzGvRR8Dbu6Mo1eHEzk RATT0UYZWwqjhtF9AZbw5zF5FBGy/iCtCmkXR7EB9Zoct5abLIVnwSt44 a+qB1+ukf49PW7NXu7oZREq06ivjNFBuElt/oHSRCpZcDCRi0TWQJmISk o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgMFAGRBi1GtJV2Z/2dsb2JhbABSgwc3vz99FnSCHwEBAQMBAQEBJBMuBhAHBgEIEQMBAQEBChQJKAYLFAkIAgQBEgiHcgMJBgy4Ug2IJ4xSgS51AgYyAgSCbmEDlUiDCopthSKDD4FpBh4a
X-IronPort-AV: E=Sophos;i="4.87,639,1363132800"; d="scan'208";a="208288588"
Received: from rcdn-core-2.cisco.com ([173.37.93.153]) by rcdn-iport-4.cisco.com with ESMTP; 09 May 2013 06:30:05 +0000
Received: from xhc-aln-x12.cisco.com (xhc-aln-x12.cisco.com [173.36.12.86]) by rcdn-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id r496U4is013681 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <siprec@ietf.org>; Thu, 9 May 2013 06:30:04 GMT
Received: from xmb-aln-x05.cisco.com ([169.254.11.52]) by xhc-aln-x12.cisco.com ([173.36.12.86]) with mapi id 14.02.0318.004; Thu, 9 May 2013 01:30:03 -0500
From: "Ram Mohan R (rmohanr)" <rmohanr@cisco.com>
To: "Charles Eckel (eckelcu)" <eckelcu@cisco.com>, "siprec@ietf.org" <siprec@ietf.org>
Thread-Topic: [siprec] CS hold/resume clarification in protocol draft
Thread-Index: AQHOTH6iPtHmHWUOa06wJvFVkD981g==
Date: Thu, 09 May 2013 06:30:02 +0000
Message-ID: <E92E67B176B8B64D8D3A8F5E44E9D8F41EBCE9DF@xmb-aln-x05.cisco.com>
In-Reply-To: <92B7E61ADAC1BB4F941F943788C088280481E5EA@xmb-aln-x08.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.3.2.130206
x-originating-ip: [72.163.212.115]
Content-Type: text/plain; charset="us-ascii"
Content-ID: <D2F2E26A06EF4B4B8B762457E9A22B15@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [siprec] CS hold/resume clarification in protocol draft
X-BeenThere: siprec@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIP Recording Working Group Discussion List <siprec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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: Thu, 09 May 2013 06:30:11 -0000

Hi Charles,

Sorry for delay. Please see inline

> On 04/05/13 10:09 AM, "Charles Eckel (eckelcu)" <eckelcu@cisco.com>
>wrote:

>Hi Ram,
>
>My thinking on this is that we should use changing of the direction of
>media descriptions in the RS from sendonly to inactive and vice versa to
>indicate stopping/starting the recording of the associated media stream
>as a whole. This does not imply anything about the state of the media in
>the CS.

I gave some thought about this and I tend to agree with you that we could
use the SDP direction attribute  of RS to indicate stop/re-start the
recording of media represented by that m-line. Now how an SRC decides to
start/stop should be left outside the scope of SIPREC and may be dictated
by a policy.

> A hold/resume of the CS could result in the SRC deciding to stop the
>recording, but this is not necessarily the case. The SRC could let the
>recording continue, and indicate in XML which participants in the CS are
>actively contributing media.

To represent hold/resume or any other change in CS media, we could still
do with the existing metadata XML. We could use the <send> and <recv> XML
elements of a <participant> to indicate whether a participant is sending
media/not sending  a particular media stream whose properties are
represented by <stream> element. Note with this we only convey if a
participant is sending/not sending media but an SRC still cannot convey
why a CS participant is not sending media(like hold e.t.c). I don't think
an SRC can really know this, all it can leo is by looking at CS signaling
SDP and learn the direction attributes of media and send a snapshot
metadata which has the information on participant sending/not sending a
particular media stream.

For example, in your below case for a two party call if one participant
Alice puts the call on hold  by sending a SDP with a=sendonly and Bob
responds with a=recvonly then a snapshot of metadata at that instance from
SRC to SRS would look as below. Assume here a snapshot was sent initially
with both participants having <send> to the two streams:

Snapshot sent from SRC to SRS after initial RS setup.

F1  INVITE SRC --------------> SRS

      Content-Type: application/SDP
      ...
      m=audio 49170 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=label:96
      a=sendonly
      ...

      m=audio 51372 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=label:97
      a=sendonly
     
      ....
   <?xml version="1.0" encoding="UTF-8"?>
       <recording xmlns='urn:ietf:params:xml:ns:recording'>
              <datamode>complete</datamode>
         <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
            <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>
          </participant>
          <participantsessionassoc
             participant_id="srfBElmCRp2QB23b7Mpk0w=="
             session_id="hVpd7YQgRW2nD22h7q60JQ==">
           <associate-time>2013-05-09T23:41:07Z</associate-time>
          </participantsessionassoc>
          <participantstreamassoc
             participant_id="srfBElmCRp2QB23b7Mpk0w==">
             <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
             <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
          </participantstreamassoc>
          <participant
              participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
              <nameID aor=sip:Bob@biloxy.com>
               <name xml:lang="it">Bob</name>
            </nameID>
          </participant>
          <participantsessionassoc
              participant="zSfPoSvdSDCmU3A3TRDxAw=="
                   session_id="hVpd7YQgRW2nD22h7q60JQ==">
             <associate-time>2013-05-09T23:42:07Z</associate-time>
          </participantsessionassoc>
          <participantstreamassoc
              participant="zSfPoSvdSDCmU3A3TRDxAw==">
            <send>8zc6e0lYTlWIINA6GR+3ag==</send>
            <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
          </participantstreamassoc>
           <stream id="i1Pz3to5hGk8fuXl+PbwCw=="
              session="hVpd7YQgRW2nD22h7q60JQ==">
              <label>96</label>
          </stream>
          <stream id="8zc6e0lYTlWIINA6GR+3ag=="
              session="zSfPoSvdSDCmU3A3TRDxAw==">
              <label>97</label>
          </stream>
        </recording>



Partial metadata Snapshot sent when Alice puts Bob on hold:

F2 INVITE SRC --------------> SRS

      Content-Type: application/SDP
      ...
      m=audio 49170 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=label:96
      a=sendonly
      ...

      m=audio 51372 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=label:97
      a=sendonly



Partial Snapshot after Alice resumes with Bob
<?xml version="1.0" encoding="UTF-8"?>
  <recording xmlns='urn:ietf:params:xml:ns:recording'>
    <dataMode>partial</dataMode>
    <participantstreamassoc
             participant_id="srfBElmCRp2QB23b7Mpk0w==">
             <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
</participantstreamassoc>
<participantstreamassoc
              participant="zSfPoSvdSDCmU3A3TRDxAw==">
<recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
          </participantstreamassoc>
</recording>

Here in the above snapshot the absence of <recv> for participant_id
srfBElmCRp2QB23b7Mpk0w== (Alice) could be used to indicate that Alice is
only sending media and not receiving any thing. Same way for Bob.

Partial metadata Snapshot sent when Alice resumes call with Bob:

F3 INVITE SRC --------------> SRS

Content-Type: application/SDP
...
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=label:96
a=sendonly
...

m=audio 51372 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=label:97
a=sendonly

<?xml version="1.0" encoding="UTF-8"?>
  <recording xmlns='urn:ietf:params:xml:ns:recording'>
    <dataMode>partial</dataMode>
  <participantstreamassoc
             participant_id="srfBElmCRp2QB23b7Mpk0w==">
             <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
             <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
     </participantstreamassoc>
  <participantstreamassoc
              participant="zSfPoSvdSDCmU3A3TRDxAw==">
            <send>8zc6e0lYTlWIINA6GR+3ag==</send>
            <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
      </participantstreamassoc>
 </recording>


Here in the above snapshot both Alice and Bob send and recv streams.

Note the above approach would work for all cases (stream mixed from SRC to
SRS or one of the endpoint is Focus in which case SRC received mixed
streams e.t.c). In all the flows the presence /absence of <send> and
<recv> tags could be used to indicate whether a participant is
contributing to a stream or not and whether it is receiving a stream or
not.

Let me know if this approach is fine and if this works for every one in
the WG.

Regards,
Ram

>As an example, if the CS is a two party call, a hold of the CS might
>result in the SRC stopping/pausing the recording. If it is a conference
>call, one party going on hold would have might have no effect on the
>direction of the media descriptions in the RS, but may result in the
>generation of some XML indicating that a specific participant is no
>longer contributing any media. I thought the existing XML allowed for
>this, but perhaps I am mistaken about that?
>
>Cheers,
>Charles 
>
>> -----Original Message-----
>> From: siprec-bounces@ietf.org [mailto:siprec-bounces@ietf.org] On
>> Behalf Of Ram Mohan R (rmohanr)
>> Sent: Wednesday, May 01, 2013 8:21 PM
>> To: siprec@ietf.org
>> Subject: Re: [siprec] CS hold/resume clarification in protocol draft
>> 
>> A question here:
>> 
>> In the current metadata draft to indicate CS hold/resume from SRC to
>> SRS
>> we re-use the SIP/SDP semantics and indicate the same with
>> a=inactive/a=sendonly respectively.
>> In the below discussion, I see we want to give a special meaning for
>> a=inactive/a=sendonly sent from SRC to SRS. This would mean CS
>> hold /
>> resume cannot be indicated using SDP semantics from SRC to SRS as
>> the SRS
>> cannot differentiate between CS hold/resume and Recording
>> stop/resume if
>> we use the same semantics for both.
>> 
>> The current metadata XML draft does not have any means to indicate
>> CS
>> hold/resume in XML. The general approach followed in the metadata
>> (as a
>> result of past feedback received) is to re-use SIP/SDP semantics
>> wherever
>> possible to represent metadata attributes and have XML
>> representation for
>> only those attributes that does not have a semantics in SIP/SDP  to
>> represent. And hence the current draft re-uses SDP semantics to
>> represent
>> CS HOLD/RESUME.
>> 
>> I want to hear feedback on - if the WG wants CSC hold/resume to be
>> represented in XML ?
>> 
>> Ram
>> 
>> 
>> > On 01/05/13 1:10 PM, "Hutton, Andrew"
>> ><andrew.hutton@siemens-enterprise.com> wrote:
>> 
>> >My view is that this is enough of an issue to make it a MUST as you
>> say
>> >the fact that this would result in a misunderstanding and therefore
>> >probably a trouble ticket being raised against the implementation
>> is
>> >reason enough.
>> >
>> >Andy
>> >
>> >
>> >
>> >> -----Original Message-----
>> >> From: Henry Lum [mailto:Henry.Lum@genesyslab.com]
>> >> Sent: 01 May 2013 05:39
>> >> To: Alan Johnston; Hutton, Andrew
>> >> Cc: siprec@ietf.org
>> >> Subject: Re: [siprec] CS hold/resume clarification in protocol draft
>> >>
>> >> The only interop issue this can cause is an SRS would mistaken a
>> hold
>> >> as pause/resume. Would there be any harm done in this case?
>> It's
>> >> undesirable but I dont think it's broken as there should be
>> >> corresponding metadata to note the media stream change.
>> >>
>> >> Henry
>> >>
>> >>
>> >> -------- Original message --------
>> >> From: Alan Johnston <alan.b.johnston@gmail.com>
>> >> Date: 04-30-2013 11:00 AM (GMT-05:00)
>> >> To: "Hutton, Andrew" <andrew.hutton@siemens-enterprise.com>
>> >> Cc: Henry Lum <Henry.Lum@genesyslab.com>,siprec@ietf.org
>> >> Subject: Re: [siprec] CS hold/resume clarification in protocol draft
>> >>
>> >>
>> >> We definitely want to discourage this behavior, but MUSTs relate
>> to
>> >> interop failures. Is that what we are trying to avoid?
>> >>
>> >> Another thought - If an implementer used 1 RS for each CS, would
>> this
>> >> hold/resume behavior be wrong?
>> >>
>> >> - Alan -
>> >>
>> >>
>> >>
>> >> On Apr 30, 2013, at 8:19 AM, "Hutton, Andrew"
>> <andrew.hutton@siemens-
>> >> enterprise.com> wrote:
>> >>
>> >> > Hi Henry,
>> >> >
>> >> > Only question I have is whether the "SHOULD NOT" in the
>> following
>> >> text could be a "MUST NOT"
>> >> >
>> >> > "The SRC SHOULD NOT modify the media stream in the RS to
>> convey media
>> >> stream direction changes in the CS"
>> >> >
>> >> > What does everybody think?
>> >> >
>> >> > Regards
>> >> > Andy
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >> -----Original Message-----
>> >> >> From: siprec-bounces@ietf.org [mailto:siprec-
>> bounces@ietf.org] On
>> >> >> Behalf Of Henry Lum
>> >> >> Sent: 18 April 2013 05:15
>> >> >> To: siprec@ietf.org
>> >> >> Subject: [siprec] CS hold/resume clarification in protocol draft
>> >> >>
>> >> >> Following up on the clarification in the protocol draft, I
>> propose
>> >> to
>> >> >> re-word the last paragraph in section 7.1.1.1. I removed
>> mentions on
>> >> >> the word mute/unmute:
>> >> >>
>> >> >>
>> >> >>
>> >> >>   The SRC can temporarily discontinue streaming and collection
>> of
>> >> >>   recorded media from the SRC to the SRS for reason such as
>> masking
>> >> >> the
>> >> >>   recording.  In this case, the SRC sends a new SDP offer and
>> sets
>> >> the
>> >> >>
>> >> >>   media stream to inactive (a=inactive) for each recorded
>> stream to
>> >> be
>> >> >>   paused, as per the procedures in
>> >> >> [RFC3264<http://tools.ietf.org/html/rfc3264>].  To resume
>> streaming
>> >> and
>> >> >>   collection of recorded media, the SRC sends a new SDP offer
>> and
>> >> sets
>> >> >>   the media streams with a=sendonly attribute.
>> >> >>
>> >> >>
>> >> >>   Note that a CS itself may change the media stream direction
>> by
>> >> >> updating
>> >> >>
>> >> >>   the SDP, for example, by setting a=inactive for SDP hold. Media
>> >> >> stream
>> >> >>
>> >> >>   direction changes in CS are conveyed in the metadata by the
>> SRC.
>> >> The
>> >> >> SRC
>> >> >>
>> >> >>   SHOULD NOT modify the media stream in the RS to convey
>> media
>> >> stream
>> >> >>
>> >> >>   direction changes in the CS, as media stream direction
>> changes in
>> >> >> the RS
>> >> >>
>> >> >>   are reserved for pausing and resuming the recorded media.
>> >> >>
>> >> >>
>> >> >>
>> >> >> Thanks
>> >> >>
>> >> >> Henry
>> >> >>
>> >> >> _______________________________________________
>> >> >> siprec mailing list
>> >> >> siprec@ietf.org
>> >> >> https://www.ietf.org/mailman/listinfo/siprec
>> >> > _______________________________________________
>> >> > siprec mailing list
>> >> > siprec@ietf.org
>> >> > https://www.ietf.org/mailman/listinfo/siprec
>> >
>> >_______________________________________________
>> >siprec mailing list
>> >siprec@ietf.org
>> >https://www.ietf.org/mailman/listinfo/siprec
>> >
>> 
>> 
>> _______________________________________________
>> siprec mailing list
>> siprec@ietf.org
>> https://www.ietf.org/mailman/listinfo/siprec
>