Subject: Sanity check of Error Codes

From: "Bobkoskie, Robert (Robert)" <[email-masked]>
Date: Tue, 13 Mar 2001 16:24:22 -0500

Hello  megaco list,
For the joy of it, I was attempting to map the error codes from annex L to
potential scenarios that could generate them. 
I would appreciate any feedback on the scenarios, particularly the ones
concerning error codes 441 and 446.

Regards,
Robert Bobkoskie
Lucent

Note: Direction of observed Error response will always be: MG==>MGC.
"Also, all messages are assumed to be text encoded."	

Error Code	MG<==>Test Driver (MGC)
400	Syntax Error in Message: The transaction request(s) has been
disregarded due to a syntax error has been
	detected at the message level.  The message does not conform to the
productions of Messages
	in Annex A or Annex B as applicable. Used when e.g. no Transaction
can be parsed
	Scenario 1
	(1) MG1==>MGC: Valid Registration using ServiceChange Request
(Restart)
	(2) MGC==>MG1: Syntactically incorrect message (e.g. Error in
Authentication Header) to Handoff to a new MGC
	(3) MG1==>MGC: Error 400

401	Protocol Error: The transaction request(s) has been disregarded due
to a
	violation of MeGaCo protocol procedures has been detected
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	Note: The Valid Transaction Response from MGC==>MG1 is in response
to a hypothetical request to
	add a TDM Termination to a Context
	(1) MGC==>MG1: Valid Transaction Response (ContextID==X)
	(2) MG1==>MGC: Error 401

402	Unauthorized: The command is not executed due to the originator of a
command is not
	authorized to execute that command for the termination(s) affected
by it
	Scenario 1
	(1) MG1==>MGC1: Valid Registration using ServiceChange Request
(Restart)
	(2) MGC2==>MG1: Syntactically correct Response from MGC2 to handoff
to MGC1
	(3) MG1==>MGC2: Error 402
	Scenario 2
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Valid Transaction to Modify a Termination in the NULL
Context (TDM TerminationID==x) from unknown MGC
	(2) MG1==>MGC: Error 402

403	Syntax Error in TransactionRequest: The transaction request is
disregarded since it failed to match
	"production of a TransactionRequest in Annex A, Annex B as
applicable. Used when e.g. it is not"
	possible to determine the end of a transaction or when no Action can
be parsed
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically incorrect Transaction to Modify a
Termination in the NULL Context (TDM TerminationID==x)
	(e.g. omit closing brace for Transaction)
	(2) MG1==>MGC: Error 403 + TransactionID==NULL

406	Version Not Supported: This indicates a lack of support for the
protocol version indicated in the message
	header of the message or in the ServiceChangeVersion parameter. In
the case of the version number
	being indicated in the message header the message contents are
disregarded
	Scenario 1
	"(1) MG1==>MGC: Valid Registration using ServiceChange Request
(Restart, Version==x)"
	(2) MGC==>MG1: Syntactically correct Response (version>x)
	(3) MG1==>MGC: Error 406

410	Incorrect Identifier: The transaction request(s) has been
disregarded due to a syntax error (illegal length
	"or illegal character) has been found in a mId, transactionId,
contextId, terminationId, PropertyId,"
	"EventId, SignalId, StatisticsId ParameterId or requestID"
	Scenario 1
	(1) MG1==>MGC: Valid Registration using ServiceChange Request
(Restart)
	(2) MGC==>MG1: Syntactically incorrect message (e.g. Error in
MessageID) to Handoff to a new MGC
	(3) MG1==>MGC: Error 410 + MessageID
	Scenario 2
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically incorrect Transaction (e.g. Error in
TransactionID) to Modify a Termination in the NULL Context
	(2) MG1==>MGC: Error 410 + TransactionID
	Scenario 3
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Valid Transaction to add TDM Termination to a new
Context (ContextID==$)
	(2) MG1==>MGC: Valid Response (ContextID==X)
	(3) MGC==>MG1: Syntactically incorrect Transaction (e.g. Error in
ContextID) to Modify Context (X) of MG1
	(4) MG1==>MGC: Error 410 + ContextID (X)
	Scenario 4
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Valid Transaction to add RTP Termination to a new
Context (RTP TerminationID==$)
	(2) MG1==>MGC: Valid Response (RTP TerminationID==x)
	(3) MGC==>MG1: Syntactically incorrect Transaction (e.g. Error in
RTP TerminationID) to Modify RTP Termination of MG1
	(4) MG1==>MGC: Error 410 + RTP TerminationID (x)
	Scenario 5
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically incorrect Transaction to Modify a TDM
Termination in the NULL Context
	(e.g. Error in TDM TerminationID)
	(2) MG1==>MGC: Error 410 + TDM TerminationID

411	The transaction refers to an unknown ContextId: The contextID
	provided in a Transaction Request is unknown to the respondent and
therefore disregarded
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Valid Transaction to Modify Context of MG1
(ContextID==X)
	Note: Context ID X will not exist
	(2) MG1==>MGC: Error 411

412	No ContextIDs available: The MG is unable to create a context in
response to
	"an ""Add"" or ""Move"" command with CHOOSE given as the ContextId,
because of a shortage of"
	resources within the MG and the action is disregarded
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	"Note: MG1 is provisioned with 3 TDM Terminations and 2 Contexts,
with the maximum number of Terminations/Context==2"
	(1) MGC==>MG1: Valid Transaction to add TDM Termination to a new
Context (ContextID==$)
	(2) MG1==>MGC: Valid Response (ContextID==X)
	(3) MGC==>MG1: Valid Transaction to add TDM Termination to a new
Context (ContextID==$)
	(4) MG1==>MGC: Valid Response (ContextID==Y)
	(5) MGC==>MG1: Valid Transaction to add TDM Termination to a new
Context (ContextID==$)
	(6) MG1==>MGC: Error 412

421	Unknown action or illegal combination of actions
	Note: TBD (not used)

422	Syntax Error in Action: The Action was disregarded due to the syntax
of an Action did
	not conform to production of an actionRequest in Annex A or Annex B
as applicable. Used when it is
	"not possible to determine the end of an Action, when e.g. no
Command can be parsed and when"
	it is impossible to process a ContextID
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically incorrect Action to add TDM Termination
to a new Context (e.g. omit closing brace for Action)
	(2) MG1==>MGC: Error 422

430	Unknown TerminationID: The command included a specific terminationID
provided in
	a Transaction Request is unknown to the responder and therefore
disregarded
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	"(1) MGC==>MG1: Valid Transaction to add TDM Termination to a new
Context (TDM TerminationID==x,"
	where x is non-existing TDM Termination)
	(2) MG1==>MGC: Error 430 + TDM TerminationID (x)
	Scenario 2
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Valid Transaction to add RTP Termination to a new
Context (RTP TerminationID==$)
	(2) MG1==>MGC: Valid Response (RTP TerminationID==x)
	"(3) MGC==>MG1: Valid Transaction to Modify RTP Context of MG1 (RTP
TerminationID==y,"
	where y is a non-existing RTP Termination)
	(4) MG1==>MGC: Error 430 + RTP TerminationID (y)

431	No TerminationID matched a wildcard: The command included one or
more wildcard (ALL
	"or CHOOSE) TerminationID(s) or properties is disregarded by the MG,
since the responder"
	could not find an existing termination or create a new termination
matching the specified pattern
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	"Note: MG1 is provisioned with 3 TDM Terminations and 2 Contexts,
with the maximum number of Terminations/Context==2"
	"(1) MGC==>MG1: Valid Transaction to Modify a Termination in the
NULL Context (TDM TerminationID is wildcard ""all"")"
	"Note: The ""all"" wildcard value will match none of the 3 TDM
Terminations provisioned in MG1"
	"(e.g. the wildcard requires the termination ID to start with x, but
all the provisioned Ids start with t"
	(2) MG1==>MGC: Error 431

432	Out of TerminationIDs or No TerminationID available: The Add command
including
	"the CHOOSE terminationID is disregarded. The MG was unable to
allocate a new TerminationID,"
	because it has exhausted the available space of TerminationIDs
	Note: Valid Registration process has occurred MG1<==>MGC
	"Note: MG1 is provisioned with 3 TDM Terminations and 2 Contexts,
with the maximum number of Terminations/Context==2"
	Scenario 1
	(1) MGC==>MG1: Valid Transaction to add 4 TDM Terminations to a new
Context (ContextID==$)
	(2) MG1==>MGC: Error 432
	or alternatively
	Scenario 2
	(1) MGC==>MG1: Valid Transaction to add 2 TDM Terminations to a new
Context (ContextID==$)
	(2) MG1==>MGC: Valid Response (ContextID==X)
	(3) MGC==>MG1: Valid Transaction to add 2 TDM Terminations to a new
Context (ContextID==$)
	(4) MG1==>MGC: Error 432

433	TerminationID is already in a Context: A TerminationID specified in
an Add command already
	exists within an active context and therefore the command is
disregarded
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	"(1) MGC==>MG1: Valid Transaction to add TDM Termination to a new
Context (TDM TerminationID==x, ContextID==$)"
	(2) MG1==>MGC: Valid Response (ContextID==X)
	"(3) MGC==>MG1: Valid Transaction to add TDM Termination to a new
Context (TDM TerminationID==x, ContextID==$)"
	(4) MG1==>MGC: Error 433 + TDM TerminationID (x) and the ContextID
(X)

434	Max number of Terminations in a Context exceeded: The MGC has
requested that a
	termination be added or moved to a context that already contains a
maximum number of
	termination. The command is therefore disregarded
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	"Note: MG1 is provisioned with 3 TDM Terminations and 2 Contexts,
with the maximum number of Terminations/Context==2"
	(1) MGC==>MG1: Valid Transaction to add RTP and TDM Terminations to
a new Context (ContextID==$)
	(2) MG1==>MGC: Valid Response (ContextID==X)
	(3) MGC==>MG1: Valid Transaction to add TDM Termination to Context
where (ContextID==X)
	(4) MG1==>MGC: Error 434

440	"Unsupported or unknown Package: The Package Name in a property,
parameter, event, signal, or"
	statistic identifier is not supported by the receiver. The command
related to the
	unknown identifier is disregarded
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Valid Transaction to Modify a Termination in the NULL
Context
	Note: Assume a package will not be supported
	"(e.g. Analog Line Supervision Package not supported, then have an
embedded Event from the package to look for Offhook)"
	(2) MG1==>MGC: Error 440 + Package Name

441	Missing Remote or Local Descriptor: The requested action requires
that the Remote/Local Descriptor
	includes necessary or adequate information and therefore the action
is not carried out
	"Note: TBD, Need information regarding the requirement/optional
status of the remote and local descriptors within an Action"
	
442	Syntax Error in Command: A command request has failed to match the
syntax of the commandRequest
	production and therefore disregarded. Used when e.g. end of a
command cannot be determined
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically incorrect Transaction to Modify a
Termination in the NULL Context
	(e.g. omit closing brace for Command)
	(2) MG1==>MGC: Error 442

443	Unknown Command: The Command in a Command Request is not recognized
by the receiver
	and therefore disregarded
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	"(1) MGC==>MG1: Syntactically correct Transaction to ""multiply""
RTP and TDM Terminations from a Context"
	(2) MG1==>MGC: Error 443 + CommandID

444	Unsupported or Unknown Descriptor: The descriptor in a Command
Request or reply is not recognized
	by the receiver and therefore disregarded
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically incorrect Transaction to add TDM
Termination to a new Context
	(e.g. have a syntax error in the spelling of Media Token)
	(2) MG1==>MGC: Error 444 + DescriptorID

445	Unsupported Property: Property Name (Annex A) or ItemID (Annex B) of
a property Parameter within a
	descriptor is recognized but not supported and the command related
to the property is not carried out
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	"Note: TBD, In general, this Error reply requires knowledge of a
Property that is not supported in one of the Packages that are"
	implemented (e.g. a Property from the Base Root Package that will
not be implemented)
	(1) MGC==>MG1: Valid Transaction to add TDM Termination to a new
Context
	(e.g. have an undefined property from the Base Root Package embedded
in the Termination State Descriptor)
	(2) MG1==>MGC: Error 445 + Property Name

446	Unsupported or Unknown Parameter: The Parameter in a Command Request
is not recognized
	by the receiver and the command related to the descriptor is not
carried out
	"Note: TBD, requires clarification of the definition of parameter in
the MeGaCo Specification."
	I'm not seeing the difference between this error response and the
error response(s) 454-457

447	Descriptor not legal in this command: The descriptor cannot be used
in this command in accordance
	with the definition in Annex A and Annex B and the command including
the descriptor is not carried out
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	(e.g. have a Service Change Descriptor embedded in the command)
	(2) MG1==>MGC: Error 447 + DescriptorID

448	Descriptor appears twice in a command: The Descriptor appears twice
in the command
	and the command including the descriptor is not carried out
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	(e.g. have a Media Descriptor appear twice in the command)
	(2) MG1==>MGC: Error 448 + DescriptorID

450	No such property in this package: Property Name (Annex A) or ItemID
(Annex B) of a property Parameter
	within a descriptor is not recognized and the command including the
property/item is not carried out
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Base Root Package"
	(have a property not defined in the Package embedded in the
Termination State Descriptor)
	(2) MG1==>MGC: Error 450 + Property Name

451	No such event in this package: The command including the Event Name
is not
	executed due to it is not considered by the MG to be a part of this
version of package and the
	command including the event is not carried out
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Generic Package"
	(have an event not defined in the Package embedded in the Events
Descriptor)
	(2) MG1==>MGC: Error 451 + Event Name

452	No such signal in this package: The command including the Signal
Name is not executed
	due to it is not considered by the MG to be a part of this version
of package
	Scenario 1
	Note: Valid Registration process has occurred MG1<==>MGC
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Tone Generator
Package"
	(have a signal not defined in the Package embedded in the Signals
Descriptor)
	(2) MG1==>MGC: Error 452 + Signal Name

453	No such statistic in this package: The command including the
Statistic Name is not executed
	due to it is not considered by the MG to be a part of this version
of package and the command
	including the statistic is not carried out
	Scenario 1
	Note: It appears that this Error Response is only in the direction
MG==>MGC

454	No such parameter value in this package: The command including the
parameter value is
	not executed due to it is considered by the MG to be a part of this
version of package and the
	command including the parameter is not carried out
	Note: Valid Registration process has occurred MG1<==>MGC
	Scenario 1
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Generic Package"
	(have a parameter not supported in current version in the
Package/Event embedded in the Events Descriptor)
	(2) MG1==>MGC: Error 454 + Parameter Name
	Scenario 2
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Tone Generator
Package"
	(have a parameter not supported in current version in the
Package/Signal embedded in the Signals Descriptor)
	(2) MG1==>MGC: Error 454 + Parameter Name

455	Parameter illegal in this Descriptor: The command including the
parameter was disregarded
	since the MG does not consider it to be a part of this descriptor
	Note: Valid Registration process has occurred MG1<==>MGC
	Scenario 1
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Generic Package"
	(have a parameter not defined in the Package/Event embedded in the
Events Descriptor)
	(2) MG1==>MGC: Error 455 + Parameter Name
	Scenario 2
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Tone Generator
Package"
	(have a parameter not defined in the Package/Signal embedded in the
Signals Descriptor)
	(2) MG1==>MGC: Error 455 + Parameter Name

456	Parameter or Property appears twice in this Descriptor: The command
including the parameter
	or property is not executed due to the parameter or property appears
twice in this descriptor
	Note: Valid Registration process has occurred MG1<==>MGC
	Scenario 1
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Generic Package"
	(have a parameter defined in the Package/Event embedded in the
Events Descriptor appear twice)
	(2) MG1==>MGC: Error 456 + Parameter Name
	Scenario 2
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Tone Generator
Package"
	(have a parameter defined in the Package/Signal embedded in the
Signals Descriptor appear twice)
	(2) MG1==>MGC: Error 456 + Parameter Name
	Scenario 3
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Base Root Package"
	(have a property defined in the Package embedded in the Termination
State Descriptor twice)
	(2) MG1==>MGC: Error 456 + Property Name

457	Missing parameter in signal or event: The command was disregarded
due
	to a missing mandatory parameter
	Note: Valid Registration process has occurred MG1<==>MGC
	Note: This Error response will require knowledge of a mandatory (as
per implementers
	requirement) parameter required for an Event or Signal
	Scenario 1
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Generic Package"
	(withhold a required parameter as defined in the Package/Event from
appearing in the Events Descriptor)
	(2) MG1==>MGC: Error 457 + missing Parameter Name?
	Scenario 2
	(1) MGC==>MG1: Syntactically correct Transaction to add TDM
Termination to a new Context
	"Note: Assume a package will be supported, e.g. Tone Generator
Package"
	(withhold a required parameter as defined in the Package/Event from
appearing in the Signals Descriptor)
	(2) MG1==>MGC: Error 457 + missing Parameter Name?