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
00730
00731 #endif
00732
00733
00734