home *** CD-ROM | disk | FTP | other *** search
/ ftp.muug.mb.ca / 2014.06.ftp.muug.mb.ca.tar / ftp.muug.mb.ca / pub / openh323.tar.gz / openh323.tar / openh323 / include / h4501.h < prev    next >
C/C++ Source or Header  |  2004-06-22  |  17KB  |  750 lines

  1. //
  2. // h4501.h
  3. //
  4. // Code automatically generated by asnparse.
  5. //
  6.  
  7. #if ! H323_DISABLE_H4501
  8.  
  9. #ifndef __H4501_H
  10. #define __H4501_H
  11.  
  12. #ifdef P_USE_PRAGMA
  13. #pragma interface
  14. #endif
  15.  
  16. #include <ptclib/asner.h>
  17.  
  18. #include "h225.h"
  19. #include "x880.h"
  20.  
  21.  
  22. //
  23. // EntityType
  24. //
  25.  
  26. class H4501_EntityType : public PASN_Choice
  27. {
  28. #ifndef PASN_LEANANDMEAN
  29.     PCLASSINFO(H4501_EntityType, PASN_Choice);
  30. #endif
  31.   public:
  32.     H4501_EntityType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
  33.  
  34.     enum Choices {
  35.       e_endpoint,
  36.       e_anyEntity
  37.     };
  38.  
  39.     BOOL CreateObject();
  40.     PObject * Clone() const;
  41. };
  42.  
  43.  
  44. //
  45. // AddressInformation
  46. //
  47.  
  48. class H4501_AddressInformation : public H225_AliasAddress
  49. {
  50. #ifndef PASN_LEANANDMEAN
  51.     PCLASSINFO(H4501_AddressInformation, H225_AliasAddress);
  52. #endif
  53.   public:
  54.     H4501_AddressInformation(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
  55.  
  56.     PObject * Clone() const;
  57. };
  58.  
  59.  
  60. //
  61. // InterpretationApdu
  62. //
  63.  
  64. class H4501_InterpretationApdu : public PASN_Choice
  65. {
  66. #ifndef PASN_LEANANDMEAN
  67.     PCLASSINFO(H4501_InterpretationApdu, PASN_Choice);
  68. #endif
  69.   public:
  70.     H4501_InterpretationApdu(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
  71.  
  72.     enum Choices {
  73.       e_discardAnyUnrecognizedInvokePdu,
  74.       e_clearCallIfAnyInvokePduNotRecognized,
  75.       e_rejectAnyUnrecognizedInvokePdu
  76.     };
  77.  
  78.     BOOL CreateObject();
  79.     PObject * Clone() const;
  80. };
  81.  
  82.  
  83. //
  84. // ServiceApdus
  85. //
  86.  
  87. class H4501_ArrayOf_ROS;
  88.  
  89. class H4501_ServiceApdus : public PASN_Choice
  90. {
  91. #ifndef PASN_LEANANDMEAN
  92.     PCLASSINFO(H4501_ServiceApdus, PASN_Choice);
  93. #endif
  94.   public:
  95.     H4501_ServiceApdus(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
  96.  
  97.     enum Choices {
  98.       e_rosApdus
  99.     };
  100.  
  101. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  102.     operator H4501_ArrayOf_ROS &() const;
  103. #else
  104.     operator H4501_ArrayOf_ROS &();
  105.     operator const H4501_ArrayOf_ROS &() const;
  106. #endif
  107.  
  108.     BOOL CreateObject();
  109.     PObject * Clone() const;
  110. };
  111.  
  112.  
  113. //
  114. // InvokeIdSet
  115. //
  116.  
  117. class H4501_InvokeIdSet : public PASN_Integer
  118. {
  119. #ifndef PASN_LEANANDMEAN
  120.     PCLASSINFO(H4501_InvokeIdSet, PASN_Integer);
  121. #endif
  122.   public:
  123.     H4501_InvokeIdSet(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
  124.  
  125.     H4501_InvokeIdSet & operator=(int v);
  126.     H4501_InvokeIdSet & operator=(unsigned v);
  127.     PObject * Clone() const;
  128. };
  129.  
  130.  
  131. //
  132. // InvokeIDs
  133. //
  134.  
  135. class H4501_InvokeIDs : public PASN_Integer
  136. {
  137. #ifndef PASN_LEANANDMEAN
  138.     PCLASSINFO(H4501_InvokeIDs, PASN_Integer);
  139. #endif
  140.   public:
  141.     H4501_InvokeIDs(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
  142.  
  143.     H4501_InvokeIDs & operator=(int v);
  144.     H4501_InvokeIDs & operator=(unsigned v);
  145.     PObject * Clone() const;
  146. };
  147.  
  148.  
  149. //
  150. // PresentedAddressScreened
  151. //
  152.  
  153. class H4501_AddressScreened;
  154. class H4501_AddressScreened;
  155.  
  156. class H4501_PresentedAddressScreened : public PASN_Choice
  157. {
  158. #ifndef PASN_LEANANDMEAN
  159.     PCLASSINFO(H4501_PresentedAddressScreened, PASN_Choice);
  160. #endif
  161.   public:
  162.     H4501_PresentedAddressScreened(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
  163.  
  164.     enum Choices {
  165.       e_presentationAllowedAddress,
  166.       e_presentationRestricted,
  167.       e_numberNotAvailableDueToInterworking,
  168.       e_presentationRestrictedAddress
  169.     };
  170.  
  171. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  172.     operator H4501_AddressScreened &() const;
  173. #else
  174.     operator H4501_AddressScreened &();
  175.     operator const H4501_AddressScreened &() const;
  176. #endif
  177.  
  178.     BOOL CreateObject();
  179.     PObject * Clone() const;
  180. };
  181.  
  182.  
  183. //
  184. // PresentedAddressUnscreened
  185. //
  186.  
  187. class H4501_Address;
  188. class H4501_Address;
  189.  
  190. class H4501_PresentedAddressUnscreened : public PASN_Choice
  191. {
  192. #ifndef PASN_LEANANDMEAN
  193.     PCLASSINFO(H4501_PresentedAddressUnscreened, PASN_Choice);
  194. #endif
  195.   public:
  196.     H4501_PresentedAddressUnscreened(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
  197.  
  198.     enum Choices {
  199.       e_presentationAllowedAddress,
  200.       e_presentationRestricted,
  201.       e_numberNotAvailableDueToInterworking,
  202.       e_presentationRestrictedAddress
  203.     };
  204.  
  205. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  206.     operator H4501_Address &() const;
  207. #else
  208.     operator H4501_Address &();
  209.     operator const H4501_Address &() const;
  210. #endif
  211.  
  212.     BOOL CreateObject();
  213.     PObject * Clone() const;
  214. };
  215.  
  216.  
  217. //
  218. // PresentedNumberScreened
  219. //
  220.  
  221. class H4501_NumberScreened;
  222. class H4501_NumberScreened;
  223.  
  224. class H4501_PresentedNumberScreened : public PASN_Choice
  225. {
  226. #ifndef PASN_LEANANDMEAN
  227.     PCLASSINFO(H4501_PresentedNumberScreened, PASN_Choice);
  228. #endif
  229.   public:
  230.     H4501_PresentedNumberScreened(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
  231.  
  232.     enum Choices {
  233.       e_presentationAllowedAddress,
  234.       e_presentationRestricted,
  235.       e_numberNotAvailableDueToInterworking,
  236.       e_presentationRestrictedAddress
  237.     };
  238.  
  239. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  240.     operator H4501_NumberScreened &() const;
  241. #else
  242.     operator H4501_NumberScreened &();
  243.     operator const H4501_NumberScreened &() const;
  244. #endif
  245.  
  246.     BOOL CreateObject();
  247.     PObject * Clone() const;
  248. };
  249.  
  250.  
  251. //
  252. // PresentedNumberUnscreened
  253. //
  254.  
  255. class H225_PartyNumber;
  256. class H225_PartyNumber;
  257.  
  258. class H4501_PresentedNumberUnscreened : public PASN_Choice
  259. {
  260. #ifndef PASN_LEANANDMEAN
  261.     PCLASSINFO(H4501_PresentedNumberUnscreened, PASN_Choice);
  262. #endif
  263.   public:
  264.     H4501_PresentedNumberUnscreened(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
  265.  
  266.     enum Choices {
  267.       e_presentationAllowedAddress,
  268.       e_presentationRestricted,
  269.       e_numberNotAvailableDueToInterworking,
  270.       e_presentationRestrictedAddress
  271.     };
  272.  
  273. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  274.     operator H225_PartyNumber &() const;
  275. #else
  276.     operator H225_PartyNumber &();
  277.     operator const H225_PartyNumber &() const;
  278. #endif
  279.  
  280.     BOOL CreateObject();
  281.     PObject * Clone() const;
  282. };
  283.  
  284.  
  285. //
  286. // PartySubaddress
  287. //
  288.  
  289. class H4501_UserSpecifiedSubaddress;
  290. class H4501_NSAPSubaddress;
  291.  
  292. class H4501_PartySubaddress : public PASN_Choice
  293. {
  294. #ifndef PASN_LEANANDMEAN
  295.     PCLASSINFO(H4501_PartySubaddress, PASN_Choice);
  296. #endif
  297.   public:
  298.     H4501_PartySubaddress(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
  299.  
  300.     enum Choices {
  301.       e_userSpecifiedSubaddress,
  302.       e_nsapSubaddress
  303.     };
  304.  
  305. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  306.     operator H4501_UserSpecifiedSubaddress &() const;
  307. #else
  308.     operator H4501_UserSpecifiedSubaddress &();
  309.     operator const H4501_UserSpecifiedSubaddress &() const;
  310. #endif
  311. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  312.     operator H4501_NSAPSubaddress &() const;
  313. #else
  314.     operator H4501_NSAPSubaddress &();
  315.     operator const H4501_NSAPSubaddress &() const;
  316. #endif
  317.  
  318.     BOOL CreateObject();
  319.     PObject * Clone() const;
  320. };
  321.  
  322.  
  323. //
  324. // NSAPSubaddress
  325. //
  326.  
  327. class H4501_NSAPSubaddress : public PASN_OctetString
  328. {
  329. #ifndef PASN_LEANANDMEAN
  330.     PCLASSINFO(H4501_NSAPSubaddress, PASN_OctetString);
  331. #endif
  332.   public:
  333.     H4501_NSAPSubaddress(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
  334.  
  335.     H4501_NSAPSubaddress(const char * v);
  336.     H4501_NSAPSubaddress(const PString & v);
  337.     H4501_NSAPSubaddress(const PBYTEArray & v);
  338.  
  339.     H4501_NSAPSubaddress & operator=(const char * v);
  340.     H4501_NSAPSubaddress & operator=(const PString & v);
  341.     H4501_NSAPSubaddress & operator=(const PBYTEArray & v);
  342.     PObject * Clone() const;
  343. };
  344.  
  345.  
  346. //
  347. // SubaddressInformation
  348. //
  349.  
  350. class H4501_SubaddressInformation : public PASN_OctetString
  351. {
  352. #ifndef PASN_LEANANDMEAN
  353.     PCLASSINFO(H4501_SubaddressInformation, PASN_OctetString);
  354. #endif
  355.   public:
  356.     H4501_SubaddressInformation(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
  357.  
  358.     H4501_SubaddressInformation(const char * v);
  359.     H4501_SubaddressInformation(const PString & v);
  360.     H4501_SubaddressInformation(const PBYTEArray & v);
  361.  
  362.     H4501_SubaddressInformation & operator=(const char * v);
  363.     H4501_SubaddressInformation & operator=(const PString & v);
  364.     H4501_SubaddressInformation & operator=(const PBYTEArray & v);
  365.     PObject * Clone() const;
  366. };
  367.  
  368.  
  369. //
  370. // ScreeningIndicator
  371. //
  372.  
  373. class H4501_ScreeningIndicator : public PASN_Enumeration
  374. {
  375. #ifndef PASN_LEANANDMEAN
  376.     PCLASSINFO(H4501_ScreeningIndicator, PASN_Enumeration);
  377. #endif
  378.   public:
  379.     H4501_ScreeningIndicator(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
  380.  
  381.     enum Enumerations {
  382.       e_userProvidedNotScreened,
  383.       e_userProvidedVerifiedAndPassed,
  384.       e_userProvidedVerifiedAndFailed,
  385.       e_networkProvided
  386.     };
  387.  
  388.     H4501_ScreeningIndicator & operator=(unsigned v);
  389.     PObject * Clone() const;
  390. };
  391.  
  392.  
  393. //
  394. // PresentationAllowedIndicator
  395. //
  396.  
  397. class H4501_PresentationAllowedIndicator : public PASN_Boolean
  398. {
  399. #ifndef PASN_LEANANDMEAN
  400.     PCLASSINFO(H4501_PresentationAllowedIndicator, PASN_Boolean);
  401. #endif
  402.   public:
  403.     H4501_PresentationAllowedIndicator(unsigned tag = UniversalBoolean, TagClass tagClass = UniversalTagClass);
  404.  
  405.     H4501_PresentationAllowedIndicator & operator=(BOOL v);
  406.     PObject * Clone() const;
  407. };
  408.  
  409.  
  410. //
  411. // GeneralErrorList
  412. //
  413.  
  414. class H4501_GeneralErrorList : public PASN_Enumeration
  415. {
  416. #ifndef PASN_LEANANDMEAN
  417.     PCLASSINFO(H4501_GeneralErrorList, PASN_Enumeration);
  418. #endif
  419.   public:
  420.     H4501_GeneralErrorList(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
  421.  
  422.     enum Enumerations {
  423.       e_userNotSubscribed,
  424.       e_rejectedByNetwork,
  425.       e_rejectedByUser,
  426.       e_notAvailable,
  427.       e_insufficientInformation = 5,
  428.       e_invalidServedUserNumber,
  429.       e_invalidCallState,
  430.       e_basicServiceNotProvided,
  431.       e_notIncomingCall,
  432.       e_supplementaryServiceInteractionNotAllowed,
  433.       e_resourceUnavailable,
  434.       e_callFailure = 25,
  435.       e_proceduralError = 43
  436.     };
  437.  
  438.     H4501_GeneralErrorList & operator=(unsigned v);
  439.     PObject * Clone() const;
  440. };
  441.  
  442.  
  443. //
  444. // H225InformationElement
  445. //
  446.  
  447. class H4501_H225InformationElement : public PASN_OctetString
  448. {
  449. #ifndef PASN_LEANANDMEAN
  450.     PCLASSINFO(H4501_H225InformationElement, PASN_OctetString);
  451. #endif
  452.   public:
  453.     H4501_H225InformationElement(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
  454.  
  455.     H4501_H225InformationElement(const char * v);
  456.     H4501_H225InformationElement(const PString & v);
  457.     H4501_H225InformationElement(const PBYTEArray & v);
  458.  
  459.     H4501_H225InformationElement & operator=(const char * v);
  460.     H4501_H225InformationElement & operator=(const PString & v);
  461.     H4501_H225InformationElement & operator=(const PBYTEArray & v);
  462.     PObject * Clone() const;
  463. };
  464.  
  465.  
  466. //
  467. // Extension
  468. //
  469.  
  470. class H4501_Extension : public PASN_Sequence
  471. {
  472. #ifndef PASN_LEANANDMEAN
  473.     PCLASSINFO(H4501_Extension, PASN_Sequence);
  474. #endif
  475.   public:
  476.     H4501_Extension(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  477.  
  478.     X880_Code m_extensionId;
  479.     PASN_OctetString m_extensionArgument;
  480.  
  481.     PINDEX GetDataLength() const;
  482.     BOOL Decode(PASN_Stream & strm);
  483.     void Encode(PASN_Stream & strm) const;
  484. #ifndef PASN_NOPRINTON
  485.     void PrintOn(ostream & strm) const;
  486. #endif
  487.     Comparison Compare(const PObject & obj) const;
  488.     PObject * Clone() const;
  489. };
  490.  
  491.  
  492. //
  493. // ArrayOf_ROS
  494. //
  495.  
  496. class X880_ROS;
  497.  
  498. class H4501_ArrayOf_ROS : public PASN_Array
  499. {
  500. #ifndef PASN_LEANANDMEAN
  501.     PCLASSINFO(H4501_ArrayOf_ROS, PASN_Array);
  502. #endif
  503.   public:
  504.     H4501_ArrayOf_ROS(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  505.  
  506.     PASN_Object * CreateObject() const;
  507.     X880_ROS & operator[](PINDEX i) const;
  508.     PObject * Clone() const;
  509. };
  510.  
  511.  
  512. //
  513. // ArrayOf_AliasAddress
  514. //
  515.  
  516. class H225_AliasAddress;
  517.  
  518. class H4501_ArrayOf_AliasAddress : public PASN_Array
  519. {
  520. #ifndef PASN_LEANANDMEAN
  521.     PCLASSINFO(H4501_ArrayOf_AliasAddress, PASN_Array);
  522. #endif
  523.   public:
  524.     H4501_ArrayOf_AliasAddress(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  525.  
  526.     PASN_Object * CreateObject() const;
  527.     H225_AliasAddress & operator[](PINDEX i) const;
  528.     PObject * Clone() const;
  529. };
  530.  
  531.  
  532. //
  533. // NetworkFacilityExtension
  534. //
  535.  
  536. class H4501_NetworkFacilityExtension : public PASN_Sequence
  537. {
  538. #ifndef PASN_LEANANDMEAN
  539.     PCLASSINFO(H4501_NetworkFacilityExtension, PASN_Sequence);
  540. #endif
  541.   public:
  542.     H4501_NetworkFacilityExtension(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  543.  
  544.     enum OptionalFields {
  545.       e_sourceEntityAddress,
  546.       e_destinationEntityAddress
  547.     };
  548.  
  549.     H4501_EntityType m_sourceEntity;
  550.     H4501_AddressInformation m_sourceEntityAddress;
  551.     H4501_EntityType m_destinationEntity;
  552.     H4501_AddressInformation m_destinationEntityAddress;
  553.  
  554.     PINDEX GetDataLength() const;
  555.     BOOL Decode(PASN_Stream & strm);
  556.     void Encode(PASN_Stream & strm) const;
  557. #ifndef PASN_NOPRINTON
  558.     void PrintOn(ostream & strm) const;
  559. #endif
  560.     Comparison Compare(const PObject & obj) const;
  561.     PObject * Clone() const;
  562. };
  563.  
  564.  
  565. //
  566. // AddressScreened
  567. //
  568.  
  569. class H4501_AddressScreened : public PASN_Sequence
  570. {
  571. #ifndef PASN_LEANANDMEAN
  572.     PCLASSINFO(H4501_AddressScreened, PASN_Sequence);
  573. #endif
  574.   public:
  575.     H4501_AddressScreened(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  576.  
  577.     enum OptionalFields {
  578.       e_partySubaddress
  579.     };
  580.  
  581.     H225_PartyNumber m_partyNumber;
  582.     H4501_ScreeningIndicator m_screeningIndicator;
  583.     H4501_PartySubaddress m_partySubaddress;
  584.  
  585.     PINDEX GetDataLength() const;
  586.     BOOL Decode(PASN_Stream & strm);
  587.     void Encode(PASN_Stream & strm) const;
  588. #ifndef PASN_NOPRINTON
  589.     void PrintOn(ostream & strm) const;
  590. #endif
  591.     Comparison Compare(const PObject & obj) const;
  592.     PObject * Clone() const;
  593. };
  594.  
  595.  
  596. //
  597. // NumberScreened
  598. //
  599.  
  600. class H4501_NumberScreened : public PASN_Sequence
  601. {
  602. #ifndef PASN_LEANANDMEAN
  603.     PCLASSINFO(H4501_NumberScreened, PASN_Sequence);
  604. #endif
  605.   public:
  606.     H4501_NumberScreened(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  607.  
  608.     H225_PartyNumber m_partyNumber;
  609.     H4501_ScreeningIndicator m_screeningIndicator;
  610.  
  611.     PINDEX GetDataLength() const;
  612.     BOOL Decode(PASN_Stream & strm);
  613.     void Encode(PASN_Stream & strm) const;
  614. #ifndef PASN_NOPRINTON
  615.     void PrintOn(ostream & strm) const;
  616. #endif
  617.     Comparison Compare(const PObject & obj) const;
  618.     PObject * Clone() const;
  619. };
  620.  
  621.  
  622. //
  623. // Address
  624. //
  625.  
  626. class H4501_Address : public PASN_Sequence
  627. {
  628. #ifndef PASN_LEANANDMEAN
  629.     PCLASSINFO(H4501_Address, PASN_Sequence);
  630. #endif
  631.   public:
  632.     H4501_Address(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  633.  
  634.     enum OptionalFields {
  635.       e_partySubaddress
  636.     };
  637.  
  638.     H225_PartyNumber m_partyNumber;
  639.     H4501_PartySubaddress m_partySubaddress;
  640.  
  641.     PINDEX GetDataLength() const;
  642.     BOOL Decode(PASN_Stream & strm);
  643.     void Encode(PASN_Stream & strm) const;
  644. #ifndef PASN_NOPRINTON
  645.     void PrintOn(ostream & strm) const;
  646. #endif
  647.     Comparison Compare(const PObject & obj) const;
  648.     PObject * Clone() const;
  649. };
  650.  
  651.  
  652. //
  653. // EndpointAddress
  654. //
  655.  
  656. class H4501_EndpointAddress : public PASN_Sequence
  657. {
  658. #ifndef PASN_LEANANDMEAN
  659.     PCLASSINFO(H4501_EndpointAddress, PASN_Sequence);
  660. #endif
  661.   public:
  662.     H4501_EndpointAddress(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  663.  
  664.     enum OptionalFields {
  665.       e_remoteExtensionAddress
  666.     };
  667.  
  668.     H4501_ArrayOf_AliasAddress m_destinationAddress;
  669.     H225_AliasAddress m_remoteExtensionAddress;
  670.  
  671.     PINDEX GetDataLength() const;
  672.     BOOL Decode(PASN_Stream & strm);
  673.     void Encode(PASN_Stream & strm) const;
  674. #ifndef PASN_NOPRINTON
  675.     void PrintOn(ostream & strm) const;
  676. #endif
  677.     Comparison Compare(const PObject & obj) const;
  678.     PObject * Clone() const;
  679. };
  680.  
  681.  
  682. //
  683. // UserSpecifiedSubaddress
  684. //
  685.  
  686. class H4501_UserSpecifiedSubaddress : public PASN_Sequence
  687. {
  688. #ifndef PASN_LEANANDMEAN
  689.     PCLASSINFO(H4501_UserSpecifiedSubaddress, PASN_Sequence);
  690. #endif
  691.   public:
  692.     H4501_UserSpecifiedSubaddress(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  693.  
  694.     enum OptionalFields {
  695.       e_oddCountIndicator
  696.     };
  697.  
  698.     H4501_SubaddressInformation m_subaddressInformation;
  699.     PASN_Boolean m_oddCountIndicator;
  700.  
  701.     PINDEX GetDataLength() const;
  702.     BOOL Decode(PASN_Stream & strm);
  703.     void Encode(PASN_Stream & strm) const;
  704. #ifndef PASN_NOPRINTON
  705.     void PrintOn(ostream & strm) const;
  706. #endif
  707.     Comparison Compare(const PObject & obj) const;
  708.     PObject * Clone() const;
  709. };
  710.  
  711.  
  712. //
  713. // SupplementaryService
  714. //
  715.  
  716. class H4501_SupplementaryService : public PASN_Sequence
  717. {
  718. #ifndef PASN_LEANANDMEAN
  719.     PCLASSINFO(H4501_SupplementaryService, PASN_Sequence);
  720. #endif
  721.   public:
  722.     H4501_SupplementaryService(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
  723.  
  724.     enum OptionalFields {
  725.       e_networkFacilityExtension,
  726.       e_interpretationApdu
  727.     };
  728.  
  729.     H4501_NetworkFacilityExtension m_networkFacilityExtension;
  730.     H4501_InterpretationApdu m_interpretationApdu;
  731.     H4501_ServiceApdus m_serviceApdu;
  732.  
  733.     PINDEX GetDataLength() const;
  734.     BOOL Decode(PASN_Stream & strm);
  735.     void Encode(PASN_Stream & strm) const;
  736. #ifndef PASN_NOPRINTON
  737.     void PrintOn(ostream & strm) const;
  738. #endif
  739.     Comparison Compare(const PObject & obj) const;
  740.     PObject * Clone() const;
  741. };
  742.  
  743.  
  744. #endif // __H4501_H
  745.  
  746. #endif // if ! H323_DISABLE_H4501
  747.  
  748.  
  749. // End of h4501.h
  750.