Subject: [siprec] How to specify in metadata that a participants stream is being recorded in multtiple m line streams

From: <[email-masked]>
Date: Tue, 28 Feb 2012 08:09:54 +0000

Guys,

We have a somewhat unusual requirement for recording from our turret.
The turret is a Recording Aware UA that supports multiple simultaneous calls.

The turret supports two handsets and many speaker channels.

We are going to have a configuration where there will be multiple recording streams sent from the turret to the recorder,  for simplicity I'll describe when we have one record stream for handset 1 calls, and another record stream for handset 2 calls.
Each record stream records a call as a single mixed stream.

At registration, the turret sets up a single persistent RS containing two m lines in the INVITES sdp,
the first m-line will be used for recording calls on handset 1, and is labelled HS1_stream
the 2nd m line will be used for recording calls on handset 2. and is labelled HS2_stream

When we have a call on handset 1, the call is recorded in a single mixed stream to the recorder
so metadata describing the handset1 record stream would be:

             <session id="hVpd7YQgRW2nD22h7q60JQ==">
             </session>

             <participant
                id="srfBElmCRp2QB23b7Mpk0w=="
                session="hVpd7YQgRW2nD22h7q60JQ==">
                <nameID aor=sip:[email-masked]>
                              <name xml:lang="it">RamMohan R</name>
                             </nameID>
                <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
                <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
             </participant>

             <participant
                 id="zSfPoSvdSDCmU3A3TRDxAw=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <nameID aor=sip:[email-masked]>
                              <name xml:lang="it">Paul Kyzivat</name>
                             </nameID>
                 <send>8zc6e0lYTlWIINA6GR+3ag==</send>
                 <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
                 <associate-time>2010-12-16T23:41:07Z</associate-time>
             </participant>

             <stream id="i1Pz3to5hGk8fuXl+PbwCw=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <label>HS1_stream</label>
             </stream>
             <stream id="8zc6e0lYTlWIINA6GR+3ag=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <label>HS1_stream</label>
             </stream>

Now the 2nd handset is barge conferenced into the same call ! (sometime a trader gives 2nd handset to another trader to join in same call)

You might expect the metadata describing the handset1 record stream would change to:

             <session id="hVpd7YQgRW2nD22h7q60JQ==">
             </session>

             <participant
                id="srfBElmCRp2QB23b7Mpk0w=="
                session="hVpd7YQgRW2nD22h7q60JQ==">
                <nameID aor=sip:[email-masked]>
                              <name xml:lang="it">RamMohan R</name>
                             </nameID>
                <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
                <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
                 <recv>aBzzAkhhlbcSHAxxkcdj==</recv>
             </participant>

             <participant
                 id="zSfPoSvdSDCmU3A3TRDxAw=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <nameID aor=sip:[email-masked]>
                              <name xml:lang="it">Paul Kyzivat</name>
                             </nameID>
                 <send>8zc6e0lYTlWIINA6GR+3ag==</send>
                 <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
                 <recv>aBzzAkhhlbcSHAxxkcdj==</recv>
                 <associate-time>2010-12-16T23:41:07Z</associate-time>
             </participant>

             <participant
                 id="zSfPoSvdSDCmU3A3TxACDeh=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <nameID aor=sip:[email-masked]>
                              <name xml:lang="it">John Stafford</name>
                             </nameID>
                 <send>aBzzAkhhlbcSHAxxkcdj==</send>
                 <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
                 <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
              <associate-time>2010-12-16T27:12:07Z</associate-time>
             </participant>

             <stream id="i1Pz3to5hGk8fuXl+PbwCw=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <label>HS1_stream</label>
             </stream>
             <stream id="8zc6e0lYTlWIINA6GR+3ag=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <label>HS1_stream</label>
             </stream>
             <stream id="aBzzAkhhlbcSHAxxkcdj=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <label>HS1_stream</label>
             </stream>

However, this is not correct, as the conference is also getting recorded in the handset 2 m line stream.

How can we convey this information to the recorder ?

I would like to be able to put multiple labels on the streams, but the siprec schema does not allow it,  ie:
             <stream id="i1Pz3to5hGk8fuXl+PbwCw=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <label>HS1_stream</label>
                 <label>HS2_stream</label>
             </stream>
             <stream id="8zc6e0lYTlWIINA6GR+3ag=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <label>HS1_stream</label>
                 <label>HS2_stream</label>
             </stream>
             <stream id="aBzzAkhhlbcSHAxxkcdj=="
                 session="hVpd7YQgRW2nD22h7q60JQ==">
                 <label>HS1_stream</label>
                 <label>HS2_stream</label>
             </stream>
Is there any reason why the schema limits stream to having a single label ?

Rgds
John Stafford | Solution Architect 1 | BT Global Services

---

From: "Ravindran, Parthasarathi" <[email-masked]>
Date: Tue, 28 Feb 2012 11:59:42 +0000

John,

I need clarification whether the barge-call leads to the mixed stream towards recorder or un-mixed stream towards recorder. Your example with multiple label indicates that it is un-mixed stream whereas the initial call is mixed. Could you please clarify on this point for providing the appropriate metadata.

In case of un-mixed stream, it is possible to create multiple stream with single label and participants points to multiple stream. In case of mixed stream, there is no concept of multiple label.

Thanks
Partha

From: [email-masked] [mailto:[email-masked]] On Behalf Of [email-masked]
Sent: Tuesday, February 28, 2012 1:40 PM
To: [email-masked]
Cc: [email-masked]; [email-masked]; [email-masked]
Subject: [siprec] How to specify in metadata that a participants stream is being recorded in multtiple m line streams

Guys,

             <participant

             <participant

             <participant

             <participant

             <participant

Rgds

---

From: <[email-masked]>
Date: Tue, 28 Feb 2012 13:14:29 +0000

Partha

After registration we have two RS streams from the turret, but becuase there are is no call on iether handset, the streams are sending silence.

When the call is made on handset 1, then the RS stream associated with that handset records a mix of both the participants on the call.

When the 2nd handset is barged into the call, the handset 1 stream records a mix of all three oparticipants.

BUT also RS stream assocaiated with the  2nd handset also records a mix of all three oparticipants.

So after barge the two streams of the persistent RS are both recording the same mix of the 3 participants.

So each participants stream is being recorded in two streams of the same RS.

Rgds
John Stafford | Solution Architect 1 | BT Global Services | Tel:+44 (0)1932 773504   | E: [email-masked]<mailto:[email-masked]>  |  www.bt.com/globalservices<http://www.bt.com/globalservices>

________________________________
From: Ravindran, Parthasarathi [[email-masked]]
Sent: 28 February 2012 11:59
To: Stafford,J,John,JRJ3X C; [email-masked]
Cc: [email-masked]; [email-masked]; [email-masked]
Subject: RE: [siprec] How to specify in metadata that a participants stream is being recorded in multiple m line streams

John,

Thanks
Partha

Guys,

             <participant

             <participant

             <participant

             <participant

             <participant

Rgds

---

From: Paul Kyzivat <[email-masked]>
Date: Tue, 28 Feb 2012 08:39:43 -0500

On 2/28/12 8:14 AM, [email-masked] wrote:
> Partha
> After registration we have two RS streams from the turret, but becuase
> there are is no call on iether handset, the streams are sending silence.
> When the call is made on handset 1, then the RS stream associated with
> that handset records a mix of both the participants on the call.
> When the 2nd handset is barged into the call, the handset 1 stream
> records a mix of all three oparticipants.

So you are sending mixed media for the 3-party call twice?
Why would you do that? Is it for redundance? Or just that you are 
incapable of *not* doing so?

What do you want the recorder to do about it? Do you want the recorder 
to record the call twice? Or do you want it to ignore one of the streams?

	Thanks,
	Paul

> John Stafford | Solution Architect 1 | BT Global Services | Tel:+44
> (0)1932 773504| E: [email-masked]
> <mailto:[email-masked]>|_www.bt.com/globalservices
> <http://www.bt.com/globalservices>_
> ------------------------------------------------------------------------
> *From:* Ravindran, Parthasarathi [[email-masked]]
> *Sent:* 28 February 2012 11:59
> *To:* Stafford,J,John,JRJ3X C; [email-masked]
> *Cc:* [email-masked]; [email-masked];
> [email-masked]
> *Subject:* RE: [siprec] How to specify in metadata that a participants
> stream is being recorded in multiple m line streams
>
> John,
>
> I need clarification whether the barge-call leads to the mixed stream
> towards recorder or un-mixed stream towards recorder. Your example with
> multiple label indicates that it is un-mixed stream whereas the initial
> call is mixed. Could you please clarify on this point for providing the
> appropriate metadata.
>
> In case of un-mixed stream, it is possible to create multiple stream
> with single label and participants points to multiple stream. In case of
> mixed stream, there is no concept of multiple label.
>
> Thanks
>
> Partha
>
> *From:[email-masked] [mailto:[email-masked]] *On
> Behalf Of [email-masked]
> *Sent:* Tuesday, February 28, 2012 1:40 PM
> *To:* [email-masked]
> *Cc:* [email-masked]; [email-masked];
> [email-masked]
> *Subject:* [siprec] How to specify in metadata that a participants
> stream is being recorded in multtiple m line streams
>
> Guys,
>
> We are going to have a configuration where there will be multiple
> recording streams sent from the turret to the recorder, for simplicity
> I'll describe when we have one record stream for handset 1 calls, and
> another record stream for handset 2 calls.
>
> Now the 2nd handset is barge conferenced into the same call ! (sometime
> a trader gives 2nd handset to another trader to join in same call)
>
> _______________________________________________
> siprec mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/siprec

---

From: "Ram Mohan R (rmohanr)" <[email-masked]>
Date: Tue, 28 Feb 2012 22:44:02 +0530

Hi Paul,

Please see inline

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On
> Behalf Of Paul Kyzivat
> Sent: Tuesday, February 28, 2012 7:10 PM
> To: [email-masked]
> Subject: Re: [siprec] How to specify in metadata that a participants
> > BUT also RS stream assocaiated with the 2nd handset also records a
> mix
> > of all three oparticipants.
> > So after barge the two streams of the persistent RS are both
> recording
> > the same mix of the 3 participants.

I will let John give his views. But I have seen use-cases (especially
with banks call centres) where they mandate 
Redundant recording of a same CS to at least two recorders (sometimes
more) located at different geo-graphical locations. I also heard
this(redundant recording at different locations) is regulatory for some
countries.

Ram

> > <http://www.bt.com/globalservices>_
---------------------------------------------------------------------
> ---
> > with single label and participants points to multiple stream. In
case
> of
> > The turret is a Recording Aware UA that supports multiple
> simultaneous
> > calls.
> >
> > At registration, the turret sets up a single persistent RS
containing
> > two m lines in the INVITES sdp,
> >
> > the first m-line will be used for recording calls on handset 1, and
> is
> > labelled HS1_stream
> >
> > When we have a call on handset 1, the call is recorded in a single
> mixed
> > stream to the recorder
> >
> > However, this is not correct, as the conference is also getting
> recorded
> > in the handset 2 m line stream.
> >
> > I would like to be able to put multiple labels on the streams, but
> the
> > siprec schema does not allow it, ie:
> >

---

From: <[email-masked]>
Date: Wed, 29 Feb 2012 08:23:39 +0000

Paul,

yes you are correct, under this scanrio we end up recording the same call twice.
It is a side effect of recording each handsets calls in a separate RS stream.

I suppose we could inhibit recording the call in the 2nd handsets RS stream. But then if handset 1 hangs up, the call will continue and we would have to switch to recording it in the handset 2 stream, so a meatadata update would show that handset 1 participant has left the CS, and that all the streams of the CS are now labelled as being recorded on the other RS stream.

But thats an extra complication that the turret would have to deal with, and also in our architecture although the turret initiates the RS session and controls SDP, it is our central server that is generating the metadata

As this scenario will happen relatively infrequently we see the saving in recorder storage does not justify the increased complexity needed to avoid it.

Also it is possible that we could in the future want to generate two RS streams recording the same call for redundancy.

We would expect the recorder to record both streams.

Rgds
John Stafford | Solution Architect 1 | BT Global Services 
________________________________________
From: [email-masked] [[email-masked]] On Behalf Of Paul Kyzivat [[email-masked]]
Sent: 28 February 2012 13:39
To: [email-masked]
Subject: Re: [siprec] How to specify in metadata that a participants stream is being recorded in multiple m line streams

        Thanks,
        Paul

---

From: "Hutton, Andrew" <[email-masked]>
Date: Wed, 29 Feb 2012 11:31:47 +0100

Hi John,

I changed the subject for a side discussion on metadata for mixed streams which I wanted to clarify before moving on to your more complex scenario. The metadata draft does not have examples of how mixed streams are represented but my interpretation is different to your example. I would like the views of our metadata experts on the list.

You indicated that for the basic two party call using handset one the stream is mixed and the metadata looks like this.

>                  <label>HS1_stream</label>

However my understanding is that since there is a single mixed stream that the metadata would have only a single stream with the two participants sending and receiving on that single stream.

             <participant
 
             <participant

Regards
Andy (SIPREC Co-chair).

> Behalf Of [email-masked]
> Sent: 28 February 2012 08:10
> To: [email-masked]
> Subject: [siprec] How to specify in metadata that a participants stream
> is being recorded in multtiple m line streams
> 
> Guys,
> 
> 
> mixed stream to the recorder
> recorded in the handset 2 m line stream.
>

---

From: "Ram Mohan R (rmohanr)" <[email-masked]>
Date: Wed, 29 Feb 2012 16:31:35 +0530

Andy,

Thanks for sending the correct metadata.
Yes you are right. In case of mixed stream there will be single stream and multiple participants have pointer (<send> or <recv>) to it.

IIUC John has an additional requirement too-
In this use-case there are two copies of the same stream ( represented by two m-lines in SDP) and forked to recorder.

The question is:

Should we just treat this as two different streams ( with two different IDs) and have all the participant point (<send> or <recv>) to both of them ?
OR
Should we have one <stream> element and have two <label> sub-elements inside it. ?

Till now the metadata assumes 1 - 1 mapping between stream and label. That is one <stream> element is mapped to one m-line via one <label>
Here John wants one <stream> element map to two m-lines via two <labels>

I prefer the former approach - treat this as two different streams ( with two different IDs) and have all the participant point (<send> or <recv>) to both of them. In that way the current mapping of one <stream> element to one m-line via one <label> will be retained.
If we are to change this we will think through different use-cases to see the impact.

Regards,
Ram

> Behalf Of Hutton, Andrew
> Sent: Wednesday, February 29, 2012 4:02 PM
> To: [email-masked]; [email-masked]
> Cc: [email-masked]; [email-masked];
> [email-masked]
> Subject: [siprec] How to specify in metadata - Mixed Streams.
> 
> Hi John,
> 
> I changed the subject for a side discussion on metadata for mixed
> streams which I wanted to clarify before moving on to your more complex
> scenario. The metadata draft does not have examples of how mixed
> streams are represented but my interpretation is different to your
> example. I would like the views of our metadata experts on the list.
> 
> You indicated that for the basic two party call using handset one the
> stream is mixed and the metadata looks like this.
> 
> >
> However my understanding is that since there is a single mixed stream
> that the metadata would have only a single stream with the two
> participants sending and receiving on that single stream.
>

---

From: "Hutton, Andrew" <[email-masked]>
Date: Wed, 29 Feb 2012 12:14:06 +0100

Hi Ram,

Thanks so you agree with me that the example John gave for the basic two party mixed stream case is not what at least you and I expected which seems to indicate we need some clarification in the metadata draft regarding the handling of mixed streams.

I think I agree with you that keeping the 1 to 1 mapping between streams and the SDP m-lines is probably a good idea.

I will send what I think the metadata should look like for John's multiple stream use case on the original thread as I wanted to keep this thread to the mixed streams issue.

Regards
Andy

> From: Ram Mohan R (rmohanr) [mailto:[email-masked]]
> Sent: 29 February 2012 11:02
> To: Hutton, Andrew; [email-masked]; [email-masked]
> Subject: RE: [siprec] How to specify in metadata - Mixed Streams.
> 
> Andy,
> 
> Yes you are right. In case of mixed stream there will be single stream
> and multiple participants have pointer (<send> or <recv>) to it.
> 
> In this use-case there are two copies of the same stream ( represented
> by two m-lines in SDP) and forked to recorder.
> 
> The question is:
> 
> Should we just treat this as two different streams ( with two different
> IDs) and have all the participant point (<send> or <recv>) to both of
> them ?
> OR
> Till now the metadata assumes 1 - 1 mapping between stream and label.
> That is one <stream> element is mapped to one m-line via one <label>
> I prefer the former approach - treat this as two different streams (
> with two different IDs) and have all the participant point (<send> or
> <recv>) to both of them. In that way the current mapping of one
> <stream> element to one m-line via one <label> will be retained.
> > > At registration, the turret sets up a single persistent
> RS containing
> > > the 2nd m line will be used for recording calls on handset 2. and
> is
> > > labelled HS2_stream
> > >
> > >
> > >

---

From: "Ram Mohan R (rmohanr)" <[email-masked]>
Date: Wed, 29 Feb 2012 20:08:25 +0530

Hi Andy,

Please see inline

> From: Hutton, Andrew [mailto:[email-masked]]
> Sent: Wednesday, February 29, 2012 4:44 PM
> To: Ram Mohan R (rmohanr); [email-masked]; [email-masked]
> Thanks so you agree with me that the example John gave for the basic
> two party mixed stream case is not what at least you and I expected
> which seems to indicate we need some clarification in the metadata
> draft regarding the handling of mixed streams.

The section on MediaStream does talk about the linkages. I will add one conference XML instance in the example section which currently has only basic call scenario examples.
If you think we need specific text to be added elsewhere please suggest.

Thanks,
Ram

> 
> I think I agree with you that keeping the 1 to 1 mapping between
> streams and the SDP m-lines is probably a good idea.
> 
> I will send what I think the metadata should look like for John's
> multiple stream use case on the original thread as I wanted to keep
> this thread to the mixed streams issue.
> 
> Regards
> Andy
> 
> 
> 
> 
> 
> > > > You might expect the metadata describing the handset1 record
> stream
> > > > would change to:
> > > >
> > > > Is there any reason why the schema limits stream to having a
> single
> > > > label ?
> > > >
> > > >
> > > > Rgds

---

From: Paul Kyzivat <[email-masked]>
Date: Wed, 29 Feb 2012 09:54:38 -0500

> It is a side effect of recording each handsets calls in a separate RS stream.

Do the two recordings contain the same mix of media?

> But thats an extra complication that the turret would have to deal with, and also in our architecture although the turret initiates the RS session and controls SDP, it is our central server that is…

I guess its up to you to decide if you want to optimize out redundant 
streams. I don't think this is something that siprec should mandate.

Assuming both streams contain the same mix, then I guess the question is 
how that is represented in the metadata. It could be represented as two 
different streams each containing the same participants, or perhaps we 
can represent it as the same stream transmitted over two different m-lines.

	Thanks,
	Paul