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