Here is a proposal for "expediting" H.245--eliminating explicit establishment of the H.245 control channel, H.323 Phase B. But first, here are the reasons for doing so:
- At SuperOp! some people incorrectly assumed that an EP is not required to support H.245 if Fast Connect is performed. However wrong they may be, we all probably believe to some degree that this would be a natural thing to do. - A much-respected colleague at another company said that H.245 is a major encumbrance for large-scale entities. - Some vendors have expressed a desire to use H.245 features, e.g., DTMF and third-party pause, without first having to initiate H.245 procedures, i.e., TermCap exchange and MSD. - I have heard that SIP-H.323 interworking may eliminate H.245. This may primarily be due to the message-intensive channel establishment phase.
In order to tempt you into actually reading all of the following explanation, here's the end result. The minimal dialogue necessary to establish a call and the H.245 session in both directions:
Setup(expedite) --> <-- Connect(expedite)
Here's how it can be done. Add the following ASN.1 component to Setup and all of the possible responses, i.e., Alerting, CallProceeding, Connect, Facility, and Progress: expedite ExpediteH245Tunneling OPTIONAL
Define this new type: ExpediteH245Tunneling SEQUENCE { ... }
For Setup, the presence of expedite _requests_ an expedited H.245 session; for all the other messages, this _grants_ the request. An EP shall only encode expedite if it also sets h245Tunneling to TRUE in the same message. An expedited H.245 session causes both EPs to treat the H.245 session _as if_ they had already successfully performed the TermCap exchange and MSD before the calling EP transmitted Setup. Once the called EP grants the request, the H.245 state in both EPs is the same as if the TCSs had contained no OPTIONAL components, the protocolIdentifiers were set to the lowest version of H.245 specified by H.323 based on the H.225.0 version, and the result of the MSD is that the calling EP is MASTER [could use any other method for MSD, including the EP with the "greater" IP address is the MASTER].
If the called EP accepts at least one Fast Connect channel, all of the accepted channels are inherited as capabilities by both EPs as if they had successfully performed a second TermCap exchange before the called EP responded to Setup. Once the called EP accepts the Fast Connect channel(s), the H.245 state in both EPs is the same as if the TCSs had contained capabilityTables with entries for all Fast Connect OLCs, numbered starting with 0, and single capabilityDescriptors components with a single capabilityDescriptor, numbered 0, containing a simultaneous capability for each unique sessionID value and an alternative capability for each OLC.
In accordance with procedures already defined in H.245 and H.323, the EPs may subsequently perform the TermCap exchange and MSD at any time and any number of times to update the state of H.245 in the respective EPs. For example, the called EP can initiate the TermCap exchange "again" immediately upon receiving Setup (e.g., in Alerting) to indicate advanced DTMF caps, and the calling EP can start exploiting those caps in the very same message it returns the TCSAck.
Setup(expedite) --> <-- Alerting(expedite, TCS w/UserInputCap=dtmf) Facility(TCSAck+Signal="7#0") -->
Benefits: 1. Very little additional signaling is required (only a new codepoint)--this feature is mostly new interpretation of existing signaling. 2. The backwards-compatibility problems associated with allowing fastStart and h245Control in Setup are avoided. 3. The H.245 session is available to the calling EP in 1 RTD and to the called EP in 0.5 RTDs--the same as media and Fast Connect! 4. Without using Fast Connect, the calling EP can start transmitting media in one less RTD than it could without this new feature. Here are the comparisons: (Feature: calling EP RTDs, called EP RTDs) Fast Connect w/ or w/o Expedite: 1, 0.5 Expedite w/o Fast Connect: 2, 2.5 Neither: 3, 2.5 5. Perhaps this feature could benefit SIP-H.323 interworking if H.245 with full TCS and MSD is deemed too onerous, i.e., don't allow "real" TCSs and MSDs. 6. Marginally less bandwidth consumption and quicker transmission of initial call-signaling messages (okay, I'm reaching... :-) ). 7. This opens up other possibilities (maybe that's a disadvantage :-) ). That's why I defined H245TunnelingExpedition to be extensible. For example, we could indicate that all TCS and MSD requests will be rejected, so don't bother. 8. Works well with others. :-) I mean that it naturally fits in with Fast Connect and H.245 Tunneling. 9. Easy to understand. Okay, to me at least.
This is not and may never be a formal contribution. Perhaps just consider it as food for thought.
Paul Long Smith Micro Software, Inc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com
Paul, Bob, and François- As you recall, TD-26 met some opposition following Osaka due to the existing restriction against placing both fastStart and h245Control fields in the SETUP message. Paul Jones had suggested a new field (earlyH245) in the Setup-UUIE to get around this, along with a change to specify that use of the h245 fields did not terminate Fast Connect. In thinking about this (and considering Pete Cordell's comments), I took a look at what amounts to moving Fast Connect into the H.245 tunnel. This turns out to be as fast as Fast Connect, and it allows some "compaction" that may be an advantage as well. What if we add the following new H.245 messages: a new RequestMessage
FastOpenChannel ::= SEQUENCE { offeredCaps AlternativeCapabilitySet, channelProposal OpenLogicalChannel, -- with dataType set to nullData ... }
a new ResponseMessage
FastOpenChannelAck ::= SEQUENCE -- a response { channelAccept OpenLogicalChannel, -- dataType set to selected capability ... }
and, for completeness, an additional ResponseMessage
FastOpenChannelReject ::= SEQUENCE -- a response { reason OpenLogicalChannelReject, ... }
A caller would send MSDetermination, TCS, and FastOpenChannel in the initial SETUP using the h245Control. The callee would respond with MSDAck, TCS, and a FastOpenChannelAck to establish the channel. Since this is all H.245, the FastOpenChannelAck could be sent in a later message. Note, however, that the FastOpenChannel must be preceeded by a TCS because the AlternativeCapabilitySet is a list of CapabilityTable entry numbers. Once the TCS exhange and M/S determination is complete, the FastOpen procedures could be used at any time. We would need to add a couple of cause codepoints to the OpenLogicalChannelReject message to cover cases like "unknown capability" or "empty capability set". Channels opened via Fast Open would be closed by CloseLogicalChannel requests, or via use of the replacementFor elements in OLCs or OLCAs.
We would manipulate the OLCs in these messages as is done for Fast Connect (the forward channel goes from the proposer to the acceptor). The "compaction" comes from adding the offeredCaps AlternativeCapabilitySet, so that one OLC can serve for all the alternative capabilities for a particular session. This avoids the packet-size proliferation problem and transport address redundancies of Fast Connect.
This change is backward compatible in that the new messages should be ignored when sent to an older version callee. The Fast Open caller would know that the FastOpenChannel was ignored when receiving back the first H.245 message from the callee. Similarly, a new version callee would know the caller version upon receiving the first H.245 message (or a fastStart element).
One other addition to H.245 I believe would be useful is to specify that the Master/Slave negotiation always be resolved by an endpoint if that endpoint has not initiated a negotiation (i.e., has not announced a statusDetermination Number). In particular, let the receiving terminal declare itself the master (or the slave) if there's a tie, or let it roll a new random number until it decides. That way, we don't get hung up retrying the M/S negotiation.
In summary, the advantages of this scheme maintain the benefits of TD-26a from Osaka, and improve over Fast Connect as well: 1. fast connection negotiation in one round trip, same as Fast Connect; 2. complete capability exchange (distinguishes future capabilities from immediate requests), better than Fast Connect; 3. backward compatible with earlier versions (the penalty is that a Fast Open caller cannot do Fast Connect - but a Fast Open callee can), avoids TD-26 proplem with simultaneous Fast Connect and H.245; 4. very little change to H.245 ASN.1 - three new messages.
What do you all think? -Bob ---------------------------------------------------- Bob Gilman rrg@avaya.com +1 303 538 3868
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com
Bob,
This looks quite reasonable to me.
I may have missed it in here, but do you say anything about including both fastStart and these new fields. Proponents of TD-26 wanted to ensure that the devices could still take advantage of Fast Connect for those devices that support the procedure.
However, I'm not sure that I understand exactly what the advantage is over the combined usage of the existing Fast Connect procedure + Early H.245. Can you clarify that for me?
Paul
----- Original Message ----- From: "Bob Gilman" rrg@LUCENT.COM To: ITU-SG16@mailbag.cps.intel.com Sent: Wednesday, July 26, 2000 4:47 PM Subject: Re: Expediting H.245
Paul, Bob, and François- As you recall, TD-26 met some opposition following Osaka due to the existing restriction against placing both fastStart and h245Control fields in the SETUP message. Paul Jones had suggested a new field (earlyH245) in the Setup-UUIE to get around this, along with a change to specify that use of the h245 fields did not terminate Fast Connect. In thinking about this (and considering Pete Cordell's comments), I took a look at what amounts to moving Fast Connect into the H.245 tunnel. This turns out to be as fast as Fast Connect, and it allows some "compaction" that may be an advantage as well. What if we add the following new H.245 messages: a new RequestMessage
FastOpenChannel ::= SEQUENCE { offeredCaps AlternativeCapabilitySet, channelProposal OpenLogicalChannel, -- with dataType set to nullData ... }
a new ResponseMessage
FastOpenChannelAck ::= SEQUENCE -- a response { channelAccept OpenLogicalChannel, -- dataType set to selected
capability
... }
and, for completeness, an additional ResponseMessage
FastOpenChannelReject ::= SEQUENCE -- a response { reason OpenLogicalChannelReject, ... }
A caller would send MSDetermination, TCS, and FastOpenChannel in the
initial
SETUP using the h245Control. The callee would respond with MSDAck, TCS,
and
a FastOpenChannelAck to establish the channel. Since this is all H.245,
the
FastOpenChannelAck could be sent in a later message. Note, however, that
the
FastOpenChannel must be preceeded by a TCS because the
AlternativeCapabilitySet
is a list of CapabilityTable entry numbers. Once the TCS exhange and M/S determination is complete, the FastOpen procedures could be used at any
time.
We would need to add a couple of cause codepoints to the OpenLogicalChannelReject message to cover cases like "unknown capability" or "empty capability
set".
Channels opened via Fast Open would be closed by CloseLogicalChannel
requests,
or via use of the replacementFor elements in OLCs or OLCAs.
We would manipulate the OLCs in these messages as is done for Fast Connect (the forward channel goes from the proposer to the acceptor). The
"compaction"
comes from adding the offeredCaps AlternativeCapabilitySet, so that one
OLC
can serve for all the alternative capabilities for a particular session.
This
avoids the packet-size proliferation problem and transport address
redundancies
of Fast Connect.
This change is backward compatible in that the new messages should be
ignored
when sent to an older version callee. The Fast Open caller would know that
the
FastOpenChannel was ignored when receiving back the first H.245 message
from the
callee. Similarly, a new version callee would know the caller version
upon
receiving the first H.245 message (or a fastStart element).
One other addition to H.245 I believe would be useful is to specify that
the
Master/Slave negotiation always be resolved by an endpoint if that
endpoint
has not initiated a negotiation (i.e., has not announced a
statusDetermination
Number). In particular, let the receiving terminal declare itself the
master
(or the slave) if there's a tie, or let it roll a new random number until
it
decides. That way, we don't get hung up retrying the M/S negotiation.
In summary, the advantages of this scheme maintain the benefits of TD-26a
from
Osaka, and improve over Fast Connect as well:
- fast connection negotiation in one round trip, same as Fast Connect;
- complete capability exchange (distinguishes future capabilities from
immediate requests), better than Fast Connect; 3. backward compatible with earlier versions (the penalty is that a Fast
Open
caller cannot do Fast Connect - but a Fast Open callee can), avoids TD-26
proplem
with simultaneous Fast Connect and H.245; 4. very little change to H.245 ASN.1 - three new messages.
What do you all think?
-Bob
Bob Gilman rrg@avaya.com +1 303 538 3868
For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com
Paul- I didn't say anything about the possiblity of offering both Fast Connect and Fast Open. It seems to me that doing so would present the same problems that TD-26 encountered: we'd need a new tunnel to hide H.245 in the SETUP message and we'd need to abandon the statement that starting H.245 terminated Fast Connect (or use the same tunnel to continue to hide H.245). The only reason to offer Fast Connect from an endpoint that supports Fast Open is to work with earlier-version endpoints - and they're the ones that can't tolerate starting H.245 before Fast Connect is completed. I'd rather specify that an endpoint could offer either Fast Connect or Fast Open (or accept the one offered) at its option. The question is: how does a calling endpoint know which to do? It could be done by out-of- band means (administration), but it could also be done by looking at the RAS protocolIdentifier which requires a relationship between H.225.0 and H.245 versions. Isn't that usually the case anyway? Again, the advantages of Fast Open over Fast Connect and early H.245 include: 1. More compact messaging; - multiple caps, one OLC; 2. can be used anytime, not just call establishment; - no need to switch from one protocol to another, or from one tunnel to another, especially going forward; - uses current cap set; - just as fast as Fast Connect; 3. backward compatible with Fast Connect; - Fast Open "callee" can accept Fast Start from an earlier version, knows not to use Fast Open; - but Fast Open caller should not offer Both Fast Open and Fast Connect - needs to know which to do; - processing is very similar to Fast Connect; - no need to modify historical H.225.0 restrictions. - Fast Open offered to older version endpoint results in H.245 operation. The problem of backward compatibility is a sticky one, given the existing restrictions on simultaneous operation and early switching to H.245. The sooner we remove these restrictions from H.225.0, the better off we will be, but I think we've actually backed ourselves into a corner, unless we effectively change v2. I would note that the cases for which TD-26 would work would also work for simultaneous Fast Connect and Fast Open - but there's no way around the fact that some v2 endpoints will object in either case. -Bob ---------------------------------------------------- Bob Gilman rrg@avaya.com +1 303 538 3868
"Paul E. Jones" wrote:
Bob,
This looks quite reasonable to me.
I may have missed it in here, but do you say anything about including both fastStart and these new fields. Proponents of TD-26 wanted to ensure that the devices could still take advantage of Fast Connect for those devices that support the procedure.
However, I'm not sure that I understand exactly what the advantage is over the combined usage of the existing Fast Connect procedure + Early H.245. Can you clarify that for me?
Paul
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com
Paul- In trying to think about ways to avoid adding the earlyH245 element to SETUP, I overlooked the fact that it could be used just as well to initiate the Fast Open procedures in a way that was backward compatible. That would permit us to offer both Fast Connect and Fast Open - the called endpoint could accept either one (or would see only the fastStart if it were an older endpoint). The advantage of Fast Open in this case would arise from it's use later on in the call (e.g., to switch to FAX or to redirect audio). -Bob ---------------------------------------------------- Bob Gilman rrg@avaya.com +1 303 538 3868
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com
participants (3)
-
Bob Gilman
-
Paul E. Jones
-
Paul Long