Re: fastStart element in all Q.931 messages up toandincludingConnect
Pete,
H.225.0 says that it is optional for an EP to receive and act on these messages. The message type is encoded in the _Q.931 header_ which has a corresponding CHOICE in the ASN.1 h323-message-body type. I think you are confusing the Q.931 message-type field with the ASN.1 CHOICE component. When an EP encounters an optional Q.931 message which it does not support, it will discard this message based on the Q.931 message type and not parse all of the subsequent IEs including the User-User IE, which contains all of the tunneling stuff we are talking about. IOW, the EP will not even see all of the supposedly common fields to which you are referring.
Paul Long ipDialog
---------- Original Message ---------------------------------- From: Pete Cordell pete@TECH-KNOW-WARE.COM Reply-To: Mailing list for parties associated with ITU-T Study Group 16 Date: Tue, 7 Nov 2000 17:50:05 -0000
I mentioned this on the other list, but this is a different thread.
As it happens it is not necessary for an EP to understand all Q.931 messages that might contain tunnelled H.245, early or otherwise. The tunnelled H.245 is always in the same place for all messages. All you have to do is find the UUIE, extract the ASN.1, and chuck it to the ASN.1 decoder. As the H.245 (and H.450) are not in the message specific part of the ASN.1 structure it will be interpretable (sp!) in all cases*, even if SETUP ACKNOWLEDGE and NOTIFY are sent.
Therefore there is no need to make interpretation of CALL PROCEEDING and PROGRESS in there entirety mandatory.
Earlier I suggested the following text (slightly revised) should be added to the start of the tunnelling section to cover this:
"If an entity implements H.245 tunnelling, then it shall extract and act on H.245 information contained in all received Q.931 messages (including those that it does not otherwise understand) irrespective of how it decides to handle the other elements of the Q.931 message."
Pete.
- The ASN.1 does actually require to have knowledge of all messages types up
to the ellipsis in h323-message-body, and up to the corresponding ellipsis in the sub-types. However, once decoded it doesn't actually have to do anything with these parts, which is the true burden of making them mandatory.
============================================= Pete Cordell Tech-Know-Ware pete@tech-know-ware.com
+44 1473 635863
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com
Not really. The various Q.931 messages still remain optional because tunnelling is optional. However, we can state that IFF you support tunnelling, THEN you must extract the tunnelling information even from those messages that you choose not to otherwise process. This breaks nothing that is said elsewhere in the standard. So the programmatic logic is something like:
switch( Q931 message type - octet 4 ish of message ) {
case SETUP: process setup; break;
case CONNCET: process connect; break;
case others: process ...; break;
default: // Not interested in these messages but must extract and handle // tunnelled stuff because I have decided to support tunnelling Find_UUIE(); Extract_ASN1(); Decode_ASN1(); Process_tunnelled_H245_and_H450_etc(); }
Its also less demanding on EPs than mandating that they must process all the various messages. After all, the vast majority of EPs couldn't care less that a PROGRESS messages has been sent. So why should they have to delve into them in detail if they are not interested in their meaning and content? We should achieve what we want with the minimum of work load on the various software entities, and this is simpler than mandating understanding of the other messages without losing any of the desired functionality.
Pete.
============================================= Pete Cordell Tech-Know-Ware pete@tech-know-ware.com +44 1473 635863 =============================================
----- Original Message ----- From: Paul Long plong@packetizer.com To: ITU-SG16@mailbag.cps.intel.com Sent: 07 November 2000 18:25 Subject: Re: fastStart element in all Q.931 messages up toandincludingConnect
Pete,
H.225.0 says that it is optional for an EP to receive and act on these
messages. The message type is encoded in the _Q.931 header_ which has a corresponding CHOICE in the ASN.1 h323-message-body type. I think you are confusing the Q.931 message-type field with the ASN.1 CHOICE component. When an EP encounters an optional Q.931 message which it does not support, it will discard this message based on the Q.931 message type and not parse all of the subsequent IEs including the User-User IE, which contains all of the tunneling stuff we are talking about. IOW, the EP will not even see all of the supposedly common fields to which you are referring.
Paul Long ipDialog
---------- Original Message ---------------------------------- From: Pete Cordell pete@TECH-KNOW-WARE.COM Reply-To: Mailing list for parties associated with ITU-T Study Group 16 Date: Tue, 7 Nov 2000 17:50:05 -0000
I mentioned this on the other list, but this is a different thread.
As it happens it is not necessary for an EP to understand all Q.931
messages
that might contain tunnelled H.245, early or otherwise. The tunnelled
H.245
is always in the same place for all messages. All you have to do is find the UUIE, extract the ASN.1, and chuck it to the ASN.1 decoder. As the H.245 (and H.450) are not in the message specific part of the ASN.1 structure it will be interpretable (sp!) in all cases*, even if SETUP ACKNOWLEDGE and NOTIFY are sent.
Therefore there is no need to make interpretation of CALL PROCEEDING and PROGRESS in there entirety mandatory.
Earlier I suggested the following text (slightly revised) should be added
to
the start of the tunnelling section to cover this:
"If an entity implements H.245 tunnelling, then it shall extract and act
on
H.245 information contained in all received Q.931 messages (including
those
that it does not otherwise understand) irrespective of how it decides to handle the other elements of the Q.931 message."
Pete.
- The ASN.1 does actually require to have knowledge of all messages types
up
to the ellipsis in h323-message-body, and up to the corresponding
ellipsis
in the sub-types. However, once decoded it doesn't actually have to do anything with these parts, which is the true burden of making them mandatory.
============================================= Pete Cordell Tech-Know-Ware pete@tech-know-ware.com
+44 1473 635863
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
Pete,
I didn't say that what you propose _couldn't_ be done, only that the Recommendation does not currently sanction this. We could add it as a requirement to v4, but this would break backwards compatibility because pre-v4 EPs would of course not know to process these fields. I suppose all EPs could henceforth contain pre-v4 and v4 behavior, e.g., whether to tunnel in optional messages, and just use one or the other based on the version of the remote EP. Talk about "ugly," though...
Paul Long ipDialog
-----Original Message----- From: Pete Cordell [mailto:pete@TECH-KNOW-WARE.COM] Sent: Wednesday, November 08, 2000 4:54 AM To: ITU-SG16@MAILBAG.INTEL.COM Subject: Re: fastStart element in all Q.931 messages up toandincludingConnect
Not really. The various Q.931 messages still remain optional because tunnelling is optional. However, we can state that IFF you support tunnelling, THEN you must extract the tunnelling information even from those messages that you choose not to otherwise process. This breaks nothing that is said elsewhere in the standard. So the programmatic logic is something like:
switch( Q931 message type - octet 4 ish of message ) {
case SETUP: process setup; break;
case CONNCET: process connect; break;
case others: process ...; break;
default: // Not interested in these messages but must extract and handle // tunnelled stuff because I have decided to support tunnelling Find_UUIE(); Extract_ASN1(); Decode_ASN1(); Process_tunnelled_H245_and_H450_etc(); }
Its also less demanding on EPs than mandating that they must process all the various messages. After all, the vast majority of EPs couldn't care less that a PROGRESS messages has been sent. So why should they have to delve into them in detail if they are not interested in their meaning and content? We should achieve what we want with the minimum of work load on the various software entities, and this is simpler than mandating understanding of the other messages without losing any of the desired functionality.
Pete.
============================================= Pete Cordell Tech-Know-Ware pete@tech-know-ware.com +44 1473 635863 =============================================
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com
Paul,
I now see where your coming from. I was taking the view that the thing was broken and there consequently was not much to be backwards compatible with!!!
I think it should be a shall for V4 devices to extract and act on tunnelled information for all messages received. And I now believe it's worth recommending that they restrict sending tunnelled information to pre-V4 endpoints to SETUP, FACILITY, ALERTING and CONNECT. (Good point about FACILITY).
For v4 implementations that do not want to implement version specific behaviour (very sensible really) they can restrict sending tunnelled information to the designated messages all the time.
I agree that's still a bit ugly, but it is still one code fits all. As implementations get more mature the restrictions to use certain messages can be lifted.
Some revised text to what I have suggested earlier could go in the second paragraph of section 8.2.1:
Existing text: "When tunneling is active, one or more H.245 messages can be encapsulated in any Q.931 message ***. "
Insert text: "Consequently, if an entity implements H.245 tunneling, then it shall extract and act on the encapsulated H.245 messages in all received Q.931 messages (including those that it does not otherwise understand) irrespective of how it decides to handle the other elements in the Q.931 message. (To enhance interoperability entities communicating with pre-version 4 entities may restrict the sending of encapsulated information to the SETUP, FACILITY, ALERTING and CONNECT messages.)"
{Editor's note - I've made the latter part weak so that new implementers don't feel that they can rely on the tunnelling being used only in certain messages.}
Back to existing text: "If tunneling is being utilized and there is no need for transmission of a Q.931 message at the time an H.245 message must be transmitted, then a Facility message shall be sent with h323-message-body set to empty."
(BTW - it could be argued that *** above implies that tunnelled information can also be received in any Q.931 message. So maybe we are not as badly off on this subject as we previously thought we were. Even if this argument holds up I still think the extra clarifying text is worth adding.)
It would be nice if this could go in V4 and the implementers guide, but I feel time is against us. Maybe those people partying on down in Geneva can comment!!!!
Pete.
============================================= Pete Cordell Tech-Know-Ware pete@tech-know-ware.com +44 1473 635863 =============================================
----- Original Message ----- From: Paul Long plong@PACKETIZER.COM To: ITU-SG16@mailbag.cps.intel.com Sent: 08 November 2000 18:17 Subject: Re: fastStart element in all Q.931 messages up to and including Connect
Pete,
I didn't say that what you propose _couldn't_ be done, only that the Recommendation does not currently sanction this. We could add it as a requirement to v4, but this would break backwards compatibility because pre-v4 EPs would of course not know to process these fields. I suppose all EPs could henceforth contain pre-v4 and v4 behavior, e.g., whether to
tunnel
in optional messages, and just use one or the other based on the version
of
the remote EP. Talk about "ugly," though...
Paul Long ipDialog
-----Original Message----- From: Pete Cordell [mailto:pete@TECH-KNOW-WARE.COM] Sent: Wednesday, November 08, 2000 4:54 AM To: ITU-SG16@MAILBAG.INTEL.COM Subject: Re: fastStart element in all Q.931 messages up toandincludingConnect
Not really. The various Q.931 messages still remain optional because tunnelling is optional. However, we can state that IFF you support tunnelling, THEN you must extract the tunnelling information even from
those
messages that you choose not to otherwise process. This breaks nothing
that
is said elsewhere in the standard. So the programmatic logic is something like:
switch( Q931 message type - octet 4 ish of message ) {
case SETUP: process setup; break; case CONNCET: process connect; break; case others: process ...; break; default: // Not interested in these messages but must extract and handle // tunnelled stuff because I have decided to support tunnelling Find_UUIE(); Extract_ASN1(); Decode_ASN1(); Process_tunnelled_H245_and_H450_etc();
}
Its also less demanding on EPs than mandating that they must process all
the
various messages. After all, the vast majority of EPs couldn't care less that a PROGRESS messages has been sent. So why should they have to delve into them in detail if they are not interested in their meaning and
content?
We should achieve what we want with the minimum of work load on the
various
software entities, and this is simpler than mandating understanding of the other messages without losing any of the desired functionality.
Pete.
============================================= Pete Cordell Tech-Know-Ware pete@tech-know-ware.com
+44 1473 635863
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
participants (3)
-
Paul Long
-
Paul Long
-
Pete Cordell