1 //
2 // h248.h
3 //
4 // Code automatically generated by asnparse.
5 //
6 
7 #if ! H323_DISABLE_H248
8 
9 #ifndef __H248_H
10 #define __H248_H
11 
12 #ifdef P_USE_PRAGMA
13 #pragma interface
14 #endif
15 
16 #include <ptclib/asner.h>
17 
18 //
19 // SecurityParmIndex
20 //
21 
22 class H248_SecurityParmIndex : public PASN_OctetString
23 {
24 #ifndef PASN_LEANANDMEAN
25     PCLASSINFO(H248_SecurityParmIndex, PASN_OctetString);
26 #endif
27   public:
28     H248_SecurityParmIndex(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
29 
30     H248_SecurityParmIndex(const char * v);
31     H248_SecurityParmIndex(const PString & v);
32     H248_SecurityParmIndex(const PBYTEArray & v);
33 
34     H248_SecurityParmIndex & operator=(const char * v);
35     H248_SecurityParmIndex & operator=(const PString & v);
36     H248_SecurityParmIndex & operator=(const PBYTEArray & v);
37     PObject * Clone() const;
38 };
39 
40 
41 //
42 // SequenceNum
43 //
44 
45 class H248_SequenceNum : public PASN_OctetString
46 {
47 #ifndef PASN_LEANANDMEAN
48     PCLASSINFO(H248_SequenceNum, PASN_OctetString);
49 #endif
50   public:
51     H248_SequenceNum(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
52 
53     H248_SequenceNum(const char * v);
54     H248_SequenceNum(const PString & v);
55     H248_SequenceNum(const PBYTEArray & v);
56 
57     H248_SequenceNum & operator=(const char * v);
58     H248_SequenceNum & operator=(const PString & v);
59     H248_SequenceNum & operator=(const PBYTEArray & v);
60     PObject * Clone() const;
61 };
62 
63 
64 //
65 // AuthData
66 //
67 
68 class H248_AuthData : public PASN_OctetString
69 {
70 #ifndef PASN_LEANANDMEAN
71     PCLASSINFO(H248_AuthData, PASN_OctetString);
72 #endif
73   public:
74     H248_AuthData(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
75 
76     H248_AuthData(const char * v);
77     H248_AuthData(const PString & v);
78     H248_AuthData(const PBYTEArray & v);
79 
80     H248_AuthData & operator=(const char * v);
81     H248_AuthData & operator=(const PString & v);
82     H248_AuthData & operator=(const PBYTEArray & v);
83     PObject * Clone() const;
84 };
85 
86 
87 //
88 // MId
89 //
90 
91 class H248_IP4Address;
92 class H248_IP6Address;
93 class H248_DomainName;
94 class H248_PathName;
95 
96 class H248_MId : public PASN_Choice
97 {
98 #ifndef PASN_LEANANDMEAN
99     PCLASSINFO(H248_MId, PASN_Choice);
100 #endif
101   public:
102     H248_MId(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
103 
104     enum Choices {
105       e_ip4Address,
106       e_ip6Address,
107       e_domainName,
108       e_deviceName,
109       e_mtpAddress
110     };
111 
112 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
113     operator H248_IP4Address &() const;
114 #else
115     operator H248_IP4Address &();
116     operator const H248_IP4Address &() const;
117 #endif
118 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
119     operator H248_IP6Address &() const;
120 #else
121     operator H248_IP6Address &();
122     operator const H248_IP6Address &() const;
123 #endif
124 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
125     operator H248_DomainName &() const;
126 #else
127     operator H248_DomainName &();
128     operator const H248_DomainName &() const;
129 #endif
130 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
131     operator H248_PathName &() const;
132 #else
133     operator H248_PathName &();
134     operator const H248_PathName &() const;
135 #endif
136 
137     PBoolean CreateObject();
138     PObject * Clone() const;
139 };
140 
141 
142 //
143 // DomainName
144 //
145 
146 class H248_DomainName : public PASN_Sequence
147 {
148 #ifndef PASN_LEANANDMEAN
149     PCLASSINFO(H248_DomainName, PASN_Sequence);
150 #endif
151   public:
152     H248_DomainName(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
153 
154     enum OptionalFields {
155       e_portNumber
156     };
157 
158     PASN_IA5String m_name;
159     PASN_Integer m_portNumber;
160 
161     PINDEX GetDataLength() const;
162     PBoolean Decode(PASN_Stream & strm);
163     void Encode(PASN_Stream & strm) const;
164 #ifndef PASN_NOPRINTON
165     void PrintOn(ostream & strm) const;
166 #endif
167     Comparison Compare(const PObject & obj) const;
168     PObject * Clone() const;
169 };
170 
171 
172 //
173 // IP4Address
174 //
175 
176 class H248_IP4Address : public PASN_Sequence
177 {
178 #ifndef PASN_LEANANDMEAN
179     PCLASSINFO(H248_IP4Address, PASN_Sequence);
180 #endif
181   public:
182     H248_IP4Address(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
183 
184     enum OptionalFields {
185       e_portNumber
186     };
187 
188     PASN_OctetString m_address;
189     PASN_Integer m_portNumber;
190 
191     PINDEX GetDataLength() const;
192     PBoolean Decode(PASN_Stream & strm);
193     void Encode(PASN_Stream & strm) const;
194 #ifndef PASN_NOPRINTON
195     void PrintOn(ostream & strm) const;
196 #endif
197     Comparison Compare(const PObject & obj) const;
198     PObject * Clone() const;
199 };
200 
201 
202 //
203 // IP6Address
204 //
205 
206 class H248_IP6Address : public PASN_Sequence
207 {
208 #ifndef PASN_LEANANDMEAN
209     PCLASSINFO(H248_IP6Address, PASN_Sequence);
210 #endif
211   public:
212     H248_IP6Address(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
213 
214     enum OptionalFields {
215       e_portNumber
216     };
217 
218     PASN_OctetString m_address;
219     PASN_Integer m_portNumber;
220 
221     PINDEX GetDataLength() const;
222     PBoolean Decode(PASN_Stream & strm);
223     void Encode(PASN_Stream & strm) const;
224 #ifndef PASN_NOPRINTON
225     void PrintOn(ostream & strm) const;
226 #endif
227     Comparison Compare(const PObject & obj) const;
228     PObject * Clone() const;
229 };
230 
231 
232 //
233 // PathName
234 //
235 
236 class H248_PathName : public PASN_IA5String
237 {
238 #ifndef PASN_LEANANDMEAN
239     PCLASSINFO(H248_PathName, PASN_IA5String);
240 #endif
241   public:
242     H248_PathName(unsigned tag = UniversalIA5String, TagClass tagClass = UniversalTagClass);
243 
244     H248_PathName & operator=(const char * v);
245     H248_PathName & operator=(const PString & v);
246     PObject * Clone() const;
247 };
248 
249 
250 //
251 // Transaction
252 //
253 
254 class H248_TransactionRequest;
255 class H248_TransactionPending;
256 class H248_TransactionReply;
257 class H248_TransactionResponseAck;
258 
259 class H248_Transaction : public PASN_Choice
260 {
261 #ifndef PASN_LEANANDMEAN
262     PCLASSINFO(H248_Transaction, PASN_Choice);
263 #endif
264   public:
265     H248_Transaction(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
266 
267     enum Choices {
268       e_transactionRequest,
269       e_transactionPending,
270       e_transactionReply,
271       e_transactionResponseAck
272     };
273 
274 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
275     operator H248_TransactionRequest &() const;
276 #else
277     operator H248_TransactionRequest &();
278     operator const H248_TransactionRequest &() const;
279 #endif
280 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
281     operator H248_TransactionPending &() const;
282 #else
283     operator H248_TransactionPending &();
284     operator const H248_TransactionPending &() const;
285 #endif
286 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
287     operator H248_TransactionReply &() const;
288 #else
289     operator H248_TransactionReply &();
290     operator const H248_TransactionReply &() const;
291 #endif
292 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
293     operator H248_TransactionResponseAck &() const;
294 #else
295     operator H248_TransactionResponseAck &();
296     operator const H248_TransactionResponseAck &() const;
297 #endif
298 
299     PBoolean CreateObject();
300     PObject * Clone() const;
301 };
302 
303 
304 //
305 // TransactionId
306 //
307 
308 class H248_TransactionId : public PASN_Integer
309 {
310 #ifndef PASN_LEANANDMEAN
311     PCLASSINFO(H248_TransactionId, PASN_Integer);
312 #endif
313   public:
314     H248_TransactionId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
315 
316     H248_TransactionId & operator=(int v);
317     H248_TransactionId & operator=(unsigned v);
318     PObject * Clone() const;
319 };
320 
321 
322 //
323 // TransactionPending
324 //
325 
326 class H248_TransactionPending : public PASN_Sequence
327 {
328 #ifndef PASN_LEANANDMEAN
329     PCLASSINFO(H248_TransactionPending, PASN_Sequence);
330 #endif
331   public:
332     H248_TransactionPending(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
333 
334     H248_TransactionId m_transactionId;
335 
336     PINDEX GetDataLength() const;
337     PBoolean Decode(PASN_Stream & strm);
338     void Encode(PASN_Stream & strm) const;
339 #ifndef PASN_NOPRINTON
340     void PrintOn(ostream & strm) const;
341 #endif
342     Comparison Compare(const PObject & obj) const;
343     PObject * Clone() const;
344 };
345 
346 
347 //
348 // TransactionResponseAck
349 //
350 
351 class H248_TransactionAck;
352 
353 class H248_TransactionResponseAck : public PASN_Array
354 {
355 #ifndef PASN_LEANANDMEAN
356     PCLASSINFO(H248_TransactionResponseAck, PASN_Array);
357 #endif
358   public:
359     H248_TransactionResponseAck(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
360 
361     PASN_Object * CreateObject() const;
362     H248_TransactionAck & operator[](PINDEX i) const;
363     PObject * Clone() const;
364 };
365 
366 
367 //
368 // TransactionAck
369 //
370 
371 class H248_TransactionAck : public PASN_Sequence
372 {
373 #ifndef PASN_LEANANDMEAN
374     PCLASSINFO(H248_TransactionAck, PASN_Sequence);
375 #endif
376   public:
377     H248_TransactionAck(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
378 
379     enum OptionalFields {
380       e_lastAck
381     };
382 
383     H248_TransactionId m_firstAck;
384     H248_TransactionId m_lastAck;
385 
386     PINDEX GetDataLength() const;
387     PBoolean Decode(PASN_Stream & strm);
388     void Encode(PASN_Stream & strm) const;
389 #ifndef PASN_NOPRINTON
390     void PrintOn(ostream & strm) const;
391 #endif
392     Comparison Compare(const PObject & obj) const;
393     PObject * Clone() const;
394 };
395 
396 
397 //
398 // ErrorCode
399 //
400 
401 class H248_ErrorCode : public PASN_Integer
402 {
403 #ifndef PASN_LEANANDMEAN
404     PCLASSINFO(H248_ErrorCode, PASN_Integer);
405 #endif
406   public:
407     H248_ErrorCode(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
408 
409     H248_ErrorCode & operator=(int v);
410     H248_ErrorCode & operator=(unsigned v);
411     PObject * Clone() const;
412 };
413 
414 
415 //
416 // ErrorText
417 //
418 
419 class H248_ErrorText : public PASN_IA5String
420 {
421 #ifndef PASN_LEANANDMEAN
422     PCLASSINFO(H248_ErrorText, PASN_IA5String);
423 #endif
424   public:
425     H248_ErrorText(unsigned tag = UniversalIA5String, TagClass tagClass = UniversalTagClass);
426 
427     H248_ErrorText & operator=(const char * v);
428     H248_ErrorText & operator=(const PString & v);
429     PObject * Clone() const;
430 };
431 
432 
433 //
434 // ContextID
435 //
436 
437 class H248_ContextID : public PASN_Integer
438 {
439 #ifndef PASN_LEANANDMEAN
440     PCLASSINFO(H248_ContextID, PASN_Integer);
441 #endif
442   public:
443     H248_ContextID(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
444 
445     H248_ContextID & operator=(int v);
446     H248_ContextID & operator=(unsigned v);
447     PObject * Clone() const;
448 };
449 
450 
451 //
452 // ContextAttrAuditRequest
453 //
454 
455 class H248_ContextAttrAuditRequest : public PASN_Sequence
456 {
457 #ifndef PASN_LEANANDMEAN
458     PCLASSINFO(H248_ContextAttrAuditRequest, PASN_Sequence);
459 #endif
460   public:
461     H248_ContextAttrAuditRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
462 
463     enum OptionalFields {
464       e_topology,
465       e_emergency,
466       e_priority
467     };
468 
469     PASN_Null m_topology;
470     PASN_Null m_emergency;
471     PASN_Null m_priority;
472 
473     PINDEX GetDataLength() const;
474     PBoolean Decode(PASN_Stream & strm);
475     void Encode(PASN_Stream & strm) const;
476 #ifndef PASN_NOPRINTON
477     void PrintOn(ostream & strm) const;
478 #endif
479     Comparison Compare(const PObject & obj) const;
480     PObject * Clone() const;
481 };
482 
483 
484 //
485 // Command
486 //
487 
488 class H248_AmmRequest;
489 class H248_SubtractRequest;
490 class H248_AuditRequest;
491 class H248_NotifyRequest;
492 class H248_ServiceChangeRequest;
493 
494 class H248_Command : public PASN_Choice
495 {
496 #ifndef PASN_LEANANDMEAN
497     PCLASSINFO(H248_Command, PASN_Choice);
498 #endif
499   public:
500     H248_Command(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
501 
502     enum Choices {
503       e_addReq,
504       e_moveReq,
505       e_modReq,
506       e_subtractReq,
507       e_auditCapRequest,
508       e_auditValueRequest,
509       e_notifyReq,
510       e_serviceChangeReq
511     };
512 
513 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
514     operator H248_AmmRequest &() const;
515 #else
516     operator H248_AmmRequest &();
517     operator const H248_AmmRequest &() const;
518 #endif
519 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
520     operator H248_SubtractRequest &() const;
521 #else
522     operator H248_SubtractRequest &();
523     operator const H248_SubtractRequest &() const;
524 #endif
525 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
526     operator H248_AuditRequest &() const;
527 #else
528     operator H248_AuditRequest &();
529     operator const H248_AuditRequest &() const;
530 #endif
531 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
532     operator H248_NotifyRequest &() const;
533 #else
534     operator H248_NotifyRequest &();
535     operator const H248_NotifyRequest &() const;
536 #endif
537 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
538     operator H248_ServiceChangeRequest &() const;
539 #else
540     operator H248_ServiceChangeRequest &();
541     operator const H248_ServiceChangeRequest &() const;
542 #endif
543 
544     PBoolean CreateObject();
545     PObject * Clone() const;
546 };
547 
548 
549 //
550 // CommandReply
551 //
552 
553 class H248_AmmsReply;
554 class H248_AuditReply;
555 class H248_NotifyReply;
556 class H248_ServiceChangeReply;
557 
558 class H248_CommandReply : public PASN_Choice
559 {
560 #ifndef PASN_LEANANDMEAN
561     PCLASSINFO(H248_CommandReply, PASN_Choice);
562 #endif
563   public:
564     H248_CommandReply(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
565 
566     enum Choices {
567       e_addReply,
568       e_moveReply,
569       e_modReply,
570       e_subtractReply,
571       e_auditCapReply,
572       e_auditValueReply,
573       e_notifyReply,
574       e_serviceChangeReply
575     };
576 
577 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
578     operator H248_AmmsReply &() const;
579 #else
580     operator H248_AmmsReply &();
581     operator const H248_AmmsReply &() const;
582 #endif
583 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
584     operator H248_AuditReply &() const;
585 #else
586     operator H248_AuditReply &();
587     operator const H248_AuditReply &() const;
588 #endif
589 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
590     operator H248_NotifyReply &() const;
591 #else
592     operator H248_NotifyReply &();
593     operator const H248_NotifyReply &() const;
594 #endif
595 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
596     operator H248_ServiceChangeReply &() const;
597 #else
598     operator H248_ServiceChangeReply &();
599     operator const H248_ServiceChangeReply &() const;
600 #endif
601 
602     PBoolean CreateObject();
603     PObject * Clone() const;
604 };
605 
606 
607 //
608 // AmmDescriptor
609 //
610 
611 class H248_MediaDescriptor;
612 class H248_ModemDescriptor;
613 class H248_MuxDescriptor;
614 class H248_EventsDescriptor;
615 class H248_EventBufferDescriptor;
616 class H248_SignalsDescriptor;
617 class H248_DigitMapDescriptor;
618 class H248_AuditDescriptor;
619 
620 class H248_AmmDescriptor : public PASN_Choice
621 {
622 #ifndef PASN_LEANANDMEAN
623     PCLASSINFO(H248_AmmDescriptor, PASN_Choice);
624 #endif
625   public:
626     H248_AmmDescriptor(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
627 
628     enum Choices {
629       e_mediaDescriptor,
630       e_modemDescriptor,
631       e_muxDescriptor,
632       e_eventsDescriptor,
633       e_eventBufferDescriptor,
634       e_signalsDescriptor,
635       e_digitMapDescriptor,
636       e_auditDescriptor
637     };
638 
639 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
640     operator H248_MediaDescriptor &() const;
641 #else
642     operator H248_MediaDescriptor &();
643     operator const H248_MediaDescriptor &() const;
644 #endif
645 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
646     operator H248_ModemDescriptor &() const;
647 #else
648     operator H248_ModemDescriptor &();
649     operator const H248_ModemDescriptor &() const;
650 #endif
651 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
652     operator H248_MuxDescriptor &() const;
653 #else
654     operator H248_MuxDescriptor &();
655     operator const H248_MuxDescriptor &() const;
656 #endif
657 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
658     operator H248_EventsDescriptor &() const;
659 #else
660     operator H248_EventsDescriptor &();
661     operator const H248_EventsDescriptor &() const;
662 #endif
663 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
664     operator H248_EventBufferDescriptor &() const;
665 #else
666     operator H248_EventBufferDescriptor &();
667     operator const H248_EventBufferDescriptor &() const;
668 #endif
669 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
670     operator H248_SignalsDescriptor &() const;
671 #else
672     operator H248_SignalsDescriptor &();
673     operator const H248_SignalsDescriptor &() const;
674 #endif
675 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
676     operator H248_DigitMapDescriptor &() const;
677 #else
678     operator H248_DigitMapDescriptor &();
679     operator const H248_DigitMapDescriptor &() const;
680 #endif
681 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
682     operator H248_AuditDescriptor &() const;
683 #else
684     operator H248_AuditDescriptor &();
685     operator const H248_AuditDescriptor &() const;
686 #endif
687 
688     PBoolean CreateObject();
689     PObject * Clone() const;
690 };
691 
692 
693 //
694 // AuditReply
695 //
696 
697 class H248_TerminationIDList;
698 class H248_ErrorDescriptor;
699 class H248_AuditResult;
700 
701 class H248_AuditReply : public PASN_Choice
702 {
703 #ifndef PASN_LEANANDMEAN
704     PCLASSINFO(H248_AuditReply, PASN_Choice);
705 #endif
706   public:
707     H248_AuditReply(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
708 
709     enum Choices {
710       e_contextAuditResult,
711       e_error,
712       e_auditResult
713     };
714 
715 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
716     operator H248_TerminationIDList &() const;
717 #else
718     operator H248_TerminationIDList &();
719     operator const H248_TerminationIDList &() const;
720 #endif
721 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
722     operator H248_ErrorDescriptor &() const;
723 #else
724     operator H248_ErrorDescriptor &();
725     operator const H248_ErrorDescriptor &() const;
726 #endif
727 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
728     operator H248_AuditResult &() const;
729 #else
730     operator H248_AuditResult &();
731     operator const H248_AuditResult &() const;
732 #endif
733 
734     PBoolean CreateObject();
735     PObject * Clone() const;
736 };
737 
738 
739 //
740 // TerminationAudit
741 //
742 
743 class H248_AuditReturnParameter;
744 
745 class H248_TerminationAudit : public PASN_Array
746 {
747 #ifndef PASN_LEANANDMEAN
748     PCLASSINFO(H248_TerminationAudit, PASN_Array);
749 #endif
750   public:
751     H248_TerminationAudit(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
752 
753     PASN_Object * CreateObject() const;
754     H248_AuditReturnParameter & operator[](PINDEX i) const;
755     PObject * Clone() const;
756 };
757 
758 
759 //
760 // AuditReturnParameter
761 //
762 
763 class H248_ErrorDescriptor;
764 class H248_MediaDescriptor;
765 class H248_ModemDescriptor;
766 class H248_MuxDescriptor;
767 class H248_EventsDescriptor;
768 class H248_EventBufferDescriptor;
769 class H248_SignalsDescriptor;
770 class H248_DigitMapDescriptor;
771 class H248_ObservedEventsDescriptor;
772 class H248_StatisticsDescriptor;
773 class H248_PackagesDescriptor;
774 class H248_AuditDescriptor;
775 
776 class H248_AuditReturnParameter : public PASN_Choice
777 {
778 #ifndef PASN_LEANANDMEAN
779     PCLASSINFO(H248_AuditReturnParameter, PASN_Choice);
780 #endif
781   public:
782     H248_AuditReturnParameter(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
783 
784     enum Choices {
785       e_errorDescriptor,
786       e_mediaDescriptor,
787       e_modemDescriptor,
788       e_muxDescriptor,
789       e_eventsDescriptor,
790       e_eventBufferDescriptor,
791       e_signalsDescriptor,
792       e_digitMapDescriptor,
793       e_observedEventsDescriptor,
794       e_statisticsDescriptor,
795       e_packagesDescriptor,
796       e_emptyDescriptors
797     };
798 
799 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
800     operator H248_ErrorDescriptor &() const;
801 #else
802     operator H248_ErrorDescriptor &();
803     operator const H248_ErrorDescriptor &() const;
804 #endif
805 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
806     operator H248_MediaDescriptor &() const;
807 #else
808     operator H248_MediaDescriptor &();
809     operator const H248_MediaDescriptor &() const;
810 #endif
811 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
812     operator H248_ModemDescriptor &() const;
813 #else
814     operator H248_ModemDescriptor &();
815     operator const H248_ModemDescriptor &() const;
816 #endif
817 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
818     operator H248_MuxDescriptor &() const;
819 #else
820     operator H248_MuxDescriptor &();
821     operator const H248_MuxDescriptor &() const;
822 #endif
823 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
824     operator H248_EventsDescriptor &() const;
825 #else
826     operator H248_EventsDescriptor &();
827     operator const H248_EventsDescriptor &() const;
828 #endif
829 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
830     operator H248_EventBufferDescriptor &() const;
831 #else
832     operator H248_EventBufferDescriptor &();
833     operator const H248_EventBufferDescriptor &() const;
834 #endif
835 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
836     operator H248_SignalsDescriptor &() const;
837 #else
838     operator H248_SignalsDescriptor &();
839     operator const H248_SignalsDescriptor &() const;
840 #endif
841 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
842     operator H248_DigitMapDescriptor &() const;
843 #else
844     operator H248_DigitMapDescriptor &();
845     operator const H248_DigitMapDescriptor &() const;
846 #endif
847 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
848     operator H248_ObservedEventsDescriptor &() const;
849 #else
850     operator H248_ObservedEventsDescriptor &();
851     operator const H248_ObservedEventsDescriptor &() const;
852 #endif
853 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
854     operator H248_StatisticsDescriptor &() const;
855 #else
856     operator H248_StatisticsDescriptor &();
857     operator const H248_StatisticsDescriptor &() const;
858 #endif
859 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
860     operator H248_PackagesDescriptor &() const;
861 #else
862     operator H248_PackagesDescriptor &();
863     operator const H248_PackagesDescriptor &() const;
864 #endif
865 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
866     operator H248_AuditDescriptor &() const;
867 #else
868     operator H248_AuditDescriptor &();
869     operator const H248_AuditDescriptor &() const;
870 #endif
871 
872     PBoolean CreateObject();
873     PObject * Clone() const;
874 };
875 
876 
877 //
878 // IndAuditParameter
879 //
880 
881 class H248_IndAudMediaDescriptor;
882 class H248_IndAudEventsDescriptor;
883 class H248_IndAudEventBufferDescriptor;
884 class H248_IndAudSignalsDescriptor;
885 class H248_IndAudDigitMapDescriptor;
886 class H248_IndAudStatisticsDescriptor;
887 class H248_IndAudPackagesDescriptor;
888 
889 class H248_IndAuditParameter : public PASN_Choice
890 {
891 #ifndef PASN_LEANANDMEAN
892     PCLASSINFO(H248_IndAuditParameter, PASN_Choice);
893 #endif
894   public:
895     H248_IndAuditParameter(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
896 
897     enum Choices {
898       e_indaudmediaDescriptor,
899       e_indaudeventsDescriptor,
900       e_indaudeventBufferDescriptor,
901       e_indaudsignalsDescriptor,
902       e_indauddigitMapDescriptor,
903       e_indaudstatisticsDescriptor,
904       e_indaudpackagesDescriptor
905     };
906 
907 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
908     operator H248_IndAudMediaDescriptor &() const;
909 #else
910     operator H248_IndAudMediaDescriptor &();
911     operator const H248_IndAudMediaDescriptor &() const;
912 #endif
913 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
914     operator H248_IndAudEventsDescriptor &() const;
915 #else
916     operator H248_IndAudEventsDescriptor &();
917     operator const H248_IndAudEventsDescriptor &() const;
918 #endif
919 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
920     operator H248_IndAudEventBufferDescriptor &() const;
921 #else
922     operator H248_IndAudEventBufferDescriptor &();
923     operator const H248_IndAudEventBufferDescriptor &() const;
924 #endif
925 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
926     operator H248_IndAudSignalsDescriptor &() const;
927 #else
928     operator H248_IndAudSignalsDescriptor &();
929     operator const H248_IndAudSignalsDescriptor &() const;
930 #endif
931 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
932     operator H248_IndAudDigitMapDescriptor &() const;
933 #else
934     operator H248_IndAudDigitMapDescriptor &();
935     operator const H248_IndAudDigitMapDescriptor &() const;
936 #endif
937 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
938     operator H248_IndAudStatisticsDescriptor &() const;
939 #else
940     operator H248_IndAudStatisticsDescriptor &();
941     operator const H248_IndAudStatisticsDescriptor &() const;
942 #endif
943 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
944     operator H248_IndAudPackagesDescriptor &() const;
945 #else
946     operator H248_IndAudPackagesDescriptor &();
947     operator const H248_IndAudPackagesDescriptor &() const;
948 #endif
949 
950     PBoolean CreateObject();
951     PObject * Clone() const;
952 };
953 
954 
955 //
956 // IndAudPropertyGroup
957 //
958 
959 class H248_IndAudPropertyParm;
960 
961 class H248_IndAudPropertyGroup : public PASN_Array
962 {
963 #ifndef PASN_LEANANDMEAN
964     PCLASSINFO(H248_IndAudPropertyGroup, PASN_Array);
965 #endif
966   public:
967     H248_IndAudPropertyGroup(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
968 
969     PASN_Object * CreateObject() const;
970     H248_IndAudPropertyParm & operator[](PINDEX i) const;
971     PObject * Clone() const;
972 };
973 
974 
975 //
976 // IndAudSignalsDescriptor
977 //
978 
979 class H248_IndAudSignal;
980 class H248_IndAudSeqSigList;
981 
982 class H248_IndAudSignalsDescriptor : public PASN_Choice
983 {
984 #ifndef PASN_LEANANDMEAN
985     PCLASSINFO(H248_IndAudSignalsDescriptor, PASN_Choice);
986 #endif
987   public:
988     H248_IndAudSignalsDescriptor(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
989 
990     enum Choices {
991       e_signal,
992       e_seqSigList
993     };
994 
995 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
996     operator H248_IndAudSignal &() const;
997 #else
998     operator H248_IndAudSignal &();
999     operator const H248_IndAudSignal &() const;
1000 #endif
1001 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1002     operator H248_IndAudSeqSigList &() const;
1003 #else
1004     operator H248_IndAudSeqSigList &();
1005     operator const H248_IndAudSeqSigList &() const;
1006 #endif
1007 
1008     PBoolean CreateObject();
1009     PObject * Clone() const;
1010 };
1011 
1012 
1013 //
1014 // ServiceChangeResult
1015 //
1016 
1017 class H248_ErrorDescriptor;
1018 class H248_ServiceChangeResParm;
1019 
1020 class H248_ServiceChangeResult : public PASN_Choice
1021 {
1022 #ifndef PASN_LEANANDMEAN
1023     PCLASSINFO(H248_ServiceChangeResult, PASN_Choice);
1024 #endif
1025   public:
1026     H248_ServiceChangeResult(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
1027 
1028     enum Choices {
1029       e_errorDescriptor,
1030       e_serviceChangeResParms
1031     };
1032 
1033 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1034     operator H248_ErrorDescriptor &() const;
1035 #else
1036     operator H248_ErrorDescriptor &();
1037     operator const H248_ErrorDescriptor &() const;
1038 #endif
1039 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1040     operator H248_ServiceChangeResParm &() const;
1041 #else
1042     operator H248_ServiceChangeResParm &();
1043     operator const H248_ServiceChangeResParm &() const;
1044 #endif
1045 
1046     PBoolean CreateObject();
1047     PObject * Clone() const;
1048 };
1049 
1050 
1051 //
1052 // WildcardField
1053 //
1054 
1055 class H248_WildcardField : public PASN_OctetString
1056 {
1057 #ifndef PASN_LEANANDMEAN
1058     PCLASSINFO(H248_WildcardField, PASN_OctetString);
1059 #endif
1060   public:
1061     H248_WildcardField(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
1062 
1063     H248_WildcardField(const char * v);
1064     H248_WildcardField(const PString & v);
1065     H248_WildcardField(const PBYTEArray & v);
1066 
1067     H248_WildcardField & operator=(const char * v);
1068     H248_WildcardField & operator=(const PString & v);
1069     H248_WildcardField & operator=(const PBYTEArray & v);
1070     PObject * Clone() const;
1071 };
1072 
1073 
1074 //
1075 // TerminationIDList
1076 //
1077 
1078 class H248_TerminationID;
1079 
1080 class H248_TerminationIDList : public PASN_Array
1081 {
1082 #ifndef PASN_LEANANDMEAN
1083     PCLASSINFO(H248_TerminationIDList, PASN_Array);
1084 #endif
1085   public:
1086     H248_TerminationIDList(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1087 
1088     PASN_Object * CreateObject() const;
1089     H248_TerminationID & operator[](PINDEX i) const;
1090     PObject * Clone() const;
1091 };
1092 
1093 
1094 //
1095 // StreamMode
1096 //
1097 
1098 class H248_StreamMode : public PASN_Enumeration
1099 {
1100 #ifndef PASN_LEANANDMEAN
1101     PCLASSINFO(H248_StreamMode, PASN_Enumeration);
1102 #endif
1103   public:
1104     H248_StreamMode(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
1105 
1106     enum Enumerations {
1107       e_sendOnly,
1108       e_recvOnly,
1109       e_sendRecv,
1110       e_inactive,
1111       e_loopBack
1112     };
1113 
1114     H248_StreamMode & operator=(unsigned v);
1115     PObject * Clone() const;
1116 };
1117 
1118 
1119 //
1120 // Name
1121 //
1122 
1123 class H248_Name : public PASN_OctetString
1124 {
1125 #ifndef PASN_LEANANDMEAN
1126     PCLASSINFO(H248_Name, PASN_OctetString);
1127 #endif
1128   public:
1129     H248_Name(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
1130 
1131     H248_Name(const char * v);
1132     H248_Name(const PString & v);
1133     H248_Name(const PBYTEArray & v);
1134 
1135     H248_Name & operator=(const char * v);
1136     H248_Name & operator=(const PString & v);
1137     H248_Name & operator=(const PBYTEArray & v);
1138     PObject * Clone() const;
1139 };
1140 
1141 
1142 //
1143 // PkgdName
1144 //
1145 
1146 class H248_PkgdName : public PASN_OctetString
1147 {
1148 #ifndef PASN_LEANANDMEAN
1149     PCLASSINFO(H248_PkgdName, PASN_OctetString);
1150 #endif
1151   public:
1152     H248_PkgdName(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
1153 
1154     H248_PkgdName(const char * v);
1155     H248_PkgdName(const PString & v);
1156     H248_PkgdName(const PBYTEArray & v);
1157 
1158     H248_PkgdName & operator=(const char * v);
1159     H248_PkgdName & operator=(const PString & v);
1160     H248_PkgdName & operator=(const PBYTEArray & v);
1161     PObject * Clone() const;
1162 };
1163 
1164 
1165 //
1166 // Relation
1167 //
1168 
1169 class H248_Relation : public PASN_Enumeration
1170 {
1171 #ifndef PASN_LEANANDMEAN
1172     PCLASSINFO(H248_Relation, PASN_Enumeration);
1173 #endif
1174   public:
1175     H248_Relation(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
1176 
1177     enum Enumerations {
1178       e_greaterThan,
1179       e_smallerThan,
1180       e_unequalTo
1181     };
1182 
1183     H248_Relation & operator=(unsigned v);
1184     PObject * Clone() const;
1185 };
1186 
1187 
1188 //
1189 // PropertyGroup
1190 //
1191 
1192 class H248_PropertyParm;
1193 
1194 class H248_PropertyGroup : public PASN_Array
1195 {
1196 #ifndef PASN_LEANANDMEAN
1197     PCLASSINFO(H248_PropertyGroup, PASN_Array);
1198 #endif
1199   public:
1200     H248_PropertyGroup(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1201 
1202     PASN_Object * CreateObject() const;
1203     H248_PropertyParm & operator[](PINDEX i) const;
1204     PObject * Clone() const;
1205 };
1206 
1207 
1208 //
1209 // EventBufferControl
1210 //
1211 
1212 class H248_EventBufferControl : public PASN_Enumeration
1213 {
1214 #ifndef PASN_LEANANDMEAN
1215     PCLASSINFO(H248_EventBufferControl, PASN_Enumeration);
1216 #endif
1217   public:
1218     H248_EventBufferControl(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
1219 
1220     enum Enumerations {
1221       e_off,
1222       e_lockStep
1223     };
1224 
1225     H248_EventBufferControl & operator=(unsigned v);
1226     PObject * Clone() const;
1227 };
1228 
1229 
1230 //
1231 // ServiceState
1232 //
1233 
1234 class H248_ServiceState : public PASN_Enumeration
1235 {
1236 #ifndef PASN_LEANANDMEAN
1237     PCLASSINFO(H248_ServiceState, PASN_Enumeration);
1238 #endif
1239   public:
1240     H248_ServiceState(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
1241 
1242     enum Enumerations {
1243       e_test,
1244       e_outOfSvc,
1245       e_inSvc
1246     };
1247 
1248     H248_ServiceState & operator=(unsigned v);
1249     PObject * Clone() const;
1250 };
1251 
1252 
1253 //
1254 // MuxType
1255 //
1256 
1257 class H248_MuxType : public PASN_Enumeration
1258 {
1259 #ifndef PASN_LEANANDMEAN
1260     PCLASSINFO(H248_MuxType, PASN_Enumeration);
1261 #endif
1262   public:
1263     H248_MuxType(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
1264 
1265     enum Enumerations {
1266       e_h221,
1267       e_h223,
1268       e_h226,
1269       e_v76,
1270       e_nx64k
1271     };
1272 
1273     H248_MuxType & operator=(unsigned v);
1274     PObject * Clone() const;
1275 };
1276 
1277 
1278 //
1279 // StreamID
1280 //
1281 
1282 class H248_StreamID : public PASN_Integer
1283 {
1284 #ifndef PASN_LEANANDMEAN
1285     PCLASSINFO(H248_StreamID, PASN_Integer);
1286 #endif
1287   public:
1288     H248_StreamID(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
1289 
1290     H248_StreamID & operator=(int v);
1291     H248_StreamID & operator=(unsigned v);
1292     PObject * Clone() const;
1293 };
1294 
1295 
1296 //
1297 // EventDM
1298 //
1299 
1300 class H248_DigitMapName;
1301 class H248_DigitMapValue;
1302 
1303 class H248_EventDM : public PASN_Choice
1304 {
1305 #ifndef PASN_LEANANDMEAN
1306     PCLASSINFO(H248_EventDM, PASN_Choice);
1307 #endif
1308   public:
1309     H248_EventDM(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
1310 
1311     enum Choices {
1312       e_digitMapName,
1313       e_digitMapValue
1314     };
1315 
1316 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1317     operator H248_DigitMapName &() const;
1318 #else
1319     operator H248_DigitMapName &();
1320     operator const H248_DigitMapName &() const;
1321 #endif
1322 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1323     operator H248_DigitMapValue &() const;
1324 #else
1325     operator H248_DigitMapValue &();
1326     operator const H248_DigitMapValue &() const;
1327 #endif
1328 
1329     PBoolean CreateObject();
1330     PObject * Clone() const;
1331 };
1332 
1333 
1334 //
1335 // EventBufferDescriptor
1336 //
1337 
1338 class H248_EventSpec;
1339 
1340 class H248_EventBufferDescriptor : public PASN_Array
1341 {
1342 #ifndef PASN_LEANANDMEAN
1343     PCLASSINFO(H248_EventBufferDescriptor, PASN_Array);
1344 #endif
1345   public:
1346     H248_EventBufferDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1347 
1348     PASN_Object * CreateObject() const;
1349     H248_EventSpec & operator[](PINDEX i) const;
1350     PObject * Clone() const;
1351 };
1352 
1353 
1354 //
1355 // SignalsDescriptor
1356 //
1357 
1358 class H248_SignalRequest;
1359 
1360 class H248_SignalsDescriptor : public PASN_Array
1361 {
1362 #ifndef PASN_LEANANDMEAN
1363     PCLASSINFO(H248_SignalsDescriptor, PASN_Array);
1364 #endif
1365   public:
1366     H248_SignalsDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1367 
1368     PASN_Object * CreateObject() const;
1369     H248_SignalRequest & operator[](PINDEX i) const;
1370     PObject * Clone() const;
1371 };
1372 
1373 
1374 //
1375 // SignalRequest
1376 //
1377 
1378 class H248_Signal;
1379 class H248_SeqSigList;
1380 
1381 class H248_SignalRequest : public PASN_Choice
1382 {
1383 #ifndef PASN_LEANANDMEAN
1384     PCLASSINFO(H248_SignalRequest, PASN_Choice);
1385 #endif
1386   public:
1387     H248_SignalRequest(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
1388 
1389     enum Choices {
1390       e_signal,
1391       e_seqSigList
1392     };
1393 
1394 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1395     operator H248_Signal &() const;
1396 #else
1397     operator H248_Signal &();
1398     operator const H248_Signal &() const;
1399 #endif
1400 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1401     operator H248_SeqSigList &() const;
1402 #else
1403     operator H248_SeqSigList &();
1404     operator const H248_SeqSigList &() const;
1405 #endif
1406 
1407     PBoolean CreateObject();
1408     PObject * Clone() const;
1409 };
1410 
1411 
1412 //
1413 // SignalType
1414 //
1415 
1416 class H248_SignalType : public PASN_Enumeration
1417 {
1418 #ifndef PASN_LEANANDMEAN
1419     PCLASSINFO(H248_SignalType, PASN_Enumeration);
1420 #endif
1421   public:
1422     H248_SignalType(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
1423 
1424     enum Enumerations {
1425       e_brief,
1426       e_onOff,
1427       e_timeOut
1428     };
1429 
1430     H248_SignalType & operator=(unsigned v);
1431     PObject * Clone() const;
1432 };
1433 
1434 
1435 //
1436 // SignalName
1437 //
1438 
1439 class H248_SignalName : public H248_PkgdName
1440 {
1441 #ifndef PASN_LEANANDMEAN
1442     PCLASSINFO(H248_SignalName, H248_PkgdName);
1443 #endif
1444   public:
1445     H248_SignalName(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
1446 
1447     H248_SignalName(const char * v);
1448     H248_SignalName(const PString & v);
1449     H248_SignalName(const PBYTEArray & v);
1450 
1451     H248_SignalName & operator=(const char * v);
1452     H248_SignalName & operator=(const PString & v);
1453     H248_SignalName & operator=(const PBYTEArray & v);
1454     PObject * Clone() const;
1455 };
1456 
1457 
1458 //
1459 // NotifyCompletion
1460 //
1461 
1462 class H248_NotifyCompletion : public PASN_BitString
1463 {
1464 #ifndef PASN_LEANANDMEAN
1465     PCLASSINFO(H248_NotifyCompletion, PASN_BitString);
1466 #endif
1467   public:
1468     H248_NotifyCompletion(unsigned tag = UniversalBitString, TagClass tagClass = UniversalTagClass);
1469 
1470     PObject * Clone() const;
1471 };
1472 
1473 
1474 //
1475 // RequestID
1476 //
1477 
1478 class H248_RequestID : public PASN_Integer
1479 {
1480 #ifndef PASN_LEANANDMEAN
1481     PCLASSINFO(H248_RequestID, PASN_Integer);
1482 #endif
1483   public:
1484     H248_RequestID(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
1485 
1486     H248_RequestID & operator=(int v);
1487     H248_RequestID & operator=(unsigned v);
1488     PObject * Clone() const;
1489 };
1490 
1491 
1492 //
1493 // ModemType
1494 //
1495 
1496 class H248_ModemType : public PASN_Enumeration
1497 {
1498 #ifndef PASN_LEANANDMEAN
1499     PCLASSINFO(H248_ModemType, PASN_Enumeration);
1500 #endif
1501   public:
1502     H248_ModemType(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
1503 
1504     enum Enumerations {
1505       e_v18,
1506       e_v22,
1507       e_v22bis,
1508       e_v32,
1509       e_v32bis,
1510       e_v34,
1511       e_v90,
1512       e_v91,
1513       e_synchISDN
1514     };
1515 
1516     H248_ModemType & operator=(unsigned v);
1517     PObject * Clone() const;
1518 };
1519 
1520 
1521 //
1522 // DigitMapName
1523 //
1524 
1525 class H248_DigitMapName : public H248_Name
1526 {
1527 #ifndef PASN_LEANANDMEAN
1528     PCLASSINFO(H248_DigitMapName, H248_Name);
1529 #endif
1530   public:
1531     H248_DigitMapName(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
1532 
1533     H248_DigitMapName(const char * v);
1534     H248_DigitMapName(const PString & v);
1535     H248_DigitMapName(const PBYTEArray & v);
1536 
1537     H248_DigitMapName & operator=(const char * v);
1538     H248_DigitMapName & operator=(const PString & v);
1539     H248_DigitMapName & operator=(const PBYTEArray & v);
1540     PObject * Clone() const;
1541 };
1542 
1543 
1544 //
1545 // DigitMapValue
1546 //
1547 
1548 class H248_DigitMapValue : public PASN_Sequence
1549 {
1550 #ifndef PASN_LEANANDMEAN
1551     PCLASSINFO(H248_DigitMapValue, PASN_Sequence);
1552 #endif
1553   public:
1554     H248_DigitMapValue(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1555 
1556     enum OptionalFields {
1557       e_startTimer,
1558       e_shortTimer,
1559       e_longTimer,
1560       e_durationTimer
1561     };
1562 
1563     PASN_Integer m_startTimer;
1564     PASN_Integer m_shortTimer;
1565     PASN_Integer m_longTimer;
1566     PASN_IA5String m_digitMapBody;
1567     PASN_Integer m_durationTimer;
1568 
1569     PINDEX GetDataLength() const;
1570     PBoolean Decode(PASN_Stream & strm);
1571     void Encode(PASN_Stream & strm) const;
1572 #ifndef PASN_NOPRINTON
1573     void PrintOn(ostream & strm) const;
1574 #endif
1575     Comparison Compare(const PObject & obj) const;
1576     PObject * Clone() const;
1577 };
1578 
1579 
1580 //
1581 // ServiceChangeAddress
1582 //
1583 
1584 class H248_IP4Address;
1585 class H248_IP6Address;
1586 class H248_DomainName;
1587 class H248_PathName;
1588 
1589 class H248_ServiceChangeAddress : public PASN_Choice
1590 {
1591 #ifndef PASN_LEANANDMEAN
1592     PCLASSINFO(H248_ServiceChangeAddress, PASN_Choice);
1593 #endif
1594   public:
1595     H248_ServiceChangeAddress(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
1596 
1597     enum Choices {
1598       e_portNumber,
1599       e_ip4Address,
1600       e_ip6Address,
1601       e_domainName,
1602       e_deviceName,
1603       e_mtpAddress
1604     };
1605 
1606 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1607     operator H248_IP4Address &() const;
1608 #else
1609     operator H248_IP4Address &();
1610     operator const H248_IP4Address &() const;
1611 #endif
1612 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1613     operator H248_IP6Address &() const;
1614 #else
1615     operator H248_IP6Address &();
1616     operator const H248_IP6Address &() const;
1617 #endif
1618 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1619     operator H248_DomainName &() const;
1620 #else
1621     operator H248_DomainName &();
1622     operator const H248_DomainName &() const;
1623 #endif
1624 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1625     operator H248_PathName &() const;
1626 #else
1627     operator H248_PathName &();
1628     operator const H248_PathName &() const;
1629 #endif
1630 
1631     PBoolean CreateObject();
1632     PObject * Clone() const;
1633 };
1634 
1635 
1636 //
1637 // ServiceChangeMethod
1638 //
1639 
1640 class H248_ServiceChangeMethod : public PASN_Enumeration
1641 {
1642 #ifndef PASN_LEANANDMEAN
1643     PCLASSINFO(H248_ServiceChangeMethod, PASN_Enumeration);
1644 #endif
1645   public:
1646     H248_ServiceChangeMethod(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
1647 
1648     enum Enumerations {
1649       e_failover,
1650       e_forced,
1651       e_graceful,
1652       e_restart,
1653       e_disconnected,
1654       e_handOff
1655     };
1656 
1657     H248_ServiceChangeMethod & operator=(unsigned v);
1658     PObject * Clone() const;
1659 };
1660 
1661 
1662 //
1663 // ServiceChangeProfile
1664 //
1665 
1666 class H248_ServiceChangeProfile : public PASN_Sequence
1667 {
1668 #ifndef PASN_LEANANDMEAN
1669     PCLASSINFO(H248_ServiceChangeProfile, PASN_Sequence);
1670 #endif
1671   public:
1672     H248_ServiceChangeProfile(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1673 
1674     PASN_IA5String m_profileName;
1675 
1676     PINDEX GetDataLength() const;
1677     PBoolean Decode(PASN_Stream & strm);
1678     void Encode(PASN_Stream & strm) const;
1679 #ifndef PASN_NOPRINTON
1680     void PrintOn(ostream & strm) const;
1681 #endif
1682     Comparison Compare(const PObject & obj) const;
1683     PObject * Clone() const;
1684 };
1685 
1686 
1687 //
1688 // PackagesDescriptor
1689 //
1690 
1691 class H248_PackagesItem;
1692 
1693 class H248_PackagesDescriptor : public PASN_Array
1694 {
1695 #ifndef PASN_LEANANDMEAN
1696     PCLASSINFO(H248_PackagesDescriptor, PASN_Array);
1697 #endif
1698   public:
1699     H248_PackagesDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1700 
1701     PASN_Object * CreateObject() const;
1702     H248_PackagesItem & operator[](PINDEX i) const;
1703     PObject * Clone() const;
1704 };
1705 
1706 
1707 //
1708 // PackagesItem
1709 //
1710 
1711 class H248_PackagesItem : public PASN_Sequence
1712 {
1713 #ifndef PASN_LEANANDMEAN
1714     PCLASSINFO(H248_PackagesItem, PASN_Sequence);
1715 #endif
1716   public:
1717     H248_PackagesItem(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1718 
1719     H248_Name m_packageName;
1720     PASN_Integer m_packageVersion;
1721 
1722     PINDEX GetDataLength() const;
1723     PBoolean Decode(PASN_Stream & strm);
1724     void Encode(PASN_Stream & strm) const;
1725 #ifndef PASN_NOPRINTON
1726     void PrintOn(ostream & strm) const;
1727 #endif
1728     Comparison Compare(const PObject & obj) const;
1729     PObject * Clone() const;
1730 };
1731 
1732 
1733 //
1734 // StatisticsDescriptor
1735 //
1736 
1737 class H248_StatisticsParameter;
1738 
1739 class H248_StatisticsDescriptor : public PASN_Array
1740 {
1741 #ifndef PASN_LEANANDMEAN
1742     PCLASSINFO(H248_StatisticsDescriptor, PASN_Array);
1743 #endif
1744   public:
1745     H248_StatisticsDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1746 
1747     PASN_Object * CreateObject() const;
1748     H248_StatisticsParameter & operator[](PINDEX i) const;
1749     PObject * Clone() const;
1750 };
1751 
1752 
1753 //
1754 // NonStandardIdentifier
1755 //
1756 
1757 class H248_H221NonStandard;
1758 
1759 class H248_NonStandardIdentifier : public PASN_Choice
1760 {
1761 #ifndef PASN_LEANANDMEAN
1762     PCLASSINFO(H248_NonStandardIdentifier, PASN_Choice);
1763 #endif
1764   public:
1765     H248_NonStandardIdentifier(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
1766 
1767     enum Choices {
1768       e_object,
1769       e_h221NonStandard,
1770       e_experimental
1771     };
1772 
1773 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1774     operator H248_H221NonStandard &() const;
1775 #else
1776     operator H248_H221NonStandard &();
1777     operator const H248_H221NonStandard &() const;
1778 #endif
1779 
1780     PBoolean CreateObject();
1781     PObject * Clone() const;
1782 };
1783 
1784 
1785 //
1786 // H221NonStandard
1787 //
1788 
1789 class H248_H221NonStandard : public PASN_Sequence
1790 {
1791 #ifndef PASN_LEANANDMEAN
1792     PCLASSINFO(H248_H221NonStandard, PASN_Sequence);
1793 #endif
1794   public:
1795     H248_H221NonStandard(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1796 
1797     PASN_Integer m_t35CountryCode1;
1798     PASN_Integer m_t35CountryCode2;
1799     PASN_Integer m_t35Extension;
1800     PASN_Integer m_manufacturerCode;
1801 
1802     PINDEX GetDataLength() const;
1803     PBoolean Decode(PASN_Stream & strm);
1804     void Encode(PASN_Stream & strm) const;
1805 #ifndef PASN_NOPRINTON
1806     void PrintOn(ostream & strm) const;
1807 #endif
1808     Comparison Compare(const PObject & obj) const;
1809     PObject * Clone() const;
1810 };
1811 
1812 
1813 //
1814 // TimeNotation
1815 //
1816 
1817 class H248_TimeNotation : public PASN_Sequence
1818 {
1819 #ifndef PASN_LEANANDMEAN
1820     PCLASSINFO(H248_TimeNotation, PASN_Sequence);
1821 #endif
1822   public:
1823     H248_TimeNotation(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1824 
1825     PASN_IA5String m_date;
1826     PASN_IA5String m_time;
1827 
1828     PINDEX GetDataLength() const;
1829     PBoolean Decode(PASN_Stream & strm);
1830     void Encode(PASN_Stream & strm) const;
1831 #ifndef PASN_NOPRINTON
1832     void PrintOn(ostream & strm) const;
1833 #endif
1834     Comparison Compare(const PObject & obj) const;
1835     PObject * Clone() const;
1836 };
1837 
1838 
1839 //
1840 // Value
1841 //
1842 
1843 class H248_Value : public PASN_Array
1844 {
1845 #ifndef PASN_LEANANDMEAN
1846     PCLASSINFO(H248_Value, PASN_Array);
1847 #endif
1848   public:
1849     H248_Value(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1850 
1851     PASN_Object * CreateObject() const;
1852     PASN_OctetString & operator[](PINDEX i) const;
1853     PObject * Clone() const;
1854 };
1855 
1856 
1857 //
1858 // Message_messageBody
1859 //
1860 
1861 class H248_ErrorDescriptor;
1862 class H248_ArrayOf_Transaction;
1863 
1864 class H248_Message_messageBody : public PASN_Choice
1865 {
1866 #ifndef PASN_LEANANDMEAN
1867     PCLASSINFO(H248_Message_messageBody, PASN_Choice);
1868 #endif
1869   public:
1870     H248_Message_messageBody(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
1871 
1872     enum Choices {
1873       e_messageError,
1874       e_transactions
1875     };
1876 
1877 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1878     operator H248_ErrorDescriptor &() const;
1879 #else
1880     operator H248_ErrorDescriptor &();
1881     operator const H248_ErrorDescriptor &() const;
1882 #endif
1883 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1884     operator H248_ArrayOf_Transaction &() const;
1885 #else
1886     operator H248_ArrayOf_Transaction &();
1887     operator const H248_ArrayOf_Transaction &() const;
1888 #endif
1889 
1890     PBoolean CreateObject();
1891     PObject * Clone() const;
1892 };
1893 
1894 
1895 //
1896 // ArrayOf_ActionRequest
1897 //
1898 
1899 class H248_ActionRequest;
1900 
1901 class H248_ArrayOf_ActionRequest : public PASN_Array
1902 {
1903 #ifndef PASN_LEANANDMEAN
1904     PCLASSINFO(H248_ArrayOf_ActionRequest, PASN_Array);
1905 #endif
1906   public:
1907     H248_ArrayOf_ActionRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1908 
1909     PASN_Object * CreateObject() const;
1910     H248_ActionRequest & operator[](PINDEX i) const;
1911     PObject * Clone() const;
1912 };
1913 
1914 
1915 //
1916 // TransactionReply_transactionResult
1917 //
1918 
1919 class H248_ErrorDescriptor;
1920 class H248_ArrayOf_ActionReply;
1921 
1922 class H248_TransactionReply_transactionResult : public PASN_Choice
1923 {
1924 #ifndef PASN_LEANANDMEAN
1925     PCLASSINFO(H248_TransactionReply_transactionResult, PASN_Choice);
1926 #endif
1927   public:
1928     H248_TransactionReply_transactionResult(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
1929 
1930     enum Choices {
1931       e_transactionError,
1932       e_actionReplies
1933     };
1934 
1935 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1936     operator H248_ErrorDescriptor &() const;
1937 #else
1938     operator H248_ErrorDescriptor &();
1939     operator const H248_ErrorDescriptor &() const;
1940 #endif
1941 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1942     operator H248_ArrayOf_ActionReply &() const;
1943 #else
1944     operator H248_ArrayOf_ActionReply &();
1945     operator const H248_ArrayOf_ActionReply &() const;
1946 #endif
1947 
1948     PBoolean CreateObject();
1949     PObject * Clone() const;
1950 };
1951 
1952 
1953 //
1954 // ArrayOf_CommandRequest
1955 //
1956 
1957 class H248_CommandRequest;
1958 
1959 class H248_ArrayOf_CommandRequest : public PASN_Array
1960 {
1961 #ifndef PASN_LEANANDMEAN
1962     PCLASSINFO(H248_ArrayOf_CommandRequest, PASN_Array);
1963 #endif
1964   public:
1965     H248_ArrayOf_CommandRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1966 
1967     PASN_Object * CreateObject() const;
1968     H248_CommandRequest & operator[](PINDEX i) const;
1969     PObject * Clone() const;
1970 };
1971 
1972 
1973 //
1974 // ArrayOf_CommandReply
1975 //
1976 
1977 class H248_CommandReply;
1978 
1979 class H248_ArrayOf_CommandReply : public PASN_Array
1980 {
1981 #ifndef PASN_LEANANDMEAN
1982     PCLASSINFO(H248_ArrayOf_CommandReply, PASN_Array);
1983 #endif
1984   public:
1985     H248_ArrayOf_CommandReply(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
1986 
1987     PASN_Object * CreateObject() const;
1988     H248_CommandReply & operator[](PINDEX i) const;
1989     PObject * Clone() const;
1990 };
1991 
1992 
1993 //
1994 // ArrayOf_TopologyRequest
1995 //
1996 
1997 class H248_TopologyRequest;
1998 
1999 class H248_ArrayOf_TopologyRequest : public PASN_Array
2000 {
2001 #ifndef PASN_LEANANDMEAN
2002     PCLASSINFO(H248_ArrayOf_TopologyRequest, PASN_Array);
2003 #endif
2004   public:
2005     H248_ArrayOf_TopologyRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2006 
2007     PASN_Object * CreateObject() const;
2008     H248_TopologyRequest & operator[](PINDEX i) const;
2009     PObject * Clone() const;
2010 };
2011 
2012 
2013 //
2014 // TopologyRequest_topologyDirection
2015 //
2016 
2017 class H248_TopologyRequest_topologyDirection : public PASN_Enumeration
2018 {
2019 #ifndef PASN_LEANANDMEAN
2020     PCLASSINFO(H248_TopologyRequest_topologyDirection, PASN_Enumeration);
2021 #endif
2022   public:
2023     H248_TopologyRequest_topologyDirection(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
2024 
2025     enum Enumerations {
2026       e_bothway,
2027       e_isolate,
2028       e_oneway
2029     };
2030 
2031     H248_TopologyRequest_topologyDirection & operator=(unsigned v);
2032     PObject * Clone() const;
2033 };
2034 
2035 
2036 //
2037 // ArrayOf_AmmDescriptor
2038 //
2039 
2040 class H248_AmmDescriptor;
2041 
2042 class H248_ArrayOf_AmmDescriptor : public PASN_Array
2043 {
2044 #ifndef PASN_LEANANDMEAN
2045     PCLASSINFO(H248_ArrayOf_AmmDescriptor, PASN_Array);
2046 #endif
2047   public:
2048     H248_ArrayOf_AmmDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2049 
2050     PASN_Object * CreateObject() const;
2051     H248_AmmDescriptor & operator[](PINDEX i) const;
2052     PObject * Clone() const;
2053 };
2054 
2055 
2056 //
2057 // ArrayOf_IndAuditParameter
2058 //
2059 
2060 class H248_IndAuditParameter;
2061 
2062 class H248_ArrayOf_IndAuditParameter : public PASN_Array
2063 {
2064 #ifndef PASN_LEANANDMEAN
2065     PCLASSINFO(H248_ArrayOf_IndAuditParameter, PASN_Array);
2066 #endif
2067   public:
2068     H248_ArrayOf_IndAuditParameter(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2069 
2070     PASN_Object * CreateObject() const;
2071     H248_IndAuditParameter & operator[](PINDEX i) const;
2072     PObject * Clone() const;
2073 };
2074 
2075 
2076 //
2077 // IndAudMediaDescriptor_streams
2078 //
2079 
2080 class H248_IndAudStreamParms;
2081 class H248_ArrayOf_IndAudStreamDescriptor;
2082 
2083 class H248_IndAudMediaDescriptor_streams : public PASN_Choice
2084 {
2085 #ifndef PASN_LEANANDMEAN
2086     PCLASSINFO(H248_IndAudMediaDescriptor_streams, PASN_Choice);
2087 #endif
2088   public:
2089     H248_IndAudMediaDescriptor_streams(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
2090 
2091     enum Choices {
2092       e_oneStream,
2093       e_multiStream
2094     };
2095 
2096 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
2097     operator H248_IndAudStreamParms &() const;
2098 #else
2099     operator H248_IndAudStreamParms &();
2100     operator const H248_IndAudStreamParms &() const;
2101 #endif
2102 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
2103     operator H248_ArrayOf_IndAudStreamDescriptor &() const;
2104 #else
2105     operator H248_ArrayOf_IndAudStreamDescriptor &();
2106     operator const H248_ArrayOf_IndAudStreamDescriptor &() const;
2107 #endif
2108 
2109     PBoolean CreateObject();
2110     PObject * Clone() const;
2111 };
2112 
2113 
2114 //
2115 // ArrayOf_IndAudPropertyParm
2116 //
2117 
2118 class H248_IndAudPropertyParm;
2119 
2120 class H248_ArrayOf_IndAudPropertyParm : public PASN_Array
2121 {
2122 #ifndef PASN_LEANANDMEAN
2123     PCLASSINFO(H248_ArrayOf_IndAudPropertyParm, PASN_Array);
2124 #endif
2125   public:
2126     H248_ArrayOf_IndAudPropertyParm(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2127 
2128     PASN_Object * CreateObject() const;
2129     H248_IndAudPropertyParm & operator[](PINDEX i) const;
2130     PObject * Clone() const;
2131 };
2132 
2133 
2134 //
2135 // ArrayOf_ObservedEvent
2136 //
2137 
2138 class H248_ObservedEvent;
2139 
2140 class H248_ArrayOf_ObservedEvent : public PASN_Array
2141 {
2142 #ifndef PASN_LEANANDMEAN
2143     PCLASSINFO(H248_ArrayOf_ObservedEvent, PASN_Array);
2144 #endif
2145   public:
2146     H248_ArrayOf_ObservedEvent(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2147 
2148     PASN_Object * CreateObject() const;
2149     H248_ObservedEvent & operator[](PINDEX i) const;
2150     PObject * Clone() const;
2151 };
2152 
2153 
2154 //
2155 // ArrayOf_EventParameter
2156 //
2157 
2158 class H248_EventParameter;
2159 
2160 class H248_ArrayOf_EventParameter : public PASN_Array
2161 {
2162 #ifndef PASN_LEANANDMEAN
2163     PCLASSINFO(H248_ArrayOf_EventParameter, PASN_Array);
2164 #endif
2165   public:
2166     H248_ArrayOf_EventParameter(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2167 
2168     PASN_Object * CreateObject() const;
2169     H248_EventParameter & operator[](PINDEX i) const;
2170     PObject * Clone() const;
2171 };
2172 
2173 
2174 //
2175 // EventParameter_extraInfo
2176 //
2177 
2178 class H248_Relation;
2179 
2180 class H248_EventParameter_extraInfo : public PASN_Choice
2181 {
2182 #ifndef PASN_LEANANDMEAN
2183     PCLASSINFO(H248_EventParameter_extraInfo, PASN_Choice);
2184 #endif
2185   public:
2186     H248_EventParameter_extraInfo(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
2187 
2188     enum Choices {
2189       e_relation,
2190       e_range,
2191       e_sublist
2192     };
2193 
2194 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
2195     operator H248_Relation &() const;
2196 #else
2197     operator H248_Relation &();
2198     operator const H248_Relation &() const;
2199 #endif
2200 
2201     PBoolean CreateObject();
2202     PObject * Clone() const;
2203 };
2204 
2205 
2206 //
2207 // ArrayOf_WildcardField
2208 //
2209 
2210 class H248_WildcardField;
2211 
2212 class H248_ArrayOf_WildcardField : public PASN_Array
2213 {
2214 #ifndef PASN_LEANANDMEAN
2215     PCLASSINFO(H248_ArrayOf_WildcardField, PASN_Array);
2216 #endif
2217   public:
2218     H248_ArrayOf_WildcardField(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2219 
2220     PASN_Object * CreateObject() const;
2221     H248_WildcardField & operator[](PINDEX i) const;
2222     PObject * Clone() const;
2223 };
2224 
2225 
2226 //
2227 // MediaDescriptor_streams
2228 //
2229 
2230 class H248_StreamParms;
2231 class H248_ArrayOf_StreamDescriptor;
2232 
2233 class H248_MediaDescriptor_streams : public PASN_Choice
2234 {
2235 #ifndef PASN_LEANANDMEAN
2236     PCLASSINFO(H248_MediaDescriptor_streams, PASN_Choice);
2237 #endif
2238   public:
2239     H248_MediaDescriptor_streams(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
2240 
2241     enum Choices {
2242       e_oneStream,
2243       e_multiStream
2244     };
2245 
2246 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
2247     operator H248_StreamParms &() const;
2248 #else
2249     operator H248_StreamParms &();
2250     operator const H248_StreamParms &() const;
2251 #endif
2252 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
2253     operator H248_ArrayOf_StreamDescriptor &() const;
2254 #else
2255     operator H248_ArrayOf_StreamDescriptor &();
2256     operator const H248_ArrayOf_StreamDescriptor &() const;
2257 #endif
2258 
2259     PBoolean CreateObject();
2260     PObject * Clone() const;
2261 };
2262 
2263 
2264 //
2265 // ArrayOf_PropertyParm
2266 //
2267 
2268 class H248_PropertyParm;
2269 
2270 class H248_ArrayOf_PropertyParm : public PASN_Array
2271 {
2272 #ifndef PASN_LEANANDMEAN
2273     PCLASSINFO(H248_ArrayOf_PropertyParm, PASN_Array);
2274 #endif
2275   public:
2276     H248_ArrayOf_PropertyParm(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2277 
2278     PASN_Object * CreateObject() const;
2279     H248_PropertyParm & operator[](PINDEX i) const;
2280     PObject * Clone() const;
2281 };
2282 
2283 
2284 //
2285 // ArrayOf_PASN_OctetString
2286 //
2287 
2288 class H248_ArrayOf_PASN_OctetString : public PASN_Array
2289 {
2290 #ifndef PASN_LEANANDMEAN
2291     PCLASSINFO(H248_ArrayOf_PASN_OctetString, PASN_Array);
2292 #endif
2293   public:
2294     H248_ArrayOf_PASN_OctetString(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2295 
2296     PASN_Object * CreateObject() const;
2297     PASN_OctetString & operator[](PINDEX i) const;
2298     PObject * Clone() const;
2299 };
2300 
2301 
2302 //
2303 // PropertyParm_extraInfo
2304 //
2305 
2306 class H248_Relation;
2307 
2308 class H248_PropertyParm_extraInfo : public PASN_Choice
2309 {
2310 #ifndef PASN_LEANANDMEAN
2311     PCLASSINFO(H248_PropertyParm_extraInfo, PASN_Choice);
2312 #endif
2313   public:
2314     H248_PropertyParm_extraInfo(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
2315 
2316     enum Choices {
2317       e_relation,
2318       e_range,
2319       e_sublist
2320     };
2321 
2322 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
2323     operator H248_Relation &() const;
2324 #else
2325     operator H248_Relation &();
2326     operator const H248_Relation &() const;
2327 #endif
2328 
2329     PBoolean CreateObject();
2330     PObject * Clone() const;
2331 };
2332 
2333 
2334 //
2335 // ArrayOf_PropertyGroup
2336 //
2337 
2338 class H248_PropertyGroup;
2339 
2340 class H248_ArrayOf_PropertyGroup : public PASN_Array
2341 {
2342 #ifndef PASN_LEANANDMEAN
2343     PCLASSINFO(H248_ArrayOf_PropertyGroup, PASN_Array);
2344 #endif
2345   public:
2346     H248_ArrayOf_PropertyGroup(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2347 
2348     PASN_Object * CreateObject() const;
2349     H248_PropertyGroup & operator[](PINDEX i) const;
2350     PObject * Clone() const;
2351 };
2352 
2353 
2354 //
2355 // ArrayOf_TerminationID
2356 //
2357 
2358 class H248_TerminationID;
2359 
2360 class H248_ArrayOf_TerminationID : public PASN_Array
2361 {
2362 #ifndef PASN_LEANANDMEAN
2363     PCLASSINFO(H248_ArrayOf_TerminationID, PASN_Array);
2364 #endif
2365   public:
2366     H248_ArrayOf_TerminationID(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2367 
2368     PASN_Object * CreateObject() const;
2369     H248_TerminationID & operator[](PINDEX i) const;
2370     PObject * Clone() const;
2371 };
2372 
2373 
2374 //
2375 // ArrayOf_RequestedEvent
2376 //
2377 
2378 class H248_RequestedEvent;
2379 
2380 class H248_ArrayOf_RequestedEvent : public PASN_Array
2381 {
2382 #ifndef PASN_LEANANDMEAN
2383     PCLASSINFO(H248_ArrayOf_RequestedEvent, PASN_Array);
2384 #endif
2385   public:
2386     H248_ArrayOf_RequestedEvent(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2387 
2388     PASN_Object * CreateObject() const;
2389     H248_RequestedEvent & operator[](PINDEX i) const;
2390     PObject * Clone() const;
2391 };
2392 
2393 
2394 //
2395 // ArrayOf_SecondRequestedEvent
2396 //
2397 
2398 class H248_SecondRequestedEvent;
2399 
2400 class H248_ArrayOf_SecondRequestedEvent : public PASN_Array
2401 {
2402 #ifndef PASN_LEANANDMEAN
2403     PCLASSINFO(H248_ArrayOf_SecondRequestedEvent, PASN_Array);
2404 #endif
2405   public:
2406     H248_ArrayOf_SecondRequestedEvent(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2407 
2408     PASN_Object * CreateObject() const;
2409     H248_SecondRequestedEvent & operator[](PINDEX i) const;
2410     PObject * Clone() const;
2411 };
2412 
2413 
2414 //
2415 // ArrayOf_Signal
2416 //
2417 
2418 class H248_Signal;
2419 
2420 class H248_ArrayOf_Signal : public PASN_Array
2421 {
2422 #ifndef PASN_LEANANDMEAN
2423     PCLASSINFO(H248_ArrayOf_Signal, PASN_Array);
2424 #endif
2425   public:
2426     H248_ArrayOf_Signal(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2427 
2428     PASN_Object * CreateObject() const;
2429     H248_Signal & operator[](PINDEX i) const;
2430     PObject * Clone() const;
2431 };
2432 
2433 
2434 //
2435 // ArrayOf_SigParameter
2436 //
2437 
2438 class H248_SigParameter;
2439 
2440 class H248_ArrayOf_SigParameter : public PASN_Array
2441 {
2442 #ifndef PASN_LEANANDMEAN
2443     PCLASSINFO(H248_ArrayOf_SigParameter, PASN_Array);
2444 #endif
2445   public:
2446     H248_ArrayOf_SigParameter(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2447 
2448     PASN_Object * CreateObject() const;
2449     H248_SigParameter & operator[](PINDEX i) const;
2450     PObject * Clone() const;
2451 };
2452 
2453 
2454 //
2455 // SigParameter_extraInfo
2456 //
2457 
2458 class H248_Relation;
2459 
2460 class H248_SigParameter_extraInfo : public PASN_Choice
2461 {
2462 #ifndef PASN_LEANANDMEAN
2463     PCLASSINFO(H248_SigParameter_extraInfo, PASN_Choice);
2464 #endif
2465   public:
2466     H248_SigParameter_extraInfo(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
2467 
2468     enum Choices {
2469       e_relation,
2470       e_range,
2471       e_sublist
2472     };
2473 
2474 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
2475     operator H248_Relation &() const;
2476 #else
2477     operator H248_Relation &();
2478     operator const H248_Relation &() const;
2479 #endif
2480 
2481     PBoolean CreateObject();
2482     PObject * Clone() const;
2483 };
2484 
2485 
2486 //
2487 // ArrayOf_ModemType
2488 //
2489 
2490 class H248_ModemType;
2491 
2492 class H248_ArrayOf_ModemType : public PASN_Array
2493 {
2494 #ifndef PASN_LEANANDMEAN
2495     PCLASSINFO(H248_ArrayOf_ModemType, PASN_Array);
2496 #endif
2497   public:
2498     H248_ArrayOf_ModemType(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2499 
2500     PASN_Object * CreateObject() const;
2501     H248_ModemType & operator[](PINDEX i) const;
2502     PObject * Clone() const;
2503 };
2504 
2505 
2506 //
2507 // ArrayOf_Transaction
2508 //
2509 
2510 class H248_Transaction;
2511 
2512 class H248_ArrayOf_Transaction : public PASN_Array
2513 {
2514 #ifndef PASN_LEANANDMEAN
2515     PCLASSINFO(H248_ArrayOf_Transaction, PASN_Array);
2516 #endif
2517   public:
2518     H248_ArrayOf_Transaction(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2519 
2520     PASN_Object * CreateObject() const;
2521     H248_Transaction & operator[](PINDEX i) const;
2522     PObject * Clone() const;
2523 };
2524 
2525 
2526 //
2527 // ArrayOf_ActionReply
2528 //
2529 
2530 class H248_ActionReply;
2531 
2532 class H248_ArrayOf_ActionReply : public PASN_Array
2533 {
2534 #ifndef PASN_LEANANDMEAN
2535     PCLASSINFO(H248_ArrayOf_ActionReply, PASN_Array);
2536 #endif
2537   public:
2538     H248_ArrayOf_ActionReply(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2539 
2540     PASN_Object * CreateObject() const;
2541     H248_ActionReply & operator[](PINDEX i) const;
2542     PObject * Clone() const;
2543 };
2544 
2545 
2546 //
2547 // ArrayOf_IndAudStreamDescriptor
2548 //
2549 
2550 class H248_IndAudStreamDescriptor;
2551 
2552 class H248_ArrayOf_IndAudStreamDescriptor : public PASN_Array
2553 {
2554 #ifndef PASN_LEANANDMEAN
2555     PCLASSINFO(H248_ArrayOf_IndAudStreamDescriptor, PASN_Array);
2556 #endif
2557   public:
2558     H248_ArrayOf_IndAudStreamDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2559 
2560     PASN_Object * CreateObject() const;
2561     H248_IndAudStreamDescriptor & operator[](PINDEX i) const;
2562     PObject * Clone() const;
2563 };
2564 
2565 
2566 //
2567 // ArrayOf_StreamDescriptor
2568 //
2569 
2570 class H248_StreamDescriptor;
2571 
2572 class H248_ArrayOf_StreamDescriptor : public PASN_Array
2573 {
2574 #ifndef PASN_LEANANDMEAN
2575     PCLASSINFO(H248_ArrayOf_StreamDescriptor, PASN_Array);
2576 #endif
2577   public:
2578     H248_ArrayOf_StreamDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2579 
2580     PASN_Object * CreateObject() const;
2581     H248_StreamDescriptor & operator[](PINDEX i) const;
2582     PObject * Clone() const;
2583 };
2584 
2585 
2586 //
2587 // AuthenticationHeader
2588 //
2589 
2590 class H248_AuthenticationHeader : public PASN_Sequence
2591 {
2592 #ifndef PASN_LEANANDMEAN
2593     PCLASSINFO(H248_AuthenticationHeader, PASN_Sequence);
2594 #endif
2595   public:
2596     H248_AuthenticationHeader(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2597 
2598     H248_SecurityParmIndex m_secParmIndex;
2599     H248_SequenceNum m_seqNum;
2600     H248_AuthData m_ad;
2601 
2602     PINDEX GetDataLength() const;
2603     PBoolean Decode(PASN_Stream & strm);
2604     void Encode(PASN_Stream & strm) const;
2605 #ifndef PASN_NOPRINTON
2606     void PrintOn(ostream & strm) const;
2607 #endif
2608     Comparison Compare(const PObject & obj) const;
2609     PObject * Clone() const;
2610 };
2611 
2612 
2613 //
2614 // Message
2615 //
2616 
2617 class H248_Message : public PASN_Sequence
2618 {
2619 #ifndef PASN_LEANANDMEAN
2620     PCLASSINFO(H248_Message, PASN_Sequence);
2621 #endif
2622   public:
2623     H248_Message(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2624 
2625     PASN_Integer m_version;
2626     H248_MId m_mId;
2627     H248_Message_messageBody m_messageBody;
2628 
2629     PINDEX GetDataLength() const;
2630     PBoolean Decode(PASN_Stream & strm);
2631     void Encode(PASN_Stream & strm) const;
2632 #ifndef PASN_NOPRINTON
2633     void PrintOn(ostream & strm) const;
2634 #endif
2635     Comparison Compare(const PObject & obj) const;
2636     PObject * Clone() const;
2637 };
2638 
2639 
2640 //
2641 // TransactionRequest
2642 //
2643 
2644 class H248_TransactionRequest : public PASN_Sequence
2645 {
2646 #ifndef PASN_LEANANDMEAN
2647     PCLASSINFO(H248_TransactionRequest, PASN_Sequence);
2648 #endif
2649   public:
2650     H248_TransactionRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2651 
2652     H248_TransactionId m_transactionId;
2653     H248_ArrayOf_ActionRequest m_actions;
2654 
2655     PINDEX GetDataLength() const;
2656     PBoolean Decode(PASN_Stream & strm);
2657     void Encode(PASN_Stream & strm) const;
2658 #ifndef PASN_NOPRINTON
2659     void PrintOn(ostream & strm) const;
2660 #endif
2661     Comparison Compare(const PObject & obj) const;
2662     PObject * Clone() const;
2663 };
2664 
2665 
2666 //
2667 // TransactionReply
2668 //
2669 
2670 class H248_TransactionReply : public PASN_Sequence
2671 {
2672 #ifndef PASN_LEANANDMEAN
2673     PCLASSINFO(H248_TransactionReply, PASN_Sequence);
2674 #endif
2675   public:
2676     H248_TransactionReply(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2677 
2678     enum OptionalFields {
2679       e_immAckRequired
2680     };
2681 
2682     H248_TransactionId m_transactionId;
2683     PASN_Null m_immAckRequired;
2684     H248_TransactionReply_transactionResult m_transactionResult;
2685 
2686     PINDEX GetDataLength() const;
2687     PBoolean Decode(PASN_Stream & strm);
2688     void Encode(PASN_Stream & strm) const;
2689 #ifndef PASN_NOPRINTON
2690     void PrintOn(ostream & strm) const;
2691 #endif
2692     Comparison Compare(const PObject & obj) const;
2693     PObject * Clone() const;
2694 };
2695 
2696 
2697 //
2698 // ErrorDescriptor
2699 //
2700 
2701 class H248_ErrorDescriptor : public PASN_Sequence
2702 {
2703 #ifndef PASN_LEANANDMEAN
2704     PCLASSINFO(H248_ErrorDescriptor, PASN_Sequence);
2705 #endif
2706   public:
2707     H248_ErrorDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2708 
2709     enum OptionalFields {
2710       e_errorText
2711     };
2712 
2713     H248_ErrorCode m_errorCode;
2714     H248_ErrorText m_errorText;
2715 
2716     PINDEX GetDataLength() const;
2717     PBoolean Decode(PASN_Stream & strm);
2718     void Encode(PASN_Stream & strm) const;
2719 #ifndef PASN_NOPRINTON
2720     void PrintOn(ostream & strm) const;
2721 #endif
2722     Comparison Compare(const PObject & obj) const;
2723     PObject * Clone() const;
2724 };
2725 
2726 
2727 //
2728 // ContextRequest
2729 //
2730 
2731 class H248_ContextRequest : public PASN_Sequence
2732 {
2733 #ifndef PASN_LEANANDMEAN
2734     PCLASSINFO(H248_ContextRequest, PASN_Sequence);
2735 #endif
2736   public:
2737     H248_ContextRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2738 
2739     enum OptionalFields {
2740       e_priority,
2741       e_emergency,
2742       e_topologyReq
2743     };
2744 
2745     PASN_Integer m_priority;
2746     PASN_Boolean m_emergency;
2747     H248_ArrayOf_TopologyRequest m_topologyReq;
2748 
2749     PINDEX GetDataLength() const;
2750     PBoolean Decode(PASN_Stream & strm);
2751     void Encode(PASN_Stream & strm) const;
2752 #ifndef PASN_NOPRINTON
2753     void PrintOn(ostream & strm) const;
2754 #endif
2755     Comparison Compare(const PObject & obj) const;
2756     PObject * Clone() const;
2757 };
2758 
2759 
2760 //
2761 // CommandRequest
2762 //
2763 
2764 class H248_CommandRequest : public PASN_Sequence
2765 {
2766 #ifndef PASN_LEANANDMEAN
2767     PCLASSINFO(H248_CommandRequest, PASN_Sequence);
2768 #endif
2769   public:
2770     H248_CommandRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2771 
2772     enum OptionalFields {
2773       e_optional,
2774       e_wildcardReturn
2775     };
2776 
2777     H248_Command m_command;
2778     PASN_Null m_optional;
2779     PASN_Null m_wildcardReturn;
2780 
2781     PINDEX GetDataLength() const;
2782     PBoolean Decode(PASN_Stream & strm);
2783     void Encode(PASN_Stream & strm) const;
2784 #ifndef PASN_NOPRINTON
2785     void PrintOn(ostream & strm) const;
2786 #endif
2787     Comparison Compare(const PObject & obj) const;
2788     PObject * Clone() const;
2789 };
2790 
2791 
2792 //
2793 // AmmRequest
2794 //
2795 
2796 class H248_AmmRequest : public PASN_Sequence
2797 {
2798 #ifndef PASN_LEANANDMEAN
2799     PCLASSINFO(H248_AmmRequest, PASN_Sequence);
2800 #endif
2801   public:
2802     H248_AmmRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2803 
2804     H248_TerminationIDList m_terminationID;
2805     H248_ArrayOf_AmmDescriptor m_descriptors;
2806 
2807     PINDEX GetDataLength() const;
2808     PBoolean Decode(PASN_Stream & strm);
2809     void Encode(PASN_Stream & strm) const;
2810 #ifndef PASN_NOPRINTON
2811     void PrintOn(ostream & strm) const;
2812 #endif
2813     Comparison Compare(const PObject & obj) const;
2814     PObject * Clone() const;
2815 };
2816 
2817 
2818 //
2819 // AmmsReply
2820 //
2821 
2822 class H248_AmmsReply : public PASN_Sequence
2823 {
2824 #ifndef PASN_LEANANDMEAN
2825     PCLASSINFO(H248_AmmsReply, PASN_Sequence);
2826 #endif
2827   public:
2828     H248_AmmsReply(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2829 
2830     enum OptionalFields {
2831       e_terminationAudit
2832     };
2833 
2834     H248_TerminationIDList m_terminationID;
2835     H248_TerminationAudit m_terminationAudit;
2836 
2837     PINDEX GetDataLength() const;
2838     PBoolean Decode(PASN_Stream & strm);
2839     void Encode(PASN_Stream & strm) const;
2840 #ifndef PASN_NOPRINTON
2841     void PrintOn(ostream & strm) const;
2842 #endif
2843     Comparison Compare(const PObject & obj) const;
2844     PObject * Clone() const;
2845 };
2846 
2847 
2848 //
2849 // AuditDescriptor
2850 //
2851 
2852 class H248_AuditDescriptor : public PASN_Sequence
2853 {
2854 #ifndef PASN_LEANANDMEAN
2855     PCLASSINFO(H248_AuditDescriptor, PASN_Sequence);
2856 #endif
2857   public:
2858     H248_AuditDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2859 
2860     enum OptionalFields {
2861       e_auditToken,
2862       e_auditPropertyToken
2863     };
2864 
2865     PASN_BitString m_auditToken;
2866     H248_ArrayOf_IndAuditParameter m_auditPropertyToken;
2867 
2868     PINDEX GetDataLength() const;
2869     PBoolean Decode(PASN_Stream & strm);
2870     void Encode(PASN_Stream & strm) const;
2871 #ifndef PASN_NOPRINTON
2872     void PrintOn(ostream & strm) const;
2873 #endif
2874     Comparison Compare(const PObject & obj) const;
2875     PObject * Clone() const;
2876 };
2877 
2878 
2879 //
2880 // IndAudLocalControlDescriptor
2881 //
2882 
2883 class H248_IndAudLocalControlDescriptor : public PASN_Sequence
2884 {
2885 #ifndef PASN_LEANANDMEAN
2886     PCLASSINFO(H248_IndAudLocalControlDescriptor, PASN_Sequence);
2887 #endif
2888   public:
2889     H248_IndAudLocalControlDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2890 
2891     enum OptionalFields {
2892       e_streamMode,
2893       e_reserveValue,
2894       e_reserveGroup,
2895       e_propertyParms
2896     };
2897 
2898     PASN_Null m_streamMode;
2899     PASN_Null m_reserveValue;
2900     PASN_Null m_reserveGroup;
2901     H248_ArrayOf_IndAudPropertyParm m_propertyParms;
2902 
2903     PINDEX GetDataLength() const;
2904     PBoolean Decode(PASN_Stream & strm);
2905     void Encode(PASN_Stream & strm) const;
2906 #ifndef PASN_NOPRINTON
2907     void PrintOn(ostream & strm) const;
2908 #endif
2909     Comparison Compare(const PObject & obj) const;
2910     PObject * Clone() const;
2911 };
2912 
2913 
2914 //
2915 // IndAudPropertyParm
2916 //
2917 
2918 class H248_IndAudPropertyParm : public PASN_Sequence
2919 {
2920 #ifndef PASN_LEANANDMEAN
2921     PCLASSINFO(H248_IndAudPropertyParm, PASN_Sequence);
2922 #endif
2923   public:
2924     H248_IndAudPropertyParm(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2925 
2926     H248_PkgdName m_name;
2927 
2928     PINDEX GetDataLength() const;
2929     PBoolean Decode(PASN_Stream & strm);
2930     void Encode(PASN_Stream & strm) const;
2931 #ifndef PASN_NOPRINTON
2932     void PrintOn(ostream & strm) const;
2933 #endif
2934     Comparison Compare(const PObject & obj) const;
2935     PObject * Clone() const;
2936 };
2937 
2938 
2939 //
2940 // IndAudLocalRemoteDescriptor
2941 //
2942 
2943 class H248_IndAudLocalRemoteDescriptor : public PASN_Sequence
2944 {
2945 #ifndef PASN_LEANANDMEAN
2946     PCLASSINFO(H248_IndAudLocalRemoteDescriptor, PASN_Sequence);
2947 #endif
2948   public:
2949     H248_IndAudLocalRemoteDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2950 
2951     enum OptionalFields {
2952       e_propGroupID
2953     };
2954 
2955     PASN_Integer m_propGroupID;
2956     H248_IndAudPropertyGroup m_propGrps;
2957 
2958     PINDEX GetDataLength() const;
2959     PBoolean Decode(PASN_Stream & strm);
2960     void Encode(PASN_Stream & strm) const;
2961 #ifndef PASN_NOPRINTON
2962     void PrintOn(ostream & strm) const;
2963 #endif
2964     Comparison Compare(const PObject & obj) const;
2965     PObject * Clone() const;
2966 };
2967 
2968 
2969 //
2970 // IndAudTerminationStateDescriptor
2971 //
2972 
2973 class H248_IndAudTerminationStateDescriptor : public PASN_Sequence
2974 {
2975 #ifndef PASN_LEANANDMEAN
2976     PCLASSINFO(H248_IndAudTerminationStateDescriptor, PASN_Sequence);
2977 #endif
2978   public:
2979     H248_IndAudTerminationStateDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
2980 
2981     enum OptionalFields {
2982       e_eventBufferControl,
2983       e_serviceState
2984     };
2985 
2986     H248_ArrayOf_IndAudPropertyParm m_propertyParms;
2987     PASN_Null m_eventBufferControl;
2988     PASN_Null m_serviceState;
2989 
2990     PINDEX GetDataLength() const;
2991     PBoolean Decode(PASN_Stream & strm);
2992     void Encode(PASN_Stream & strm) const;
2993 #ifndef PASN_NOPRINTON
2994     void PrintOn(ostream & strm) const;
2995 #endif
2996     Comparison Compare(const PObject & obj) const;
2997     PObject * Clone() const;
2998 };
2999 
3000 
3001 //
3002 // IndAudEventsDescriptor
3003 //
3004 
3005 class H248_IndAudEventsDescriptor : public PASN_Sequence
3006 {
3007 #ifndef PASN_LEANANDMEAN
3008     PCLASSINFO(H248_IndAudEventsDescriptor, PASN_Sequence);
3009 #endif
3010   public:
3011     H248_IndAudEventsDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3012 
3013     enum OptionalFields {
3014       e_requestID,
3015       e_streamID
3016     };
3017 
3018     H248_RequestID m_requestID;
3019     H248_PkgdName m_pkgdName;
3020     H248_StreamID m_streamID;
3021 
3022     PINDEX GetDataLength() const;
3023     PBoolean Decode(PASN_Stream & strm);
3024     void Encode(PASN_Stream & strm) const;
3025 #ifndef PASN_NOPRINTON
3026     void PrintOn(ostream & strm) const;
3027 #endif
3028     Comparison Compare(const PObject & obj) const;
3029     PObject * Clone() const;
3030 };
3031 
3032 
3033 //
3034 // IndAudEventBufferDescriptor
3035 //
3036 
3037 class H248_IndAudEventBufferDescriptor : public PASN_Sequence
3038 {
3039 #ifndef PASN_LEANANDMEAN
3040     PCLASSINFO(H248_IndAudEventBufferDescriptor, PASN_Sequence);
3041 #endif
3042   public:
3043     H248_IndAudEventBufferDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3044 
3045     enum OptionalFields {
3046       e_streamID
3047     };
3048 
3049     H248_PkgdName m_eventName;
3050     H248_StreamID m_streamID;
3051 
3052     PINDEX GetDataLength() const;
3053     PBoolean Decode(PASN_Stream & strm);
3054     void Encode(PASN_Stream & strm) const;
3055 #ifndef PASN_NOPRINTON
3056     void PrintOn(ostream & strm) const;
3057 #endif
3058     Comparison Compare(const PObject & obj) const;
3059     PObject * Clone() const;
3060 };
3061 
3062 
3063 //
3064 // IndAudSignal
3065 //
3066 
3067 class H248_IndAudSignal : public PASN_Sequence
3068 {
3069 #ifndef PASN_LEANANDMEAN
3070     PCLASSINFO(H248_IndAudSignal, PASN_Sequence);
3071 #endif
3072   public:
3073     H248_IndAudSignal(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3074 
3075     enum OptionalFields {
3076       e_streamID
3077     };
3078 
3079     H248_PkgdName m_signalName;
3080     H248_StreamID m_streamID;
3081 
3082     PINDEX GetDataLength() const;
3083     PBoolean Decode(PASN_Stream & strm);
3084     void Encode(PASN_Stream & strm) const;
3085 #ifndef PASN_NOPRINTON
3086     void PrintOn(ostream & strm) const;
3087 #endif
3088     Comparison Compare(const PObject & obj) const;
3089     PObject * Clone() const;
3090 };
3091 
3092 
3093 //
3094 // IndAudDigitMapDescriptor
3095 //
3096 
3097 class H248_IndAudDigitMapDescriptor : public PASN_Sequence
3098 {
3099 #ifndef PASN_LEANANDMEAN
3100     PCLASSINFO(H248_IndAudDigitMapDescriptor, PASN_Sequence);
3101 #endif
3102   public:
3103     H248_IndAudDigitMapDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3104 
3105     enum OptionalFields {
3106       e_digitMapName
3107     };
3108 
3109     H248_DigitMapName m_digitMapName;
3110 
3111     PINDEX GetDataLength() const;
3112     PBoolean Decode(PASN_Stream & strm);
3113     void Encode(PASN_Stream & strm) const;
3114 #ifndef PASN_NOPRINTON
3115     void PrintOn(ostream & strm) const;
3116 #endif
3117     Comparison Compare(const PObject & obj) const;
3118     PObject * Clone() const;
3119 };
3120 
3121 
3122 //
3123 // IndAudStatisticsDescriptor
3124 //
3125 
3126 class H248_IndAudStatisticsDescriptor : public PASN_Sequence
3127 {
3128 #ifndef PASN_LEANANDMEAN
3129     PCLASSINFO(H248_IndAudStatisticsDescriptor, PASN_Sequence);
3130 #endif
3131   public:
3132     H248_IndAudStatisticsDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3133 
3134     H248_PkgdName m_statName;
3135 
3136     PINDEX GetDataLength() const;
3137     PBoolean Decode(PASN_Stream & strm);
3138     void Encode(PASN_Stream & strm) const;
3139 #ifndef PASN_NOPRINTON
3140     void PrintOn(ostream & strm) const;
3141 #endif
3142     Comparison Compare(const PObject & obj) const;
3143     PObject * Clone() const;
3144 };
3145 
3146 
3147 //
3148 // IndAudPackagesDescriptor
3149 //
3150 
3151 class H248_IndAudPackagesDescriptor : public PASN_Sequence
3152 {
3153 #ifndef PASN_LEANANDMEAN
3154     PCLASSINFO(H248_IndAudPackagesDescriptor, PASN_Sequence);
3155 #endif
3156   public:
3157     H248_IndAudPackagesDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3158 
3159     H248_Name m_packageName;
3160     PASN_Integer m_packageVersion;
3161 
3162     PINDEX GetDataLength() const;
3163     PBoolean Decode(PASN_Stream & strm);
3164     void Encode(PASN_Stream & strm) const;
3165 #ifndef PASN_NOPRINTON
3166     void PrintOn(ostream & strm) const;
3167 #endif
3168     Comparison Compare(const PObject & obj) const;
3169     PObject * Clone() const;
3170 };
3171 
3172 
3173 //
3174 // NotifyReply
3175 //
3176 
3177 class H248_NotifyReply : public PASN_Sequence
3178 {
3179 #ifndef PASN_LEANANDMEAN
3180     PCLASSINFO(H248_NotifyReply, PASN_Sequence);
3181 #endif
3182   public:
3183     H248_NotifyReply(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3184 
3185     enum OptionalFields {
3186       e_errorDescriptor
3187     };
3188 
3189     H248_TerminationIDList m_terminationID;
3190     H248_ErrorDescriptor m_errorDescriptor;
3191 
3192     PINDEX GetDataLength() const;
3193     PBoolean Decode(PASN_Stream & strm);
3194     void Encode(PASN_Stream & strm) const;
3195 #ifndef PASN_NOPRINTON
3196     void PrintOn(ostream & strm) const;
3197 #endif
3198     Comparison Compare(const PObject & obj) const;
3199     PObject * Clone() const;
3200 };
3201 
3202 
3203 //
3204 // ObservedEventsDescriptor
3205 //
3206 
3207 class H248_ObservedEventsDescriptor : public PASN_Sequence
3208 {
3209 #ifndef PASN_LEANANDMEAN
3210     PCLASSINFO(H248_ObservedEventsDescriptor, PASN_Sequence);
3211 #endif
3212   public:
3213     H248_ObservedEventsDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3214 
3215     H248_RequestID m_requestId;
3216     H248_ArrayOf_ObservedEvent m_observedEventLst;
3217 
3218     PINDEX GetDataLength() const;
3219     PBoolean Decode(PASN_Stream & strm);
3220     void Encode(PASN_Stream & strm) const;
3221 #ifndef PASN_NOPRINTON
3222     void PrintOn(ostream & strm) const;
3223 #endif
3224     Comparison Compare(const PObject & obj) const;
3225     PObject * Clone() const;
3226 };
3227 
3228 
3229 //
3230 // EventName
3231 //
3232 
3233 class H248_EventName : public H248_PkgdName
3234 {
3235 #ifndef PASN_LEANANDMEAN
3236     PCLASSINFO(H248_EventName, H248_PkgdName);
3237 #endif
3238   public:
3239     H248_EventName(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
3240 
3241     H248_EventName(const char * v);
3242     H248_EventName(const PString & v);
3243     H248_EventName(const PBYTEArray & v);
3244 
3245     H248_EventName & operator=(const char * v);
3246     H248_EventName & operator=(const PString & v);
3247     H248_EventName & operator=(const PBYTEArray & v);
3248     PObject * Clone() const;
3249 };
3250 
3251 
3252 //
3253 // EventParameter
3254 //
3255 
3256 class H248_EventParameter : public PASN_Sequence
3257 {
3258 #ifndef PASN_LEANANDMEAN
3259     PCLASSINFO(H248_EventParameter, PASN_Sequence);
3260 #endif
3261   public:
3262     H248_EventParameter(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3263 
3264     enum OptionalFields {
3265       e_extraInfo
3266     };
3267 
3268     H248_Name m_eventParameterName;
3269     H248_Value m_value;
3270     H248_EventParameter_extraInfo m_extraInfo;
3271 
3272     PINDEX GetDataLength() const;
3273     PBoolean Decode(PASN_Stream & strm);
3274     void Encode(PASN_Stream & strm) const;
3275 #ifndef PASN_NOPRINTON
3276     void PrintOn(ostream & strm) const;
3277 #endif
3278     Comparison Compare(const PObject & obj) const;
3279     PObject * Clone() const;
3280 };
3281 
3282 
3283 //
3284 // ServiceChangeReply
3285 //
3286 
3287 class H248_ServiceChangeReply : public PASN_Sequence
3288 {
3289 #ifndef PASN_LEANANDMEAN
3290     PCLASSINFO(H248_ServiceChangeReply, PASN_Sequence);
3291 #endif
3292   public:
3293     H248_ServiceChangeReply(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3294 
3295     H248_TerminationIDList m_terminationID;
3296     H248_ServiceChangeResult m_serviceChangeResult;
3297 
3298     PINDEX GetDataLength() const;
3299     PBoolean Decode(PASN_Stream & strm);
3300     void Encode(PASN_Stream & strm) const;
3301 #ifndef PASN_NOPRINTON
3302     void PrintOn(ostream & strm) const;
3303 #endif
3304     Comparison Compare(const PObject & obj) const;
3305     PObject * Clone() const;
3306 };
3307 
3308 
3309 //
3310 // TerminationID
3311 //
3312 
3313 class H248_TerminationID : public PASN_Sequence
3314 {
3315 #ifndef PASN_LEANANDMEAN
3316     PCLASSINFO(H248_TerminationID, PASN_Sequence);
3317 #endif
3318   public:
3319     H248_TerminationID(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3320 
3321     H248_ArrayOf_WildcardField m_wildcard;
3322     PASN_OctetString m_id;
3323 
3324     PINDEX GetDataLength() const;
3325     PBoolean Decode(PASN_Stream & strm);
3326     void Encode(PASN_Stream & strm) const;
3327 #ifndef PASN_NOPRINTON
3328     void PrintOn(ostream & strm) const;
3329 #endif
3330     Comparison Compare(const PObject & obj) const;
3331     PObject * Clone() const;
3332 };
3333 
3334 
3335 //
3336 // LocalControlDescriptor
3337 //
3338 
3339 class H248_LocalControlDescriptor : public PASN_Sequence
3340 {
3341 #ifndef PASN_LEANANDMEAN
3342     PCLASSINFO(H248_LocalControlDescriptor, PASN_Sequence);
3343 #endif
3344   public:
3345     H248_LocalControlDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3346 
3347     enum OptionalFields {
3348       e_streamMode,
3349       e_reserveValue,
3350       e_reserveGroup
3351     };
3352 
3353     H248_StreamMode m_streamMode;
3354     PASN_Boolean m_reserveValue;
3355     PASN_Boolean m_reserveGroup;
3356     H248_ArrayOf_PropertyParm m_propertyParms;
3357 
3358     PINDEX GetDataLength() const;
3359     PBoolean Decode(PASN_Stream & strm);
3360     void Encode(PASN_Stream & strm) const;
3361 #ifndef PASN_NOPRINTON
3362     void PrintOn(ostream & strm) const;
3363 #endif
3364     Comparison Compare(const PObject & obj) const;
3365     PObject * Clone() const;
3366 };
3367 
3368 
3369 //
3370 // PropertyParm
3371 //
3372 
3373 class H248_PropertyParm : public PASN_Sequence
3374 {
3375 #ifndef PASN_LEANANDMEAN
3376     PCLASSINFO(H248_PropertyParm, PASN_Sequence);
3377 #endif
3378   public:
3379     H248_PropertyParm(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3380 
3381     enum OptionalFields {
3382       e_extraInfo
3383     };
3384 
3385     H248_PkgdName m_name;
3386     H248_ArrayOf_PASN_OctetString m_value;
3387     H248_PropertyParm_extraInfo m_extraInfo;
3388 
3389     PINDEX GetDataLength() const;
3390     PBoolean Decode(PASN_Stream & strm);
3391     void Encode(PASN_Stream & strm) const;
3392 #ifndef PASN_NOPRINTON
3393     void PrintOn(ostream & strm) const;
3394 #endif
3395     Comparison Compare(const PObject & obj) const;
3396     PObject * Clone() const;
3397 };
3398 
3399 
3400 //
3401 // LocalRemoteDescriptor
3402 //
3403 
3404 class H248_LocalRemoteDescriptor : public PASN_Sequence
3405 {
3406 #ifndef PASN_LEANANDMEAN
3407     PCLASSINFO(H248_LocalRemoteDescriptor, PASN_Sequence);
3408 #endif
3409   public:
3410     H248_LocalRemoteDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3411 
3412     H248_ArrayOf_PropertyGroup m_propGrps;
3413 
3414     PINDEX GetDataLength() const;
3415     PBoolean Decode(PASN_Stream & strm);
3416     void Encode(PASN_Stream & strm) const;
3417 #ifndef PASN_NOPRINTON
3418     void PrintOn(ostream & strm) const;
3419 #endif
3420     Comparison Compare(const PObject & obj) const;
3421     PObject * Clone() const;
3422 };
3423 
3424 
3425 //
3426 // TerminationStateDescriptor
3427 //
3428 
3429 class H248_TerminationStateDescriptor : public PASN_Sequence
3430 {
3431 #ifndef PASN_LEANANDMEAN
3432     PCLASSINFO(H248_TerminationStateDescriptor, PASN_Sequence);
3433 #endif
3434   public:
3435     H248_TerminationStateDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3436 
3437     enum OptionalFields {
3438       e_eventBufferControl,
3439       e_serviceState
3440     };
3441 
3442     H248_ArrayOf_PropertyParm m_propertyParms;
3443     H248_EventBufferControl m_eventBufferControl;
3444     H248_ServiceState m_serviceState;
3445 
3446     PINDEX GetDataLength() const;
3447     PBoolean Decode(PASN_Stream & strm);
3448     void Encode(PASN_Stream & strm) const;
3449 #ifndef PASN_NOPRINTON
3450     void PrintOn(ostream & strm) const;
3451 #endif
3452     Comparison Compare(const PObject & obj) const;
3453     PObject * Clone() const;
3454 };
3455 
3456 
3457 //
3458 // EventsDescriptor
3459 //
3460 
3461 class H248_EventsDescriptor : public PASN_Sequence
3462 {
3463 #ifndef PASN_LEANANDMEAN
3464     PCLASSINFO(H248_EventsDescriptor, PASN_Sequence);
3465 #endif
3466   public:
3467     H248_EventsDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3468 
3469     enum OptionalFields {
3470       e_requestID
3471     };
3472 
3473     H248_RequestID m_requestID;
3474     H248_ArrayOf_RequestedEvent m_eventList;
3475 
3476     PINDEX GetDataLength() const;
3477     PBoolean Decode(PASN_Stream & strm);
3478     void Encode(PASN_Stream & strm) const;
3479 #ifndef PASN_NOPRINTON
3480     void PrintOn(ostream & strm) const;
3481 #endif
3482     Comparison Compare(const PObject & obj) const;
3483     PObject * Clone() const;
3484 };
3485 
3486 
3487 //
3488 // SecondEventsDescriptor
3489 //
3490 
3491 class H248_SecondEventsDescriptor : public PASN_Sequence
3492 {
3493 #ifndef PASN_LEANANDMEAN
3494     PCLASSINFO(H248_SecondEventsDescriptor, PASN_Sequence);
3495 #endif
3496   public:
3497     H248_SecondEventsDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3498 
3499     enum OptionalFields {
3500       e_requestID
3501     };
3502 
3503     H248_RequestID m_requestID;
3504     H248_ArrayOf_SecondRequestedEvent m_eventList;
3505 
3506     PINDEX GetDataLength() const;
3507     PBoolean Decode(PASN_Stream & strm);
3508     void Encode(PASN_Stream & strm) const;
3509 #ifndef PASN_NOPRINTON
3510     void PrintOn(ostream & strm) const;
3511 #endif
3512     Comparison Compare(const PObject & obj) const;
3513     PObject * Clone() const;
3514 };
3515 
3516 
3517 //
3518 // SecondRequestedActions
3519 //
3520 
3521 class H248_SecondRequestedActions : public PASN_Sequence
3522 {
3523 #ifndef PASN_LEANANDMEAN
3524     PCLASSINFO(H248_SecondRequestedActions, PASN_Sequence);
3525 #endif
3526   public:
3527     H248_SecondRequestedActions(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3528 
3529     enum OptionalFields {
3530       e_keepActive,
3531       e_eventDM,
3532       e_signalsDescriptor
3533     };
3534 
3535     PASN_Boolean m_keepActive;
3536     H248_EventDM m_eventDM;
3537     H248_SignalsDescriptor m_signalsDescriptor;
3538 
3539     PINDEX GetDataLength() const;
3540     PBoolean Decode(PASN_Stream & strm);
3541     void Encode(PASN_Stream & strm) const;
3542 #ifndef PASN_NOPRINTON
3543     void PrintOn(ostream & strm) const;
3544 #endif
3545     Comparison Compare(const PObject & obj) const;
3546     PObject * Clone() const;
3547 };
3548 
3549 
3550 //
3551 // EventSpec
3552 //
3553 
3554 class H248_EventSpec : public PASN_Sequence
3555 {
3556 #ifndef PASN_LEANANDMEAN
3557     PCLASSINFO(H248_EventSpec, PASN_Sequence);
3558 #endif
3559   public:
3560     H248_EventSpec(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3561 
3562     enum OptionalFields {
3563       e_streamID
3564     };
3565 
3566     H248_EventName m_eventName;
3567     H248_StreamID m_streamID;
3568     H248_ArrayOf_EventParameter m_eventParList;
3569 
3570     PINDEX GetDataLength() const;
3571     PBoolean Decode(PASN_Stream & strm);
3572     void Encode(PASN_Stream & strm) const;
3573 #ifndef PASN_NOPRINTON
3574     void PrintOn(ostream & strm) const;
3575 #endif
3576     Comparison Compare(const PObject & obj) const;
3577     PObject * Clone() const;
3578 };
3579 
3580 
3581 //
3582 // SeqSigList
3583 //
3584 
3585 class H248_SeqSigList : public PASN_Sequence
3586 {
3587 #ifndef PASN_LEANANDMEAN
3588     PCLASSINFO(H248_SeqSigList, PASN_Sequence);
3589 #endif
3590   public:
3591     H248_SeqSigList(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3592 
3593     PASN_Integer m_id;
3594     H248_ArrayOf_Signal m_signalList;
3595 
3596     PINDEX GetDataLength() const;
3597     PBoolean Decode(PASN_Stream & strm);
3598     void Encode(PASN_Stream & strm) const;
3599 #ifndef PASN_NOPRINTON
3600     void PrintOn(ostream & strm) const;
3601 #endif
3602     Comparison Compare(const PObject & obj) const;
3603     PObject * Clone() const;
3604 };
3605 
3606 
3607 //
3608 // Signal
3609 //
3610 
3611 class H248_Signal : public PASN_Sequence
3612 {
3613 #ifndef PASN_LEANANDMEAN
3614     PCLASSINFO(H248_Signal, PASN_Sequence);
3615 #endif
3616   public:
3617     H248_Signal(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3618 
3619     enum OptionalFields {
3620       e_streamID,
3621       e_sigType,
3622       e_duration,
3623       e_notifyCompletion,
3624       e_keepActive
3625     };
3626 
3627     H248_SignalName m_signalName;
3628     H248_StreamID m_streamID;
3629     H248_SignalType m_sigType;
3630     PASN_Integer m_duration;
3631     H248_NotifyCompletion m_notifyCompletion;
3632     PASN_Boolean m_keepActive;
3633     H248_ArrayOf_SigParameter m_sigParList;
3634 
3635     PINDEX GetDataLength() const;
3636     PBoolean Decode(PASN_Stream & strm);
3637     void Encode(PASN_Stream & strm) const;
3638 #ifndef PASN_NOPRINTON
3639     void PrintOn(ostream & strm) const;
3640 #endif
3641     Comparison Compare(const PObject & obj) const;
3642     PObject * Clone() const;
3643 };
3644 
3645 
3646 //
3647 // SigParameter
3648 //
3649 
3650 class H248_SigParameter : public PASN_Sequence
3651 {
3652 #ifndef PASN_LEANANDMEAN
3653     PCLASSINFO(H248_SigParameter, PASN_Sequence);
3654 #endif
3655   public:
3656     H248_SigParameter(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3657 
3658     enum OptionalFields {
3659       e_extraInfo
3660     };
3661 
3662     H248_Name m_sigParameterName;
3663     H248_Value m_value;
3664     H248_SigParameter_extraInfo m_extraInfo;
3665 
3666     PINDEX GetDataLength() const;
3667     PBoolean Decode(PASN_Stream & strm);
3668     void Encode(PASN_Stream & strm) const;
3669 #ifndef PASN_NOPRINTON
3670     void PrintOn(ostream & strm) const;
3671 #endif
3672     Comparison Compare(const PObject & obj) const;
3673     PObject * Clone() const;
3674 };
3675 
3676 
3677 //
3678 // DigitMapDescriptor
3679 //
3680 
3681 class H248_DigitMapDescriptor : public PASN_Sequence
3682 {
3683 #ifndef PASN_LEANANDMEAN
3684     PCLASSINFO(H248_DigitMapDescriptor, PASN_Sequence);
3685 #endif
3686   public:
3687     H248_DigitMapDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3688 
3689     enum OptionalFields {
3690       e_digitMapName,
3691       e_digitMapValue
3692     };
3693 
3694     H248_DigitMapName m_digitMapName;
3695     H248_DigitMapValue m_digitMapValue;
3696 
3697     PINDEX GetDataLength() const;
3698     PBoolean Decode(PASN_Stream & strm);
3699     void Encode(PASN_Stream & strm) const;
3700 #ifndef PASN_NOPRINTON
3701     void PrintOn(ostream & strm) const;
3702 #endif
3703     Comparison Compare(const PObject & obj) const;
3704     PObject * Clone() const;
3705 };
3706 
3707 
3708 //
3709 // ServiceChangeResParm
3710 //
3711 
3712 class H248_ServiceChangeResParm : public PASN_Sequence
3713 {
3714 #ifndef PASN_LEANANDMEAN
3715     PCLASSINFO(H248_ServiceChangeResParm, PASN_Sequence);
3716 #endif
3717   public:
3718     H248_ServiceChangeResParm(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3719 
3720     enum OptionalFields {
3721       e_serviceChangeMgcId,
3722       e_serviceChangeAddress,
3723       e_serviceChangeVersion,
3724       e_serviceChangeProfile,
3725       e_timestamp
3726     };
3727 
3728     H248_MId m_serviceChangeMgcId;
3729     H248_ServiceChangeAddress m_serviceChangeAddress;
3730     PASN_Integer m_serviceChangeVersion;
3731     H248_ServiceChangeProfile m_serviceChangeProfile;
3732     H248_TimeNotation m_timestamp;
3733 
3734     PINDEX GetDataLength() const;
3735     PBoolean Decode(PASN_Stream & strm);
3736     void Encode(PASN_Stream & strm) const;
3737 #ifndef PASN_NOPRINTON
3738     void PrintOn(ostream & strm) const;
3739 #endif
3740     Comparison Compare(const PObject & obj) const;
3741     PObject * Clone() const;
3742 };
3743 
3744 
3745 //
3746 // StatisticsParameter
3747 //
3748 
3749 class H248_StatisticsParameter : public PASN_Sequence
3750 {
3751 #ifndef PASN_LEANANDMEAN
3752     PCLASSINFO(H248_StatisticsParameter, PASN_Sequence);
3753 #endif
3754   public:
3755     H248_StatisticsParameter(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3756 
3757     enum OptionalFields {
3758       e_statValue
3759     };
3760 
3761     H248_PkgdName m_statName;
3762     H248_Value m_statValue;
3763 
3764     PINDEX GetDataLength() const;
3765     PBoolean Decode(PASN_Stream & strm);
3766     void Encode(PASN_Stream & strm) const;
3767 #ifndef PASN_NOPRINTON
3768     void PrintOn(ostream & strm) const;
3769 #endif
3770     Comparison Compare(const PObject & obj) const;
3771     PObject * Clone() const;
3772 };
3773 
3774 
3775 //
3776 // NonStandardData
3777 //
3778 
3779 class H248_NonStandardData : public PASN_Sequence
3780 {
3781 #ifndef PASN_LEANANDMEAN
3782     PCLASSINFO(H248_NonStandardData, PASN_Sequence);
3783 #endif
3784   public:
3785     H248_NonStandardData(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3786 
3787     H248_NonStandardIdentifier m_nonStandardIdentifier;
3788     PASN_OctetString m_data;
3789 
3790     PINDEX GetDataLength() const;
3791     PBoolean Decode(PASN_Stream & strm);
3792     void Encode(PASN_Stream & strm) const;
3793 #ifndef PASN_NOPRINTON
3794     void PrintOn(ostream & strm) const;
3795 #endif
3796     Comparison Compare(const PObject & obj) const;
3797     PObject * Clone() const;
3798 };
3799 
3800 
3801 //
3802 // MegacoMessage
3803 //
3804 
3805 class H248_MegacoMessage : public PASN_Sequence
3806 {
3807 #ifndef PASN_LEANANDMEAN
3808     PCLASSINFO(H248_MegacoMessage, PASN_Sequence);
3809 #endif
3810   public:
3811     H248_MegacoMessage(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3812 
3813     enum OptionalFields {
3814       e_authHeader
3815     };
3816 
3817     H248_AuthenticationHeader m_authHeader;
3818     H248_Message m_mess;
3819 
3820     PINDEX GetDataLength() const;
3821     PBoolean Decode(PASN_Stream & strm);
3822     void Encode(PASN_Stream & strm) const;
3823 #ifndef PASN_NOPRINTON
3824     void PrintOn(ostream & strm) const;
3825 #endif
3826     Comparison Compare(const PObject & obj) const;
3827     PObject * Clone() const;
3828 };
3829 
3830 
3831 //
3832 // ActionRequest
3833 //
3834 
3835 class H248_ActionRequest : public PASN_Sequence
3836 {
3837 #ifndef PASN_LEANANDMEAN
3838     PCLASSINFO(H248_ActionRequest, PASN_Sequence);
3839 #endif
3840   public:
3841     H248_ActionRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3842 
3843     enum OptionalFields {
3844       e_contextRequest,
3845       e_contextAttrAuditReq
3846     };
3847 
3848     H248_ContextID m_contextId;
3849     H248_ContextRequest m_contextRequest;
3850     H248_ContextAttrAuditRequest m_contextAttrAuditReq;
3851     H248_ArrayOf_CommandRequest m_commandRequests;
3852 
3853     PINDEX GetDataLength() const;
3854     PBoolean Decode(PASN_Stream & strm);
3855     void Encode(PASN_Stream & strm) const;
3856 #ifndef PASN_NOPRINTON
3857     void PrintOn(ostream & strm) const;
3858 #endif
3859     Comparison Compare(const PObject & obj) const;
3860     PObject * Clone() const;
3861 };
3862 
3863 
3864 //
3865 // ActionReply
3866 //
3867 
3868 class H248_ActionReply : public PASN_Sequence
3869 {
3870 #ifndef PASN_LEANANDMEAN
3871     PCLASSINFO(H248_ActionReply, PASN_Sequence);
3872 #endif
3873   public:
3874     H248_ActionReply(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3875 
3876     enum OptionalFields {
3877       e_errorDescriptor,
3878       e_contextReply
3879     };
3880 
3881     H248_ContextID m_contextId;
3882     H248_ErrorDescriptor m_errorDescriptor;
3883     H248_ContextRequest m_contextReply;
3884     H248_ArrayOf_CommandReply m_commandReply;
3885 
3886     PINDEX GetDataLength() const;
3887     PBoolean Decode(PASN_Stream & strm);
3888     void Encode(PASN_Stream & strm) const;
3889 #ifndef PASN_NOPRINTON
3890     void PrintOn(ostream & strm) const;
3891 #endif
3892     Comparison Compare(const PObject & obj) const;
3893     PObject * Clone() const;
3894 };
3895 
3896 
3897 //
3898 // TopologyRequest
3899 //
3900 
3901 class H248_TopologyRequest : public PASN_Sequence
3902 {
3903 #ifndef PASN_LEANANDMEAN
3904     PCLASSINFO(H248_TopologyRequest, PASN_Sequence);
3905 #endif
3906   public:
3907     H248_TopologyRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3908 
3909     enum OptionalFields {
3910       e_streamID
3911     };
3912 
3913     H248_TerminationID m_terminationFrom;
3914     H248_TerminationID m_terminationTo;
3915     H248_TopologyRequest_topologyDirection m_topologyDirection;
3916     H248_StreamID m_streamID;
3917 
3918     PINDEX GetDataLength() const;
3919     PBoolean Decode(PASN_Stream & strm);
3920     void Encode(PASN_Stream & strm) const;
3921 #ifndef PASN_NOPRINTON
3922     void PrintOn(ostream & strm) const;
3923 #endif
3924     Comparison Compare(const PObject & obj) const;
3925     PObject * Clone() const;
3926 };
3927 
3928 
3929 //
3930 // SubtractRequest
3931 //
3932 
3933 class H248_SubtractRequest : public PASN_Sequence
3934 {
3935 #ifndef PASN_LEANANDMEAN
3936     PCLASSINFO(H248_SubtractRequest, PASN_Sequence);
3937 #endif
3938   public:
3939     H248_SubtractRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3940 
3941     enum OptionalFields {
3942       e_auditDescriptor
3943     };
3944 
3945     H248_TerminationIDList m_terminationID;
3946     H248_AuditDescriptor m_auditDescriptor;
3947 
3948     PINDEX GetDataLength() const;
3949     PBoolean Decode(PASN_Stream & strm);
3950     void Encode(PASN_Stream & strm) const;
3951 #ifndef PASN_NOPRINTON
3952     void PrintOn(ostream & strm) const;
3953 #endif
3954     Comparison Compare(const PObject & obj) const;
3955     PObject * Clone() const;
3956 };
3957 
3958 
3959 //
3960 // AuditRequest
3961 //
3962 
3963 class H248_AuditRequest : public PASN_Sequence
3964 {
3965 #ifndef PASN_LEANANDMEAN
3966     PCLASSINFO(H248_AuditRequest, PASN_Sequence);
3967 #endif
3968   public:
3969     H248_AuditRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3970 
3971     H248_TerminationID m_terminationID;
3972     H248_AuditDescriptor m_auditDescriptor;
3973 
3974     PINDEX GetDataLength() const;
3975     PBoolean Decode(PASN_Stream & strm);
3976     void Encode(PASN_Stream & strm) const;
3977 #ifndef PASN_NOPRINTON
3978     void PrintOn(ostream & strm) const;
3979 #endif
3980     Comparison Compare(const PObject & obj) const;
3981     PObject * Clone() const;
3982 };
3983 
3984 
3985 //
3986 // AuditResult
3987 //
3988 
3989 class H248_AuditResult : public PASN_Sequence
3990 {
3991 #ifndef PASN_LEANANDMEAN
3992     PCLASSINFO(H248_AuditResult, PASN_Sequence);
3993 #endif
3994   public:
3995     H248_AuditResult(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
3996 
3997     H248_TerminationID m_terminationID;
3998     H248_TerminationAudit m_terminationAuditResult;
3999 
4000     PINDEX GetDataLength() const;
4001     PBoolean Decode(PASN_Stream & strm);
4002     void Encode(PASN_Stream & strm) const;
4003 #ifndef PASN_NOPRINTON
4004     void PrintOn(ostream & strm) const;
4005 #endif
4006     Comparison Compare(const PObject & obj) const;
4007     PObject * Clone() const;
4008 };
4009 
4010 
4011 //
4012 // IndAudMediaDescriptor
4013 //
4014 
4015 class H248_IndAudMediaDescriptor : public PASN_Sequence
4016 {
4017 #ifndef PASN_LEANANDMEAN
4018     PCLASSINFO(H248_IndAudMediaDescriptor, PASN_Sequence);
4019 #endif
4020   public:
4021     H248_IndAudMediaDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4022 
4023     enum OptionalFields {
4024       e_termStateDescr,
4025       e_streams
4026     };
4027 
4028     H248_IndAudTerminationStateDescriptor m_termStateDescr;
4029     H248_IndAudMediaDescriptor_streams m_streams;
4030 
4031     PINDEX GetDataLength() const;
4032     PBoolean Decode(PASN_Stream & strm);
4033     void Encode(PASN_Stream & strm) const;
4034 #ifndef PASN_NOPRINTON
4035     void PrintOn(ostream & strm) const;
4036 #endif
4037     Comparison Compare(const PObject & obj) const;
4038     PObject * Clone() const;
4039 };
4040 
4041 
4042 //
4043 // IndAudStreamParms
4044 //
4045 
4046 class H248_IndAudStreamParms : public PASN_Sequence
4047 {
4048 #ifndef PASN_LEANANDMEAN
4049     PCLASSINFO(H248_IndAudStreamParms, PASN_Sequence);
4050 #endif
4051   public:
4052     H248_IndAudStreamParms(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4053 
4054     enum OptionalFields {
4055       e_localControlDescriptor,
4056       e_localDescriptor,
4057       e_remoteDescriptor
4058     };
4059 
4060     H248_IndAudLocalControlDescriptor m_localControlDescriptor;
4061     H248_IndAudLocalRemoteDescriptor m_localDescriptor;
4062     H248_IndAudLocalRemoteDescriptor m_remoteDescriptor;
4063 
4064     PINDEX GetDataLength() const;
4065     PBoolean Decode(PASN_Stream & strm);
4066     void Encode(PASN_Stream & strm) const;
4067 #ifndef PASN_NOPRINTON
4068     void PrintOn(ostream & strm) const;
4069 #endif
4070     Comparison Compare(const PObject & obj) const;
4071     PObject * Clone() const;
4072 };
4073 
4074 
4075 //
4076 // IndAudSeqSigList
4077 //
4078 
4079 class H248_IndAudSeqSigList : public PASN_Sequence
4080 {
4081 #ifndef PASN_LEANANDMEAN
4082     PCLASSINFO(H248_IndAudSeqSigList, PASN_Sequence);
4083 #endif
4084   public:
4085     H248_IndAudSeqSigList(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4086 
4087     enum OptionalFields {
4088       e_signalList
4089     };
4090 
4091     PASN_Integer m_id;
4092     H248_IndAudSignal m_signalList;
4093 
4094     PINDEX GetDataLength() const;
4095     PBoolean Decode(PASN_Stream & strm);
4096     void Encode(PASN_Stream & strm) const;
4097 #ifndef PASN_NOPRINTON
4098     void PrintOn(ostream & strm) const;
4099 #endif
4100     Comparison Compare(const PObject & obj) const;
4101     PObject * Clone() const;
4102 };
4103 
4104 
4105 //
4106 // NotifyRequest
4107 //
4108 
4109 class H248_NotifyRequest : public PASN_Sequence
4110 {
4111 #ifndef PASN_LEANANDMEAN
4112     PCLASSINFO(H248_NotifyRequest, PASN_Sequence);
4113 #endif
4114   public:
4115     H248_NotifyRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4116 
4117     enum OptionalFields {
4118       e_errorDescriptor
4119     };
4120 
4121     H248_TerminationIDList m_terminationID;
4122     H248_ObservedEventsDescriptor m_observedEventsDescriptor;
4123     H248_ErrorDescriptor m_errorDescriptor;
4124 
4125     PINDEX GetDataLength() const;
4126     PBoolean Decode(PASN_Stream & strm);
4127     void Encode(PASN_Stream & strm) const;
4128 #ifndef PASN_NOPRINTON
4129     void PrintOn(ostream & strm) const;
4130 #endif
4131     Comparison Compare(const PObject & obj) const;
4132     PObject * Clone() const;
4133 };
4134 
4135 
4136 //
4137 // ObservedEvent
4138 //
4139 
4140 class H248_ObservedEvent : public PASN_Sequence
4141 {
4142 #ifndef PASN_LEANANDMEAN
4143     PCLASSINFO(H248_ObservedEvent, PASN_Sequence);
4144 #endif
4145   public:
4146     H248_ObservedEvent(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4147 
4148     enum OptionalFields {
4149       e_streamID,
4150       e_timeNotation
4151     };
4152 
4153     H248_EventName m_eventName;
4154     H248_StreamID m_streamID;
4155     H248_ArrayOf_EventParameter m_eventParList;
4156     H248_TimeNotation m_timeNotation;
4157 
4158     PINDEX GetDataLength() const;
4159     PBoolean Decode(PASN_Stream & strm);
4160     void Encode(PASN_Stream & strm) const;
4161 #ifndef PASN_NOPRINTON
4162     void PrintOn(ostream & strm) const;
4163 #endif
4164     Comparison Compare(const PObject & obj) const;
4165     PObject * Clone() const;
4166 };
4167 
4168 
4169 //
4170 // MediaDescriptor
4171 //
4172 
4173 class H248_MediaDescriptor : public PASN_Sequence
4174 {
4175 #ifndef PASN_LEANANDMEAN
4176     PCLASSINFO(H248_MediaDescriptor, PASN_Sequence);
4177 #endif
4178   public:
4179     H248_MediaDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4180 
4181     enum OptionalFields {
4182       e_termStateDescr,
4183       e_streams
4184     };
4185 
4186     H248_TerminationStateDescriptor m_termStateDescr;
4187     H248_MediaDescriptor_streams m_streams;
4188 
4189     PINDEX GetDataLength() const;
4190     PBoolean Decode(PASN_Stream & strm);
4191     void Encode(PASN_Stream & strm) const;
4192 #ifndef PASN_NOPRINTON
4193     void PrintOn(ostream & strm) const;
4194 #endif
4195     Comparison Compare(const PObject & obj) const;
4196     PObject * Clone() const;
4197 };
4198 
4199 
4200 //
4201 // StreamParms
4202 //
4203 
4204 class H248_StreamParms : public PASN_Sequence
4205 {
4206 #ifndef PASN_LEANANDMEAN
4207     PCLASSINFO(H248_StreamParms, PASN_Sequence);
4208 #endif
4209   public:
4210     H248_StreamParms(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4211 
4212     enum OptionalFields {
4213       e_localControlDescriptor,
4214       e_localDescriptor,
4215       e_remoteDescriptor
4216     };
4217 
4218     H248_LocalControlDescriptor m_localControlDescriptor;
4219     H248_LocalRemoteDescriptor m_localDescriptor;
4220     H248_LocalRemoteDescriptor m_remoteDescriptor;
4221 
4222     PINDEX GetDataLength() const;
4223     PBoolean Decode(PASN_Stream & strm);
4224     void Encode(PASN_Stream & strm) const;
4225 #ifndef PASN_NOPRINTON
4226     void PrintOn(ostream & strm) const;
4227 #endif
4228     Comparison Compare(const PObject & obj) const;
4229     PObject * Clone() const;
4230 };
4231 
4232 
4233 //
4234 // MuxDescriptor
4235 //
4236 
4237 class H248_MuxDescriptor : public PASN_Sequence
4238 {
4239 #ifndef PASN_LEANANDMEAN
4240     PCLASSINFO(H248_MuxDescriptor, PASN_Sequence);
4241 #endif
4242   public:
4243     H248_MuxDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4244 
4245     enum OptionalFields {
4246       e_nonStandardData
4247     };
4248 
4249     H248_MuxType m_muxType;
4250     H248_ArrayOf_TerminationID m_termList;
4251     H248_NonStandardData m_nonStandardData;
4252 
4253     PINDEX GetDataLength() const;
4254     PBoolean Decode(PASN_Stream & strm);
4255     void Encode(PASN_Stream & strm) const;
4256 #ifndef PASN_NOPRINTON
4257     void PrintOn(ostream & strm) const;
4258 #endif
4259     Comparison Compare(const PObject & obj) const;
4260     PObject * Clone() const;
4261 };
4262 
4263 
4264 //
4265 // RequestedActions
4266 //
4267 
4268 class H248_RequestedActions : public PASN_Sequence
4269 {
4270 #ifndef PASN_LEANANDMEAN
4271     PCLASSINFO(H248_RequestedActions, PASN_Sequence);
4272 #endif
4273   public:
4274     H248_RequestedActions(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4275 
4276     enum OptionalFields {
4277       e_keepActive,
4278       e_eventDM,
4279       e_secondEvent,
4280       e_signalsDescriptor
4281     };
4282 
4283     PASN_Boolean m_keepActive;
4284     H248_EventDM m_eventDM;
4285     H248_SecondEventsDescriptor m_secondEvent;
4286     H248_SignalsDescriptor m_signalsDescriptor;
4287 
4288     PINDEX GetDataLength() const;
4289     PBoolean Decode(PASN_Stream & strm);
4290     void Encode(PASN_Stream & strm) const;
4291 #ifndef PASN_NOPRINTON
4292     void PrintOn(ostream & strm) const;
4293 #endif
4294     Comparison Compare(const PObject & obj) const;
4295     PObject * Clone() const;
4296 };
4297 
4298 
4299 //
4300 // SecondRequestedEvent
4301 //
4302 
4303 class H248_SecondRequestedEvent : public PASN_Sequence
4304 {
4305 #ifndef PASN_LEANANDMEAN
4306     PCLASSINFO(H248_SecondRequestedEvent, PASN_Sequence);
4307 #endif
4308   public:
4309     H248_SecondRequestedEvent(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4310 
4311     enum OptionalFields {
4312       e_streamID,
4313       e_eventAction
4314     };
4315 
4316     H248_PkgdName m_pkgdName;
4317     H248_StreamID m_streamID;
4318     H248_SecondRequestedActions m_eventAction;
4319     H248_ArrayOf_EventParameter m_evParList;
4320 
4321     PINDEX GetDataLength() const;
4322     PBoolean Decode(PASN_Stream & strm);
4323     void Encode(PASN_Stream & strm) const;
4324 #ifndef PASN_NOPRINTON
4325     void PrintOn(ostream & strm) const;
4326 #endif
4327     Comparison Compare(const PObject & obj) const;
4328     PObject * Clone() const;
4329 };
4330 
4331 
4332 //
4333 // ModemDescriptor
4334 //
4335 
4336 class H248_ModemDescriptor : public PASN_Sequence
4337 {
4338 #ifndef PASN_LEANANDMEAN
4339     PCLASSINFO(H248_ModemDescriptor, PASN_Sequence);
4340 #endif
4341   public:
4342     H248_ModemDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4343 
4344     enum OptionalFields {
4345       e_nonStandardData
4346     };
4347 
4348     H248_ArrayOf_ModemType m_mtl;
4349     H248_ArrayOf_PropertyParm m_mpl;
4350     H248_NonStandardData m_nonStandardData;
4351 
4352     PINDEX GetDataLength() const;
4353     PBoolean Decode(PASN_Stream & strm);
4354     void Encode(PASN_Stream & strm) const;
4355 #ifndef PASN_NOPRINTON
4356     void PrintOn(ostream & strm) const;
4357 #endif
4358     Comparison Compare(const PObject & obj) const;
4359     PObject * Clone() const;
4360 };
4361 
4362 
4363 //
4364 // ServiceChangeParm
4365 //
4366 
4367 class H248_ServiceChangeParm : public PASN_Sequence
4368 {
4369 #ifndef PASN_LEANANDMEAN
4370     PCLASSINFO(H248_ServiceChangeParm, PASN_Sequence);
4371 #endif
4372   public:
4373     H248_ServiceChangeParm(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4374 
4375     enum OptionalFields {
4376       e_serviceChangeAddress,
4377       e_serviceChangeVersion,
4378       e_serviceChangeProfile,
4379       e_serviceChangeDelay,
4380       e_serviceChangeMgcId,
4381       e_timeStamp,
4382       e_nonStandardData,
4383       e_serviceChangeInfo
4384     };
4385 
4386     H248_ServiceChangeMethod m_serviceChangeMethod;
4387     H248_ServiceChangeAddress m_serviceChangeAddress;
4388     PASN_Integer m_serviceChangeVersion;
4389     H248_ServiceChangeProfile m_serviceChangeProfile;
4390     H248_Value m_serviceChangeReason;
4391     PASN_Integer m_serviceChangeDelay;
4392     H248_MId m_serviceChangeMgcId;
4393     H248_TimeNotation m_timeStamp;
4394     H248_NonStandardData m_nonStandardData;
4395     H248_AuditDescriptor m_serviceChangeInfo;
4396 
4397     PINDEX GetDataLength() const;
4398     PBoolean Decode(PASN_Stream & strm);
4399     void Encode(PASN_Stream & strm) const;
4400 #ifndef PASN_NOPRINTON
4401     void PrintOn(ostream & strm) const;
4402 #endif
4403     Comparison Compare(const PObject & obj) const;
4404     PObject * Clone() const;
4405 };
4406 
4407 
4408 //
4409 // IndAudStreamDescriptor
4410 //
4411 
4412 class H248_IndAudStreamDescriptor : public PASN_Sequence
4413 {
4414 #ifndef PASN_LEANANDMEAN
4415     PCLASSINFO(H248_IndAudStreamDescriptor, PASN_Sequence);
4416 #endif
4417   public:
4418     H248_IndAudStreamDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4419 
4420     H248_StreamID m_streamID;
4421     H248_IndAudStreamParms m_streamParms;
4422 
4423     PINDEX GetDataLength() const;
4424     PBoolean Decode(PASN_Stream & strm);
4425     void Encode(PASN_Stream & strm) const;
4426 #ifndef PASN_NOPRINTON
4427     void PrintOn(ostream & strm) const;
4428 #endif
4429     Comparison Compare(const PObject & obj) const;
4430     PObject * Clone() const;
4431 };
4432 
4433 
4434 //
4435 // ServiceChangeRequest
4436 //
4437 
4438 class H248_ServiceChangeRequest : public PASN_Sequence
4439 {
4440 #ifndef PASN_LEANANDMEAN
4441     PCLASSINFO(H248_ServiceChangeRequest, PASN_Sequence);
4442 #endif
4443   public:
4444     H248_ServiceChangeRequest(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4445 
4446     H248_TerminationIDList m_terminationID;
4447     H248_ServiceChangeParm m_serviceChangeParms;
4448 
4449     PINDEX GetDataLength() const;
4450     PBoolean Decode(PASN_Stream & strm);
4451     void Encode(PASN_Stream & strm) const;
4452 #ifndef PASN_NOPRINTON
4453     void PrintOn(ostream & strm) const;
4454 #endif
4455     Comparison Compare(const PObject & obj) const;
4456     PObject * Clone() const;
4457 };
4458 
4459 
4460 //
4461 // StreamDescriptor
4462 //
4463 
4464 class H248_StreamDescriptor : public PASN_Sequence
4465 {
4466 #ifndef PASN_LEANANDMEAN
4467     PCLASSINFO(H248_StreamDescriptor, PASN_Sequence);
4468 #endif
4469   public:
4470     H248_StreamDescriptor(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4471 
4472     H248_StreamID m_streamID;
4473     H248_StreamParms m_streamParms;
4474 
4475     PINDEX GetDataLength() const;
4476     PBoolean Decode(PASN_Stream & strm);
4477     void Encode(PASN_Stream & strm) const;
4478 #ifndef PASN_NOPRINTON
4479     void PrintOn(ostream & strm) const;
4480 #endif
4481     Comparison Compare(const PObject & obj) const;
4482     PObject * Clone() const;
4483 };
4484 
4485 
4486 //
4487 // RequestedEvent
4488 //
4489 
4490 class H248_RequestedEvent : public PASN_Sequence
4491 {
4492 #ifndef PASN_LEANANDMEAN
4493     PCLASSINFO(H248_RequestedEvent, PASN_Sequence);
4494 #endif
4495   public:
4496     H248_RequestedEvent(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
4497 
4498     enum OptionalFields {
4499       e_streamID,
4500       e_eventAction
4501     };
4502 
4503     H248_PkgdName m_pkgdName;
4504     H248_StreamID m_streamID;
4505     H248_RequestedActions m_eventAction;
4506     H248_ArrayOf_EventParameter m_evParList;
4507 
4508     PINDEX GetDataLength() const;
4509     PBoolean Decode(PASN_Stream & strm);
4510     void Encode(PASN_Stream & strm) const;
4511 #ifndef PASN_NOPRINTON
4512     void PrintOn(ostream & strm) const;
4513 #endif
4514     Comparison Compare(const PObject & obj) const;
4515     PObject * Clone() const;
4516 };
4517 
4518 
4519 #endif // __H248_H
4520 
4521 #endif // if ! H323_DISABLE_H248
4522 
4523 
4524 // End of h248.h
4525