Re: [siprec] New Version Notification for draft-yan-siprec-msrp-recording-01.txt

Brian Rosen <> Wed, 09 July 2014 22:49 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 76F411A014E for <>; Wed, 9 Jul 2014 15:49:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.821
X-Spam-Status: No, score=-1.821 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_NEUTRAL=0.779] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id rv3ja-I9hxLt for <>; Wed, 9 Jul 2014 15:49:00 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id CDA941A014C for <>; Wed, 9 Jul 2014 15:48:59 -0700 (PDT)
Received: by with SMTP id il7so9136459vcb.27 for <>; Wed, 09 Jul 2014 15:48:59 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=T/0ET7KUtiDsAAOuV46seoNI1tYV2WT/eYADyFPdtBg=; b=KLO8rTBd/PP0qL6FgLO9te0KXRJ2d9SQlN0UNrgDlwt5qtAbswgwmJy0emYvYFnmPh KP+EpgHJK7wd00gBlQl6UurqCb7RZvDhEu1RkGpsoH+mCFL5j7nFXLHsLCDSBe6cQYeO tB4GXBgBxhc54xG+VwF0AlOXnKNqH+rpptF3oOCKfNVqD1cC/nciPtUpJO8CaQFX6v8N JVZLc2njxIpGciYX064WuQKT4VgM0JaE19C87vUZGjZxEJByysNlgtZDG+xTt81S3/Y5 MrbBNyVOslu+kNKe7zIEJCMGlX53Ypl3/zP21XIaUlNU0VAhK1OZOA1GeOpIa78PMZjc P1CQ==
X-Gm-Message-State: ALoCoQkvkoEXgAGd3duzThQz+R9ycGTbcueKSdtkIMy4GsSzurWPeaphh4E0Hq82N2mtcMWuwSk6
X-Received: by with SMTP id sj3mr34519462vdc.30.1404946138933; Wed, 09 Jul 2014 15:48:58 -0700 (PDT)
Received: from [] ( []) by with ESMTPSA id i10sm87865054qaq.22.2014. for <multiple recipients> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 09 Jul 2014 15:48:57 -0700 (PDT)
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.2\))
From: Brian Rosen <>
In-Reply-To: <>
Date: Wed, 9 Jul 2014 15:48:47 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <> <> <> <> <> <>
To: Paul Kyzivat <>
X-Mailer: Apple Mail (2.1878.2)
Subject: Re: [siprec] New Version Notification for draft-yan-siprec-msrp-recording-01.txt
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: SIP Recording Working Group Discussion List <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 09 Jul 2014 22:49:03 -0000

Hopefully, we aren’t getting too deep in levels
On Jul 9, 2014, at 3:22 PM, Paul Kyzivat <>; wrote:

> Brian - inline
> On 7/3/14 3:25 PM, Brian Rosen wrote:
>> On Jul 3, 2014, at 12:55 PM, Paul Kyzivat <
>> <>> wrote:
>>> On 7/1/14 5:34 PM, Brian Rosen wrote:
>>>> I’ve reviewed this document.  I think it is a very good start, and
>>>> think we can get it ready to ship quite quickly.
>>>> I have the following comments:
>>>> We need to specify a way to send and save REPORTS that are
>>>> sent/received on the CS to the SRS.  If, for example, a message sent
>>>> by a party to another is not received completely,
>>>> and a REPORT js generated on the RS,  we need to somehow record than
>>>> in the CS.
>>> I guess CS and RS need to be swapped in the above line, right?
>> Yeah doh!
>>>> You have a note about reports, but it isn’t clear if you mean reports
>>>> in the CS or the RS.  Both have to be recorded, but at least in the
>>>> RS, the SRS has all the info needed.
>>> I just have a placeholder, because I haven't thought much about it yet.
>>> I especially hadn't thought about reports on the RS. Note that the SRS
>>> won't be sending anything except reports to the SRC, so there is no
>>> reason for the SRC to be sending reports to the SRS about the RS msrp
>>> session.
>> Yeah, but it has to send reports it got on the CS somehow
>>> Conversely, suppose the SRC gets a report from the SRS that something
>>> hasn't made it successfully. What should it do? (I can't think of
>>> anything useful for it do do.) I guess this is analogous to the SRC
>>> getting RTCP reports indicating packet loss of RTP media. We don't
>>> talk about that.
>> No, I think if the SRC gets a report of a problem on the CS it must
>> record that.
> That is a different case. I was specifically talking about the case where the SRC gets a report from the *SRS*. There is nothing useful it can do. Obviously the SRS knows about the problem (it sent the report), so it can record an indication of the problem without the SRC having to tell it.
Right, my bad.  The SRS knows, it can record it.

>> I think if we neglected to record known problems detected in RTCP
>> reports then we need to fix that too at some point — if the SRC knows
>> about a problem, that has to be recorded.
>>> But reports on the CS are significant information that could be
>>> important to record.
> This is the case you were talking about.

>>> I think they can't be sent as MSRP reports. I
>>> suspect we must find a way to encapsulate them as regular MSRP
>>> messages. But that seems messy. Ideas are welcome.
>> Yeah, I think that’s right, and I think it’s messy.  Sending them in
>> metadata is a possibility.
> I don't think we can bound the rate that these occur. So I am very reluctant to use the metadata mechanism to deal with them.
Understand, but encapsulation in MSRP would use a lot of BW also

>> Extending reports in some manner is a
>> possibility.
> Yes, this is possible. But it would be nice to avoid modifying MSRP.
Yeah, but might be lesser of evils

>>>> I think there is a problem with the text about adding a CPIM wrapper
>>>> if there isn’t one.  I think the recording has to know if the
>>>> original message was sent by some entity other than the one in the
>>>> CPIM From (that is, we have to preserve the MSRP From).  The SRS has
>>>> to know whether the original message had a CPIM header, and its
>>>> contents.   If the SRC changes the message (by adding the wrapper) I
>>>> think the SRS has to be able to figure that out, and record that fact
>>>> in some way.
>>> I hear you, though I'm not yet convinced how important it is for the
>>> SRS to be able to make this distinction.
>> I think the recording is what the SRC got.  If you can’t effectively
>> reproduce what the SRC gets, the mechanism is not adequate.
> Does introducing a CPIM wrapper where there was none (making explict what had been implicit) prevent reproducing what the SRC got?
Because the SRS can’t distinguish between the SRC receiving a wrapped message from a case where the SRC did the wrapping on the RS.

> Consider that we allow the SRC to transcode media before sending it to the SRS. And we permit the SRC to transcode media before recording it. In both of those cases we can't reproduce *exactly* what the SRC got.
I think this is substantively different but YMMV

> What is so different here?
>>> I think the only way to be *certain* that the SRS can distinguish
>>> these is to wrap *every* message, even those that already contain CPIM
>>> headers. Then the SRS would know that the outer wrapper was always
>>> from the SRC, and that if there was another cpim wrapper inside then
>>> it was from the CS. But that seems like overkill.
>> Yeah, I’d prefer not to do that
>>> If we only put CPIM wrappers on messages that don't already have them,
>>> then we could put something *special* in them. But there would be no
>>> guarantee that the CS didn't use that.
>> There is always a way.  We can extend CPIM if we need to.
> Yes we could. If we feel that we must.
>>> We could also introduce a new mime type similar to CPIM, but specially
>>> for recording. If we constrained the usage of that then we might be
>>> able to claim that it could never appear on the CS. But I would prefer
>>> to avoid this.
>> I’d rather just extend CPIM
> This is a matter of taste. I could go either way. It would be nice to not have to extend CPIM.
Something has to give.  Probably a good topic for the meeting

>>>> When we echo a message from the RS to the CS, we’re going to lose the
>>>> MESSAGE-ID from the RS.  That’s a problem.  We have to save that info
>>>> in the recording.  A hack would be to use the same message ID in both
>>>> the CS and the RS, possibly with some prefix.
> After studying 4975 awhile I think we could do this. It *should* be ok to use the old message-ids as-is - they are supposed to be globally unique, across sessions. (Of course if we reuse them then they won't be globally unique.)
> If we are hyper, we could allow the SRC to add a prefix. But that introduces complications if we are doing redundant SRCs sending to the same SRS, because we won't recognize when we get the same message on both paths.
Yeah, I understand.  If the SRC adds a prefix, it could be different from the prefix the redundant SRC uses and the SRS could figure it out.

>>>> I worry a bit about chunking in the RS differently from chunking in
>>>> the CS. I may be mistaken, but if the chunking is different, will
>>>> that affect the byte-range response in a failure report?
> The whole point of reporting byte ranges is that they are independent of the chunking. I don't think this is an issue.

>>> Don't the above issues have analogs for RTP/RTCP?
>> No, i don’t think so.  Message ID is much more of a real id then
>> anything you find in an RTP header.  You can derive wall time, which
>> might be similar, but not really.
> I guess what is different about message id is that its scope encompasses multiple MSRP sessions. If the CS participants drop one session and start another, and resend messages with the same ids, then I guess we do want the SRS to understand that they were updating the same message.
Yes, and probably more.

>>> Do we have any more requirement to solve them here than we did there?
>>>> The URIs in the original to/from need to be captured, but they will
>>>> be different in the RS.  Need to fix that.
>>> I assume you are talking about the to/from in CPIM, right? Why do they
>>> need to be different in the RS?
>> MSRP To/From in the RS is SRS/SRC.
> OK.
>> If there wasn’t any CPIM, we could
>> add it, in which case MSRP To/From in CS becomes CPIM To/From in RS.
> Why? It doesn't have to be if we don't want that. I would expect the SRC to insert URIs that it knows from the CS for the participants in this MSRP session. These would probably be the SIP URIs from the CS SIP session of the sender and receiver of the MSRP session in the CS.
The SRS has to be able to derive what was MSRP To/From in the CS was.  It’s recording what the SRC saw.

>> If
>> there is CPIM already, we need to preserve it, and then we need to solve
>> sending CS MSRP To/From in the RS.
> Why do we need the MSRP To/From at all? Those are just artificial things used to identify particular sessions.
I think the recording has to record what the SRC got.  I don’t think it’s good enough to derive a notion of session, create new session IDs and then just use them.  The recording has to be able to reproduce what the SRC saw.

>>>> Do we need to say something about max-size issues between CS and RS?
>>> Probably. Seems like a policy issue in the SRS. If the SRS doesn't
>>> want to record large messages. Maybe we want to specify that the SRC
>>> MUST honor the SRS's max-size, bypassing recording of messages that
>>> are too big. (Or perhaps inserting special small messages as
>>> placeholders for the bypassed messages.)
>> Yeah, something.  Basically, to avoid problems, CS max has to be at
>> least as big as RS max.  I think that’s just a MUST as a by-the-way.
> I don't think so. We give the SRS a lot of lattitude about what it records. If it wants to bound its resources by refusing to record small messages, then that is its business.
> We can't expect the CS to change its behavior to suit the RS. And IIUC max-size is not negotiated, it is declared by the receiver. So there is no way to communicate the max-size from the CS to the RS.
> Also, max-size is only a hint - the sender need not honor it.
> We *could* specify that the SRC SHOULD NOT forward messages on the RS that exceed the SRS's max-size. I don't think there is much else we can or should do.
Looks like we have to just have a discussion on the issue in the doc.  The limitation is that the SRC doesn’t know the SRS max until after the CS is established, so it can’t do something like reflect the RS max into the CS.  As you point out, that’s not really desirable in the first place.  So, probably just point out the issues and say it’s a system design issue to make sure the RS can handle what could occur on the CS or recording will be impaired.  I’m okay with SHOULD NOT on the RS.
>>>> You can’t possibly not change -metadata.  As an example. you have to
>>>> allow an msrp AoR for a participant
>>> Hmm. I guess so. I was thinking that we were lenient in the AoR type,
>>> but I guess not.
> Based on my own comments above, I don't know why we need to have an msrp AOR for a participant. I think we would identify participants in an MSRP media session by sip URI.
Again, I think we have to record what is in the CS.  If the CS identifies a participant by an MSRP AoR, we need to record that.  We can use whatever we want in the RS itself, so long as we can reproduce what was in the original CS.

>>> Since the metadata isn't done yet, maybe we can change it before it is
>>> done, to allow this. (Allow any URI.)
>> Depends on how we solve some of these other issues.
>> That one leaped out at me, have to look harder to see if there are
>> others.   Interaction of the term “Participant” for example.
>>>> Yes, I think we have to extend Participant to handle nicks.
>>> A participant can already have multiple AoR/Name pairs. So we could
>>> add the nickname as one of those.
>> Would have to be labeled in some way
> I went back to review the chat stuff that defines Nickname. (It still isn't an RFC!) I remembered wrong - the nickname isn't represented as a URI. Ideally we would manage it in-band in the MSRP. But the way nicknames are managed doesn't work very well for us. An msrp session is bound to at most one nickname at any point in time.
> We could work with that, sending NICKNAME requests on the RS msrp session as needed to set the nickname to match that of the message we want to send. But that would be unpleasant.
> An alternative would be to define the use of Use-Nickname with a SEND message. It currently isn't defined, but draft-ietf-simple-chat-18 leaves it open to be defined in the future.
> We would want to specify that the SRS will be especially lenient (promiscuous) in approving the use of nicknames.
Hmmm, lots to think about.  Probably want to consult the chat authors.

>>> (We really did try to plan ahead with the metadata.)
>>>> Probably also to handle the SIP session URI vs the MSRP URIs
>>> Note that the metadata associates participants with both the CS and
>>> individual media streams. So the SIP session URIs are already covered
>>> there.
>> I’m missing something, but it’s probably lack of clue on how metadata
>> works.
>> And, I spotted another metadata change problem:
>>        6.5.1
>>        <>;.
>>        Attributes
>>    Participant has a single defined attribute:
>>    o  AoR / Name pair list - This attribute is a list of Name/AoR
>>       tuples.  An AoR MAY be a SIP/SIPS/TEL URI.  Name represents
>>       Participant name(SIP display name) or dialed number (DN) (when
>>       known).  Multiple tuples are allowed for cases where a participant
>>       has more than one AoR.  (For example a P-Asserted-identity header
>>       [RFC3325  <>] can have both SIP and TEL URIs.)
>> Have to add msrp/msrps to the list.  Does the MSRP To/From HAVE to be an
>> msrp/msrps scheme, or can it be a sip AoR?  If the latter, we could have
>> a corner case where the SIP AoR and the MSRP AoR were both SIP but
>> different.
> The MSRP From/To URIs must be MSRP URIs.
> But, I still don't see why we need to care about preserving those in the recording.
> I must say that this is the kind of discussion I have been hoping to have - to nail down the nitty-gritty details.
Happy to be of service as more than a co-chair :)

> 	Thanks,
> 	Paul
>>> Thanks,
>>> Paul
>>>> Brian
>>>> On Jun 26, 2014, at 12:32 PM, Paul Kyzivat <
>>>> <>> wrote:
>>>>> Trying one more time. Please!!!
>>>>> On 6/3/14 2:46 PM, Paul Kyzivat wrote:
>>>>>> Can I get some people in the wg to review and comment on this version?
>>>>>>    Thanks,
>>>>>>    Paul
>>>>>> On 5/28/14 6:10 PM, Paul Kyzivat wrote:
>>>>>>> I've submitted a revised version of the msrp recording draft.
>>>>>>> This one is substantially fleshed out. It certainly needs more
>>>>>>> tweaking,
>>>>>>> but is complete enough that you should be able to make meaningful
>>>>>>> comments on the approach.
>>>>>>>    Thanks,
>>>>>>>    Paul
>>>>>>> -------- Original Message --------
>>>>>>> Subject: New Version Notification for
>>>>>>> draft-yan-siprec-msrp-recording-01.txt
>>>>>>> Date: Wed, 28 May 2014 15:03:24 -0700
>>>>>>> From: <>
>>>>>>> To: Michael Yan <
>>>>>>> <>>,        "Paul H. Kyzivat"
>>>>>>> < <>>,
>>>>>>>       "Michael Yan" <
>>>>>>> <>>,
>>>>>>>       "Paul Kyzivat" <
>>>>>>> <>>
>>>>>>> A new version of I-D, draft-yan-siprec-msrp-recording-01.txt
>>>>>>> has been successfully submitted by Paul H. Kyzivat and posted to the
>>>>>>> IETF repository.
>>>>>>> Name:        draft-yan-siprec-msrp-recording
>>>>>>> Revision:    01
>>>>>>> Title:        Overview for MSRP Recording based on SIPREC
>>>>>>> Document date:    2014-05-28
>>>>>>> Group:        Individual Submission
>>>>>>> Pages:        9
>>>>>>> URL:
>>>>>>> Status:
>>>>>>> Htmlized:
>>>>>>> Diff:
>>>>>>> Abstract:
>>>>>>>   SIPREC is capable of recording interactive text media that is
>>>>>>>   transmitted via RTP.  However that format is not commonly used for
>>>>>>>   message or chat scenarios.  There is also a need for recording text
>>>>>>>   media carried via MSRP.  One case of note is exchange of text
>>>>>>> between
>>>>>>>   hearing-impaired users and emergence service bureaus.  Also,
>>>>>>>   recording support is needed for MSRP used in chat conferences and
>>>>>>>   multimedia conferences.
>>>>>>>   This document describes how to achieve MSRP channel recording
>>>>>>> within
>>>>>>>   the mechanism of SIP Recording (SIPREC).
>>>>>>> Please note that it may take a couple of minutes from the time of
>>>>>>> submission
>>>>>>> until the htmlized version and diff are available at
>>>>>>> The IETF Secretariat
>>>>>>> _______________________________________________
>>>>>>> siprec mailing list
>>>>>> _______________________________________________
>>>>>> siprec mailing list
>>>>>> <>
>>>>> _______________________________________________
>>>>> siprec mailing list
>>>>> <>