# h4501.h

Go to the documentation of this file.

    00001 //
    00002 // h4501.h
    00003 //
    00004 // Code automatically generated by asnparse.
    00005 //
    00006
    00007 #if ! H323_DISABLE_H4501
    00008
    00009 #ifndef __H4501_H
    00010 #define __H4501_H
    00011
    00012 #ifdef P_USE_PRAGMA
    00013 #pragma interface
    00014 #endif
    00015
    00016 #include <ptclib/asner.h>
    00017
    00018 #include "h225.h"
    00019 #include "x880.h"
    00020
    00021
    00022 //
    00023 // EntityType
    00024 //
    00025
    00026 class H4501_EntityType : public PASN_Choice
    00027 {
    00028 #ifndef PASN_LEANANDMEAN
    00029     PCLASSINFO(H4501_EntityType, PASN_Choice);
    00030 #endif
    00031   public:
    00032     H4501_EntityType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
    00033
    00034     enum Choices {
    00035       e_endpoint,
    00036       e_anyEntity
    00037     };
    00038
    00039     PBoolean CreateObject();
    00040     PObject * Clone() const;
    00041 };
    00042
    00043
    00044 //
    00045 // AddressInformation
    00046 //
    00047
    00048 class H4501_AddressInformation : public H225_AliasAddress
    00049 {
    00050 #ifndef PASN_LEANANDMEAN
    00051     PCLASSINFO(H4501_AddressInformation, H225_AliasAddress);
    00052 #endif
    00053   public:
    00054     H4501_AddressInformation(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
    00055
    00056     PObject * Clone() const;
    00057 };
    00058
    00059
    00060 //
    00061 // InterpretationApdu
    00062 //
    00063
    00064 class H4501_InterpretationApdu : public PASN_Choice
    00065 {
    00066 #ifndef PASN_LEANANDMEAN
    00067     PCLASSINFO(H4501_InterpretationApdu, PASN_Choice);
    00068 #endif
    00069   public:
    00070     H4501_InterpretationApdu(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
    00071
    00072     enum Choices {
    00073       e_discardAnyUnrecognizedInvokePdu,
    00074       e_clearCallIfAnyInvokePduNotRecognized,
    00075       e_rejectAnyUnrecognizedInvokePdu
    00076     };
    00077
    00078     PBoolean CreateObject();
    00079     PObject * Clone() const;
    00080 };
    00081
    00082
    00083 //
    00084 // ServiceApdus
    00085 //
    00086
    00087 class H4501_ArrayOf_ROS;
    00088
    00089 class H4501_ServiceApdus : public PASN_Choice
    00090 {
    00091 #ifndef PASN_LEANANDMEAN
    00092     PCLASSINFO(H4501_ServiceApdus, PASN_Choice);
    00093 #endif
    00094   public:
    00095     H4501_ServiceApdus(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
    00096
    00097     enum Choices {
    00098       e_rosApdus
    00099     };
    00100
    00101 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
    00102     operator H4501_ArrayOf_ROS &() const;
    00103 #else
    00104     operator H4501_ArrayOf_ROS &();
    00105     operator const H4501_ArrayOf_ROS &() const;
    00106 #endif
    00107
    00108     PBoolean CreateObject();
    00109     PObject * Clone() const;
    00110 };
    00111
    00112
    00113 //
    00114 // InvokeIdSet
    00115 //
    00116
    00117 class H4501_InvokeIdSet : public PASN_Integer
    00118 {
    00119 #ifndef PASN_LEANANDMEAN
    00120     PCLASSINFO(H4501_InvokeIdSet, PASN_Integer);
    00121 #endif
    00122   public:
    00123     H4501_InvokeIdSet(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
    00124
    00125     H4501_InvokeIdSet & operator=(int v);
    00126     H4501_InvokeIdSet & operator=(unsigned v);
    00127     PObject * Clone() const;
    00128 };
    00129
    00130
    00131 //
    00132 // InvokeIDs
    00133 //
    00134
    00135 class H4501_InvokeIDs : public PASN_Integer
    00136 {
    00137 #ifndef PASN_LEANANDMEAN
    00138     PCLASSINFO(H4501_InvokeIDs, PASN_Integer);
    00139 #endif
    00140   public:
    00141     H4501_InvokeIDs(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
    00142
    00143     H4501_InvokeIDs & operator=(int v);
    00144     H4501_InvokeIDs & operator=(unsigned v);
    00145     PObject * Clone() const;
    00146 };
    00147
    00148
    00149 //
    00150 // PresentedAddressScreened
    00151 //
    00152
    00153 class H4501_AddressScreened;
    00154
    00155 class H4501_PresentedAddressScreened : public PASN_Choice
    00156 {
    00157 #ifndef PASN_LEANANDMEAN
    00158     PCLASSINFO(H4501_PresentedAddressScreened, PASN_Choice);
    00159 #endif
    00160   public:
    00161     H4501_PresentedAddressScreened(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
    00162
    00163     enum Choices {
    00164       e_presentationAllowedAddress,
    00165       e_presentationRestricted,
    00166       e_numberNotAvailableDueToInterworking,
    00167       e_presentationRestrictedAddress
    00168     };
    00169
    00170 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
    00171     operator H4501_AddressScreened &() const;
    00172 #else
    00173     operator H4501_AddressScreened &();
    00174     operator const H4501_AddressScreened &() const;
    00175 #endif
    00176
    00177     PBoolean CreateObject();
    00178     PObject * Clone() const;
    00179 };
    00180
    00181
    00182 //
    00183 // PresentedAddressUnscreened
    00184 //
    00185
    00186 class H4501_Address;
    00187
    00188 class H4501_PresentedAddressUnscreened : public PASN_Choice
    00189 {
    00190 #ifndef PASN_LEANANDMEAN
    00191     PCLASSINFO(H4501_PresentedAddressUnscreened, PASN_Choice);
    00192 #endif
    00193   public:
    00194     H4501_PresentedAddressUnscreened(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
    00195
    00196     enum Choices {
    00197       e_presentationAllowedAddress,
    00198       e_presentationRestricted,
    00199       e_numberNotAvailableDueToInterworking,
    00200       e_presentationRestrictedAddress
    00201     };
    00202
    00203 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
    00204     operator H4501_Address &() const;
    00205 #else
    00206     operator H4501_Address &();
    00207     operator const H4501_Address &() const;
    00208 #endif
    00209
    00210     PBoolean CreateObject();
    00211     PObject * Clone() const;
    00212 };
    00213
    00214
    00215 //
    00216 // PresentedNumberScreened
    00217 //
    00218
    00219 class H4501_NumberScreened;
    00220
    00221 class H4501_PresentedNumberScreened : public PASN_Choice
    00222 {
    00223 #ifndef PASN_LEANANDMEAN
    00224     PCLASSINFO(H4501_PresentedNumberScreened, PASN_Choice);
    00225 #endif
    00226   public:
    00227     H4501_PresentedNumberScreened(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
    00228
    00229     enum Choices {
    00230       e_presentationAllowedAddress,
    00231       e_presentationRestricted,
    00232       e_numberNotAvailableDueToInterworking,
    00233       e_presentationRestrictedAddress
    00234     };
    00235
    00236 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
    00237     operator H4501_NumberScreened &() const;
    00238 #else
    00239     operator H4501_NumberScreened &();
    00240     operator const H4501_NumberScreened &() const;
    00241 #endif
    00242
    00243     PBoolean CreateObject();
    00244     PObject * Clone() const;
    00245 };
    00246
    00247
    00248 //
    00249 // PresentedNumberUnscreened
    00250 //
    00251
    00252 class H225_PartyNumber;
    00253
    00254 class H4501_PresentedNumberUnscreened : public PASN_Choice
    00255 {
    00256 #ifndef PASN_LEANANDMEAN
    00257     PCLASSINFO(H4501_PresentedNumberUnscreened, PASN_Choice);
    00258 #endif
    00259   public:
    00260     H4501_PresentedNumberUnscreened(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
    00261
    00262     enum Choices {
    00263       e_presentationAllowedAddress,
    00264       e_presentationRestricted,
    00265       e_numberNotAvailableDueToInterworking,
    00266       e_presentationRestrictedAddress
    00267     };
    00268
    00269 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
    00270     operator H225_PartyNumber &() const;
    00271 #else
    00272     operator H225_PartyNumber &();
    00273     operator const H225_PartyNumber &() const;
    00274 #endif
    00275
    00276     PBoolean CreateObject();
    00277     PObject * Clone() const;
    00278 };
    00279
    00280
    00281 //
    00282 // PartySubaddress
    00283 //
    00284
    00285 class H4501_UserSpecifiedSubaddress;
    00286 class H4501_NSAPSubaddress;
    00287
    00288 class H4501_PartySubaddress : public PASN_Choice
    00289 {
    00290 #ifndef PASN_LEANANDMEAN
    00291     PCLASSINFO(H4501_PartySubaddress, PASN_Choice);
    00292 #endif
    00293   public:
    00294     H4501_PartySubaddress(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
    00295
    00296     enum Choices {
    00297       e_userSpecifiedSubaddress,
    00298       e_nsapSubaddress
    00299     };
    00300
    00301 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
    00302     operator H4501_UserSpecifiedSubaddress &() const;
    00303 #else
    00304     operator H4501_UserSpecifiedSubaddress &();
    00305     operator const H4501_UserSpecifiedSubaddress &() const;
    00306 #endif
    00307 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
    00308     operator H4501_NSAPSubaddress &() const;
    00309 #else
    00310     operator H4501_NSAPSubaddress &();
    00311     operator const H4501_NSAPSubaddress &() const;
    00312 #endif
    00313
    00314     PBoolean CreateObject();
    00315     PObject * Clone() const;
    00316 };
    00317
    00318
    00319 //
    00320 // NSAPSubaddress
    00321 //
    00322
    00323 class H4501_NSAPSubaddress : public PASN_OctetString
    00324 {
    00325 #ifndef PASN_LEANANDMEAN
    00326     PCLASSINFO(H4501_NSAPSubaddress, PASN_OctetString);
    00327 #endif
    00328   public:
    00329     H4501_NSAPSubaddress(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
    00330
    00331     H4501_NSAPSubaddress(const char * v);
    00332     H4501_NSAPSubaddress(const PString & v);
    00333     H4501_NSAPSubaddress(const PBYTEArray & v);
    00334
    00335     H4501_NSAPSubaddress & operator=(const char * v);
    00336     H4501_NSAPSubaddress & operator=(const PString & v);
    00337     H4501_NSAPSubaddress & operator=(const PBYTEArray & v);
    00338     PObject * Clone() const;
    00339 };
    00340
    00341
    00342 //
    00343 // SubaddressInformation
    00344 //
    00345
    00346 class H4501_SubaddressInformation : public PASN_OctetString
    00347 {
    00348 #ifndef PASN_LEANANDMEAN
    00349     PCLASSINFO(H4501_SubaddressInformation, PASN_OctetString);
    00350 #endif
    00351   public:
    00352     H4501_SubaddressInformation(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
    00353
    00354     H4501_SubaddressInformation(const char * v);
    00355     H4501_SubaddressInformation(const PString & v);
    00356     H4501_SubaddressInformation(const PBYTEArray & v);
    00357
    00358     H4501_SubaddressInformation & operator=(const char * v);
    00359     H4501_SubaddressInformation & operator=(const PString & v);
    00360     H4501_SubaddressInformation & operator=(const PBYTEArray & v);
    00361     PObject * Clone() const;
    00362 };
    00363
    00364
    00365 //
    00366 // ScreeningIndicator
    00367 //
    00368
    00369 class H4501_ScreeningIndicator : public PASN_Enumeration
    00370 {
    00371 #ifndef PASN_LEANANDMEAN
    00372     PCLASSINFO(H4501_ScreeningIndicator, PASN_Enumeration);
    00373 #endif
    00374   public:
    00375     H4501_ScreeningIndicator(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
    00376
    00377     enum Enumerations {
    00378       e_userProvidedNotScreened,
    00379       e_userProvidedVerifiedAndPassed,
    00380       e_userProvidedVerifiedAndFailed,
    00381       e_networkProvided
    00382     };
    00383
    00384     H4501_ScreeningIndicator & operator=(unsigned v);
    00385     PObject * Clone() const;
    00386 };
    00387
    00388
    00389 //
    00390 // PresentationAllowedIndicator
    00391 //
    00392
    00393 class H4501_PresentationAllowedIndicator : public PASN_Boolean
    00394 {
    00395 #ifndef PASN_LEANANDMEAN
    00396     PCLASSINFO(H4501_PresentationAllowedIndicator, PASN_Boolean);
    00397 #endif
    00398   public:
    00399     H4501_PresentationAllowedIndicator(unsigned tag = UniversalBoolean, TagClass tagClass = UniversalTagClass);
    00400
    00401     H4501_PresentationAllowedIndicator & operator=(PBoolean v);
    00402     PObject * Clone() const;
    00403 };
    00404
    00405
    00406 //
    00407 // GeneralErrorList
    00408 //
    00409
    00410 class H4501_GeneralErrorList : public PASN_Enumeration
    00411 {
    00412 #ifndef PASN_LEANANDMEAN
    00413     PCLASSINFO(H4501_GeneralErrorList, PASN_Enumeration);
    00414 #endif
    00415   public:
    00416     H4501_GeneralErrorList(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
    00417
    00418     enum Enumerations {
    00419       e_userNotSubscribed,
    00420       e_rejectedByNetwork,
    00421       e_rejectedByUser,
    00422       e_notAvailable,
    00423       e_insufficientInformation = 5,
    00424       e_invalidServedUserNumber,
    00425       e_invalidCallState,
    00426       e_basicServiceNotProvided,
    00427       e_notIncomingCall,
    00428       e_supplementaryServiceInteractionNotAllowed,
    00429       e_resourceUnavailable,
    00430       e_callFailure = 25,
    00431       e_proceduralError = 43
    00432     };
    00433
    00434     H4501_GeneralErrorList & operator=(unsigned v);
    00435     PObject * Clone() const;
    00436 };
    00437
    00438
    00439 //
    00440 // H225InformationElement
    00441 //
    00442
    00443 class H4501_H225InformationElement : public PASN_OctetString
    00444 {
    00445 #ifndef PASN_LEANANDMEAN
    00446     PCLASSINFO(H4501_H225InformationElement, PASN_OctetString);
    00447 #endif
    00448   public:
    00449     H4501_H225InformationElement(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
    00450
    00451     H4501_H225InformationElement(const char * v);
    00452     H4501_H225InformationElement(const PString & v);
    00453     H4501_H225InformationElement(const PBYTEArray & v);
    00454
    00455     H4501_H225InformationElement & operator=(const char * v);
    00456     H4501_H225InformationElement & operator=(const PString & v);
    00457     H4501_H225InformationElement & operator=(const PBYTEArray & v);
    00458     PObject * Clone() const;
    00459 };
    00460
    00461
    00462 //
    00463 // Extension
    00464 //
    00465
    00466 class H4501_Extension : public PASN_Sequence
    00467 {
    00468 #ifndef PASN_LEANANDMEAN
    00469     PCLASSINFO(H4501_Extension, PASN_Sequence);
    00470 #endif
    00471   public:
    00472     H4501_Extension(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00473
    00474     X880_Code m_extensionId;
    00475     PASN_OctetString m_extensionArgument;
    00476
    00477     PINDEX GetDataLength() const;
    00478     PBoolean Decode(PASN_Stream & strm);
    00479     void Encode(PASN_Stream & strm) const;
    00480 #ifndef PASN_NOPRINTON
    00481     void PrintOn(ostream & strm) const;
    00482 #endif
    00483     Comparison Compare(const PObject & obj) const;
    00484     PObject * Clone() const;
    00485 };
    00486
    00487
    00488 //
    00489 // ArrayOf_ROS
    00490 //
    00491
    00492 class X880_ROS;
    00493
    00494 class H4501_ArrayOf_ROS : public PASN_Array
    00495 {
    00496 #ifndef PASN_LEANANDMEAN
    00497     PCLASSINFO(H4501_ArrayOf_ROS, PASN_Array);
    00498 #endif
    00499   public:
    00500     H4501_ArrayOf_ROS(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00501
    00502     PASN_Object * CreateObject() const;
    00503     X880_ROS & operator[](PINDEX i) const;
    00504     PObject * Clone() const;
    00505 };
    00506
    00507
    00508 //
    00509 // ArrayOf_AliasAddress
    00510 //
    00511
    00512 class H225_AliasAddress;
    00513
    00514 class H4501_ArrayOf_AliasAddress : public PASN_Array
    00515 {
    00516 #ifndef PASN_LEANANDMEAN
    00517     PCLASSINFO(H4501_ArrayOf_AliasAddress, PASN_Array);
    00518 #endif
    00519   public:
    00520     H4501_ArrayOf_AliasAddress(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00521
    00522     PASN_Object * CreateObject() const;
    00523     H225_AliasAddress & operator[](PINDEX i) const;
    00524     PObject * Clone() const;
    00525 };
    00526
    00527
    00528 //
    00529 // NetworkFacilityExtension
    00530 //
    00531
    00532 class H4501_NetworkFacilityExtension : public PASN_Sequence
    00533 {
    00534 #ifndef PASN_LEANANDMEAN
    00535     PCLASSINFO(H4501_NetworkFacilityExtension, PASN_Sequence);
    00536 #endif
    00537   public:
    00538     H4501_NetworkFacilityExtension(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00539
    00540     enum OptionalFields {
    00541       e_sourceEntityAddress,
    00542       e_destinationEntityAddress
    00543     };
    00544
    00545     H4501_EntityType m_sourceEntity;
    00546     H4501_AddressInformation m_sourceEntityAddress;
    00547     H4501_EntityType m_destinationEntity;
    00548     H4501_AddressInformation m_destinationEntityAddress;
    00549
    00550     PINDEX GetDataLength() const;
    00551     PBoolean Decode(PASN_Stream & strm);
    00552     void Encode(PASN_Stream & strm) const;
    00553 #ifndef PASN_NOPRINTON
    00554     void PrintOn(ostream & strm) const;
    00555 #endif
    00556     Comparison Compare(const PObject & obj) const;
    00557     PObject * Clone() const;
    00558 };
    00559
    00560
    00561 //
    00562 // AddressScreened
    00563 //
    00564
    00565 class H4501_AddressScreened : public PASN_Sequence
    00566 {
    00567 #ifndef PASN_LEANANDMEAN
    00568     PCLASSINFO(H4501_AddressScreened, PASN_Sequence);
    00569 #endif
    00570   public:
    00571     H4501_AddressScreened(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00572
    00573     enum OptionalFields {
    00574       e_partySubaddress
    00575     };
    00576
    00577     H225_PartyNumber m_partyNumber;
    00578     H4501_ScreeningIndicator m_screeningIndicator;
    00579     H4501_PartySubaddress m_partySubaddress;
    00580
    00581     PINDEX GetDataLength() const;
    00582     PBoolean Decode(PASN_Stream & strm);
    00583     void Encode(PASN_Stream & strm) const;
    00584 #ifndef PASN_NOPRINTON
    00585     void PrintOn(ostream & strm) const;
    00586 #endif
    00587     Comparison Compare(const PObject & obj) const;
    00588     PObject * Clone() const;
    00589 };
    00590
    00591
    00592 //
    00593 // NumberScreened
    00594 //
    00595
    00596 class H4501_NumberScreened : public PASN_Sequence
    00597 {
    00598 #ifndef PASN_LEANANDMEAN
    00599     PCLASSINFO(H4501_NumberScreened, PASN_Sequence);
    00600 #endif
    00601   public:
    00602     H4501_NumberScreened(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00603
    00604     H225_PartyNumber m_partyNumber;
    00605     H4501_ScreeningIndicator m_screeningIndicator;
    00606
    00607     PINDEX GetDataLength() const;
    00608     PBoolean Decode(PASN_Stream & strm);
    00609     void Encode(PASN_Stream & strm) const;
    00610 #ifndef PASN_NOPRINTON
    00611     void PrintOn(ostream & strm) const;
    00612 #endif
    00613     Comparison Compare(const PObject & obj) const;
    00614     PObject * Clone() const;
    00615 };
    00616
    00617
    00618 //
    00619 // Address
    00620 //
    00621
    00622 class H4501_Address : public PASN_Sequence
    00623 {
    00624 #ifndef PASN_LEANANDMEAN
    00625     PCLASSINFO(H4501_Address, PASN_Sequence);
    00626 #endif
    00627   public:
    00628     H4501_Address(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00629
    00630     enum OptionalFields {
    00631       e_partySubaddress
    00632     };
    00633
    00634     H225_PartyNumber m_partyNumber;
    00635     H4501_PartySubaddress m_partySubaddress;
    00636
    00637     PINDEX GetDataLength() const;
    00638     PBoolean Decode(PASN_Stream & strm);
    00639     void Encode(PASN_Stream & strm) const;
    00640 #ifndef PASN_NOPRINTON
    00641     void PrintOn(ostream & strm) const;
    00642 #endif
    00643     Comparison Compare(const PObject & obj) const;
    00644     PObject * Clone() const;
    00645 };
    00646
    00647
    00648 //
    00649 // EndpointAddress
    00650 //
    00651
    00652 class H4501_EndpointAddress : public PASN_Sequence
    00653 {
    00654 #ifndef PASN_LEANANDMEAN
    00655     PCLASSINFO(H4501_EndpointAddress, PASN_Sequence);
    00656 #endif
    00657   public:
    00658     H4501_EndpointAddress(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00659
    00660     enum OptionalFields {
    00661       e_remoteExtensionAddress
    00662     };
    00663
    00664     H4501_ArrayOf_AliasAddress m_destinationAddress;
    00665     H225_AliasAddress m_remoteExtensionAddress;
    00666
    00667     PINDEX GetDataLength() const;
    00668     PBoolean Decode(PASN_Stream & strm);
    00669     void Encode(PASN_Stream & strm) const;
    00670 #ifndef PASN_NOPRINTON
    00671     void PrintOn(ostream & strm) const;
    00672 #endif
    00673     Comparison Compare(const PObject & obj) const;
    00674     PObject * Clone() const;
    00675 };
    00676
    00677
    00678 //
    00679 // UserSpecifiedSubaddress
    00680 //
    00681
    00682 class H4501_UserSpecifiedSubaddress : public PASN_Sequence
    00683 {
    00684 #ifndef PASN_LEANANDMEAN
    00685     PCLASSINFO(H4501_UserSpecifiedSubaddress, PASN_Sequence);
    00686 #endif
    00687   public:
    00688     H4501_UserSpecifiedSubaddress(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00689
    00690     enum OptionalFields {
    00691       e_oddCountIndicator
    00692     };
    00693
    00694     H4501_SubaddressInformation m_subaddressInformation;
    00695     PASN_Boolean m_oddCountIndicator;
    00696
    00697     PINDEX GetDataLength() const;
    00698     PBoolean Decode(PASN_Stream & strm);
    00699     void Encode(PASN_Stream & strm) const;
    00700 #ifndef PASN_NOPRINTON
    00701     void PrintOn(ostream & strm) const;
    00702 #endif
    00703     Comparison Compare(const PObject & obj) const;
    00704     PObject * Clone() const;
    00705 };
    00706
    00707
    00708 //
    00709 // SupplementaryService
    00710 //
    00711
    00712 class H4501_SupplementaryService : public PASN_Sequence
    00713 {
    00714 #ifndef PASN_LEANANDMEAN
    00715     PCLASSINFO(H4501_SupplementaryService, PASN_Sequence);
    00716 #endif
    00717   public:
    00718     H4501_SupplementaryService(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
    00719
    00720     enum OptionalFields {
    00721       e_networkFacilityExtension,
    00722       e_interpretationApdu
    00723     };
    00724
    00725     H4501_NetworkFacilityExtension m_networkFacilityExtension;
    00726     H4501_InterpretationApdu m_interpretationApdu;
    00727     H4501_ServiceApdus m_serviceApdu;
    00728
    00729     PINDEX GetDataLength() const;
    00730     PBoolean Decode(PASN_Stream & strm);
    00731     void Encode(PASN_Stream & strm) const;
    00732 #ifndef PASN_NOPRINTON
    00733     void PrintOn(ostream & strm) const;
    00734 #endif
    00735     Comparison Compare(const PObject & obj) const;
    00736     PObject * Clone() const;
    00737 };
    00738
    00739
    00740 #endif // __H4501_H
    00741
    00742 #endif // if ! H323_DISABLE_H4501
    00743
    00744
    00745 // End of h4501.h