00001
00002
00003
00004
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
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 BOOL
CreateObject();
00040 PObject *
Clone() const;
00041 };
00042
00043
00044
00045
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
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 BOOL
CreateObject();
00079 PObject *
Clone() const;
00080 };
00081
00082
00083
00084
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 BOOL CreateObject();
00109 PObject * Clone() const;
00110 };
00111
00112
00113
00114
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
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
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 BOOL CreateObject();
00178 PObject * Clone() const;
00179 };
00180
00181
00182
00183
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 BOOL CreateObject();
00211 PObject * Clone() const;
00212 };
00213
00214
00215
00216
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 BOOL CreateObject();
00244 PObject * Clone() const;
00245 };
00246
00247
00248
00249
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 BOOL CreateObject();
00277 PObject * Clone() const;
00278 };
00279
00280
00281
00282
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 BOOL CreateObject();
00315 PObject * Clone() const;
00316 };
00317
00318
00319
00320
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
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
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
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=(BOOL v);
00402 PObject *
Clone()
const;
00403 };
00404
00405
00406
00407
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
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
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 BOOL 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
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
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
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 BOOL 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
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 BOOL 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
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 BOOL 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
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 BOOL 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
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 BOOL 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
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 BOOL 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
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 BOOL 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
00741
00742 #endif
00743
00744
00745