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