The meaning of the reception of a "new" capability set

Pete Cordell pete at TECH-KNOW-WARE.COM
Tue Nov 2 18:09:13 EST 1999


Um, the more e-mail I see on this the more painfully 'obvious' it seems to
me that the shortened form was probably not the right way to go!!!  I'm not
sure what to do about that.  Maybe as you say we just have to put it down to

On the acknowledgement front, we wait for the CLCs to come in.  If they
don't appear in time we assume it's not going to work.  We also planned to
keep a list of endpoints that we knew don't work (keying off Vendor ID or
whatever field it is).  We don't do that at the moment though as we don't
have enough information about which EPs support it.


Pete Cordell
pete at

-----Original Message-----
From: Paul Long <plong at SMITHMICRO.COM>
Date: 02 November 1999 16:56
Subject: Re: The meaning of the reception of a "new" capability set

>This is how the delta concept is described:
>B.2.2.1/H.245v5: "At the start, no table entries are defined. When a
>CapabilityTableEntry is received, it replaces the previously received
>CapabilityTableEntry with the same CapabilityTableEntryNumber. A
>CapabilityTableEntry without a Capability may be used to remove the
>previously received CapabilityTableEntry with the same
>I think this passage makes it clear that TCS is a "delta" mechanism,
>although it does not use this or a similar term.
>By the way, due to the apparently inadvertent use of "should" rather than
>"shall" in the normative text of v2 and v3, the crucial step of closing
>channels upon receipt of an empty cap set is not mandatory. 8.4.6/H.323v3:
>"If media stream or data logical channels were previously opened by the
>endpoint, they should be closed." Is v4 our earliest possible opportunity
>make this mandatory? At that point, there will be three meanings of an
>cap set.
>I agree with your team that the initiating EP should have been required to
>explicitly remove all receive caps in the remote EP. Having the meaning of
>an empty cap set change from one version to another is asking for trouble,
>trouble that we are already seeing. Also, having a special rule for the
>empty cap set is bad design. This is analogous to having a special, or
>reserved, value for a field, e.g., "9/9/99". :-} Pick up any book on
>software or database design, and it will mention this issue.
>Regarding the use of RequestMode, since we were adding a fair amount of
>normative text for pause anyway, we could have just as easily said that a
>RequestMode containing a null mode _shall_ be accepted, regardless of
>whether the EP is in receipt of a multipointModeCommand. This would have
>used the existing mechanism in H.245 for doing this, required less
>text, and been clearer, IMO, than to introduce the new concept of "empty
>Also, if we had used RequestMode, we would know whether the remote EP was
>actually going to close all the channels. Many (all?) v2 EPs on the market
>now do not support pause, but they all accept an empty TCS. This
>makes pause useless because it is not dependably supported--the initiating
>EP does not have positive feedback as to whether the remote EP is actually
>going to pause--even though it is required.
>BTW, I'm not blaming you or anyone else for this. I just hope that we learn
>from our mistakes.
>Paul Long
>Smith Micro Software, Inc.
>-----Original Message-----
>From: Pete Cordell [mailto:pete at TECH-KNOW-WARE.COM]
>Sent: Tuesday, November 02, 1999 5:44 AM
>Subject: Re: The meaning of the reception of a "new" capability set
>I think H.245 covers the delta aspects, although it goes on more about
>to add caps and how to delete caps rather than explicitly saying that
>caps are a delta.
>The definition of an empty cap set is defined in the revised text in the
>"Third party pause..." section.  Basically its only seqNum and
>protocolIdentifier.  I think the team I'm working with would have
>to have an empty cap set as one that explicitly removed all the existing
>caps.  Even if you don't know about empty cap sets, as long as you can
>re-cap, you get 90% of the functionality this way.  That was the
>intended method when the text said something like "a cap set that
>that there are no more receive caps".  (It seemed obvious to me what it
>was!!!)  However, it became clear that this wasn't clear to everybody
>hence consensus from the list moved to the revised text which adopts the
>other definition.  The 'initial' method is also much more complex to
>explain, which I felt could also lead to interoperability issues.  (Even
>you don't like the method chosen, you will probably prefer it to the
>solution we came up with which was for an endpoint to accept both
>And another note, you only have to comply with RequestMode when under
>control of an MC.  Without an MC it's optional.  We assumed that that
>be a big enough excuse for implementors not to implement anything to do
>Pete Cordell
>pete at
>-----Original Message-----
>From: frank.derks at PHILIPS.COM <frank.derks at PHILIPS.COM>
>Date: 02 November 1999 09:16
>Subject: Re: The meaning of the reception of a "new" capability set
>>Hi Paul,
>>thanks for the reply. Is there any work going on to more clearly
>that "delta" is the desired behaviour? The next question that this
>is: "what is an "empty CS", because I can see several ways of achieving
>this. Again I do not see a clear
>>specification on what an empty CS looks like.
>>I fully agree with your statement about the third-party initiated pause
>re-routing, but at the moment it is the only "lightweight" method of
>achieving certain behaviours that would otherwise require H.450.
>>Mailing list for parties associated with ITU-T Study Group 16
><ITU-SG16 at MAILBAG.INTEL.COM> on 01/11/99 17:29:54
>>Please respond to Mailing list for parties associated with ITU-T Study
>>Subject:        Re: The meaning of the reception of a "new" capability
>>Classification: Restricted
>>No, no, no!!! :-) Each TCS message is a _delta_ to be applied to the
>>EP's current capability set stored in the EP. This issue was discussed
>>months ago on the reflector. My reply follows my signature.
>>BTW, the pause feature added to H.323v2 redefines the meaning of an
>>TCS. In H.323v1, an empty TCS causes no change to the current cap
>>NO-OP, so to speak. As of v2, however, an empty TCS means close all
>>channels, assume that the remote EP has no receive or transmit caps
>>the current capapbility set for the remote EP), and upon receipt of the
>>presumably non-empty TCS, re-open outgoing channels based on the
>>new set of receive caps. From what I've heard, though, many if not all
>>EPs still exhibit v1 behavior in this regard. I doubt whether "pause"
>>ever be a dependable feature. IMO, overloading a message like this is
>>asking for trouble. The same thing could have been better accomplished
>>Paul Long
>>Smith Micro Software, Inc.
>>>>>>>>>>> My reply from July 1, 1999
>>Ramana, Chris, et al.:
>>An incoming terminalCapabilitySet message _modifies_ the current
>>set in the receiving EP. The entire set is not necessarily transmitted
>>within every message. This has been true since H.245v1. In fact, H.245
>>that one should not transmit unchanged capabilities. One starts out
>with an
>>empty set of descriptors. Incoming descriptors replace any extant ones
>>the same descriptor number. If one does not already exist with the same
>>number, this adds a new descriptor; if one does exist, the new one
>>the old one; if the new descriptor does not contain
>>simultaneousCapabilities, this removes any existing descriptor for the
>>number. (This is the same scheme used to modify the capability table.)
>>is an illustrative chronological scenario:
>>        Current capability set:
>>        <empty>
>>Incoming termCapSet 1
>>0: {{H.261qcif},{G.711}}
>>1: {{H.261cif},{G.711}}
>>        Current capability set:
>>        0: {{H.261qcif},{G.711}}
>>        1: {{H.261cif},{G.711}}
>>Incoming termCapSet 2
>>1: {}
>>        Current capability set:
>>        0: {{H.261qcif},{G.711}}
>>Incoming termCapSet 3
>>1: {{H.261cif},{G.711}}
>>2: {{H.263sqcif&qcif&cif},{G.723,G.711}}
>>        Current capability set:
>>        0: {{H.261qcif},{G.711}}
>>        1: {{H.261cif},{G.711}}
>>        2: {{H.263sqcif&qcif&cif},{G.723,G.711}}
>>Incoming termCapSet 4
>>1: {}
>>0: {{H.261qcif&cif},{G.723.1,G.711)}
>>        Current capability set:
>>        0: {{H.261qcif&cif},{G.723.1,G.711)}
>>        2: {{H.263sqcif&qcif&cif},{G.723,G.711}}
>>Paul Long
>>Smith Micro Software, Inc.
>>-----Original Message-----
>>From: Ilya Freytsis [mailto:IFREYTSIS at VIDEOSERVER.COM]
>>Sent: Monday, November 01, 1999 8:57 AM
>>Subject: Re: The meaning of the reception of a "new" capability set
>>I believe every new capability set should be treated as a complete
>>replacement for the previously received one.  Otherwise conferencing
>>(MCS) and Gateways will not be able exercise enough control over the
>>modes of the multipoint conferences and gateway sessions.
>>Ilya Freytsis
>>                -----Original Message-----
>>                From:   frank.derks at PHILIPS.COM
>>[mailto:frank.derks at PHILIPS.COM]
>>                Sent:   Monday, November 01, 1999 8:31 AM
>>                To:     ITU-SG16 at
>>                Subject:        The meaning of the reception of a "new"
>>capability set
>>                Neither H.323 nor H.245 are too clear about what it
>>when an endpoint receives another set of capabilities after having
>>received one. In previous E-mail messages on this list, I have read
>>capability sets are cumulative, i.e. anything
>>                "new" received in a TCS message adds to the
>>transmitted in a previous TCS message. I have, however, found nothing
>>recommendations that backs this up.
>>                So what is the intended procedure? Does a newly
>>of capabilities replace the previously received set? Do capabilities
>>received in a TCS message add to the already received capabilities? How
>>capabilities removed? What constitutes an "empty
>>                capability set" etc.
>>                I would appreciate it if somebody could point me in the
>>right direction.
>>                Regards,
>>                Frank

More information about the sg16-avd mailing list