Hi Paul,

 

I agree that the problem which I touched has broader scope than the one resulted from the attempt to solve the ETSI TS 101 804 – 2 issue.

So my preference is to put some clarification/fixing text into v7, to help resolve the issue and continue the work if needed into v8.

 

I tried to classify the problems introduced by ETSI TS 101 804 – 2 and state what I believe is the reasonable H.323 behavior for these cases and where it should be defined.

I found the following two groups:

1)      Receiving of incorrectly encoded H.225.0/Q.931 message.

Some facts:

a.       H.245 has precisely one response to any incorrectly encoded message: (FunctionNotSupported.cause.syntaxError)

b.      RAS has precisely one response to any incorrectly encoded message: (messageNotUnderstood a.k.a XRS)

c.       Q.931 has very detailed approach to what to do with incorrectly encoded messages.

So detailed that for example the processed of:

incorrect protocol discriminator at the top level of the message differs from the processing of

incorrect protocol discriminator inside user-User IE.

 

d.      H.225.0 7.1 provides very limited set of rules for error handling, I found these:

                                                               i.      Implementations shall follow ITU-T Rec. Q.931 as specified in this Recommendation.

                                                             ii.      The H.225.0 endpoint may ignore all optional messages it does not support without harming interoperability

                                                            iii.      The H.225.0 endpoint … but shall respond to an unknown message with a Status message

                                                           iv.      Procedures for receiving unrecognized "comprehension required" information elements shall apply according to 5.8.7.1/Q.931.

                                                             v.      Endpoints not supporting Q.931 shifted code sets shall ignore all Q.931 messages using such methods.

 

The BIG question is: shall Implementations follow ITU-T Rec. Q.931 clause 5.8 “Handling of error conditions” or not.

Should we have such an elaborate error handling processing for Q.931 messages, while the rest works well with simple mechanisms?

 

2)      Behavior of an H.323 entity receiving a STATUS message with callState indicating a call state, which differs from the one known by the H.323 entity.

Q.931 specifies for example that if STATUS received with callState other than null and the known call state for this call is null then STATUS should be responded with RELEASE COMPLETE.

3)      Behavior of an H.323 entity when SETUP is not acknowledged during T303 timeout.

Q.931 specifies that SETUP needs to be retransmitted.

 

======================================================================================

 

So my proposal is (I’ll work on precise wording, this is just the essence):

 

1)      Remove from H.225.0 7.1 the sentences indicated by 1) d. ii-v. above.

2)      Add new section H.225.0 7.1.1 dedicated to H.225.0/Q.931 messages error handling and stating the following:

a.       Q.931 section 5.8 does not apply to H.225.0 endpoints.

b.      The H.225.0 endpoint may ignore all optional messages it does not support without harming interoperability

c.       The H.225.0 endpoint … but shall respond with a Status message containing cause No. 95 to any H.225.0 message it cannot understand or decode due to Q.931 or ASN.1 encoding error.

3)      Add to section 8.6 new paragraph (probably after the current third paragraph) stating that

“An H.323 entity receiving a STATUS message with a callState indicating a call state other then null and containing a callID value which is does not correspond to any of the calls currently handled by the entity may respond to STATUS message with RELEASE COMPLETE containing the CRV and callID from the STATUS message.”

4)      Add to section 8.6 new paragraph (probably at the end) stating that

“On expiration of the T303 the H.323 entity shall not retransmit the SETUP message, it shall clear the call according to the Phase E procedures defined in section 8.5.”

 

 

I hope this does not disturb H.323/H.225.0 too much and we can agree at least on part of it.

I will prepare a contribution with the proposal outlining the above to the meeting.

 

Does this make sense?

 

Thanks,

Sasha

 

 

 

 

From: Paul E. Jones [mailto:paulej@packetizer.com]
Sent: Wednesday, October 07, 2009 10:27 PM
To: Sasha Ruditsky; itu-sg16@lists.packetizer.com
Subject: RE: [itu-sg16] AVD-3813 Handling Of Error Conditions in H.323

 

Sasha,

 

I cannot disagree with you on this example.  Q.931 only addresses issues in Q.931, but H.225.0 ought to address issues in the ASN.1.  Where there are possible conflicts, we ought to make a clear statement.

 

H.323 only has a very small section on protocol error handling (8.6) and would be a good place to expand.  It would be a good place to address any general issues that might arise from H.225.0 and/or H.245.

 

H.225.0 would be a good place to expand on things specific to H.225.0, though not necessarily in section 7.1, since we do also have to cover non Q.931 error issues.

 

In general, though, H.225.0 does work a lot like Q.931, which is dictated by the opening statement in 7.1 that reads “Implementations shall follow ITU-T Q.931 as specified in this Recommendation.”  This statement has led to confusion over implementation of timers, error codes, etc. over the years.  While this statement exists, it’s also important that developers recognize that H.225.0 is not Q.931.  I’ve seen many diagrams that show H.245 and “H.225.0/Q.931” as components of H.323, which is not accurate.

 

If we can reach agreement on specific text at this upcoming meeting, we could clarify some issues in the v7 document.  If not, we can certainly entertain an amendment to v7.  Do you have a list of similar issues and a specific proposal?  One thing that concerns me, obviously, is  putting in text of this nature at the last minute without wide review.  As such, I’d really like to discuss specific proposals on this via the mailing list in advance of the meeting to seek implementer input.  We might even want to take this to the H.323 implementers list: http://www.packetizer.com/ipmc/h323/lists.html

 

Paul

 

From: Sasha Ruditsky [mailto:sasha@radvision.com]
Sent: Monday, October 05, 2009 2:31 PM
To: Paul E. Jones; itu-sg16@lists.packetizer.com
Subject: RE: [itu-sg16] AVD-3813 Handling Of Error Conditions in H.323

 

Hi Paul,

 

Yes, I am looking for a Broader statement.

Specifically, my problem is the fact that ETSI TS 101 804 – 2 defines procedures referring to Q.931 sections.

 

Let consider one example from ETSI TS 101 804 – 2:

BCC_TE_S_U00_07 clause 5.8.6.1 [4]

Ensure that the IUT in the Null call state U0, on receipt of a SETUP message with a mandatory information element

missing,

sends a RELEASE COMPLETE message containing a Cause information element indicating the cause value 96

"mandatory information element missing" and remains in the Null call state U0.

 

Which suggest to the reader that Q.931 section 5.8.6.1 (and some other explicitly referenced sections)

is the way H.323 should be implemented.

 

What I want to achieve is an explicit statement in H.323 or H.225.0, which would say that this is not the case,

that these sections do not apply, instead… and here we do need to provide something which would

close the gap created by this unspecified Cause code value.

 

The problem to select such cause is stemmed from the fact that syntax of Q.931 messages and syntax of

H.225.0 messages are quite different.

Q.931 status codes cover syntax errors in Q.931 part of the message. However, very significant part of the H.225.0

is PER encoded, so “is the perfectly encoded Q.931 message with ASN.1 part encoded incorrectly encoded correctly?”

and should the response be STATUS and if STATUS then with which cause code?

 

I believe it does not make sense to respond to syntactical errors in Q.931 part and ignore such errors in ASN.1.

On the other hand we did not have and do not have any fine grained definition of what to do with different ASN.1 error cases

and this most probably created the situation where different implementations behave differently.

 

BTW: In our implementation for example we use cause value 95: “Invalid message, unspecified” for any syntactical mistake

in any H.225.0 message. If somebody has a different approach, please share with us!

 

So my ultimate goal is to make clear that H.323 is not working according to ETSI TS 101 804 – 2 and at the same to create minimal

possible impact on existing implementations.

 

Regards,

Sasha

 

 

 

 

From: Paul E. Jones [mailto:paulej@packetizer.com]
Sent: Friday, October 02, 2009 2:29 PM
To: Sasha Ruditsky; itu-sg16@lists.packetizer.com
Subject: RE: [itu-sg16] AVD-3813 Handling Of Error Conditions in H.323

 

Sasha,

 

The fact that H.225.0 says a device shall send a Status message for an unknown message, yet leaves the Cause code unspecified, is certainly an issue we should close on.  My suggestion would be to use 97: “Message type non-existent or not

Implemented.”

 

I think an “unknown message” would be one that is not currently defined today in H.225.0.  If the message is syntactically invalid, then I believe that is a protocol error.  In that case, either 100 or 111 would be good choices depending on whether it is just an invalid IE or something that is impossible to decode.

 

Those are fairly minor changes, though the impact might be significant.  However, your problem description suggests you are looking for a broader statement.  Do you have a specific proposal in mind, either a new paragraph or section on error handling or a reference to Q.931?

 

Paul

 

From: itu-sg16-bounces@lists.packetizer.com [mailto:itu-sg16-bounces@lists.packetizer.com] On Behalf Of Sasha Ruditsky
Sent: Wednesday, September 30, 2009 6:01 PM
To: itu-sg16@lists.packetizer.com
Subject: [itu-sg16] AVD-3813 Handling Of Error Conditions in H.323

 

Q2 Experts,

 

The conclusion for the discussion of the AVD-3813 during the last SG16 meeting’s was to ask the experts opinion through the mailing list.

My apology for the short notice. I hope that we still have time before the next meeting for people to understand the problem and express their opinions.

 

The problem discussed in AVD 3813 is more or less as follows:

 

H.225.0 gives very little attention to the specification of processing of the H.225.0 Call Signaling messages errors. The only place dedicated to this subject is Clause 7.1 of H.225.0. 

 

On the other hand, ITU-T Recommendation Q.931 on which H.225.0 messages are based provides quite detailed information on the same subject. While H.225.0 states that Implementations shall follow ITU-T Rec. Q.931 as specified in H.225.0, there is a lot of confusion surrounding the cases which H.225.0 does not cover and Q.931 does.

 

In addition, ETSI TS 101 804 – 2 defines Conformance Test Specification for ITU-T H.225.0. This test specification apparently based on Q.931 procedures, not on the corresponding H.225.0 ones. More than this, in many cases ETSI TS 101 804 – 2 requests behavior which claims to be based on Q.931, however is not defined neither in Q.931, nor H.225.0.

 

Apparently “H.323 conformant” not always means “ETSI TS 101 804 – 2 conformant” and I believe we need to find some solution to at least make this particular point clear.

 

I’m going to resubmit AVD-3813.

It would be great to be able to get some ideas from the group into the resubmitted document.

 

Thank you,

Sasha