00001
00002
00003
00004
00005
00006
00007 #if ! H323_DISABLE_H4502
00008
00009 #ifndef __H4502_H
00010 #define __H4502_H
00011
00012 #ifdef P_USE_PRAGMA
00013 #pragma interface
00014 #endif
00015
00016 #include <ptclib/asner.h>
00017
00018 #include "h4501.h"
00019 #include "h4501.h"
00020 #include "h4501.h"
00021 #include "h225.h"
00022 #include "h4501.h"
00023
00024
00025
00026
00027
00028
00029 class H4502_ExtensionSeq;
00030 class H225_NonStandardParameter;
00031
00032 class H4502_DummyArg : public PASN_Choice
00033 {
00034 #ifndef PASN_LEANANDMEAN
00035 PCLASSINFO(H4502_DummyArg, PASN_Choice);
00036 #endif
00037 public:
00038 H4502_DummyArg(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00039
00040 enum Choices {
00041 e_extensionSeq,
00042 e_nonStandardData
00043 };
00044
00045 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00046 operator H4502_ExtensionSeq &() const;
00047 #else
00048 operator H4502_ExtensionSeq &();
00049 operator const H4502_ExtensionSeq &() const;
00050 #endif
00051 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00052 operator H225_NonStandardParameter &() const;
00053 #else
00054 operator H225_NonStandardParameter &();
00055 operator const H225_NonStandardParameter &() const;
00056 #endif
00057
00058 BOOL CreateObject();
00059 PObject * Clone() const;
00060 };
00061
00062
00063
00064
00065
00066
00067 class H4502_ExtensionSeq;
00068 class H225_NonStandardParameter;
00069
00070 class H4502_DummyRes : public PASN_Choice
00071 {
00072 #ifndef PASN_LEANANDMEAN
00073 PCLASSINFO(H4502_DummyRes, PASN_Choice);
00074 #endif
00075 public:
00076 H4502_DummyRes(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00077
00078 enum Choices {
00079 e_extensionSeq,
00080 e_nonStandardData
00081 };
00082
00083 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00084 operator H4502_ExtensionSeq &() const;
00085 #else
00086 operator H4502_ExtensionSeq &();
00087 operator const H4502_ExtensionSeq &() const;
00088 #endif
00089 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00090 operator H225_NonStandardParameter &() const;
00091 #else
00092 operator H225_NonStandardParameter &();
00093 operator const H225_NonStandardParameter &() const;
00094 #endif
00095
00096 BOOL CreateObject();
00097 PObject * Clone() const;
00098 };
00099
00100
00101
00102
00103
00104
00105 class H4502_EndDesignation : public PASN_Enumeration
00106 {
00107 #ifndef PASN_LEANANDMEAN
00108 PCLASSINFO(H4502_EndDesignation, PASN_Enumeration);
00109 #endif
00110 public:
00111 H4502_EndDesignation(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
00112
00113 enum Enumerations {
00114 e_primaryEnd,
00115 e_secondaryEnd
00116 };
00117
00118 H4502_EndDesignation & operator=(unsigned v);
00119 PObject * Clone() const;
00120 };
00121
00122
00123
00124
00125
00126
00127 class H4502_CallStatus : public PASN_Enumeration
00128 {
00129 #ifndef PASN_LEANANDMEAN
00130 PCLASSINFO(H4502_CallStatus, PASN_Enumeration);
00131 #endif
00132 public:
00133 H4502_CallStatus(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
00134
00135 enum Enumerations {
00136 e_answered,
00137 e_alerting
00138 };
00139
00140 H4502_CallStatus & operator=(unsigned v);
00141 PObject * Clone() const;
00142 };
00143
00144
00145
00146
00147
00148
00149 class H4502_CallIdentity : public PASN_NumericString
00150 {
00151 #ifndef PASN_LEANANDMEAN
00152 PCLASSINFO(H4502_CallIdentity, PASN_NumericString);
00153 #endif
00154 public:
00155 H4502_CallIdentity(unsigned tag = UniversalNumericString, TagClass tagClass = UniversalTagClass);
00156
00157 H4502_CallIdentity & operator=(const char * v);
00158 H4502_CallIdentity & operator=(const PString & v);
00159 PObject * Clone() const;
00160 };
00161
00162
00163
00164
00165
00166
00167 class H4501_Extension;
00168
00169 class H4502_ExtensionSeq : public PASN_Array
00170 {
00171 #ifndef PASN_LEANANDMEAN
00172 PCLASSINFO(H4502_ExtensionSeq, PASN_Array);
00173 #endif
00174 public:
00175 H4502_ExtensionSeq(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00176
00177 PASN_Object * CreateObject() const;
00178 H4501_Extension & operator[](PINDEX i) const;
00179 PObject * Clone() const;
00180 };
00181
00182
00183
00184
00185
00186
00187 class H4502_CallTransferOperation : public PASN_Enumeration
00188 {
00189 #ifndef PASN_LEANANDMEAN
00190 PCLASSINFO(H4502_CallTransferOperation, PASN_Enumeration);
00191 #endif
00192 public:
00193 H4502_CallTransferOperation(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
00194
00195 enum Enumerations {
00196 e_callTransferIdentify = 7,
00197 e_callTransferAbandon,
00198 e_callTransferInitiate,
00199 e_callTransferSetup,
00200 e_callTransferUpdate = 13,
00201 e_subaddressTransfer,
00202 e_callTransferComplete = 12,
00203 e_callTransferActive = 11
00204 };
00205
00206 H4502_CallTransferOperation & operator=(unsigned v);
00207 PObject * Clone() const;
00208 };
00209
00210
00211
00212
00213
00214
00215 class H4502_CallTransferErrors : public PASN_Enumeration
00216 {
00217 #ifndef PASN_LEANANDMEAN
00218 PCLASSINFO(H4502_CallTransferErrors, PASN_Enumeration);
00219 #endif
00220 public:
00221 H4502_CallTransferErrors(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
00222
00223 enum Enumerations {
00224 e_unspecified = 1008,
00225 e_invalidReroutingNumber = 1004,
00226 e_unrecognizedCallIdentity,
00227 e_establishmentFailure
00228 };
00229
00230 H4502_CallTransferErrors & operator=(unsigned v);
00231 PObject * Clone() const;
00232 };
00233
00234
00235
00236
00237
00238
00239 class H4502_ExtensionSeq;
00240 class H225_NonStandardParameter;
00241
00242 class H4502_CTInitiateArg_argumentExtension : public PASN_Choice
00243 {
00244 #ifndef PASN_LEANANDMEAN
00245 PCLASSINFO(H4502_CTInitiateArg_argumentExtension, PASN_Choice);
00246 #endif
00247 public:
00248 H4502_CTInitiateArg_argumentExtension(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00249
00250 enum Choices {
00251 e_extensionSeq,
00252 e_nonStandardData
00253 };
00254
00255 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00256 operator H4502_ExtensionSeq &() const;
00257 #else
00258 operator H4502_ExtensionSeq &();
00259 operator const H4502_ExtensionSeq &() const;
00260 #endif
00261 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00262 operator H225_NonStandardParameter &() const;
00263 #else
00264 operator H225_NonStandardParameter &();
00265 operator const H225_NonStandardParameter &() const;
00266 #endif
00267
00268 BOOL CreateObject();
00269 PObject * Clone() const;
00270 };
00271
00272
00273
00274
00275
00276
00277 class H4502_ExtensionSeq;
00278 class H225_NonStandardParameter;
00279
00280 class H4502_CTSetupArg_argumentExtension : public PASN_Choice
00281 {
00282 #ifndef PASN_LEANANDMEAN
00283 PCLASSINFO(H4502_CTSetupArg_argumentExtension, PASN_Choice);
00284 #endif
00285 public:
00286 H4502_CTSetupArg_argumentExtension(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00287
00288 enum Choices {
00289 e_extensionSeq,
00290 e_nonStandardData
00291 };
00292
00293 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00294 operator H4502_ExtensionSeq &() const;
00295 #else
00296 operator H4502_ExtensionSeq &();
00297 operator const H4502_ExtensionSeq &() const;
00298 #endif
00299 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00300 operator H225_NonStandardParameter &() const;
00301 #else
00302 operator H225_NonStandardParameter &();
00303 operator const H225_NonStandardParameter &() const;
00304 #endif
00305
00306 BOOL CreateObject();
00307 PObject * Clone() const;
00308 };
00309
00310
00311
00312
00313
00314
00315 class H4502_ExtensionSeq;
00316 class H225_NonStandardParameter;
00317
00318 class H4502_CTIdentifyRes_resultExtension : public PASN_Choice
00319 {
00320 #ifndef PASN_LEANANDMEAN
00321 PCLASSINFO(H4502_CTIdentifyRes_resultExtension, PASN_Choice);
00322 #endif
00323 public:
00324 H4502_CTIdentifyRes_resultExtension(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00325
00326 enum Choices {
00327 e_extensionSeq,
00328 e_nonStandardData
00329 };
00330
00331 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00332 operator H4502_ExtensionSeq &() const;
00333 #else
00334 operator H4502_ExtensionSeq &();
00335 operator const H4502_ExtensionSeq &() const;
00336 #endif
00337 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00338 operator H225_NonStandardParameter &() const;
00339 #else
00340 operator H225_NonStandardParameter &();
00341 operator const H225_NonStandardParameter &() const;
00342 #endif
00343
00344 BOOL CreateObject();
00345 PObject * Clone() const;
00346 };
00347
00348
00349
00350
00351
00352
00353 class H4502_ExtensionSeq;
00354 class H225_NonStandardParameter;
00355
00356 class H4502_CTUpdateArg_argumentExtension : public PASN_Choice
00357 {
00358 #ifndef PASN_LEANANDMEAN
00359 PCLASSINFO(H4502_CTUpdateArg_argumentExtension, PASN_Choice);
00360 #endif
00361 public:
00362 H4502_CTUpdateArg_argumentExtension(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00363
00364 enum Choices {
00365 e_extensionSeq,
00366 e_nonStandardData
00367 };
00368
00369 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00370 operator H4502_ExtensionSeq &() const;
00371 #else
00372 operator H4502_ExtensionSeq &();
00373 operator const H4502_ExtensionSeq &() const;
00374 #endif
00375 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00376 operator H225_NonStandardParameter &() const;
00377 #else
00378 operator H225_NonStandardParameter &();
00379 operator const H225_NonStandardParameter &() const;
00380 #endif
00381
00382 BOOL CreateObject();
00383 PObject * Clone() const;
00384 };
00385
00386
00387
00388
00389
00390
00391 class H4502_ExtensionSeq;
00392 class H225_NonStandardParameter;
00393
00394 class H4502_SubaddressTransferArg_argumentExtension : public PASN_Choice
00395 {
00396 #ifndef PASN_LEANANDMEAN
00397 PCLASSINFO(H4502_SubaddressTransferArg_argumentExtension, PASN_Choice);
00398 #endif
00399 public:
00400 H4502_SubaddressTransferArg_argumentExtension(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00401
00402 enum Choices {
00403 e_extensionSeq,
00404 e_nonStandardData
00405 };
00406
00407 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00408 operator H4502_ExtensionSeq &() const;
00409 #else
00410 operator H4502_ExtensionSeq &();
00411 operator const H4502_ExtensionSeq &() const;
00412 #endif
00413 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00414 operator H225_NonStandardParameter &() const;
00415 #else
00416 operator H225_NonStandardParameter &();
00417 operator const H225_NonStandardParameter &() const;
00418 #endif
00419
00420 BOOL CreateObject();
00421 PObject * Clone() const;
00422 };
00423
00424
00425
00426
00427
00428
00429 class H4502_ExtensionSeq;
00430 class H225_NonStandardParameter;
00431
00432 class H4502_CTCompleteArg_argumentExtension : public PASN_Choice
00433 {
00434 #ifndef PASN_LEANANDMEAN
00435 PCLASSINFO(H4502_CTCompleteArg_argumentExtension, PASN_Choice);
00436 #endif
00437 public:
00438 H4502_CTCompleteArg_argumentExtension(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00439
00440 enum Choices {
00441 e_extensionSeq,
00442 e_nonStandardData
00443 };
00444
00445 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00446 operator H4502_ExtensionSeq &() const;
00447 #else
00448 operator H4502_ExtensionSeq &();
00449 operator const H4502_ExtensionSeq &() const;
00450 #endif
00451 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00452 operator H225_NonStandardParameter &() const;
00453 #else
00454 operator H225_NonStandardParameter &();
00455 operator const H225_NonStandardParameter &() const;
00456 #endif
00457
00458 BOOL CreateObject();
00459 PObject * Clone() const;
00460 };
00461
00462
00463
00464
00465
00466
00467 class H4502_ExtensionSeq;
00468 class H225_NonStandardParameter;
00469
00470 class H4502_CTActiveArg_argumentExtension : public PASN_Choice
00471 {
00472 #ifndef PASN_LEANANDMEAN
00473 PCLASSINFO(H4502_CTActiveArg_argumentExtension, PASN_Choice);
00474 #endif
00475 public:
00476 H4502_CTActiveArg_argumentExtension(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00477
00478 enum Choices {
00479 e_extensionSeq,
00480 e_nonStandardData
00481 };
00482
00483 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00484 operator H4502_ExtensionSeq &() const;
00485 #else
00486 operator H4502_ExtensionSeq &();
00487 operator const H4502_ExtensionSeq &() const;
00488 #endif
00489 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00490 operator H225_NonStandardParameter &() const;
00491 #else
00492 operator H225_NonStandardParameter &();
00493 operator const H225_NonStandardParameter &() const;
00494 #endif
00495
00496 BOOL CreateObject();
00497 PObject * Clone() const;
00498 };
00499
00500
00501
00502
00503
00504
00505 class H4502_CTInitiateArg : public PASN_Sequence
00506 {
00507 #ifndef PASN_LEANANDMEAN
00508 PCLASSINFO(H4502_CTInitiateArg, PASN_Sequence);
00509 #endif
00510 public:
00511 H4502_CTInitiateArg(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00512
00513 enum OptionalFields {
00514 e_argumentExtension
00515 };
00516
00517 H4502_CallIdentity m_callIdentity;
00518 H4501_EndpointAddress m_reroutingNumber;
00519 H4502_CTInitiateArg_argumentExtension m_argumentExtension;
00520
00521 PINDEX GetDataLength() const;
00522 BOOL Decode(PASN_Stream & strm);
00523 void Encode(PASN_Stream & strm) const;
00524 #ifndef PASN_NOPRINTON
00525 void PrintOn(ostream & strm) const;
00526 #endif
00527 Comparison Compare(const PObject & obj) const;
00528 PObject * Clone() const;
00529 };
00530
00531
00532
00533
00534
00535
00536 class H4502_CTSetupArg : public PASN_Sequence
00537 {
00538 #ifndef PASN_LEANANDMEAN
00539 PCLASSINFO(H4502_CTSetupArg, PASN_Sequence);
00540 #endif
00541 public:
00542 H4502_CTSetupArg(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00543
00544 enum OptionalFields {
00545 e_transferringNumber,
00546 e_argumentExtension
00547 };
00548
00549 H4502_CallIdentity m_callIdentity;
00550 H4501_EndpointAddress m_transferringNumber;
00551 H4502_CTSetupArg_argumentExtension m_argumentExtension;
00552
00553 PINDEX GetDataLength() const;
00554 BOOL Decode(PASN_Stream & strm);
00555 void Encode(PASN_Stream & strm) const;
00556 #ifndef PASN_NOPRINTON
00557 void PrintOn(ostream & strm) const;
00558 #endif
00559 Comparison Compare(const PObject & obj) const;
00560 PObject * Clone() const;
00561 };
00562
00563
00564
00565
00566
00567
00568 class H4502_CTIdentifyRes : public PASN_Sequence
00569 {
00570 #ifndef PASN_LEANANDMEAN
00571 PCLASSINFO(H4502_CTIdentifyRes, PASN_Sequence);
00572 #endif
00573 public:
00574 H4502_CTIdentifyRes(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00575
00576 enum OptionalFields {
00577 e_resultExtension
00578 };
00579
00580 H4502_CallIdentity m_callIdentity;
00581 H4501_EndpointAddress m_reroutingNumber;
00582 H4502_CTIdentifyRes_resultExtension m_resultExtension;
00583
00584 PINDEX GetDataLength() const;
00585 BOOL Decode(PASN_Stream & strm);
00586 void Encode(PASN_Stream & strm) const;
00587 #ifndef PASN_NOPRINTON
00588 void PrintOn(ostream & strm) const;
00589 #endif
00590 Comparison Compare(const PObject & obj) const;
00591 PObject * Clone() const;
00592 };
00593
00594
00595
00596
00597
00598
00599 class H4502_CTUpdateArg : public PASN_Sequence
00600 {
00601 #ifndef PASN_LEANANDMEAN
00602 PCLASSINFO(H4502_CTUpdateArg, PASN_Sequence);
00603 #endif
00604 public:
00605 H4502_CTUpdateArg(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00606
00607 enum OptionalFields {
00608 e_redirectionInfo,
00609 e_basicCallInfoElements,
00610 e_argumentExtension
00611 };
00612
00613 H4501_EndpointAddress m_redirectionNumber;
00614 PASN_BMPString m_redirectionInfo;
00615 H4501_H225InformationElement m_basicCallInfoElements;
00616 H4502_CTUpdateArg_argumentExtension m_argumentExtension;
00617
00618 PINDEX GetDataLength() const;
00619 BOOL Decode(PASN_Stream & strm);
00620 void Encode(PASN_Stream & strm) const;
00621 #ifndef PASN_NOPRINTON
00622 void PrintOn(ostream & strm) const;
00623 #endif
00624 Comparison Compare(const PObject & obj) const;
00625 PObject * Clone() const;
00626 };
00627
00628
00629
00630
00631
00632
00633 class H4502_SubaddressTransferArg : public PASN_Sequence
00634 {
00635 #ifndef PASN_LEANANDMEAN
00636 PCLASSINFO(H4502_SubaddressTransferArg, PASN_Sequence);
00637 #endif
00638 public:
00639 H4502_SubaddressTransferArg(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00640
00641 enum OptionalFields {
00642 e_argumentExtension
00643 };
00644
00645 H4501_PartySubaddress m_redirectionSubaddress;
00646 H4502_SubaddressTransferArg_argumentExtension m_argumentExtension;
00647
00648 PINDEX GetDataLength() const;
00649 BOOL Decode(PASN_Stream & strm);
00650 void Encode(PASN_Stream & strm) const;
00651 #ifndef PASN_NOPRINTON
00652 void PrintOn(ostream & strm) const;
00653 #endif
00654 Comparison Compare(const PObject & obj) const;
00655 PObject * Clone() const;
00656 };
00657
00658
00659
00660
00661
00662
00663 class H4502_CTCompleteArg : public PASN_Sequence
00664 {
00665 #ifndef PASN_LEANANDMEAN
00666 PCLASSINFO(H4502_CTCompleteArg, PASN_Sequence);
00667 #endif
00668 public:
00669 H4502_CTCompleteArg(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00670
00671 enum OptionalFields {
00672 e_basicCallInfoElements,
00673 e_redirectionInfo,
00674 e_argumentExtension
00675 };
00676
00677 H4502_EndDesignation m_endDesignation;
00678 H4501_EndpointAddress m_redirectionNumber;
00679 H4501_H225InformationElement m_basicCallInfoElements;
00680 PASN_BMPString m_redirectionInfo;
00681 H4502_CallStatus m_callStatus;
00682 H4502_CTCompleteArg_argumentExtension m_argumentExtension;
00683
00684 PINDEX GetDataLength() const;
00685 BOOL Decode(PASN_Stream & strm);
00686 void Encode(PASN_Stream & strm) const;
00687 #ifndef PASN_NOPRINTON
00688 void PrintOn(ostream & strm) const;
00689 #endif
00690 Comparison Compare(const PObject & obj) const;
00691 PObject * Clone() const;
00692 };
00693
00694
00695
00696
00697
00698
00699 class H4502_CTActiveArg : public PASN_Sequence
00700 {
00701 #ifndef PASN_LEANANDMEAN
00702 PCLASSINFO(H4502_CTActiveArg, PASN_Sequence);
00703 #endif
00704 public:
00705 H4502_CTActiveArg(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00706
00707 enum OptionalFields {
00708 e_basicCallInfoElements,
00709 e_connectedInfo,
00710 e_argumentExtension
00711 };
00712
00713 H4501_EndpointAddress m_connectedAddress;
00714 H4501_H225InformationElement m_basicCallInfoElements;
00715 PASN_BMPString m_connectedInfo;
00716 H4502_CTActiveArg_argumentExtension m_argumentExtension;
00717
00718 PINDEX GetDataLength() const;
00719 BOOL Decode(PASN_Stream & strm);
00720 void Encode(PASN_Stream & strm) const;
00721 #ifndef PASN_NOPRINTON
00722 void PrintOn(ostream & strm) const;
00723 #endif
00724 Comparison Compare(const PObject & obj) const;
00725 PObject * Clone() const;
00726 };
00727
00728
00729 #endif // __H4502_H
00730
00731 #endif // if ! H323_DISABLE_H4502
00732
00733
00734