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