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
00271
00272 #endif
00273
00274
00275