Start development on 386BSD 0.0
[unix-history] / .ref-BSD-4_3_Net_2 / usr / src / contrib / isode / pepy / P1.py
CommitLineData
9e8e5516
C
1-- P1.py - MHS P1 definitions
2
3-- $Header: /f/osi/pepy/RCS/P1.py,v 7.1 91/02/22 09:34:43 mrose Interim $
4--
5--
6-- $Log: P1.py,v $
7-- Revision 7.1 91/02/22 09:34:43 mrose
8-- Interim 6.8
9--
10-- Revision 7.0 89/11/23 22:11:31 mrose
11-- Release 6.0
12--
13
14--
15-- NOTICE
16--
17-- Acquisition, use, and distribution of this module and related
18-- materials are subject to the restrictions of a license agreement.
19-- Consult the Preface in the User's Manual for the full terms of
20-- this agreement.
21--
22--
23
24
25P1 DEFINITIONS ::=
26
27%{
28#ifndef lint
29static char *rcsid = "$Header: /f/osi/pepy/RCS/P1.py,v 7.1 91/02/22 09:34:43 mrose Interim $";
30#endif
31
32void parse_p2 ();
33%}
34
35BEGIN
36
37PRINTER print
38
39-- P1 makes use of types defined in the following module:
40-- Sa: Recommendation S.a[14]
41-- T73: T.73, Section 5
42
43MPDU ::=
44 CHOICE {
45 [0]
46 IMPLICIT UserMPDU,
47
48 ServiceMPDU
49 }
50
51ServiceMPDU ::=
52 CHOICE {
53 [1]
54 IMPLICIT DeliveryReportMPDU,
55
56 [2]
57 IMPLICIT ProbeMPDU
58 }
59
60UserMPDU ::=
61 SEQUENCE {
62 envelope
63 UMPDUEnvelope,
64
65 content
66 UMPDUContent
67 }
68
69UMPDUEnvelope ::=
70 SET {
71 mpduID
72 MPDUIdentifier,
73
74 originator
75 ORName,
76
77 original
78 EncodedInformationTypes
79 OPTIONAL,
80
81 ContentType,
82
83 UAContentId OPTIONAL,
84
85 Priority DEFAULT normal,
86
87 PerMessageFlag DEFAULT {},
88
89 deferredDelivery[0]
90 IMPLICIT Time
91 OPTIONAL,
92
93 [1]
94 IMPLICIT SEQUENCE OF PerDomainBilateralInfo
95 OPTIONAL,
96
97 [2]
98 IMPLICIT SEQUENCE OF RecipientInfo,
99
100 TraceInformation
101
102 -- this one's for EAN --,
103 [UNIVERSAL 17]
104 IMPLICIT ANY
105 OPTIONAL
106 }
107
108UMPDUContent ::=
109 OCTETSTRING
110 %{ parse_p2 ($$, $$_len); %}
111
112
113-- time
114
115Time ::=
116 UniversalTime
117
118
119-- various envelope information
120
121MPDUIdentifier ::=
122 [APPLICATION 4] IMPLICIT SEQUENCE {
123 GlobalDomainIdentifier,
124 IA5String
125 }
126
127ContentType ::=
128 [APPLICATION 6]
129 IMPLICIT INTEGER {
130 p2(2)
131 }
132
133UAContentId ::=
134 [APPLICATION 10]
135 IMPLICIT PrintableString
136
137Priority ::=
138 [APPLICATION 7]
139 IMPLICIT INTEGER {
140 normal(0),
141
142 nonUrgent(1),
143
144 urgent(2)
145 }
146
147PerMessageFlag ::=
148 [APPLICATION 8]
149 IMPLICIT BITSTRING {
150 discloseRecipients(0),
151 conversionProhibited(1),
152 alternateRecipientAllowed(2),
153 contentReturnRequest(3)
154 }
155
156-- per-domain bilateral information
157
158PerDomainBilateralInfo ::=
159 SEQUENCE {
160 country
161 CountryName,
162
163 AdministrationDomainName,
164
165 BilateralInfo
166 }
167
168BilateralInfo ::=
169 ANY
170
171-- recipient information
172
173RecipientInfo ::=
174 SET {
175 recipient
176 ORName,
177
178 [0]
179 IMPLICIT ExtensionIdentifier,
180
181 [1]
182 IMPLICIT PerRecipientFlag,
183
184 [2]
185 IMPLICIT ExplicitConversion DEFAULT {}
186
187 -- this one's for EAN --,
188 [UNIVERSAL 2]
189 IMPLICIT INTEGER
190 OPTIONAL
191 }
192
193ExtensionIdentifier ::=
194 INTEGER
195
196PerRecipientFlag ::=
197 BITSTRING -- See Figure 23/X.411
198
199ExplicitConversion ::=
200 INTEGER {
201 iA5TextTeletex(0),
202
203 teletexTelex(1)
204 }
205
206
207-- trace information
208
209TraceInformation ::=
210 [APPLICATION 9]
211 IMPLICIT SEQUENCE OF SEQUENCE {
212 domainid
213 GlobalDomainIdentifier,
214
215 domaininfo
216 DomainSuppliedInfo
217 }
218
219DomainSuppliedInfo ::=
220 SET {
221 arrival[0]
222 IMPLICIT Time,
223
224 deferred[1]
225 IMPLICIT Time
226 OPTIONAL,
227
228 action[2]
229 IMPLICIT INTEGER {
230 relayed(0),
231
232 rerouted(1)
233 },
234
235 converted
236 EncodedInformationTypes
237 OPTIONAL,
238
239 previous
240 GlobalDomainIdentifier OPTIONAL
241 }
242
243
244-- global domain identifier
245
246GlobalDomainIdentifier ::=
247 [APPLICATION 3]
248 IMPLICIT SEQUENCE {
249 CountryName,
250 AdministrationDomainName,
251 PrivateDomainIdentifier OPTIONAL
252 }
253
254CountryName ::=
255 [APPLICATION 1]
256 CHOICE {
257 NumericString,
258 PrintableString
259 }
260
261AdministrationDomainName ::=
262 [APPLICATION 2]
263 CHOICE {
264 NumericString,
265 PrintableString
266 }
267
268PrivateDomainIdentifier ::=
269 CHOICE {
270 NumericString,
271
272 PrintableString
273 }
274
275
276-- O/R name
277
278ORName ::=
279 [APPLICATION 0]
280 IMPLICIT SEQUENCE {
281 standard
282 StandardAttributeList,
283
284 domaindefined
285 DomainDefinedAttributeList
286 OPTIONAL
287 }
288
289StandardAttributeList ::=
290 SEQUENCE {
291 CountryName OPTIONAL,
292
293 AdministrationDomainName OPTIONAL,
294
295 [0]
296 IMPLICIT X121Address OPTIONAL,
297
298 [1]
299 IMPLICIT TerminalID OPTIONAL,
300
301 [2]
302 PrivateDomainName OPTIONAL,
303
304 [3]
305 IMPLICIT OrganizationName OPTIONAL,
306
307 [4]
308 IMPLICIT UniqueUAIdentifier OPTIONAL,
309
310 [5]
311 IMPLICIT PersonalName
312 OPTIONAL,
313
314 [6]
315 IMPLICIT SEQUENCE OF OrganizationalUnit OPTIONAL
316 }
317
318DomainDefinedAttributeList ::=
319 SEQUENCE OF DomainDefinedAttribute
320
321DomainDefinedAttribute ::=
322 SEQUENCE {
323 type
324 PrintableString,
325
326 value
327 PrintableString
328 }
329
330X121Address ::=
331 NumericString
332
333TerminalID ::=
334 PrintableString
335
336OrganizationName ::=
337 PrintableString
338
339UniqueUAIdentifier ::=
340 NumericString
341
342PersonalName ::=
343 SET {
344 surName[0]
345 IMPLICIT PrintableString,
346
347 givenName[1]
348 IMPLICIT PrintableString
349 OPTIONAL,
350
351 initials[2]
352 IMPLICIT PrintableString
353 OPTIONAL,
354
355 generalQualifier[3]
356 IMPLICIT PrintableString
357 OPTIONAL
358 }
359
360OrganizationalUnit ::=
361 PrintableString
362
363PrivateDomainName ::=
364 CHOICE {
365 NumericString,
366
367 PrintableString
368 }
369
370
371-- encoded information types
372
373EncodedInformationTypes ::=
374 [APPLICATION 5] IMPLICIT SET {
375 [0]
376 IMPLICIT BITSTRING {
377 undefined(0),
378 tLX(1),
379 iA5Text(2),
380 g3Fax(3),
381 tIF0(4),
382 tTX(5),
383 videotex(6),
384 voice(7),
385 sFD(8),
386 tIF1(9)
387 }
388 -- this OPTIONAL is for EAN -- OPTIONAL,
389
390 [1]
391 IMPLICIT G3NonBasicParams
392 OPTIONAL,
393
394 [2]
395 IMPLICIT TeletexNonBasicParams
396 OPTIONAL,
397
398 [3]
399 IMPLICIT PresentationCapabilities
400 OPTIONAL
401
402 -- other non-basic parameters are for further study
403
404 -- but this one's for EAN --,
405 [UNIVERSAL 3]
406 IMPLICIT BITSTRING {
407 undefined(0),
408 tLX(1),
409 iA5Text(2),
410 g3Fax(3),
411 tIF0(4),
412 tTX(5),
413 videotex(6),
414 voice(7),
415 sFD(8),
416 tIF1(9)
417 }
418 OPTIONAL
419 }
420
421G3NonBasicParams ::=
422 BITSTRING {
423 twoDimensional(8),
424 fineResolution(9),
425 unlimitedLength(20),
426 b4Length(21),
427 a3Width(22),
428 b4Width(23),
429 uncompressed(30)
430 }
431
432TeletexNonBasicParams ::=
433 SET {
434 graphicCharacterSets[0]
435 IMPLICIT T61String OPTIONAL,
436
437 controlCharacterSets[1]
438 IMPLICIT T61String OPTIONAL,
439
440 pageFormats[2]
441 IMPLICIT OCTETSTRING OPTIONAL,
442
443 miscTerminalCapabilities[3]
444 IMPLICIT T61String OPTIONAL,
445
446 privateUse[4]
447 IMPLICIT OCTETSTRING OPTIONAL
448 }
449
450PresentationCapabilities ::=
451 T73.PresentationCapabilities
452
453
454-- Delivery Report MPDU
455
456DeliveryReportMPDU ::=
457 SEQUENCE {
458 envelope
459 DeliveryReportEnvelope,
460
461 content
462 DeliveryReportContent
463 }
464
465DeliveryReportEnvelope ::=
466 SET {
467 report
468 MPDUIdentifier,
469
470 originator
471 ORName,
472
473 TraceInformation
474 }
475
476DeliveryReportContent ::=
477 SET {
478 original
479 MPDUIdentifier,
480
481 intermediate
482 TraceInformation OPTIONAL,
483
484 UAContentId OPTIONAL,
485
486 [0]
487 IMPLICIT SEQUENCE OF ReportedRecipientInfo,
488
489 returned[1]
490 IMPLICIT UMPDUContent OPTIONAL,
491
492 billingInformation[2]
493 ANY
494 OPTIONAL
495 }
496
497ReportedRecipientInfo ::=
498 SET {
499 recipient[0]
500 IMPLICIT ORName,
501
502 [1]
503 IMPLICIT ExtensionIdentifier,
504
505 [2]
506 IMPLICIT PerRecipientFlag,
507
508 [3]
509 IMPLICIT LastTraceInformation,
510
511 intendedRecipient[4]
512 IMPLICIT ORName
513 OPTIONAL,
514
515 [5]
516 IMPLICIT SupplementaryInformation OPTIONAL
517 }
518
519
520-- last trace information
521
522LastTraceInformation ::=
523 SET {
524 arrival[0]
525 IMPLICIT Time,
526
527 converted
528 EncodedInformationTypes
529 OPTIONAL,
530
531 [1]
532 Report
533 }
534
535Report ::=
536 CHOICE {
537 [0]
538 IMPLICIT DeliveredInfo,
539
540 [1]
541 IMPLICIT NonDeliveredInfo
542 }
543
544DeliveredInfo ::=
545 SET {
546 delivery[0]
547 IMPLICIT Time,
548
549 typeOfUA[1]
550 IMPLICIT INTEGER {
551 public(0),
552
553 private(1)
554 } DEFAULT public
555 }
556
557NonDeliveredInfo::=
558 SET {
559 [1]
560 IMPLICIT ReasonCode,
561
562 [2]
563 IMPLICIT DiagnosticCode OPTIONAL
564 }
565
566ReasonCode ::=
567 INTEGER {
568 transferFailure(0),
569
570 unableToTransfer(1),
571
572 conversionNotPerformed(2)
573 }
574
575DiagnosticCode ::=
576 INTEGER {
577 unrecognizedORName(0),
578
579 ambiguousORName(1),
580
581 mtaCongestion(2),
582
583 loopDetected(3),
584
585 uaUnavailable(4),
586
587 maximumTimeExpired(5),
588
589 encodedInformationTypesUnsupported(6),
590
591 contentTooLong(7),
592
593 conversionImpractical(8),
594
595 conversionProhibited(9),
596
597 implicitConversionNotResgistered(10),
598
599 invalidParameters(11)
600 }
601
602
603-- supplementary information
604
605SupplementaryInformation ::=
606 PrintableString -- length limited and for further study
607
608
609-- Probe MPDU
610
611ProbeMPDU ::=
612 ProbeEnvelope
613
614ProbeEnvelope ::=
615 SET {
616 probe
617 MPDUIdentifier,
618
619 originator
620 ORName,
621
622 ContentType,
623
624 UAContentId OPTIONAL,
625
626 original
627 EncodedInformationTypes
628 OPTIONAL,
629
630 TraceInformation,
631
632 PerMessageFlag DEFAULT {},
633
634 contentLength[0]
635 IMPLICIT INTEGER
636 OPTIONAL,
637
638 [1]
639 IMPLICIT SEQUENCE OF PerDomainBilateralInfo
640 OPTIONAL,
641
642 [2]
643 IMPLICIT SEQUENCE OF RecipientInfo
644}
645
646END
647
648%{
649
650void adios ();
651
652
653void parse_p2 (octstr, len)
654char *octstr;
655int len;
656{
657 PS ps;
658 PE pe;
659
660 if ((ps = ps_alloc (str_open)) == NULLPS)
661 adios (NULLCP, "ps_alloc");
662 if (str_setup (ps, octstr, len, 0) == NOTOK)
663 adios (NULLCP, "str_setup (%s)", ps_error (ps -> ps_errno));
664
665 if ((pe = ps2pe (ps)) == NULLPE)
666 adios (NULLCP, "ps2pe (%s)", ps_error (ps -> ps_errno));
667
668 (void) print_P2_UAPDU (pe, 1, NULLIP, NULLVP, NullParm);
669
670 pe_free (pe);
671 ps_free (ps);
672}
673
674%}