00001
00002
00003
00004
00005
00006
00007 #if ! H323_DISABLE_H4609
00008
00009 #ifndef __H4609_H
00010 #define __H4609_H
00011
00012 #ifdef P_USE_PRAGMA
00013 #pragma interface
00014 #endif
00015
00016 #include <ptclib/asner.h>
00017
00018 #include "h225.h"
00019
00020
00021
00022
00023
00024
00025 class H4609_EstimatedEnd2EndDelay : public PASN_Integer
00026 {
00027 #ifndef PASN_LEANANDMEAN
00028 PCLASSINFO(H4609_EstimatedEnd2EndDelay, PASN_Integer);
00029 #endif
00030 public:
00031 H4609_EstimatedEnd2EndDelay(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00032
00033 H4609_EstimatedEnd2EndDelay & operator=(int v);
00034 H4609_EstimatedEnd2EndDelay & operator=(unsigned v);
00035 PObject * Clone() const;
00036 };
00037
00038
00039
00040
00041
00042
00043 class H4609_CalculatedJitter : public PASN_Integer
00044 {
00045 #ifndef PASN_LEANANDMEAN
00046 PCLASSINFO(H4609_CalculatedJitter, PASN_Integer);
00047 #endif
00048 public:
00049 H4609_CalculatedJitter(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00050
00051 H4609_CalculatedJitter & operator=(int v);
00052 H4609_CalculatedJitter & operator=(unsigned v);
00053 PObject * Clone() const;
00054 };
00055
00056
00057
00058
00059
00060
00061 class H4609_Extension : public PASN_Sequence
00062 {
00063 #ifndef PASN_LEANANDMEAN
00064 PCLASSINFO(H4609_Extension, PASN_Sequence);
00065 #endif
00066 public:
00067 H4609_Extension(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00068
00069 enum OptionalFields {
00070 e_extensionContent
00071 };
00072
00073 H225_GenericIdentifier m_extensionId;
00074 PASN_OctetString m_extensionContent;
00075
00076 PINDEX GetDataLength() const;
00077 BOOL Decode(PASN_Stream & strm);
00078 void Encode(PASN_Stream & strm) const;
00079 #ifndef PASN_NOPRINTON
00080 void PrintOn(ostream & strm) const;
00081 #endif
00082 Comparison Compare(const PObject & obj) const;
00083 PObject * Clone() const;
00084 };
00085
00086
00087
00088
00089
00090
00091 class H4609_PeriodicQoSMonReport;
00092 class H4609_FinalQosMonReport;
00093 class H4609_InterGKQosMonReport;
00094
00095 class H4609_QosMonitoringReportData : public PASN_Choice
00096 {
00097 #ifndef PASN_LEANANDMEAN
00098 PCLASSINFO(H4609_QosMonitoringReportData, PASN_Choice);
00099 #endif
00100 public:
00101 H4609_QosMonitoringReportData(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00102
00103 enum Choices {
00104 e_periodic,
00105 e_final,
00106 e_interGK
00107 };
00108
00109 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00110 operator H4609_PeriodicQoSMonReport &() const;
00111 #else
00112 operator H4609_PeriodicQoSMonReport &();
00113 operator const H4609_PeriodicQoSMonReport &() const;
00114 #endif
00115 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00116 operator H4609_FinalQosMonReport &() const;
00117 #else
00118 operator H4609_FinalQosMonReport &();
00119 operator const H4609_FinalQosMonReport &() const;
00120 #endif
00121 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00122 operator H4609_InterGKQosMonReport &() const;
00123 #else
00124 operator H4609_InterGKQosMonReport &();
00125 operator const H4609_InterGKQosMonReport &() const;
00126 #endif
00127
00128 BOOL CreateObject();
00129 PObject * Clone() const;
00130 };
00131
00132
00133
00134
00135
00136
00137 class H4609_RTCPMeasures_mediaSenderMeasures : public PASN_Sequence
00138 {
00139 #ifndef PASN_LEANANDMEAN
00140 PCLASSINFO(H4609_RTCPMeasures_mediaSenderMeasures, PASN_Sequence);
00141 #endif
00142 public:
00143 H4609_RTCPMeasures_mediaSenderMeasures(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00144
00145 enum OptionalFields {
00146 e_worstEstimatedEnd2EndDelay,
00147 e_meanEstimatedEnd2EndDelay
00148 };
00149
00150 H4609_EstimatedEnd2EndDelay m_worstEstimatedEnd2EndDelay;
00151 H4609_EstimatedEnd2EndDelay m_meanEstimatedEnd2EndDelay;
00152
00153 PINDEX GetDataLength() const;
00154 BOOL Decode(PASN_Stream & strm);
00155 void Encode(PASN_Stream & strm) const;
00156 #ifndef PASN_NOPRINTON
00157 void PrintOn(ostream & strm) const;
00158 #endif
00159 Comparison Compare(const PObject & obj) const;
00160 PObject * Clone() const;
00161 };
00162
00163
00164
00165
00166
00167
00168 class H4609_RTCPMeasures_mediaReceiverMeasures : public PASN_Sequence
00169 {
00170 #ifndef PASN_LEANANDMEAN
00171 PCLASSINFO(H4609_RTCPMeasures_mediaReceiverMeasures, PASN_Sequence);
00172 #endif
00173 public:
00174 H4609_RTCPMeasures_mediaReceiverMeasures(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00175
00176 enum OptionalFields {
00177 e_cumulativeNumberOfPacketsLost,
00178 e_packetLostRate,
00179 e_worstJitter,
00180 e_estimatedThroughput,
00181 e_fractionLostRate,
00182 e_meanJitter
00183 };
00184
00185 PASN_Integer m_cumulativeNumberOfPacketsLost;
00186 PASN_Integer m_packetLostRate;
00187 H4609_CalculatedJitter m_worstJitter;
00188 H225_BandWidth m_estimatedThroughput;
00189 PASN_Integer m_fractionLostRate;
00190 H4609_CalculatedJitter m_meanJitter;
00191
00192 PINDEX GetDataLength() const;
00193 BOOL Decode(PASN_Stream & strm);
00194 void Encode(PASN_Stream & strm) const;
00195 #ifndef PASN_NOPRINTON
00196 void PrintOn(ostream & strm) const;
00197 #endif
00198 Comparison Compare(const PObject & obj) const;
00199 PObject * Clone() const;
00200 };
00201
00202
00203
00204
00205
00206
00207 class H4609_Extension;
00208
00209 class H4609_ArrayOf_Extension : public PASN_Array
00210 {
00211 #ifndef PASN_LEANANDMEAN
00212 PCLASSINFO(H4609_ArrayOf_Extension, PASN_Array);
00213 #endif
00214 public:
00215 H4609_ArrayOf_Extension(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00216
00217 PASN_Object * CreateObject() const;
00218 H4609_Extension & operator[](PINDEX i) const;
00219 PObject * Clone() const;
00220 };
00221
00222
00223
00224
00225
00226
00227 class H4609_RTCPMeasures;
00228
00229 class H4609_ArrayOf_RTCPMeasures : public PASN_Array
00230 {
00231 #ifndef PASN_LEANANDMEAN
00232 PCLASSINFO(H4609_ArrayOf_RTCPMeasures, PASN_Array);
00233 #endif
00234 public:
00235 H4609_ArrayOf_RTCPMeasures(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00236
00237 PASN_Object * CreateObject() const;
00238 H4609_RTCPMeasures & operator[](PINDEX i) const;
00239 PObject * Clone() const;
00240 };
00241
00242
00243
00244
00245
00246
00247 class H4609_PerCallQoSReport;
00248
00249 class H4609_ArrayOf_PerCallQoSReport : public PASN_Array
00250 {
00251 #ifndef PASN_LEANANDMEAN
00252 PCLASSINFO(H4609_ArrayOf_PerCallQoSReport, PASN_Array);
00253 #endif
00254 public:
00255 H4609_ArrayOf_PerCallQoSReport(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00256
00257 PASN_Object * CreateObject() const;
00258 H4609_PerCallQoSReport & operator[](PINDEX i) const;
00259 PObject * Clone() const;
00260 };
00261
00262
00263
00264
00265
00266
00267 class H4609_RTCPMeasures : public PASN_Sequence
00268 {
00269 #ifndef PASN_LEANANDMEAN
00270 PCLASSINFO(H4609_RTCPMeasures, PASN_Sequence);
00271 #endif
00272 public:
00273 H4609_RTCPMeasures(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00274
00275 enum OptionalFields {
00276 e_nonStandardData,
00277 e_mediaSenderMeasures,
00278 e_mediaReceiverMeasures,
00279 e_extensions
00280 };
00281
00282 H225_TransportChannelInfo m_rtpAddress;
00283 H225_TransportChannelInfo m_rtcpAddress;
00284 PASN_Integer m_sessionId;
00285 H225_NonStandardParameter m_nonStandardData;
00286 H4609_RTCPMeasures_mediaSenderMeasures m_mediaSenderMeasures;
00287 H4609_RTCPMeasures_mediaReceiverMeasures m_mediaReceiverMeasures;
00288 H4609_ArrayOf_Extension m_extensions;
00289
00290 PINDEX GetDataLength() const;
00291 BOOL Decode(PASN_Stream & strm);
00292 void Encode(PASN_Stream & strm) const;
00293 #ifndef PASN_NOPRINTON
00294 void PrintOn(ostream & strm) const;
00295 #endif
00296 Comparison Compare(const PObject & obj) const;
00297 PObject * Clone() const;
00298 };
00299
00300
00301
00302
00303
00304
00305 class H4609_PerCallQoSReport : public PASN_Sequence
00306 {
00307 #ifndef PASN_LEANANDMEAN
00308 PCLASSINFO(H4609_PerCallQoSReport, PASN_Sequence);
00309 #endif
00310 public:
00311 H4609_PerCallQoSReport(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00312
00313 enum OptionalFields {
00314 e_nonStandardData,
00315 e_mediaChannelsQoS,
00316 e_extensions
00317 };
00318
00319 H225_NonStandardParameter m_nonStandardData;
00320 H225_CallReferenceValue m_callReferenceValue;
00321 H225_ConferenceIdentifier m_conferenceID;
00322 H225_CallIdentifier m_callIdentifier;
00323 H4609_ArrayOf_RTCPMeasures m_mediaChannelsQoS;
00324 H4609_ArrayOf_Extension m_extensions;
00325
00326 PINDEX GetDataLength() const;
00327 BOOL Decode(PASN_Stream & strm);
00328 void Encode(PASN_Stream & strm) const;
00329 #ifndef PASN_NOPRINTON
00330 void PrintOn(ostream & strm) const;
00331 #endif
00332 Comparison Compare(const PObject & obj) const;
00333 PObject * Clone() const;
00334 };
00335
00336
00337
00338
00339
00340
00341 class H4609_PeriodicQoSMonReport : public PASN_Sequence
00342 {
00343 #ifndef PASN_LEANANDMEAN
00344 PCLASSINFO(H4609_PeriodicQoSMonReport, PASN_Sequence);
00345 #endif
00346 public:
00347 H4609_PeriodicQoSMonReport(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00348
00349 enum OptionalFields {
00350 e_extensions
00351 };
00352
00353 H4609_ArrayOf_PerCallQoSReport m_perCallInfo;
00354 H4609_ArrayOf_Extension m_extensions;
00355
00356 PINDEX GetDataLength() const;
00357 BOOL Decode(PASN_Stream & strm);
00358 void Encode(PASN_Stream & strm) const;
00359 #ifndef PASN_NOPRINTON
00360 void PrintOn(ostream & strm) const;
00361 #endif
00362 Comparison Compare(const PObject & obj) const;
00363 PObject * Clone() const;
00364 };
00365
00366
00367
00368
00369
00370
00371 class H4609_FinalQosMonReport : public PASN_Sequence
00372 {
00373 #ifndef PASN_LEANANDMEAN
00374 PCLASSINFO(H4609_FinalQosMonReport, PASN_Sequence);
00375 #endif
00376 public:
00377 H4609_FinalQosMonReport(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00378
00379 enum OptionalFields {
00380 e_nonStandardData,
00381 e_extensions
00382 };
00383
00384 H4609_ArrayOf_RTCPMeasures m_mediaInfo;
00385 H225_NonStandardParameter m_nonStandardData;
00386 H4609_ArrayOf_Extension m_extensions;
00387
00388 PINDEX GetDataLength() const;
00389 BOOL Decode(PASN_Stream & strm);
00390 void Encode(PASN_Stream & strm) const;
00391 #ifndef PASN_NOPRINTON
00392 void PrintOn(ostream & strm) const;
00393 #endif
00394 Comparison Compare(const PObject & obj) const;
00395 PObject * Clone() const;
00396 };
00397
00398
00399
00400
00401
00402
00403 class H4609_InterGKQosMonReport : public PASN_Sequence
00404 {
00405 #ifndef PASN_LEANANDMEAN
00406 PCLASSINFO(H4609_InterGKQosMonReport, PASN_Sequence);
00407 #endif
00408 public:
00409 H4609_InterGKQosMonReport(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00410
00411 enum OptionalFields {
00412 e_nonStandardData,
00413 e_extensions
00414 };
00415
00416 H4609_ArrayOf_RTCPMeasures m_mediaInfo;
00417 H225_NonStandardParameter m_nonStandardData;
00418 H4609_ArrayOf_Extension m_extensions;
00419
00420 PINDEX GetDataLength() const;
00421 BOOL Decode(PASN_Stream & strm);
00422 void Encode(PASN_Stream & strm) const;
00423 #ifndef PASN_NOPRINTON
00424 void PrintOn(ostream & strm) const;
00425 #endif
00426 Comparison Compare(const PObject & obj) const;
00427 PObject * Clone() const;
00428 };
00429
00430
00431 #endif // __H4609_H
00432
00433 #endif // if ! H323_DISABLE_H4609
00434
00435
00436