<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2448.0">
<TITLE>RE: RTCP port number</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>Hani,</FONT>
</P>

<P><FONT SIZE=2>Thanks for your reply. There are still a few points I'm not clear on.</FONT>
</P>

<P><FONT SIZE=2>Your first four points are consistent with my current understanding of the OLC/OLCA messages. I'll elaborate on these points just to try and avoid the ambiguities of my previous email:</FONT></P>

<P>        <FONT SIZE=2>There are two optional TransportAddress fields (mediaChannel and mediaControlChannel) within the forward logical channel parameters section of the OLC request message. H.245 specifies that the mediaChannel field should not be included in the OLC request when the transport is unicast. The mediaControlChannel field, if present in the OLC request, specifies the address on which the sender of the OLC will be listening for media control messages. If the mediaControlChannel field is not present in the OLC request, this indicates that a control session is not required.</FONT></P>

<P>        <FONT SIZE=2>The mediaChannel and mediaControlChannel fields are also present in the OLCA response message. The mediaChannel field must be present in a OLCA response when the transport is unicast, and it specifies the address to which the sender of the corresponding OLC must transmit the media. The mediaControlChannel field in the OLCA response specifies the address on which the sender of the OLCA will be listening for media control messages for this session. The mediaControlChannel should only be included in the OLCA response if a media control channel is required (i.e., only if the mediaControlChannel field was present in the corresponding OLC request).</FONT></P>

<P><FONT SIZE=2>Therefore, assuming a control channel is required, each endpoint must transmit and receive three transport address in order to establish a bi-directional media stream; 1) RTCP address in OLC (a1), 2) RTP address in OLCA (a2), and 3) RTCP address in OLCA (a3). To use a single bi-directional RTCP channel, each endpoint must specify the same address in a1 and a3. The +1 rule requires the port numbers in a1 and a3 to be odd, and that a2 and a3 are identical except for the port number where it is one less in a2 compared to a3.</FONT></P>

<P><FONT SIZE=2>My initial question was regarding the case where one of the endpoints supplies a set of addresses where a1 and a2 do not conform to the +1 rule. There are two possibilities in this case:</FONT></P>

<P><FONT SIZE=2>1) a1 and a3 are the identical - i.e., single bi-directional RTCP channel, but a2 and a3 do not conform to the +1 rule.</FONT>
<BR><FONT SIZE=2>2) a2 and a3 conform to the +1 rule - i.e., 2 unidirectional RTCP channels.</FONT>
</P>

<P><FONT SIZE=2>My original question can be more precisely worded as: Is option 1 valid?</FONT>
</P>
<BR>

<P><FONT SIZE=2>Thanks again,</FONT>
</P>

<P><FONT SIZE=2>Mohamed</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=2>-----Original Message-----</FONT>
<BR><FONT SIZE=2>From: El-Gebaly, Hani [<A HREF="mailto:hani.el-gebaly@intel.com">mailto:hani.el-gebaly@intel.com</A>]</FONT>
<BR><FONT SIZE=2>Sent: 21 October 1999 18:32</FONT>
<BR><FONT SIZE=2>To: 'Mohamed Mustafa'</FONT>
<BR><FONT SIZE=2>Subject: Re: RTCP port number</FONT>
</P>

<P><FONT SIZE=2> </FONT>
<BR><FONT SIZE=2>Mohamed,</FONT>
<BR><FONT SIZE=2> </FONT>
<BR><FONT SIZE=2>Here is how it works:</FONT>
<BR><FONT SIZE=2> </FONT>
<BR><FONT SIZE=2>(1) Openchannel specifies the reverse RTCP address (IP and port) that it</FONT>
<BR><FONT SIZE=2>will receive RTCP information on (RTCP receive reports). </FONT>
<BR><FONT SIZE=2>(2) It does not specify any RTP or RTCP send ports. </FONT>
<BR><FONT SIZE=2>(3) openchannelAck specifies the RTP address that the acknowledging terminal</FONT>
<BR><FONT SIZE=2>will receive on RTP data and the channel owner (one who initiated</FONT>
<BR><FONT SIZE=2>openchannel) will stream to (send) RTP data. </FONT>
<BR><FONT SIZE=2>(4) openchannelAck also specifies RTCP address that the channel owner</FONT>
<BR><FONT SIZE=2>(initiator) ought to send RTCP sener reports data of this channel on. </FONT>
<BR><FONT SIZE=2>(5) Note that RTP address != RTCP address. Usually the port numbers are</FONT>
<BR><FONT SIZE=2>shifted by one. </FONT>
<BR><FONT SIZE=2>(6) RTP uses an even port number and the corresponding RTCP stream uses the</FONT>
<BR><FONT SIZE=2>next higher (odd) port number </FONT>
<BR><FONT SIZE=2>(7) A Terminal may choose to retain the same IP port for RTCP Send and</FONT>
<BR><FONT SIZE=2>Receive reports. </FONT>
<BR><FONT SIZE=2> </FONT>
<BR><FONT SIZE=2>So the RTP port is not sent in the OLC rather returned in the OLCA. </FONT>
<BR><FONT SIZE=2> </FONT>
<BR><FONT SIZE=2>regards,</FONT>
<BR><FONT SIZE=2> </FONT>
<BR><FONT SIZE=2>Hani</FONT>
</P>

<P><FONT SIZE=2>-----Original Message-----</FONT>
<BR><FONT SIZE=2>From: Mohamed Mustafa [<A HREF="mailto:M.Mustafa@SDXPLC.COM">mailto:M.Mustafa@SDXPLC.COM</A>]</FONT>
<BR><FONT SIZE=2>Sent: Thursday, October 21, 1999 8:05 AM</FONT>
<BR><FONT SIZE=2>To: ITU-SG16@MAILBAG.INTEL.COM <<A HREF="mailto:ITU-SG16@MAILBAG.INTEL.COM">mailto:ITU-SG16@MAILBAG.INTEL.COM</A>> </FONT>
<BR><FONT SIZE=2>Subject: RTCP port number</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=2>Hi Everyone, </FONT>
</P>

<P><FONT SIZE=2>Annex A of recommendation H.225.0 states that  "RTP uses an even port number</FONT>
<BR><FONT SIZE=2>and the corresponding RTCP stream uses the next higher (odd) port number".</FONT>
</P>

<P><FONT SIZE=2>Can anyone clarify what the RTCP port number should be if an endpoint uses</FONT>
<BR><FONT SIZE=2>two different RTP port numbers (one for transmitting and one for receiving).</FONT>
</P>

<P><FONT SIZE=2>To avoid confusion, I'll describe the specific scenario I'm trying to</FONT>
<BR><FONT SIZE=2>resolve; </FONT>
</P>

<P><FONT SIZE=2>Following completion of the H.245 capability exchange and master/slave</FONT>
<BR><FONT SIZE=2>determination, the following messages are exchanged to establish a pair of</FONT>
<BR><FONT SIZE=2>unidirectional media streams between the two endpoints.</FONT>
</P>

<P><FONT SIZE=2>        1). A transmits an OpenLogicalChannel request to B specifying the</FONT>
<BR><FONT SIZE=2>port number (a1) </FONT>
<BR><FONT SIZE=2>        that it will use to transmit the RTP packets </FONT>
</P>

<P><FONT SIZE=2>        2). B transmits an OpenLogicalChannel request to A specifying the</FONT>
<BR><FONT SIZE=2>port number (b1) </FONT>
<BR><FONT SIZE=2>        that it will use to transmit the RTP packets </FONT>
</P>

<P><FONT SIZE=2>        3). B transmits an OpenLogicalChannelAck response to A specifying</FONT>
<BR><FONT SIZE=2>the port number (b2) </FONT>
<BR><FONT SIZE=2>        which the RTP packets should be transmitted to </FONT>
</P>

<P><FONT SIZE=2>        4). A transmits an OpenLogicalChannelAck response to B specifying</FONT>
<BR><FONT SIZE=2>the port number (a2) </FONT>
<BR><FONT SIZE=2>        which the RTP packets should be transmitted to </FONT>
</P>

<P><FONT SIZE=2>Normally, a1 and a2 are the same so there is no confusion as to A's RTCP</FONT>
<BR><FONT SIZE=2>port number. However, the Phone Dialer application that comes with Windows</FONT>
<BR><FONT SIZE=2>2000 does not use the same port numbers in the OLC and the OLCA messages.</FONT>
</P>
<BR>

<P><FONT SIZE=2>Thanks, </FONT>
</P>

<P><FONT SIZE=2>Mohamed </FONT>
</P>

</BODY>
</HTML>