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 PBoolean 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 PBoolean 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 PBoolean 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 PBoolean 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 PBoolean 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 PBoolean 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 PBoolean 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 PBoolean 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 // __H4504_H
00306
00307 #endif // if ! H323_DISABLE_H4504
00308
00309
00310