Subject: RE: [MMUSIC] How to indicate the RTSP client to use TCP transportinstead of UDP?

From: "Andrew Large" <[email-masked]>
Date: Tue, 1 Aug 2006 13:52:52 -0700

I believe that the transport selected by the server is supposed to be
restricted to the choices offered by the client.  The client may provide
multiple options in the Transport header.  The server is supposed to
pick one of them (i.e., you can't introduce a new transport the client
didn't already identify).
 
My recollection is that QuickTime doesn't support normal RTSP
interleaving.  Instead, they only support HTTP tunneling, which
"tunnels" RTSP over two HTTP sockets (one persistent socket opened with
a GET and one transient socket that is opened with POST and potentially
closed and re-opened on every request).  To the best of my knowledge,
this HTTP tunneling approach has not been incorporated into any of the
standards.
 
I also recall that Real supports some version of HTTP tunneling as well,
but I don't think I could figure it out enough to support it in the
server.

--
Andrew Large
[email-masked] 

-----Original Message-----
From: Fan Chen [mailto:[email-masked]] 
Sent: Sunday, July 30, 2006 6:49 pm
To: [email-masked]
Subject: [MMUSIC] How to indicate the RTSP client to use TCP
transportinstead of UDP?

Hello,

I'm developing an RTSP streaming server. In some circumstances, UDP
transport is blocked by firewalls, so I need a way for the RTSP server
to notify the RTSP client to use TCP transport (RTSP interleaving)
instead of RTP transport. However, adding "RTP/AVP/TCP" in the SDP "m="
line does not work, both realplayer and quicktime player will ignore it.

Could anyone tell me what is the CORRECT way to do this within RTSP's
scope, and also supported by popular RTSP clients?

Best regards

Chen

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

---

From: Kylin Wei <[email-masked]>
Date: Wed, 02 Aug 2006 17:18:21 +0800

I think Andrew is probably right.  A client generally includes "interleaved"
parameter into the SETUP request to indicate that the client want to use
RTSP interleaving. Even if the client understands "RTP/AVP/TCP" media line
as indicating TCP transport, that doesn't mean it will use interleaved RTP
over TCP. Maybe it will use RTP over independent TCP.

I think that Realplayer should support RTP over TCP. Realplayer has a "RTSP
transport configuration" option. From that we can see that firstly it will
attempt to use UDP for all media content. If it can't get media data within
4000 milliseconds, it will change to use TCP. Finally, it will attempt to
use HTTP transport if it still can't get media data within 4000
milliseconds. But I can't sure whether the configuration will work.

Kylin Wei 

  _____  

From: Andrew Large [mailto:[email-masked]] 
Sent: Wednesday, August 02, 2006 4:53 AM
To: 'Fan Chen'; [email-masked]
Subject: RE: [MMUSIC] How to indicate the RTSP client to use
TCPtransportinstead of UDP?

I believe that the transport selected by the server is supposed to be
restricted to the choices offered by the client.  The client may provide
multiple options in the Transport header.  The server is supposed to pick
one of them (i.e., you can't introduce a new transport the client didn't
already identify).

My recollection is that QuickTime doesn't support normal RTSP interleaving.
Instead, they only support HTTP tunneling, which "tunnels" RTSP over two
HTTP sockets (one persistent socket opened with a GET and one transient
socket that is opened with POST and potentially closed and re-opened on
every request).  To the best of my knowledge, this HTTP tunneling approach
has not been incorporated into any of the standards.

I also recall that Real supports some version of HTTP tunneling as well, but
I don't think I could figure it out enough to support it in the server.

--
Andrew Large
[email-masked] 

-----Original Message-----
From: Fan Chen [mailto:[email-masked]] 
Sent: Sunday, July 30, 2006 6:49 pm
To: [email-masked]
Subject: [MMUSIC] How to indicate the RTSP client to use TCP
transportinstead of UDP?

Hello,

I'm developing an RTSP streaming server. In some circumstances, UDP
transport is blocked by firewalls, so I need a way for the RTSP server to
notify the RTSP client to use TCP transport (RTSP interleaving) instead of
RTP transport. However, adding "RTP/AVP/TCP" in the SDP "m=" line does not
work, both realplayer and quicktime player will ignore it.

Could anyone tell me what is the CORRECT way to do this within RTSP's scope,
and also supported by popular RTSP clients?

Best regards

Chen

---

From: "Fan Chen" <[email-masked]>
Date: Wed, 2 Aug 2006 22:17:43 +0800

Thanks Kylin and Andrew. :-)

Is “RTP over independent TCP” part of the standard? If not, where can I
find detailed information?

I’ve been testing with Realplayer on PC and Realplayer on Symbian handset. 

For realplayer on PC, sometimes it sends RTSP SETUP with both “RTP/AVP”
and “RTP/AVP/TCP”(no interleave), and sometimes it sends RTSP SETUP with
only “RTP/AVP”. I don’t know what determines these two different
behaviors.

When it allows transport “RTP/AVP/TCP”, my server answers with
“RTP/AVP/TCP;unicast;interleaved=0-1”, then realplayer sends TEARDOWN and
close the connection. As Kylin says, this means realplayer uses RTP over
independent TCP instead of RTP over RTSP.

For realplayer on Symbian handset, it sends RTSP SETUP with only
“RTP/AVP”, if it can’t get media data for some time, it will disconnect.
I believe realplayer on Symbian supports RTP over TCP and HTTP tunnel,
because even the open source version Helix player support those transports,
the key problem for me is how to invoke TCP or HTTP transports.

Chen

  _____  

发件人: Kylin Wei [mailto:[email-masked]] 
发送时间: 2006年8月2日 17:18
收件人: 'Andrew Large'; 'Fan Chen'
抄送: [email-masked]
主题: RE: [MMUSIC] How to indicate the RTSP client to use
TCPtransportinstead of UDP?

I think Andrew is probably right.  A client generally includes "interleaved"
parameter into the SETUP request to indicate that the client want to use
RTSP interleaving. Even if the client understands “RTP/AVP/TCP” media line
as indicating TCP transport, that doesn’t mean it will use interleaved RTP
over TCP. Maybe it will use RTP over independent TCP.

I think that Realplayer should support RTP over TCP. Realplayer has a “RTSP
transport configuration” option. From that we can see that firstly it will
attempt to use UDP for all media content. If it can’t get media data within
4000 milliseconds, it will change to use TCP. Finally, it will attempt to
use HTTP transport if it still can’t get media data within 4000
milliseconds. But I can’t sure whether the configuration will work.

Kylin Wei 

  _____  

 

--
Andrew Large
[email-masked] 

-----Original Message-----
From: Fan Chen [mailto:[email-masked]] 
Sent: Sunday, July 30, 2006 6:49 pm
To: [email-masked]
Subject: [MMUSIC] How to indicate the RTSP client to use TCP
transportinstead of UDP?

Hello,

I’m developing an RTSP streaming server. In some circumstances, UDP
transport is blocked by firewalls, so I need a way for the RTSP server to
notify the RTSP client to use TCP transport (RTSP interleaving) instead of
RTP transport. However, adding “RTP/AVP/TCP” in the SDP “m=” line does
not work, both realplayer and quicktime player will ignore it.

Could anyone tell me what is the CORRECT way to do this within RTSP’s
scope, and also supported by popular RTSP clients?

Best regards

Chen

---

From: Colin Perkins <[email-masked]>
Date: Wed, 2 Aug 2006 15:40:34 +0100

On 2 Aug 2006, at 15:17, Fan Chen wrote:
> Is “RTP over independent TCP” part of the standard? If not, where  
> can I find detailed information?

RFC 4571

Colin

---

From: "Jaehwan Kim" <[email-masked]>
Date: Fri, 4 Aug 2006 17:26:50 +0900

Folks,

Because I have some actual experience, I would like to share it with you. But correct me if I am wrong:

1.       RTP/AVP/TCP;unicast;interleaved=0-1 is the right form. 

2.       RFC 2326 has RTP/AVP/TCP;interleaved=0-1. It was fixed in 2326bis to have unicast. Multicast is default in this header field.

3.       Old Realplayer has RTP/AVP/TCP only. This is wrong because there is no unicast

4.       Current Realplayer has RTP/AVP/TCP;unicast. It looks ok because anyway interleaved is optional.

5.       Therefore, some might think that RTP/AVP/TCP is the same as RTP/AVP/TCP;interleaved

6.       However, it is basically not true. I got an agreement from ISMA in 2003 that we need to think of future extension than ‘interleaved’. Moreover, now it looks that some draft using just RTP/AVP/TCP(similar to as Fan’s independent TCP) is working on in somewhere else in MMUSIC. Here ‘interleaved’ only means an embedded RTP over RTSP solution as described in RFC 2326 section 10.12

7.       When there is only RTP/AVP in client, server can’t change it to RTP/AVP/TCP, according to standard and we agreed it here in MMUSIC long ago; it can only choose one of the list.

8.       From my knowledge and testing, the current PC version Realplayer can support interleaved. But some Symbian versions can’t handle it. Anyway if there is no RTP/AVP/TCP from client Request, server can not use it.

9.       Because a player like Realplayer regards RTP/AVP/TCP as RTP/AVP/TCP;interleaved, my server responds with RTP/AVP/TCP;unicast;interleaved=0-1 when it got RTP/AVP/TCP;unicast or just RTP/AVP/TCP. And I found that Helix Server also responds like this.

10.   Therefore, now we can assume that RTP/AVP/TCP might be the same as RTP/AVP/TCP;unicast;interleaved=0-1

11.   We need a new parameter when a new method is defined as independent TCP.  Because the characteristic of UDP is different from TCP, we can not simply convey RTP AS IS over TCP, thereby some other profile or a way of transport method should be defined. For instance, RTP/AVP/TCP;unicast;foo-TCP  can be used. Then the assumption of 10 would be possible.

Kind Regards,

Jaehwan

________________________________

From: Fan Chen [mailto:[email-masked]] 
Sent: Wednesday, August 02, 2006 11:18 PM
To: 'Kylin Wei'; 'Andrew Large'
Cc: [email-masked]
Subject: 答复: [MMUSIC] How to indicate the RTSP client to use TCPtransportinstead of UDP?

Is “RTP over independent TCP” part of the standard? If not, where can I find detailed information?

For realplayer on PC, sometimes it sends RTSP SETUP with both “RTP/AVP” and “RTP/AVP/TCP”(no interleave), and sometimes it sends RTSP SETUP with only “RTP/AVP”. I don’t know what determines these two different behaviors.

When it allows transport “RTP/AVP/TCP”, my server answers with “RTP/AVP/TCP;unicast;interleaved=0-1”, then realplayer sends TEARDOWN and close the connection. As Kylin says, this means realplayer uses RTP over independent TCP instead of RTP over RTSP.

For realplayer on Symbian handset, it sends RTSP SETUP with only “RTP/AVP”, if it can’t get media data for some time, it will disconnect. I believe realplayer on Symbian supports RTP over TCP and HTTP tunnel, because even the open source version Helix player support those transports, the key problem for me is how to invoke TCP or HTTP transports.

Chen

________________________________

发件人: Kylin Wei [mailto:[email-masked]] 
发送时间: 2006年8月2日 17:18
收件人: 'Andrew Large'; 'Fan Chen'
抄送: [email-masked]
主题: RE: [MMUSIC] How to indicate the RTSP client to use TCPtransportinstead of UDP?

I think Andrew is probably right.  A client generally includes "interleaved" parameter into the SETUP request to indicate that the client want to use RTSP interleaving. Even if the client understands “RTP/AVP/TCP” media line as indicating TCP transport, that doesn’t mean it will use interleaved RTP over TCP. Maybe it will use RTP over independent TCP.

I think that Realplayer should support RTP over TCP. Realplayer has a “RTSP transport configuration” option. From that we can see that firstly it will attempt to use UDP for all media content. If it can’t get media data within 4000 milliseconds, it will change to use TCP. Finally, it will attempt to use HTTP transport if it still can’t get media data within 4000 milliseconds. But I can’t sure whether the configuration will work.

Kylin Wei 

________________________________

From: Andrew Large [mailto:[email-masked]] 
Sent: Wednesday, August 02, 2006 4:53 AM
To: 'Fan Chen'; [email-masked]
Subject: RE: [MMUSIC] How to indicate the RTSP client to use TCPtransportinstead of UDP?

I believe that the transport selected by the server is supposed to be restricted to the choices offered by the client.  The client may provide multiple options in the Transport header.  The server is supposed to pick one of them (i.e., you can't introduce a new transport the client didn't already identify).

My recollection is that QuickTime doesn't support normal RTSP interleaving.  Instead, they only support HTTP tunneling, which "tunnels" RTSP over two HTTP sockets (one persistent socket opened with a GET and one transient socket that is opened with POST and potentially closed and re-opened on every request).  To the best of my knowledge, this HTTP tunneling approach has not been incorporated into any of the standards.

I also recall that Real supports some version of HTTP tunneling as well, but I don't think I could figure it out enough to support it in the server.

--
Andrew Large
[email-masked] 

	-----Original Message-----
	From: Fan Chen [mailto:[email-masked]] 
	Sent: Sunday, July 30, 2006 6:49 pm
	To: [email-masked]
	Subject: [MMUSIC] How to indicate the RTSP client to use TCP transportinstead of UDP?

	Hello,

	I’m developing an RTSP streaming server. In some circumstances, UDP transport is blocked by firewalls, so I need a way for the RTSP server to notify the RTSP client to use TCP transport (RTSP interleaving) instead of RTP transport. However, adding “RTP/AVP/TCP” in the SDP “m=” line does not work, both realplayer and quicktime player will ignore it.

	Could anyone tell me what is the CORRECT way to do this within RTSP’s scope, and also supported by popular RTSP clients?

	Best regards

	Chen

---

From: "Fan Chen" <[email-masked]>
Date: Sun, 6 Aug 2006 01:30:13 +0800

Does realplayer support RFC 4571? Anyone knows?

Chen

-----邮件原件-----
发件人: Colin Perkins [mailto:[email-masked]] 
发送时间: 2006年8月2日 22:41
收件人: Fan Chen
抄送: 'Kylin Wei'; 'Andrew Large'; [email-masked]
主题: Re: ´ð¸´: [MMUSIC] How to indicate the RTSP client to use TCPtransportinstead of UDP?

RFC 4571

Colin