Subject: Re: Errors and Error Codes

From: Hussain F Mohammad <[email-masked]>
Date: Thu, 8 Jun 2000 04:06:09 -0700

I was going through the archives and found that these error codes and the reasons of their generation are supposed to be released as a seperate draft. If its released  where to get the draft. As there should be a common understanding  between MG and MGC, in what situation they can generated, these need to be documented somewhere.

Hussain,
Chief scientist,
Advanced IP networks.

Tom-PT Taylor <[email-masked]> on 02/11/2000 06:11:14 PM

Please respond to Tom-PT Taylor <[email-masked]>

To:   [email-masked]
cc:    (bcc: Hussain F Mohammad)

Subject:  Errors and Error Codes

This E-mail covers several topics dealing with error reporting.

A. Asynchronous Error Reporting
========================

We have discussed, here in Geneva, a mechanism for generating spontaneous
notifications of error conditions (i.e. use of the "cause" event in the
generic package).  The suggested mechanism is this:

  -- we reserve a block of event request-IDs (e.g. 0-15) for assignment to
classes of event the MGC will always want enabled (or alternatively can
enable or disable using a Root property).  As an example of use, we assign
requestID 0 to spontaneous error reports.  This way it won't be necessary to
include the cause event in every Event Descriptor

  -- rather than making errorDescriptor an optional component of the Notify
command (as our ABNF now states), we make it a parameter of the cause event.

  -- this mechanism allows the inclusion of some error codes in our list in
section 7.3 which otherwise shouldn't be there because they would not result
from transaction processing.  One example is 518 "event buffer full".

B. Errors In Transaction Reply

I'm not sure we have a procedure for handling errors in Transaction Reply.
Unless someone can point me to the existing text, we should add something to
cover the situation.

C. Errors Defined In Packages

We agreed with the Cisco proposal that it be possible to define error codes
in packages.  This would just be a matter of documentation convenience --
the codes would NOT be qualified by package name, and the package
documentation would serve double duty as far as IANA registration is
concerned.  IMHO this means no change to our existing section 12 except
perhaps to mention this possibility in the packages section.  Assignment of
codes would follow the usual rules: 000-999 range for ITU/IETF codes, 1000
-9999 for private packages.

D. Review Of Error Codes

I have reviewed the error codes in the current document, and have compiled
explanations for a number of them.  Others I can't explain, and suspect they
shouldn't be there.  I would like other people to review my findings so we
can get this straightened out.  In what follows, errors marked with an
asterisk could be returned against transaction replies as well as
transaction requests.  My comments are enclosed in square brackets.  I
present no explanations for error codes which seem to be adequately
described by the text shown against them in 7.3.

Could someone explain the logic behind the assignment of these codes?  Why
start at 400? -- our numbering space is only 000 to 999 and it doesn't seem
right to waste half of it.

*400 - Bad Request
        A syntax error has been detected at the message level.  The message
does not conform to the productions MegacoMessage or Message in Annex A or
Annex B as applicable.

*401 - Protocol Error
        A violation of Megaco protocol procedures has been detected.  Use
error codes corresponding to more specific conditions if they apply.  [e.g.
465, 466, 467 if they turn out to be justified; 505, 521.]

402 - Unauthorized
        The originator of a command is not authorized to execute that
command for the termination(s) affected by it.  [For messages failing
authentication, what is our procedure? ]

403 - Syntax Error in Transaction
        The form of a transaction request failed to match production
transactionRequest in Annex A, Annex B, or section D.1.2 of Annex D as
applicable.  [Note: review codes proposed in sec. 8.2.2.]

*404 - Syntax Error in TransactionReply
        The form of a transaction reply failed to match production
transactionReply in Annex A, Annex B, or section D.1.2 of Annex D as
applicable.

*405 - Syntax Error in TransactionPending
        The form of a transaction pending failed to match production
transactionPending in Annex A, Annex B, or section D.1.2 of Annex D as
applicable.

*406 - Version Not Supported
        Used by the receiver of a transaction request to indicate lack of
support for the protocol version indicated in the message header.  [Note
usage in sec. 11.3 -- I think there is an error in the second para last
sentence (should be MG, not MGC)]

*410 - Incorrect identifier
        A syntax error has been found in an mId, transactionId, contextId,
terminationId, PropertyId, EventId, SignalId, StatisticsId or ParameterId.

411 - The transaction refers to an unknown ContextId
        A specific contextID provided in a Transaction Request is unknown to
the respondent.  For unknown contextID in Transaction Reply use error code
46x "ContextIDs in Reply do not match Request" [which isn't currently
defined -- could change 461].

412 - No ContextIDs available
        The MG is unable to create a new context in response to an Add or
Move command with CHOOSE given as the contextId, because of a shortage of
software or hardware resources within the MG.

421 - Unknown action or illegal combination of actions
        [Can't happen -- actions don't have tags or semantics in
themselves.]

*422 - Syntax Error in Action
        The syntax of an Action did not conform to production actionRequest
or actionReply as applicable.  Use error code 405 or 406 as applicable if
parsing failed to delineate the end of the Action.
        [Check usage in 8.2.2]

430 - Unknown TerminationID
        A specific terminationID provided in a Transaction Request is
unknown to the responder.  For unknow terminationIDs in Transaction Replies
use error code 463.

431 - No TerminationID matched a wildcard
         The Transaction Request specified a TerminationID including both
specific content and one or more wildcards (ALL or CHOOSE), but the
responder could not find an existing termination or, because of internal
naming constraints, create a new termination matching the specified pattern.

432 - Out of TerminationIDs or No TerminationID available
        The MG was unable to allocate a new terminationID in response to an
Add command specifying a CHOOSE termination identifier, because it has
exhausted the applicable local name space or some other per-termination
resource.

433 - TerminationID is already in a Context
        A TerminationID specified in an Add command already exists within an
active context.

440 - Unsupported or unknown Package
        The package named in a Property, Event, Signal, or Statistic
identifier is not supported by the respondent.

441 - Missing RemoteDescriptor
        The MGC has attempted to set the Mode of a stream on a termination
to SendOnly or SendReceive but an inadeqate or no outgoing media
specification has been provided in a Remote Descriptor for that stream.
[Note: same thing can apply to Local/incoming flows.  Generalize this error
to "Attempt to activate underspecified flow"?]

*442 - Syntax Error in Command
        A command request has failed to match the syntax of the
commandRequest production, or a command reply in a transaction response has
failed to match the syntax of the CommandReply (Annex A) or commandReplys
(Annex B) production, as applicable. Use the 422 error code if parsing
failed to delineate the end of the command request or command reply.  [Check
use in sec. 8.2.2.]

443 - Unsupported or Unknown Command
        The respondent to a Transaction Request successfully parsed a
command to the point of delineating the command type, but does not recognize
or support the command type.  Use the 442 error code if the respondent
failed to delineate the command type.

*444 - Unsupported or Unknown Descriptor
        A  command request or command reply was successfully parsed to the
point of delineating the type of a descriptor, but the descriptor type is
not recognized or supported.  The 442 error code should be used if parsing
failed to delineate the end of the descriptor, the descriptor type, or
individual properties, parameters, or values within the descriptor.

*445 - Unsupported or Unknown Property
        [Redundant -- use 450]

*446 - Unsupported or Unknown Parameter

*447 - Descriptor not legal in this command

*448 - Descriptor appears twice in a command

*450 - No such property in this package
        The Property Name (Annex A) or ItemID (Annex B) of a property within
a descriptor is either unsupported or unrecognized.  Use error code 440 if
the Package Name associated with the property is unrecognized.

*451 - No such event in this package
        This could apply to a reply for the AuditValue command as well as
the more common case of faulty EventDescriptors in other commands.  Use
error code 440 if the Package Name associated with the event is
unrecognized.

*452 - No such signal in this package
        This could apply to a reply for the AuditValue command as well as
the more common case of faulty SignalsDescriptors in other commands.  Use
error code 440 if the Package Name associated with the signal is
unrecognized.

*453 - No such statistic in this package
        Use error code 440 if the Package Name associated with the statistic
is unrecognized.

*454 - No such parameter value in this package
        The value given for a parameter is not legal for the package to
which the parameter belongs.  Use error code 450 if the type as opposed to
the value of the parameter is illegal.

*455 - Parameter illegal in this Descriptor

*456 - Parameter or Property appears twice in this Descriptor

*461 - TransactionIDs in Reply do not match Request
[Can't be detected.  Should be ContextIDs rather than TransactionIDs.  See
comment on 411]

*462 - Commands in Transaction Reply do not match commands in request

*463 - TerminationID of Transaction Reply does not match  request
[Should be phrased similarly to 462]

*464 - Missing reply in Transaction Reply
        [Assuming 461 is changed to ContextIDs and given 462, this one is
redundant]

*465 - TransactionID in Transaction Pending does not match any open request
[Unusable -- contrary to procedures in D.1.4]

466 - Illegal Duplicate Transaction Request
[Unusable -- contrary to procedures in 8.2.3]

*467 - Illegal Duplicate Transaction Reply
[Unusable -- contrary to Annex D procedures?]

471 - Implied Add for Multiplex failure
        A termination listed within a multiplex descriptor could not be
added to the current context.  If the reason is because the termination is
already in a different active context, use error code 433.

500 - Internal Gateway Error
        A command could not be executed properly due to a software failure
within the MG.  For hardware failures, see error code 529.

501 - Not Implemented
        [Redundant??? (Codes 443-446)]

502 - Not ready
        The respondent is temporarily unable to process requests because of
its own internal state.

503 - Service Unavailable
        [What service???  Likely conditions are covered by other error
codes]

504 - Command Received from unauthorized entity
        [Redundant -- covered by 402?]

505 - Command Received before Restart Response
        Issued by the MG which has issued a ServiceChange request to an MGC
if it receives a transaction request from that MGC before it has processed
the response to the ServiceChange request.  See procedural notes in section
11.2.

510 - Insufficient resources
        The MG is unable to execute a command because of a lack of resources
within the MG.

512 - Media Gateway unequipped to detect requested Event
        Self-descriptive.  If the MG does not support the package in which
the event is specified, use code 440.

513 - Media Gateway unequipped to generate requested Signals
        Self-descriptive.  If the MG does not support the package in which
the signal is specified, use code 440.

514 - Media Gateway cannot send the specified announcement
        [Package specific -- should be documented in the announcement
package]

515 - Unsupported Media Type
        [Might want to make it "Unsupported media type or media conversion"
]

517 - Unsupported or invalid mode
        [Too detailed.  Need a general "Unsupported or invalid value" }

518 - Event buffer full
        Reported via the Notify command using the Cause event in the Generic
package.  See procedures in section 7.2.7 [to be added as noted at the start
of this E-mail]

519 - Out of space to store digit map

520 - Media Gateway does not have a digit map
        The digit map named in a command is not specified.  [Probably want
to change to "Digit Map undefined"]

521 - Termination is "ServiceChangeing"
        [Inapplicable if we get rid of Graceful ServiceChange for
terminations.]

526 - Insufficient bandwidth
        The MG was unable to execute a command because of insufficient
resources at the network interface or externally to the MG.

529 - Internal hardware failure
        A command could not be executed properly due to a hardware failure
within the MG.

530 - Temporary Network failure
        The MG was unable to execute a command because of a network failure
of unspecified but temporary nature affecting the termination concerned.  If
the failure renders an existing termination unavailable for service, the MG
should follow up by issuing a ServiceChange on the termination to indicate
its unavailability.

531 - Permanent Network failure
        The MG was unable to execute a command because of a network failure
of unspecified and persistent nature affecting the termination concerned.
If the failure renders an existing termination unavailable for service, the
MG should follow up by issuing a ServiceChange on the termination to
indicate its unavailability.

581 - Does Not Exist
        [Covered by more specific errors (e.g. 411, 430)]

Tom Taylor
Advisor -- Emerging Carrier IP Standards
E-mail: [email-masked] (internally, Tom-PT Taylor)
Phone and FAX: +1 613 736 0961

Send FREE Greetings for Father's Day--or any day!
Click here: http://www.whowhere.lycos.com/redirects/fathers_day.rdct

---

From: Tom-PT Taylor <[email-masked]>
Date: Thu, 8 Jun 2000 09:29:07 -0400

This leads very nicely into some news I failed to publish regarding results
of the Osaka meeting.  The ITU-T accepted two additional work items:

Annex L to H.248 would document error codes.
Annex M to H.248 describes packages for the Advanced Audio Server function.

I would say Annex L is probably something we want to develop jointly with SG
16, while Annex M is something we might be prepared to comment on only after
it had been determined.  If people feel otherwise, please say so.

Current drafts for these documents may be found in documents APC-1868 and
APC-1855 respectively at
ftp://standard.pictel.com/avc-site/0005_Osa/
The complete Question 14 meeting report from Osaka is to be found in
TD-21b.zip at the same site.

I intend to post Annexes F through K as I-Ds as soon as clean copies are
available and take them through Last Call in the spirit of the Formal
Comment process I proposed earlier.  These Annexes have all been determined,
but there were some changes to F and G coming out of Osaka which have to be
folded in.

> -----Original Message-----
> From: Hussain F Mohammad [SMTP:[email-masked]]
> Sent: Thursday, June 08, 2000 7:06 AM
> Subject:      Re: Errors and Error Codes
>
> I was going through the archives and found that these error codes and the
> reasons of their generation are supposed to be released as a seperate
> draft. If its released  where to get the draft. As there should be a
> common understanding  between MG and MGC, in what situation they can
> generated, these need to be documented somewhere.
>
> Hussain,
> Chief scientist,
> Advanced IP networks.
>
>
        [PTT]  snip