00001
00002
00003
00004
00005
00006
00007
#if ! H323_DISABLE_H4504
00008
00009
#ifndef __H4504_H
00010
#define __H4504_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 "h225.h"
00021
00022
00023
00024
00025
00026
00027 class H4504_CallHoldOperation :
public PASN_Enumeration
00028 {
00029
#ifndef PASN_LEANANDMEAN
00030
PCLASSINFO(
H4504_CallHoldOperation, PASN_Enumeration);
00031
#endif
00032
public:
00033
H4504_CallHoldOperation(
unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
00034
00035 enum Enumerations {
00036
e_holdNotific = 101,
00037
e_retrieveNotific,
00038
e_remoteHold,
00039
e_remoteRetrieve
00040 };
00041
00042
H4504_CallHoldOperation & operator=(
unsigned v);
00043 PObject *
Clone() const;
00044 };
00045
00046
00047
00048
00049
00050
00051 class
H4501_Extension;
00052 class
H225_NonStandardParameter;
00053
00054 class
H4504_MixedExtension : public PASN_Choice
00055 {
00056
#ifndef PASN_LEANANDMEAN
00057
PCLASSINFO(
H4504_MixedExtension, PASN_Choice);
00058
#endif
00059
public:
00060
H4504_MixedExtension(
unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00061
00062 enum Choices {
00063 e_extension,
00064 e_nonStandardData
00065 };
00066
00067
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00068
operator H4501_Extension &() const;
00069 #else
00070 operator H4501_Extension &();
00071 operator const H4501_Extension &() const;
00072 #endif
00073 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00074 operator H225_NonStandardParameter &() const;
00075 #else
00076 operator H225_NonStandardParameter &();
00077 operator const H225_NonStandardParameter &() const;
00078 #endif
00079
00080 BOOL CreateObject();
00081 PObject * Clone() const;
00082 };
00083
00084
00085
00086
00087
00088
00089 class
H4504_Extension : public
PASN_Sequence
00090 {
00091
#ifndef PASN_LEANANDMEAN
00092
PCLASSINFO(
H4504_Extension, PASN_Sequence);
00093
#endif
00094
public:
00095
H4504_Extension(
unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00096
00097 PASN_ObjectId m_extensionId;
00098 PASN_OctetString m_argument;
00099
00100 PINDEX GetDataLength() const;
00101 BOOL Decode(PASN_Stream & strm);
00102
void Encode(PASN_Stream & strm) const;
00103 #ifndef PASN_NOPRINTON
00104
void PrintOn(ostream & strm) const;
00105 #endif
00106 Comparison Compare(const PObject & obj) const;
00107 PObject * Clone() const;
00108 };
00109
00110
00111
00112
00113
00114
00115 class
H4504_MixedExtension;
00116
00117 class
H4504_ArrayOf_MixedExtension : public PASN_Array
00118 {
00119
#ifndef PASN_LEANANDMEAN
00120
PCLASSINFO(
H4504_ArrayOf_MixedExtension, PASN_Array);
00121
#endif
00122
public:
00123
H4504_ArrayOf_MixedExtension(
unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00124
00125 PASN_Object * CreateObject()
const;
00126 H4504_MixedExtension & operator[](PINDEX i)
const;
00127 PObject *
Clone()
const;
00128 };
00129
00130
00131
00132
00133
00134
00135 class H4504_HoldNotificArg :
public PASN_Sequence
00136 {
00137
#ifndef PASN_LEANANDMEAN
00138
PCLASSINFO(
H4504_HoldNotificArg, PASN_Sequence);
00139
#endif
00140
public:
00141
H4504_HoldNotificArg(
unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00142
00143 enum OptionalFields {
00144 e_extensionArg
00145 };
00146
00147 H4504_ArrayOf_MixedExtension m_extensionArg;
00148
00149 PINDEX GetDataLength() const;
00150 BOOL Decode(PASN_Stream & strm);
00151
void Encode(PASN_Stream & strm) const;
00152 #ifndef PASN_NOPRINTON
00153
void PrintOn(ostream & strm) const;
00154 #endif
00155 Comparison Compare(const PObject & obj) const;
00156 PObject * Clone() const;
00157 };
00158
00159
00160
00161
00162
00163
00164 class
H4504_RetrieveNotificArg : public PASN_Sequence
00165 {
00166
#ifndef PASN_LEANANDMEAN
00167
PCLASSINFO(
H4504_RetrieveNotificArg, PASN_Sequence);
00168
#endif
00169
public:
00170
H4504_RetrieveNotificArg(
unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00171
00172 enum OptionalFields {
00173 e_extensionArg
00174 };
00175
00176 H4504_ArrayOf_MixedExtension m_extensionArg;
00177
00178 PINDEX GetDataLength() const;
00179 BOOL Decode(PASN_Stream & strm);
00180
void Encode(PASN_Stream & strm) const;
00181 #ifndef PASN_NOPRINTON
00182
void PrintOn(ostream & strm) const;
00183 #endif
00184 Comparison Compare(const PObject & obj) const;
00185 PObject * Clone() const;
00186 };
00187
00188
00189
00190
00191
00192
00193 class
H4504_RemoteHoldArg : public PASN_Sequence
00194 {
00195
#ifndef PASN_LEANANDMEAN
00196
PCLASSINFO(
H4504_RemoteHoldArg, PASN_Sequence);
00197
#endif
00198
public:
00199
H4504_RemoteHoldArg(
unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00200
00201 enum OptionalFields {
00202 e_extensionArg
00203 };
00204
00205 H4504_ArrayOf_MixedExtension m_extensionArg;
00206
00207 PINDEX GetDataLength() const;
00208 BOOL Decode(PASN_Stream & strm);
00209
void Encode(PASN_Stream & strm) const;
00210 #ifndef PASN_NOPRINTON
00211
void PrintOn(ostream & strm) const;
00212 #endif
00213 Comparison Compare(const PObject & obj) const;
00214 PObject * Clone() const;
00215 };
00216
00217
00218
00219
00220
00221
00222 class
H4504_RemoteHoldRes : public PASN_Sequence
00223 {
00224
#ifndef PASN_LEANANDMEAN
00225
PCLASSINFO(
H4504_RemoteHoldRes, PASN_Sequence);
00226
#endif
00227
public:
00228
H4504_RemoteHoldRes(
unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00229
00230 enum OptionalFields {
00231 e_extensionRes
00232 };
00233
00234 H4504_ArrayOf_MixedExtension m_extensionRes;
00235
00236 PINDEX GetDataLength() const;
00237 BOOL Decode(PASN_Stream & strm);
00238
void Encode(PASN_Stream & strm) const;
00239 #ifndef PASN_NOPRINTON
00240
void PrintOn(ostream & strm) const;
00241 #endif
00242 Comparison Compare(const PObject & obj) const;
00243 PObject * Clone() const;
00244 };
00245
00246
00247
00248
00249
00250
00251 class
H4504_RemoteRetrieveArg : public PASN_Sequence
00252 {
00253
#ifndef PASN_LEANANDMEAN
00254
PCLASSINFO(
H4504_RemoteRetrieveArg, PASN_Sequence);
00255
#endif
00256
public:
00257
H4504_RemoteRetrieveArg(
unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00258
00259 enum OptionalFields {
00260 e_extensionArg
00261 };
00262
00263 H4504_ArrayOf_MixedExtension m_extensionArg;
00264
00265 PINDEX GetDataLength() const;
00266 BOOL Decode(PASN_Stream & strm);
00267
void Encode(PASN_Stream & strm) const;
00268 #ifndef PASN_NOPRINTON
00269
void PrintOn(ostream & strm) const;
00270 #endif
00271 Comparison Compare(const PObject & obj) const;
00272 PObject * Clone() const;
00273 };
00274
00275
00276
00277
00278
00279
00280 class
H4504_RemoteRetrieveRes : public PASN_Sequence
00281 {
00282
#ifndef PASN_LEANANDMEAN
00283
PCLASSINFO(
H4504_RemoteRetrieveRes, PASN_Sequence);
00284
#endif
00285
public:
00286
H4504_RemoteRetrieveRes(
unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00287
00288 enum OptionalFields {
00289 e_extensionRes
00290 };
00291
00292 H4504_ArrayOf_MixedExtension m_extensionRes;
00293
00294 PINDEX GetDataLength() const;
00295 BOOL Decode(PASN_Stream & strm);
00296
void Encode(PASN_Stream & strm) const;
00297 #ifndef PASN_NOPRINTON
00298
void PrintOn(ostream & strm) const;
00299 #endif
00300 Comparison Compare(const PObject & obj) const;
00301 PObject * Clone() const;
00302 };
00303
00304
00305 #endif
00306
00307 #endif
00308
00309
00310