00001
00002
00003
00004
00005
00006
00007 #if ! H323_DISABLE_H4509
00008
00009 #ifndef __H4509_H
00010 #define __H4509_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 "h225.h"
00020 #include "h4501.h"
00021 #include "h4504.h"
00022 #include "h4501.h"
00023 #include "h4507.h"
00024
00025
00026
00027
00028
00029
00030 class H4509_H323CallCompletionOperations : public PASN_Enumeration
00031 {
00032 #ifndef PASN_LEANANDMEAN
00033 PCLASSINFO(H4509_H323CallCompletionOperations, PASN_Enumeration);
00034 #endif
00035 public:
00036 H4509_H323CallCompletionOperations(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
00037
00038 enum Enumerations {
00039 e_ccbsRequest = 40,
00040 e_ccnrRequest = 27,
00041 e_ccCancel,
00042 e_ccExecPossible,
00043 e_ccRingout = 31,
00044 e_ccSuspend,
00045 e_ccResume
00046 };
00047
00048 H4509_H323CallCompletionOperations & operator=(unsigned v);
00049 PObject * Clone() const;
00050 };
00051
00052
00053
00054
00055
00056
00057 class H4509_CcShortArg;
00058 class H4509_CcLongArg;
00059
00060 class H4509_CcArg : public PASN_Choice
00061 {
00062 #ifndef PASN_LEANANDMEAN
00063 PCLASSINFO(H4509_CcArg, PASN_Choice);
00064 #endif
00065 public:
00066 H4509_CcArg(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00067
00068 enum Choices {
00069 e_shortArg,
00070 e_longArg
00071 };
00072
00073 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00074 operator H4509_CcShortArg &() const;
00075 #else
00076 operator H4509_CcShortArg &();
00077 operator const H4509_CcShortArg &() const;
00078 #endif
00079 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00080 operator H4509_CcLongArg &() const;
00081 #else
00082 operator H4509_CcLongArg &();
00083 operator const H4509_CcLongArg &() const;
00084 #endif
00085
00086 BOOL CreateObject();
00087 PObject * Clone() const;
00088 };
00089
00090
00091
00092
00093
00094
00095 class H4509_CallCompletionErrors : public PASN_Enumeration
00096 {
00097 #ifndef PASN_LEANANDMEAN
00098 PCLASSINFO(H4509_CallCompletionErrors, PASN_Enumeration);
00099 #endif
00100 public:
00101 H4509_CallCompletionErrors(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
00102
00103 enum Enumerations {
00104 e_shortTermRejection = 1010,
00105 e_longTermRejection,
00106 e_remoteUserBusyAgain,
00107 e_failureToMatch
00108 };
00109
00110 H4509_CallCompletionErrors & operator=(unsigned v);
00111 PObject * Clone() const;
00112 };
00113
00114
00115
00116
00117
00118
00119 class H4504_MixedExtension;
00120
00121 class H4509_ArrayOf_MixedExtension : public PASN_Array
00122 {
00123 #ifndef PASN_LEANANDMEAN
00124 PCLASSINFO(H4509_ArrayOf_MixedExtension, PASN_Array);
00125 #endif
00126 public:
00127 H4509_ArrayOf_MixedExtension(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00128
00129 PASN_Object * CreateObject() const;
00130 H4504_MixedExtension & operator[](PINDEX i) const;
00131 PObject * Clone() const;
00132 };
00133
00134
00135
00136
00137
00138
00139 class H4509_CcRequestArg : public PASN_Sequence
00140 {
00141 #ifndef PASN_LEANANDMEAN
00142 PCLASSINFO(H4509_CcRequestArg, PASN_Sequence);
00143 #endif
00144 public:
00145 H4509_CcRequestArg(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00146
00147 enum OptionalFields {
00148 e_ccIdentifier,
00149 e_retain_sig_connection,
00150 e_extension
00151 };
00152
00153 H4501_EndpointAddress m_numberA;
00154 H4501_EndpointAddress m_numberB;
00155 H225_CallIdentifier m_ccIdentifier;
00156 H4507_BasicService m_service;
00157 PASN_Boolean m_can_retain_service;
00158 PASN_Boolean m_retain_sig_connection;
00159 H4509_ArrayOf_MixedExtension m_extension;
00160
00161 PINDEX GetDataLength() const;
00162 BOOL Decode(PASN_Stream & strm);
00163 void Encode(PASN_Stream & strm) const;
00164 #ifndef PASN_NOPRINTON
00165 void PrintOn(ostream & strm) const;
00166 #endif
00167 Comparison Compare(const PObject & obj) const;
00168 PObject * Clone() const;
00169 };
00170
00171
00172
00173
00174
00175
00176 class H4509_CcRequestRes : public PASN_Sequence
00177 {
00178 #ifndef PASN_LEANANDMEAN
00179 PCLASSINFO(H4509_CcRequestRes, PASN_Sequence);
00180 #endif
00181 public:
00182 H4509_CcRequestRes(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00183
00184 enum OptionalFields {
00185 e_extension
00186 };
00187
00188 PASN_Boolean m_retain_service;
00189 H4509_ArrayOf_MixedExtension m_extension;
00190
00191 PINDEX GetDataLength() const;
00192 BOOL Decode(PASN_Stream & strm);
00193 void Encode(PASN_Stream & strm) const;
00194 #ifndef PASN_NOPRINTON
00195 void PrintOn(ostream & strm) const;
00196 #endif
00197 Comparison Compare(const PObject & obj) const;
00198 PObject * Clone() const;
00199 };
00200
00201
00202
00203
00204
00205
00206 class H4509_CcShortArg : public PASN_Sequence
00207 {
00208 #ifndef PASN_LEANANDMEAN
00209 PCLASSINFO(H4509_CcShortArg, PASN_Sequence);
00210 #endif
00211 public:
00212 H4509_CcShortArg(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00213
00214 enum OptionalFields {
00215 e_ccIdentifier,
00216 e_extension
00217 };
00218
00219 H225_CallIdentifier m_ccIdentifier;
00220 H4509_ArrayOf_MixedExtension m_extension;
00221
00222 PINDEX GetDataLength() const;
00223 BOOL Decode(PASN_Stream & strm);
00224 void Encode(PASN_Stream & strm) const;
00225 #ifndef PASN_NOPRINTON
00226 void PrintOn(ostream & strm) const;
00227 #endif
00228 Comparison Compare(const PObject & obj) const;
00229 PObject * Clone() const;
00230 };
00231
00232
00233
00234
00235
00236
00237 class H4509_CcLongArg : public PASN_Sequence
00238 {
00239 #ifndef PASN_LEANANDMEAN
00240 PCLASSINFO(H4509_CcLongArg, PASN_Sequence);
00241 #endif
00242 public:
00243 H4509_CcLongArg(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00244
00245 enum OptionalFields {
00246 e_numberA,
00247 e_numberB,
00248 e_ccIdentifier,
00249 e_service,
00250 e_extension
00251 };
00252
00253 H4501_EndpointAddress m_numberA;
00254 H4501_EndpointAddress m_numberB;
00255 H225_CallIdentifier m_ccIdentifier;
00256 H4507_BasicService m_service;
00257 H4509_ArrayOf_MixedExtension m_extension;
00258
00259 PINDEX GetDataLength() const;
00260 BOOL Decode(PASN_Stream & strm);
00261 void Encode(PASN_Stream & strm) const;
00262 #ifndef PASN_NOPRINTON
00263 void PrintOn(ostream & strm) const;
00264 #endif
00265 Comparison Compare(const PObject & obj) const;
00266 PObject * Clone() const;
00267 };
00268
00269
00270 #endif // __H4509_H
00271
00272 #endif // if ! H323_DISABLE_H4509
00273
00274
00275