This file is not needed.
[obnox/wireshark/wip.git] / asn1 / h501 / H501-MESSAGES.asn
1 -- H501-MESSAGES.asn
2 --
3 -- Taken from ITU ASN.1 database
4 -- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h501/2002/H501-MESSAGES.asn
5 --
6 -- $Id$
7 --
8
9 -- Module H501-MESSAGES (H.501:03/2002)
10 H501-MESSAGES DEFINITIONS AUTOMATIC TAGS ::=
11 BEGIN
12
13 IMPORTS
14   AuthenticationMechanism, TimeStamp, ClearToken
15     FROM H235-SECURITY-MESSAGES
16   AliasAddress, TransportAddress, ReleaseCompleteReason, ConferenceIdentifier,
17     CallIdentifier, CryptoH323Token, CryptoToken, EndpointType,
18     GatekeeperIdentifier, GloballyUniqueID, NonStandardParameter, NumberDigits,
19     PartyNumber, SupportedProtocols, TransportQOS, VendorIdentifier,
20     IntegrityMechanism, ICV, FeatureSet, GenericData, EnumeratedParameter,
21     ServiceControlSession, CircuitInfo, CircuitIdentifier
22     FROM H323-MESSAGES;
23
24 Message ::= SEQUENCE {body    MessageBody,
25                       common  MessageCommonInfo,
26                       ...
27 }
28
29 MessageBody ::= CHOICE {
30   serviceRequest               ServiceRequest,
31   serviceConfirmation          ServiceConfirmation,
32   serviceRejection             ServiceRejection,
33   serviceRelease               ServiceRelease,
34   descriptorRequest            DescriptorRequest,
35   descriptorConfirmation       DescriptorConfirmation,
36   descriptorRejection          DescriptorRejection,
37   descriptorIDRequest          DescriptorIDRequest,
38   descriptorIDConfirmation     DescriptorIDConfirmation,
39   descriptorIDRejection        DescriptorIDRejection,
40   descriptorUpdate             DescriptorUpdate,
41   descriptorUpdateAck          DescriptorUpdateAck,
42   accessRequest                AccessRequest,
43   accessConfirmation           AccessConfirmation,
44   accessRejection              AccessRejection,
45   requestInProgress            RequestInProgress,
46   nonStandardRequest           NonStandardRequest,
47   nonStandardConfirmation      NonStandardConfirmation,
48   nonStandardRejection         NonStandardRejection,
49   unknownMessageResponse       UnknownMessageResponse,
50   usageRequest                 UsageRequest,
51   usageConfirmation            UsageConfirmation,
52   usageIndication              UsageIndication,
53   usageIndicationConfirmation  UsageIndicationConfirmation,
54   usageIndicationRejection     UsageIndicationRejection,
55   usageRejection               UsageRejection,
56   validationRequest            ValidationRequest,
57   validationConfirmation       ValidationConfirmation,
58   validationRejection          ValidationRejection,
59   ...,
60   authenticationRequest        AuthenticationRequest,
61   authenticationConfirmation   AuthenticationConfirmation,
62   authenticationRejection      AuthenticationRejection
63 }
64
65 MessageCommonInfo ::= SEQUENCE {
66   sequenceNumber       INTEGER(0..65535),
67   annexGversion        ProtocolVersion, -- set to "H.225.0 Annex G V2"
68   hopCount             INTEGER(1..255),
69   replyAddress         SEQUENCE OF TransportAddress OPTIONAL,
70   -- Must be present in request
71   integrityCheckValue  ICV OPTIONAL,
72   tokens               SEQUENCE OF ClearToken OPTIONAL,
73   cryptoTokens         SEQUENCE OF CryptoH323Token OPTIONAL,
74   nonStandard          SEQUENCE OF NonStandardParameter OPTIONAL,
75   ...,
76   serviceID            ServiceID OPTIONAL,
77   genericData          SEQUENCE OF GenericData OPTIONAL,
78   featureSet           FeatureSet OPTIONAL,
79   version              ProtocolVersion -- current H.501 protocol version
80 }
81
82 ServiceID ::= GloballyUniqueID
83
84 --
85 -- H.501 messages 
86 --
87 ServiceRequest ::= SEQUENCE {
88   elementIdentifier  ElementIdentifier OPTIONAL,
89   domainIdentifier   AliasAddress OPTIONAL,
90   securityMode       SEQUENCE OF SecurityMode OPTIONAL,
91   timeToLive         INTEGER(1..4294967295) OPTIONAL,
92   ...,
93   usageSpec          UsageSpecification OPTIONAL
94 }
95
96 SecurityMode ::= SEQUENCE {
97   authentication  AuthenticationMechanism OPTIONAL,
98   integrity       IntegrityMechanism OPTIONAL,
99   algorithmOIDs   SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
100   ...
101 }
102
103 ServiceConfirmation ::= SEQUENCE {
104   elementIdentifier  ElementIdentifier,
105   domainIdentifier   AliasAddress,
106   alternates         AlternatePEInfo OPTIONAL,
107   securityMode       SecurityMode OPTIONAL,
108   timeToLive         INTEGER(1..4294967295) OPTIONAL,
109   ...,
110   usageSpec          UsageSpecification OPTIONAL
111 }
112
113 ServiceRejection ::= SEQUENCE {
114   reason      ServiceRejectionReason,
115   alternates  AlternatePEInfo OPTIONAL,
116   ...
117 }
118
119 ServiceRejectionReason ::= CHOICE {
120   serviceUnavailable      NULL,
121   serviceRedirected       NULL,
122   security                NULL,
123   continue                NULL,
124   undefined               NULL,
125   ...,
126   unknownServiceID        NULL,
127   cannotSupportUsageSpec  NULL, -- Cannot comply with proposed spec
128   neededFeature           NULL,
129   genericDataReason       NULL,
130   usageUnavailable        NULL, -- Usage reporting not supported
131   unknownUsageSendTo      NULL -- Usage sendTo could not be resolved
132 }
133
134 ServiceRelease ::= SEQUENCE {
135   reason      ServiceReleaseReason,
136   alternates  AlternatePEInfo OPTIONAL,
137   ...
138 }
139
140 ServiceReleaseReason ::= CHOICE {
141   outOfService  NULL,
142   maintenance   NULL,
143   terminated    NULL,
144   expired       NULL,
145   ...
146 }
147
148 DescriptorRequest ::= SEQUENCE {descriptorID  SEQUENCE OF DescriptorID,
149                                 ...
150 }
151
152 DescriptorConfirmation ::= SEQUENCE {descriptor  SEQUENCE OF Descriptor,
153                                      ...
154 }
155
156 DescriptorRejection ::= SEQUENCE {
157   reason        DescriptorRejectionReason,
158   descriptorID  DescriptorID OPTIONAL,
159   ...
160 }
161
162 DescriptorRejectionReason ::= CHOICE {
163   packetSizeExceeded     NULL, -- use other transport type
164   illegalID              NULL, -- no descriptor for provided descriptorID
165   security               NULL, -- request did not meet security requirements
166   hopCountExceeded       NULL,
167   noServiceRelationship  NULL,
168   undefined              NULL,
169   ...,
170   neededFeature          NULL,
171   genericDataReason      NULL,
172   unknownServiceID       NULL-- The serviceID is not recognized by--
173   -- the peer element
174 }
175
176 DescriptorIDRequest ::= SEQUENCE {...
177 }
178
179 DescriptorIDConfirmation ::= SEQUENCE {
180   descriptorInfo  SEQUENCE OF DescriptorInfo,
181   ...
182 }
183
184 DescriptorIDRejection ::= SEQUENCE {reason  DescriptorIDRejectionReason,
185                                     ...
186 }
187
188 DescriptorIDRejectionReason ::= CHOICE {
189   noDescriptors          NULL, -- no descriptors to report
190   security               NULL, -- request did not meet security requirements
191   hopCountExceeded       NULL,
192   noServiceRelationship  NULL,
193   undefined              NULL,
194   ...,
195   neededFeature          NULL,
196   genericDataReason      NULL,
197   unknownServiceID       NULL-- The serviceID is not recognized by--
198   -- the peer element
199 }
200
201 DescriptorUpdate ::= SEQUENCE {
202   sender      AliasAddress,
203   updateInfo  SEQUENCE OF UpdateInformation,
204   ...
205 }
206
207 UpdateInformation ::= SEQUENCE {
208   descriptorInfo
209     CHOICE {descriptorID  DescriptorID,
210             descriptor    Descriptor,
211             ...},
212   updateType      CHOICE {added    NULL,
213                           deleted  NULL,
214                           changed  NULL,
215                           ...},
216   ...
217 }
218
219 DescriptorUpdateAck ::= SEQUENCE {...
220 }
221
222 AccessRequest ::= SEQUENCE {
223   destinationInfo      PartyInformation,
224   sourceInfo           PartyInformation OPTIONAL,
225   callInfo             CallInformation OPTIONAL,
226   usageSpec            UsageSpecification OPTIONAL,
227   ...,
228   desiredProtocols     SEQUENCE OF SupportedProtocols OPTIONAL
229 }
230
231 AccessConfirmation ::= SEQUENCE {
232   templates              SEQUENCE OF AddressTemplate,
233   partialResponse        BOOLEAN,
234   ...,
235   supportedProtocols     SEQUENCE OF SupportedProtocols OPTIONAL,
236   serviceControl         SEQUENCE OF ServiceControlSession OPTIONAL
237 }
238
239 AccessRejection ::= SEQUENCE {
240   reason             AccessRejectionReason,
241   ...,
242   serviceControl     SEQUENCE OF ServiceControlSession OPTIONAL
243 }
244
245 AccessRejectionReason ::= CHOICE {
246   noMatch                 NULL, -- no template matched the destinationInfo
247   packetSizeExceeded      NULL, -- use other transport type
248   security                NULL, -- request did not meet security requirements
249   hopCountExceeded        NULL,
250   needCallInformation     NULL, -- Call Information must be specified
251   noServiceRelationship   NULL,
252   undefined               NULL,
253   ...,
254   neededFeature           NULL,
255   genericDataReason       NULL,
256   destinationUnavailable  NULL, -- Destination was resolved but is
257   
258   -- unavailable
259   aliasesInconsistent     NULL, -- Multiple aliases identify distinct
260   
261   -- destinations
262   resourceUnavailable     NULL, -- One or more required resources are
263   
264   -- unavailable
265   incompleteAddress       NULL, -- Destination cannot be distinctly
266   
267   -- identified
268   unknownServiceID        NULL, -- The serviceID is not recognized by
269   
270   -- the peer element
271   usageUnavailable        NULL, -- Usage reporting not supported
272   cannotSupportUsageSpec  NULL, -- Cannot comply with proposed spec
273   unknownUsageSendTo      NULL -- Usage sendTo could not be resolved
274 }
275
276 UsageRequest ::= SEQUENCE {
277   callInfo   CallInformation,
278   usageSpec  UsageSpecification,
279   ...
280 }
281
282 UsageConfirmation ::= SEQUENCE {...
283 }
284
285 UsageRejection ::= SEQUENCE {reason  UsageRejectReason,
286                              ...
287 }
288
289 UsageIndication ::= SEQUENCE {
290   callInfo          CallInformation,
291   accessTokens      SEQUENCE OF AccessToken OPTIONAL,
292   senderRole        Role,
293   usageCallStatus   UsageCallStatus,
294   srcInfo           PartyInformation OPTIONAL,
295   destAddress       PartyInformation,
296   startTime         TimeStamp OPTIONAL,
297   endTime           TimeStamp OPTIONAL,
298   terminationCause  TerminationCause OPTIONAL,
299   usageFields       SEQUENCE OF UsageField,
300   ...
301 }
302
303 UsageField ::= SEQUENCE {id     OBJECT IDENTIFIER,
304                          value  OCTET STRING,
305                          ...
306 }
307
308 UsageRejectReason ::= CHOICE {
309   invalidCall            NULL,
310   unavailable            NULL,
311   security               NULL,
312   noServiceRelationship  NULL,
313   undefined              NULL,
314   ...,
315   neededFeature          NULL,
316   genericDataReason      NULL,
317   unknownServiceID       NULL-- The serviceID is not recognized by--
318   -- the peer element
319 }
320
321 UsageIndicationConfirmation ::= SEQUENCE {...
322 }
323
324 UsageIndicationRejection ::= SEQUENCE {
325   reason  UsageIndicationRejectionReason,
326   ...
327 }
328
329 UsageIndicationRejectionReason ::= CHOICE {
330   unknownCall            NULL,
331   incomplete             NULL,
332   security               NULL,
333   noServiceRelationship  NULL,
334   undefined              NULL,
335   ...,
336   neededFeature          NULL,
337   genericDataReason      NULL,
338   unknownServiceID       NULL-- The serviceID is not recognized by--
339   -- the peer element
340 }
341
342 ValidationRequest ::= SEQUENCE {
343   accessToken      SEQUENCE OF AccessToken OPTIONAL,
344   destinationInfo  PartyInformation OPTIONAL,
345   sourceInfo       PartyInformation OPTIONAL,
346   callInfo         CallInformation,
347   usageSpec        UsageSpecification OPTIONAL,
348   ...
349 }
350
351 ValidationConfirmation ::= SEQUENCE {
352   destinationInfo  PartyInformation OPTIONAL,
353   usageSpec        UsageSpecification OPTIONAL,
354   ...
355 }
356
357 ValidationRejection ::= SEQUENCE {reason  ValidationRejectionReason,
358                                   ...
359 }
360
361 ValidationRejectionReason ::= CHOICE {
362   tokenNotValid          NULL,
363   security               NULL, -- request did not meet security requirements
364   hopCountExceeded       NULL,
365   missingSourceInfo      NULL,
366   missingDestInfo        NULL,
367   noServiceRelationship  NULL,
368   undefined              NULL,
369   ...,
370   neededFeature          NULL,
371   genericDataReason      NULL,
372   unknownServiceID       NULL-- The serviceID is not recognized by--
373   -- the peer element
374 }
375
376 RequestInProgress ::= SEQUENCE {
377   delay              INTEGER(1..65535),
378   ...,
379   serviceControl     SEQUENCE OF ServiceControlSession OPTIONAL
380 }
381
382 NonStandardRequest ::= SEQUENCE {...
383 }
384
385 NonStandardConfirmation ::= SEQUENCE {...
386 }
387
388 NonStandardRejection ::= SEQUENCE {reason  NonStandardRejectionReason,
389                                    ...
390 }
391
392 NonStandardRejectionReason ::= CHOICE {
393   notSupported           NULL,
394   noServiceRelationship  NULL,
395   undefined              NULL,
396   ...,
397   neededFeature          NULL,
398   genericDataReason      NULL,
399   unknownServiceID       NULL-- The serviceID is not recognized by--
400   -- the peer element
401 }
402
403 UnknownMessageResponse ::= SEQUENCE {
404   unknownMessage  OCTET STRING,
405   reason          UnknownMessageReason,
406   ...
407 }
408
409 UnknownMessageReason ::= CHOICE {notUnderstood  NULL,
410                                  undefined      NULL,
411                                  ...
412 }
413
414 AuthenticationRequest ::= SEQUENCE {
415   applicationMessage  ApplicationMessage, -- e.g. RAS message in 
416   
417   -- ITU-T Rec. H.323
418   ...
419 }
420
421 ApplicationMessage ::= OCTET STRING
422
423 AuthenticationConfirmation ::= SEQUENCE {...
424 }
425
426 AuthenticationRejection ::= SEQUENCE {
427   reason  AuthenticationRejectionReason,
428   ...
429 }
430
431 AuthenticationRejectionReason ::= CHOICE {
432   security                 NULL,
433   hopCountExceeded         NULL,
434   noServiceRelationship    NULL,
435   undefined                NULL,
436   neededFeature            NULL,
437   genericDataReason        NULL,
438   unknownServiceID         NULL,
439   securityWrongSyncTime    NULL, -- time server problem or network delay
440   securityReplay           NULL, -- replay attack encountered
441   securityWrongGeneralID   NULL, -- wrong general ID
442   securityWrongSendersID   NULL, -- wrong senders ID
443   securityIntegrityFailed  NULL, -- integrity check failed
444   securityWrongOID         NULL, -- wrong token OIDs or crypto alg OIDs
445   ...
446 }
447
448 --
449 -- structures common to multiple messages
450 --
451 AddressTemplate ::= SEQUENCE {
452   pattern                SEQUENCE OF Pattern,
453   routeInfo              SEQUENCE OF RouteInformation,
454   timeToLive             INTEGER(1..4294967295),
455   ...,
456   supportedProtocols     SEQUENCE OF SupportedProtocols OPTIONAL,
457   featureSet             FeatureSet OPTIONAL
458 }
459
460 Pattern ::= CHOICE {
461   specific  AliasAddress,
462   wildcard  AliasAddress,
463   range     SEQUENCE {startOfRange  PartyNumber,
464                       endOfRange    PartyNumber},
465   ...
466 }
467
468 RouteInformation ::= SEQUENCE {
469   messageType
470     CHOICE {sendAccessRequest  NULL,
471             sendSetup          NULL,
472             nonExistent        NULL,
473             ...},
474   callSpecific          BOOLEAN,
475   usageSpec             UsageSpecification OPTIONAL,
476   priceInfo             SEQUENCE OF PriceInfoSpec OPTIONAL,
477   contacts              SEQUENCE OF ContactInformation,
478   type                  EndpointType OPTIONAL,
479   -- must be present if messageType = sendSetup
480   ...,
481   featureSet            FeatureSet OPTIONAL,
482   circuitID             CircuitInfo OPTIONAL,
483   supportedCircuits     SEQUENCE OF CircuitIdentifier OPTIONAL
484 }
485
486 ContactInformation ::= SEQUENCE {
487   transportAddress      AliasAddress,
488   priority              INTEGER(0..127),
489   transportQoS          TransportQOS OPTIONAL,
490   security              SEQUENCE OF SecurityMode OPTIONAL,
491   accessTokens          SEQUENCE OF AccessToken OPTIONAL,
492   ...,
493   multipleCalls         BOOLEAN OPTIONAL,
494   featureSet            FeatureSet OPTIONAL,
495   circuitID             CircuitInfo OPTIONAL,
496   supportedCircuits     SEQUENCE OF CircuitIdentifier OPTIONAL
497 }
498
499 PriceInfoSpec ::= SEQUENCE {
500   currency       IA5String(SIZE (3)), -- e.g. "USD"
501   currencyScale  INTEGER(-127..127),
502   validFrom      GlobalTimeStamp OPTIONAL,
503   validUntil     GlobalTimeStamp OPTIONAL,
504   hoursFrom      IA5String(SIZE (6)) OPTIONAL, -- "HHMMSS" UTC
505   hoursUntil     IA5String(SIZE (6)) OPTIONAL, -- "HHMMSS" UTC
506   priceElement   SEQUENCE OF PriceElement OPTIONAL,
507   priceFormula   IA5String(SIZE (1..2048)) OPTIONAL,
508   ...
509 }
510
511 PriceElement ::= SEQUENCE {
512   amount   INTEGER(0..4294967295), -- meter increment
513   quantum  INTEGER(0..4294967295), -- each or part thereof
514   units
515     CHOICE {seconds  NULL,
516             packets  NULL,
517             bytes    NULL,
518             initial  NULL,
519             minimum  NULL,
520             maximum  NULL,
521             ...},
522   ...
523 }
524
525 Descriptor ::= SEQUENCE {
526   descriptorInfo  DescriptorInfo,
527   templates       SEQUENCE OF AddressTemplate,
528   gatekeeperID    GatekeeperIdentifier OPTIONAL,
529   ...
530 }
531
532 DescriptorInfo ::= SEQUENCE {
533   descriptorID  DescriptorID,
534   lastChanged   GlobalTimeStamp,
535   ...
536 }
537
538 AlternatePEInfo ::= SEQUENCE {
539   alternatePE           SEQUENCE OF AlternatePE,
540   alternateIsPermanent  BOOLEAN,
541   ...
542 }
543
544 AlternatePE ::= SEQUENCE {
545   contactAddress     AliasAddress,
546   priority           INTEGER(1..127),
547   elementIdentifier  ElementIdentifier OPTIONAL,
548   ...
549 }
550
551 AccessToken ::= CHOICE {
552   token        ClearToken,
553   cryptoToken  CryptoH323Token,
554   ...,
555   genericData  GenericData
556 }
557
558 CallInformation ::= SEQUENCE {
559   callIdentifier  CallIdentifier,
560   conferenceID    ConferenceIdentifier,
561   ...,
562   circuitID       CircuitInfo OPTIONAL
563 }
564
565 UsageCallStatus ::= CHOICE {
566   preConnect        NULL, -- Call has not started
567   callInProgress    NULL, -- Call is in progress
568   callEnded         NULL, -- Call ended
569   ...,
570   registrationLost  NULL -- Uncertain if call ended or not
571 }
572
573 UserInformation ::= SEQUENCE {
574   userIdentifier     AliasAddress,
575   userAuthenticator  SEQUENCE OF CryptoH323Token OPTIONAL,
576   ...
577 }
578
579 UsageSpecification ::= SEQUENCE {
580   sendTo              ElementIdentifier,
581   when
582     SEQUENCE {never     NULL OPTIONAL,
583               start     NULL OPTIONAL,
584               end       NULL OPTIONAL,
585               period    INTEGER(1..65535) OPTIONAL, -- in seconds--
586               failures  NULL OPTIONAL,
587               ...},
588   required            SEQUENCE OF OBJECT IDENTIFIER,
589   preferred           SEQUENCE OF OBJECT IDENTIFIER,
590   ...,
591   sendToPEAddress     AliasAddress OPTIONAL
592 }
593
594 PartyInformation ::= SEQUENCE {
595   logicalAddresses  SEQUENCE OF AliasAddress,
596   domainIdentifier  AliasAddress OPTIONAL,
597   transportAddress  AliasAddress OPTIONAL,
598   endpointType      EndpointType OPTIONAL,
599   userInfo          UserInformation OPTIONAL,
600   timeZone          TimeZone OPTIONAL,
601   ...
602 }
603
604 Role ::= CHOICE {
605   originator       NULL,
606   destination      NULL,
607   nonStandardData  NonStandardParameter,
608   ...
609 }
610
611 TimeZone ::= INTEGER(-43200..43200) -- number of seconds relative to UTC
612                     
613
614 -- including DST if appropriate
615 TerminationCause ::= SEQUENCE {
616   releaseCompleteReason  ReleaseCompleteReason,
617   causeIE                INTEGER(1..65535) OPTIONAL,
618   nonStandardData        NonStandardParameter OPTIONAL,
619   ...
620 }
621
622 ProtocolVersion ::= OBJECT IDENTIFIER
623
624 --      shall be set to 
625 --      {itu-t(0) recommendation(0) h(8) h-225-0(2250) annex(1) g(7) 
626 --      version(0) 2} in field annexGversion;
627 --      {itu-t(0) recommendation(0) h(8) 501 version(0) 1} 
628 --      in field version
629 DescriptorID ::=
630   GloballyUniqueID
631
632 ElementIdentifier ::= BMPString(SIZE (1..128))
633
634 GlobalTimeStamp ::= IA5String(SIZE (14))
635
636 -- UTC,  in the form YYYYMMDDHHmmSS
637 -- where YYYY = year, MM = month, DD = day,
638 -- HH = hour, mm = minute, SS = second
639 -- (for example, 19981219120000 for noon
640 -- 19 December 1998)
641 --
642 -- REPOSITORY FOR APPLICATION SPECIFIC DATA 
643 --
644 -- H.225.0 Annex-G profile data
645 --
646 idAnnexGProfiles INTEGER ::=
647   0
648
649 idAnnexGProfileA INTEGER ::= 1
650
651 --annexGProfileA         EnumeratedParameter ::= 
652 --{
653 --      id        standard:idAnnexGProfileA
654 --}
655 END -- of H501-MESSAGES
656
657 -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
658