Subject: [Speechsc] RTP Info

From: "Reifenrath, Klaus" <[email-masked]>
Date: Mon, 17 May 2004 10:55:17 -0400

Hi!

In version 03 an optional timestamp was added to the SPEECH-MARKER event.
Unfortunately there was no guidance added how it has to be used and it does
not address all issues about coordination of RTP playback. To overcome the
various synchronisation problems between the client and the server with
regard to the speech synthesizer resource, I suggest, to introduce a new
header field:

RTP-Info
This field is used to set RTP-specific parameters.
seq: Indicates the sequence number of a RTP packet.
rtptime: Indicates the corresponding RTP timestamp.

When a CONTROL to jump is issued the CONTROL response message MUST contain
the RTP-info header to allow clients to gracefully deal with packets when
jumping. In this case the sequence number indicates the last packet before
the jump. The client uses this value to differentiate packets that
originated before the jump from packets that originated after the jump.

The RTP-info header MUST be part of the SPEECH-MARKER event. The sequence
number indicates the last packet that was send before the synthesizer
resource hit the tag in the speech markup. The RTP timestamp corresponds to
the time when the synthesizer resource hit the tag in the speech markup.

SPEAK-COMPLETE, STOP response and PAUSE response SHOULD set this header
field to indicate the sequence number of the last packet that was initiated
by the SPEAK request that was completed, stopped or paused. This enables the
client to differentiate packets that belong to different SPEAK requests (if
queuing is used). 

Making use of this header field the client can insert audio clips into the
prompt without the need to send actual audio data with the SPEAK request to
the server (saves bandwidth!). 

   Syntax:

   RTP-Info        = "RTP-Info" ":" seq ";" rtptime
   seq       	    = "seq" "=" 1*DIGIT
   rtptime         = "rtptime" "=" 1*DIGIT

Klaus

_______________________________________________
Speechsc mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/speechsc

---

From: "David R. Oran" <[email-masked]>
Date: Mon, 17 May 2004 11:27:19 -0400

I certainly see how one may want to control the RTP playout positioning by 
synchronizing via an RTP timestamp, but I have grave misgivings about 
letting sequence number information leak between the media plane and the 
control plane.

The reasons are multiple:
a) RTP playout is controlled by the timestamp, not the sequence number
b) sequence numbers will be complicated to handle if FEC is in use
c) It's hard to position correctly if there are lost packets.

As far as I know, it may be best to stay away entirely from direct usage of 
RTP media state and instead synchronize only based on SSRC and NTP 
realtime. That would also allow synchronization of audio even in the 
presence of an associated video stream.

Dave.

--On Monday, May 17, 2004 10:55 AM -0400 "Reifenrath, Klaus" 
<[email-masked]> wrote:

> Unfortunately there was no guidance added how it has to be used and it
> does not address all issues about coordination of RTP playback. To
> overcome the various synchronisation problems between the client and the
> server with regard to the speech synthesizer resource, I suggest, to
> introduce a new header field:
>
> RTP-Info
> resource hit the tag in the speech markup. The RTP timestamp corresponds
> to the time when the synthesizer resource hit the tag in the speech
> markup.
>
> field to indicate the sequence number of the last packet that was
> initiated by the SPEAK request that was completed, stopped or paused.
> This enables the client to differentiate packets that belong to different
> SPEAK requests (if queuing is used).
>
> prompt without the need to send actual audio data with the SPEAK request
> to the server (saves bandwidth!).
>
>    Syntax:
>

---

From: Magnus Westerlund <[email-masked]>
Date: Tue, 18 May 2004 11:41:09 +0200

Hi,

Independently of how you decided the if this is needed or not. The 
RTP-Info syntax in RTSP is erroneous and missing an important part to be 
complete. It does need to contain a SSRC. If you are going to adopt this 
header I would recommend that you redefine it in the following way:

     Syntax:

RTP-Info        = "RTP-Info" ":" rtp-sync-point *("," rtp-sync-point)
rtp-sync-point	= source-id ";" rtptime [";" seq]
source-id	= "ssrc" "=" 8*8HEX
seq	        = "seq" "=" 1*DIGIT
rtptime         = "rtptime" "=" 1*DIGIT

The only thing one might need to consider if the SSRC is always easily 
available. If not then the source-id field could be defined as optional. 
However it is probably important to ensure that sync info from multiple 
sources in the same RTP session can be properly handled.

Cheers

Magnus

Reifenrath, Klaus wrote:

> does
> to
> initiated

-- 

Magnus Westerlund

Multimedia Technologies, Ericsson Research EAB/TVA/A
----------------------------------------------------------------------
Ericsson AB                | Phone +46 8 4048287
Torshamsgatan 23           | Fax   +46 8 7575550
S-164 80 Stockholm, Sweden | mailto: [email-masked]