Frank,
in ASN.1 notation parameters are enclosed in curly brackets. In the particular case of the ROS type, each parameter represents a "value set", which itself is indicated by curly brackets. Therefore the nesting of 2 (or more) sets of brackets.
The parameters in the ROS type are used as constraints - indicated by round brackets further down in the module. The meaning is actually quite straightforward: the invoke ID must be within the limits of InvokeIdSet, the operation value must be from the "Invokable" set, and only operations listed also in the "Returnable" set can report a result or error. Valid error values must further belong to the defined set "Errors", which itself is constrained to apply only to the "Returnable" operations.
I admit that the notation is clumsy, but it allows you to declare your application environment (i.e. the operations, or supplementary services, that your software will support) in a formal way which is suitable for processing by tools.
Ernst Horvath Siemens AG
-----Ursprüngliche Nachricht----- Von: Frank Derks [mailto:frank.derks@PHILIPS.COM] Gesendet am: Mittwoch, 24. Jänner 2001 19:06 An: ITU-SG16@mailbag.cps.intel.com Betreff: Understanding the ROS{} type (from X.880)
When reading through H.450.1, I came across the definition for the ROS type (as defined in X.880):
ROS {InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable) ::= CHOICE { invoke [1] Invoke {{InvokeIdSet},{Invokable}}, returnResult [2] ReturnResult {{Returnable}}, returnError [3] ReturnError {{Errors{{Returnable}}}}, reject [4] Reject }
I think I understand the lines with the "invoke" and the "returnResult" (apart from the fact that two curly braces are used in the latter, but I assume that this is just the way things are with the notation). Both Invoke and ReturnResult are parameterized sequences and their respective parameters are simply being "passed in".
The line that follows beats me, however. How should I read:
"{{Errors{{Returnable}}}}"
First of all, I would expect a parameter of type "ERROR" to be "passed in", but it would seem that "Errors" is the name of the parameter for the parameterized "ReturnError" sequence and "Returnable" is of the "OPERATION" type. So what does that line actually mean?
Regards,
Frank
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