00001
00002
00003
00004
00005
00006
00007 #if ! H323_DISABLE_H225
00008
00009 #ifndef __H225_H
00010 #define __H225_H
00011
00012 #ifdef P_USE_PRAGMA
00013 #pragma interface
00014 #endif
00015
00016 #include <ptclib/asner.h>
00017
00018 #include "h235.h"
00019 #include "h245.h"
00020
00021
00022
00023
00024
00025
00026 class H225_NonStandardParameter;
00027 class H225_ConferenceIdentifier;
00028 class H225_SecurityErrors;
00029
00030 class H225_ReleaseCompleteReason : public PASN_Choice
00031 {
00032 #ifndef PASN_LEANANDMEAN
00033 PCLASSINFO(H225_ReleaseCompleteReason, PASN_Choice);
00034 #endif
00035 public:
00036 H225_ReleaseCompleteReason(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00037
00038 enum Choices {
00039 e_noBandwidth,
00040 e_gatekeeperResources,
00041 e_unreachableDestination,
00042 e_destinationRejection,
00043 e_invalidRevision,
00044 e_noPermission,
00045 e_unreachableGatekeeper,
00046 e_gatewayResources,
00047 e_badFormatAddress,
00048 e_adaptiveBusy,
00049 e_inConf,
00050 e_undefinedReason,
00051 e_facilityCallDeflection,
00052 e_securityDenied,
00053 e_calledPartyNotRegistered,
00054 e_callerNotRegistered,
00055 e_newConnectionNeeded,
00056 e_nonStandardReason,
00057 e_replaceWithConferenceInvite,
00058 e_genericDataReason,
00059 e_neededFeatureNotSupported,
00060 e_tunnelledSignallingRejected,
00061 e_invalidCID,
00062 e_securityError,
00063 e_hopCountExceeded
00064 };
00065
00066 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00067 operator H225_NonStandardParameter &() const;
00068 #else
00069 operator H225_NonStandardParameter &();
00070 operator const H225_NonStandardParameter &() const;
00071 #endif
00072 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00073 operator H225_ConferenceIdentifier &() const;
00074 #else
00075 operator H225_ConferenceIdentifier &();
00076 operator const H225_ConferenceIdentifier &() const;
00077 #endif
00078 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00079 operator H225_SecurityErrors &() const;
00080 #else
00081 operator H225_SecurityErrors &();
00082 operator const H225_SecurityErrors &() const;
00083 #endif
00084
00085 BOOL CreateObject();
00086 PObject * Clone() const;
00087 };
00088
00089
00090
00091
00092
00093
00094 class H225_ScnConnectionType : public PASN_Choice
00095 {
00096 #ifndef PASN_LEANANDMEAN
00097 PCLASSINFO(H225_ScnConnectionType, PASN_Choice);
00098 #endif
00099 public:
00100 H225_ScnConnectionType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00101
00102 enum Choices {
00103 e_unknown,
00104 e_bChannel,
00105 e_hybrid2x64,
00106 e_hybrid384,
00107 e_hybrid1536,
00108 e_hybrid1920,
00109 e_multirate
00110 };
00111
00112 BOOL CreateObject();
00113 PObject * Clone() const;
00114 };
00115
00116
00117
00118
00119
00120
00121 class H225_ScnConnectionAggregation : public PASN_Choice
00122 {
00123 #ifndef PASN_LEANANDMEAN
00124 PCLASSINFO(H225_ScnConnectionAggregation, PASN_Choice);
00125 #endif
00126 public:
00127 H225_ScnConnectionAggregation(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00128
00129 enum Choices {
00130 e_auto,
00131 e_none,
00132 e_h221,
00133 e_bonded_mode1,
00134 e_bonded_mode2,
00135 e_bonded_mode3
00136 };
00137
00138 BOOL CreateObject();
00139 PObject * Clone() const;
00140 };
00141
00142
00143
00144
00145
00146
00147 class H225_PresentationIndicator : public PASN_Choice
00148 {
00149 #ifndef PASN_LEANANDMEAN
00150 PCLASSINFO(H225_PresentationIndicator, PASN_Choice);
00151 #endif
00152 public:
00153 H225_PresentationIndicator(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00154
00155 enum Choices {
00156 e_presentationAllowed,
00157 e_presentationRestricted,
00158 e_addressNotAvailable
00159 };
00160
00161 BOOL CreateObject();
00162 PObject * Clone() const;
00163 };
00164
00165
00166
00167
00168
00169
00170 class H225_ScreeningIndicator : public PASN_Enumeration
00171 {
00172 #ifndef PASN_LEANANDMEAN
00173 PCLASSINFO(H225_ScreeningIndicator, PASN_Enumeration);
00174 #endif
00175 public:
00176 H225_ScreeningIndicator(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
00177
00178 enum Enumerations {
00179 e_userProvidedNotScreened,
00180 e_userProvidedVerifiedAndPassed,
00181 e_userProvidedVerifiedAndFailed,
00182 e_networkProvided
00183 };
00184
00185 H225_ScreeningIndicator & operator=(unsigned v);
00186 PObject * Clone() const;
00187 };
00188
00189
00190
00191
00192
00193
00194 class H225_FacilityReason : public PASN_Choice
00195 {
00196 #ifndef PASN_LEANANDMEAN
00197 PCLASSINFO(H225_FacilityReason, PASN_Choice);
00198 #endif
00199 public:
00200 H225_FacilityReason(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00201
00202 enum Choices {
00203 e_routeCallToGatekeeper,
00204 e_callForwarded,
00205 e_routeCallToMC,
00206 e_undefinedReason,
00207 e_conferenceListChoice,
00208 e_startH245,
00209 e_noH245,
00210 e_newTokens,
00211 e_featureSetUpdate,
00212 e_forwardedElements,
00213 e_transportedInformation
00214 };
00215
00216 BOOL CreateObject();
00217 PObject * Clone() const;
00218 };
00219
00220
00221
00222
00223
00224
00225 class H225_TransportAddress_ipAddress;
00226 class H225_TransportAddress_ipSourceRoute;
00227 class H225_TransportAddress_ipxAddress;
00228 class H225_TransportAddress_ip6Address;
00229 class H225_NonStandardParameter;
00230
00231 class H225_TransportAddress : public PASN_Choice
00232 {
00233 #ifndef PASN_LEANANDMEAN
00234 PCLASSINFO(H225_TransportAddress, PASN_Choice);
00235 #endif
00236 public:
00237 H225_TransportAddress(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00238
00239 enum Choices {
00240 e_ipAddress,
00241 e_ipSourceRoute,
00242 e_ipxAddress,
00243 e_ip6Address,
00244 e_netBios,
00245 e_nsap,
00246 e_nonStandardAddress
00247 };
00248
00249 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00250 operator H225_TransportAddress_ipAddress &() const;
00251 #else
00252 operator H225_TransportAddress_ipAddress &();
00253 operator const H225_TransportAddress_ipAddress &() const;
00254 #endif
00255 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00256 operator H225_TransportAddress_ipSourceRoute &() const;
00257 #else
00258 operator H225_TransportAddress_ipSourceRoute &();
00259 operator const H225_TransportAddress_ipSourceRoute &() const;
00260 #endif
00261 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00262 operator H225_TransportAddress_ipxAddress &() const;
00263 #else
00264 operator H225_TransportAddress_ipxAddress &();
00265 operator const H225_TransportAddress_ipxAddress &() const;
00266 #endif
00267 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00268 operator H225_TransportAddress_ip6Address &() const;
00269 #else
00270 operator H225_TransportAddress_ip6Address &();
00271 operator const H225_TransportAddress_ip6Address &() const;
00272 #endif
00273 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00274 operator H225_NonStandardParameter &() const;
00275 #else
00276 operator H225_NonStandardParameter &();
00277 operator const H225_NonStandardParameter &() const;
00278 #endif
00279
00280 BOOL CreateObject();
00281 PObject * Clone() const;
00282 };
00283
00284
00285
00286
00287
00288
00289 class H225_NonStandardParameter;
00290 class H225_H310Caps;
00291 class H225_H320Caps;
00292 class H225_H321Caps;
00293 class H225_H322Caps;
00294 class H225_H323Caps;
00295 class H225_H324Caps;
00296 class H225_VoiceCaps;
00297 class H225_T120OnlyCaps;
00298 class H225_NonStandardProtocol;
00299 class H225_T38FaxAnnexbOnlyCaps;
00300 class H225_SIPCaps;
00301
00302 class H225_SupportedProtocols : public PASN_Choice
00303 {
00304 #ifndef PASN_LEANANDMEAN
00305 PCLASSINFO(H225_SupportedProtocols, PASN_Choice);
00306 #endif
00307 public:
00308 H225_SupportedProtocols(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00309
00310 enum Choices {
00311 e_nonStandardData,
00312 e_h310,
00313 e_h320,
00314 e_h321,
00315 e_h322,
00316 e_h323,
00317 e_h324,
00318 e_voice,
00319 e_t120_only,
00320 e_nonStandardProtocol,
00321 e_t38FaxAnnexbOnly,
00322 e_sip
00323 };
00324
00325 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00326 operator H225_NonStandardParameter &() const;
00327 #else
00328 operator H225_NonStandardParameter &();
00329 operator const H225_NonStandardParameter &() const;
00330 #endif
00331 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00332 operator H225_H310Caps &() const;
00333 #else
00334 operator H225_H310Caps &();
00335 operator const H225_H310Caps &() const;
00336 #endif
00337 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00338 operator H225_H320Caps &() const;
00339 #else
00340 operator H225_H320Caps &();
00341 operator const H225_H320Caps &() const;
00342 #endif
00343 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00344 operator H225_H321Caps &() const;
00345 #else
00346 operator H225_H321Caps &();
00347 operator const H225_H321Caps &() const;
00348 #endif
00349 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00350 operator H225_H322Caps &() const;
00351 #else
00352 operator H225_H322Caps &();
00353 operator const H225_H322Caps &() const;
00354 #endif
00355 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00356 operator H225_H323Caps &() const;
00357 #else
00358 operator H225_H323Caps &();
00359 operator const H225_H323Caps &() const;
00360 #endif
00361 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00362 operator H225_H324Caps &() const;
00363 #else
00364 operator H225_H324Caps &();
00365 operator const H225_H324Caps &() const;
00366 #endif
00367 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00368 operator H225_VoiceCaps &() const;
00369 #else
00370 operator H225_VoiceCaps &();
00371 operator const H225_VoiceCaps &() const;
00372 #endif
00373 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00374 operator H225_T120OnlyCaps &() const;
00375 #else
00376 operator H225_T120OnlyCaps &();
00377 operator const H225_T120OnlyCaps &() const;
00378 #endif
00379 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00380 operator H225_NonStandardProtocol &() const;
00381 #else
00382 operator H225_NonStandardProtocol &();
00383 operator const H225_NonStandardProtocol &() const;
00384 #endif
00385 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00386 operator H225_T38FaxAnnexbOnlyCaps &() const;
00387 #else
00388 operator H225_T38FaxAnnexbOnlyCaps &();
00389 operator const H225_T38FaxAnnexbOnlyCaps &() const;
00390 #endif
00391 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00392 operator H225_SIPCaps &() const;
00393 #else
00394 operator H225_SIPCaps &();
00395 operator const H225_SIPCaps &() const;
00396 #endif
00397
00398 BOOL CreateObject();
00399 PObject * Clone() const;
00400 };
00401
00402
00403
00404
00405
00406
00407 class H225_H221NonStandard : public PASN_Sequence
00408 {
00409 #ifndef PASN_LEANANDMEAN
00410 PCLASSINFO(H225_H221NonStandard, PASN_Sequence);
00411 #endif
00412 public:
00413 H225_H221NonStandard(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00414
00415 PASN_Integer m_t35CountryCode;
00416 PASN_Integer m_t35Extension;
00417 PASN_Integer m_manufacturerCode;
00418
00419 PINDEX GetDataLength() const;
00420 BOOL Decode(PASN_Stream & strm);
00421 void Encode(PASN_Stream & strm) const;
00422 #ifndef PASN_NOPRINTON
00423 void PrintOn(ostream & strm) const;
00424 #endif
00425 Comparison Compare(const PObject & obj) const;
00426 PObject * Clone() const;
00427 };
00428
00429
00430
00431
00432
00433
00434 class H225_TunnelledProtocolAlternateIdentifier : public PASN_Sequence
00435 {
00436 #ifndef PASN_LEANANDMEAN
00437 PCLASSINFO(H225_TunnelledProtocolAlternateIdentifier, PASN_Sequence);
00438 #endif
00439 public:
00440 H225_TunnelledProtocolAlternateIdentifier(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00441
00442 enum OptionalFields {
00443 e_protocolVariant
00444 };
00445
00446 PASN_IA5String m_protocolType;
00447 PASN_IA5String m_protocolVariant;
00448
00449 PINDEX GetDataLength() const;
00450 BOOL Decode(PASN_Stream & strm);
00451 void Encode(PASN_Stream & strm) const;
00452 #ifndef PASN_NOPRINTON
00453 void PrintOn(ostream & strm) const;
00454 #endif
00455 Comparison Compare(const PObject & obj) const;
00456 PObject * Clone() const;
00457 };
00458
00459
00460
00461
00462
00463
00464 class H225_H221NonStandard;
00465
00466 class H225_NonStandardIdentifier : public PASN_Choice
00467 {
00468 #ifndef PASN_LEANANDMEAN
00469 PCLASSINFO(H225_NonStandardIdentifier, PASN_Choice);
00470 #endif
00471 public:
00472 H225_NonStandardIdentifier(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00473
00474 enum Choices {
00475 e_object,
00476 e_h221NonStandard
00477 };
00478
00479 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00480 operator H225_H221NonStandard &() const;
00481 #else
00482 operator H225_H221NonStandard &();
00483 operator const H225_H221NonStandard &() const;
00484 #endif
00485
00486 BOOL CreateObject();
00487 PObject * Clone() const;
00488 };
00489
00490
00491
00492
00493
00494
00495 class H225_TransportAddress;
00496 class H225_PartyNumber;
00497 class H225_MobileUIM;
00498 class H225_IsupNumber;
00499
00500 class H225_AliasAddress : public PASN_Choice
00501 {
00502 #ifndef PASN_LEANANDMEAN
00503 PCLASSINFO(H225_AliasAddress, PASN_Choice);
00504 #endif
00505 public:
00506 H225_AliasAddress(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00507
00508 enum Choices {
00509 e_dialedDigits,
00510 e_h323_ID,
00511 e_url_ID,
00512 e_transportID,
00513 e_email_ID,
00514 e_partyNumber,
00515 e_mobileUIM,
00516 e_isupNumber
00517 };
00518
00519 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00520 operator H225_TransportAddress &() const;
00521 #else
00522 operator H225_TransportAddress &();
00523 operator const H225_TransportAddress &() const;
00524 #endif
00525 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00526 operator H225_PartyNumber &() const;
00527 #else
00528 operator H225_PartyNumber &();
00529 operator const H225_PartyNumber &() const;
00530 #endif
00531 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00532 operator H225_MobileUIM &() const;
00533 #else
00534 operator H225_MobileUIM &();
00535 operator const H225_MobileUIM &() const;
00536 #endif
00537 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00538 operator H225_IsupNumber &() const;
00539 #else
00540 operator H225_IsupNumber &();
00541 operator const H225_IsupNumber &() const;
00542 #endif
00543
00544 BOOL CreateObject();
00545 PObject * Clone() const;
00546 };
00547
00548
00549
00550
00551
00552
00553 class H225_AliasAddress;
00554 class H225_AddressPattern_range;
00555
00556 class H225_AddressPattern : public PASN_Choice
00557 {
00558 #ifndef PASN_LEANANDMEAN
00559 PCLASSINFO(H225_AddressPattern, PASN_Choice);
00560 #endif
00561 public:
00562 H225_AddressPattern(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00563
00564 enum Choices {
00565 e_wildcard,
00566 e_range
00567 };
00568
00569 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00570 operator H225_AliasAddress &() const;
00571 #else
00572 operator H225_AliasAddress &();
00573 operator const H225_AliasAddress &() const;
00574 #endif
00575 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00576 operator H225_AddressPattern_range &() const;
00577 #else
00578 operator H225_AddressPattern_range &();
00579 operator const H225_AddressPattern_range &() const;
00580 #endif
00581
00582 BOOL CreateObject();
00583 PObject * Clone() const;
00584 };
00585
00586
00587
00588
00589
00590
00591 class H225_PublicPartyNumber;
00592 class H225_NumberDigits;
00593 class H225_PrivatePartyNumber;
00594
00595 class H225_PartyNumber : public PASN_Choice
00596 {
00597 #ifndef PASN_LEANANDMEAN
00598 PCLASSINFO(H225_PartyNumber, PASN_Choice);
00599 #endif
00600 public:
00601 H225_PartyNumber(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00602
00603 enum Choices {
00604 e_e164Number,
00605 e_dataPartyNumber,
00606 e_telexPartyNumber,
00607 e_privateNumber,
00608 e_nationalStandardPartyNumber
00609 };
00610
00611 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00612 operator H225_PublicPartyNumber &() const;
00613 #else
00614 operator H225_PublicPartyNumber &();
00615 operator const H225_PublicPartyNumber &() const;
00616 #endif
00617 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00618 operator H225_NumberDigits &() const;
00619 #else
00620 operator H225_NumberDigits &();
00621 operator const H225_NumberDigits &() const;
00622 #endif
00623 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00624 operator H225_PrivatePartyNumber &() const;
00625 #else
00626 operator H225_PrivatePartyNumber &();
00627 operator const H225_PrivatePartyNumber &() const;
00628 #endif
00629
00630 BOOL CreateObject();
00631 PObject * Clone() const;
00632 };
00633
00634
00635
00636
00637
00638
00639 class H225_NumberDigits : public PASN_IA5String
00640 {
00641 #ifndef PASN_LEANANDMEAN
00642 PCLASSINFO(H225_NumberDigits, PASN_IA5String);
00643 #endif
00644 public:
00645 H225_NumberDigits(unsigned tag = UniversalIA5String, TagClass tagClass = UniversalTagClass);
00646
00647 H225_NumberDigits & operator=(const char * v);
00648 H225_NumberDigits & operator=(const PString & v);
00649 PObject * Clone() const;
00650 };
00651
00652
00653
00654
00655
00656
00657 class H225_PublicTypeOfNumber : public PASN_Choice
00658 {
00659 #ifndef PASN_LEANANDMEAN
00660 PCLASSINFO(H225_PublicTypeOfNumber, PASN_Choice);
00661 #endif
00662 public:
00663 H225_PublicTypeOfNumber(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00664
00665 enum Choices {
00666 e_unknown,
00667 e_internationalNumber,
00668 e_nationalNumber,
00669 e_networkSpecificNumber,
00670 e_subscriberNumber,
00671 e_abbreviatedNumber
00672 };
00673
00674 BOOL CreateObject();
00675 PObject * Clone() const;
00676 };
00677
00678
00679
00680
00681
00682
00683 class H225_PrivateTypeOfNumber : public PASN_Choice
00684 {
00685 #ifndef PASN_LEANANDMEAN
00686 PCLASSINFO(H225_PrivateTypeOfNumber, PASN_Choice);
00687 #endif
00688 public:
00689 H225_PrivateTypeOfNumber(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00690
00691 enum Choices {
00692 e_unknown,
00693 e_level2RegionalNumber,
00694 e_level1RegionalNumber,
00695 e_pISNSpecificNumber,
00696 e_localNumber,
00697 e_abbreviatedNumber
00698 };
00699
00700 BOOL CreateObject();
00701 PObject * Clone() const;
00702 };
00703
00704
00705
00706
00707
00708
00709 class H225_ANSI_41_UIM;
00710 class H225_GSM_UIM;
00711
00712 class H225_MobileUIM : public PASN_Choice
00713 {
00714 #ifndef PASN_LEANANDMEAN
00715 PCLASSINFO(H225_MobileUIM, PASN_Choice);
00716 #endif
00717 public:
00718 H225_MobileUIM(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00719
00720 enum Choices {
00721 e_ansi_41_uim,
00722 e_gsm_uim
00723 };
00724
00725 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00726 operator H225_ANSI_41_UIM &() const;
00727 #else
00728 operator H225_ANSI_41_UIM &();
00729 operator const H225_ANSI_41_UIM &() const;
00730 #endif
00731 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00732 operator H225_GSM_UIM &() const;
00733 #else
00734 operator H225_GSM_UIM &();
00735 operator const H225_GSM_UIM &() const;
00736 #endif
00737
00738 BOOL CreateObject();
00739 PObject * Clone() const;
00740 };
00741
00742
00743
00744
00745
00746
00747 class H225_TBCD_STRING : public PASN_IA5String
00748 {
00749 #ifndef PASN_LEANANDMEAN
00750 PCLASSINFO(H225_TBCD_STRING, PASN_IA5String);
00751 #endif
00752 public:
00753 H225_TBCD_STRING(unsigned tag = UniversalIA5String, TagClass tagClass = UniversalTagClass);
00754
00755 H225_TBCD_STRING & operator=(const char * v);
00756 H225_TBCD_STRING & operator=(const PString & v);
00757 PObject * Clone() const;
00758 };
00759
00760
00761
00762
00763
00764
00765 class H225_GSM_UIM : public PASN_Sequence
00766 {
00767 #ifndef PASN_LEANANDMEAN
00768 PCLASSINFO(H225_GSM_UIM, PASN_Sequence);
00769 #endif
00770 public:
00771 H225_GSM_UIM(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00772
00773 enum OptionalFields {
00774 e_imsi,
00775 e_tmsi,
00776 e_msisdn,
00777 e_imei,
00778 e_hplmn,
00779 e_vplmn
00780 };
00781
00782 PASN_IA5String m_imsi;
00783 PASN_OctetString m_tmsi;
00784 PASN_IA5String m_msisdn;
00785 PASN_IA5String m_imei;
00786 PASN_IA5String m_hplmn;
00787 PASN_IA5String m_vplmn;
00788
00789 PINDEX GetDataLength() const;
00790 BOOL Decode(PASN_Stream & strm);
00791 void Encode(PASN_Stream & strm) const;
00792 #ifndef PASN_NOPRINTON
00793 void PrintOn(ostream & strm) const;
00794 #endif
00795 Comparison Compare(const PObject & obj) const;
00796 PObject * Clone() const;
00797 };
00798
00799
00800
00801
00802
00803
00804 class H225_IsupPublicPartyNumber;
00805 class H225_IsupDigits;
00806 class H225_IsupPrivatePartyNumber;
00807
00808 class H225_IsupNumber : public PASN_Choice
00809 {
00810 #ifndef PASN_LEANANDMEAN
00811 PCLASSINFO(H225_IsupNumber, PASN_Choice);
00812 #endif
00813 public:
00814 H225_IsupNumber(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00815
00816 enum Choices {
00817 e_e164Number,
00818 e_dataPartyNumber,
00819 e_telexPartyNumber,
00820 e_privateNumber,
00821 e_nationalStandardPartyNumber
00822 };
00823
00824 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00825 operator H225_IsupPublicPartyNumber &() const;
00826 #else
00827 operator H225_IsupPublicPartyNumber &();
00828 operator const H225_IsupPublicPartyNumber &() const;
00829 #endif
00830 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00831 operator H225_IsupDigits &() const;
00832 #else
00833 operator H225_IsupDigits &();
00834 operator const H225_IsupDigits &() const;
00835 #endif
00836 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00837 operator H225_IsupPrivatePartyNumber &() const;
00838 #else
00839 operator H225_IsupPrivatePartyNumber &();
00840 operator const H225_IsupPrivatePartyNumber &() const;
00841 #endif
00842
00843 BOOL CreateObject();
00844 PObject * Clone() const;
00845 };
00846
00847
00848
00849
00850
00851
00852 class H225_NatureOfAddress : public PASN_Choice
00853 {
00854 #ifndef PASN_LEANANDMEAN
00855 PCLASSINFO(H225_NatureOfAddress, PASN_Choice);
00856 #endif
00857 public:
00858 H225_NatureOfAddress(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00859
00860 enum Choices {
00861 e_unknown,
00862 e_subscriberNumber,
00863 e_nationalNumber,
00864 e_internationalNumber,
00865 e_networkSpecificNumber,
00866 e_routingNumberNationalFormat,
00867 e_routingNumberNetworkSpecificFormat,
00868 e_routingNumberWithCalledDirectoryNumber
00869 };
00870
00871 BOOL CreateObject();
00872 PObject * Clone() const;
00873 };
00874
00875
00876
00877
00878
00879
00880 class H225_IsupDigits : public PASN_IA5String
00881 {
00882 #ifndef PASN_LEANANDMEAN
00883 PCLASSINFO(H225_IsupDigits, PASN_IA5String);
00884 #endif
00885 public:
00886 H225_IsupDigits(unsigned tag = UniversalIA5String, TagClass tagClass =