• Main Page
  • Namespaces
  • Classes
  • Files

h245.h

Go to the documentation of this file.
00001 //
00002 // h245.h
00003 //
00004 // Code automatically generated by asnparse.
00005 //
00006 
00007 #if ! H323_DISABLE_H245
00008 
00009 #ifndef __H245_H
00010 #define __H245_H
00011 
00012 #ifdef P_USE_PRAGMA
00013 #pragma interface
00014 #endif
00015 
00016 #include <ptclib/asner.h>
00017 
00018 //
00019 // MultimediaSystemControlMessage
00020 //
00021 
00022 class H245_RequestMessage;
00023 class H245_ResponseMessage;
00024 class H245_CommandMessage;
00025 class H245_IndicationMessage;
00026 
00027 class H245_MultimediaSystemControlMessage : public PASN_Choice
00028 {
00029 #ifndef PASN_LEANANDMEAN
00030     PCLASSINFO(H245_MultimediaSystemControlMessage, PASN_Choice);
00031 #endif
00032   public:
00033     H245_MultimediaSystemControlMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00034 
00035     enum Choices {
00036       e_request,
00037       e_response,
00038       e_command,
00039       e_indication
00040     };
00041 
00042 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00043     operator H245_RequestMessage &() const;
00044 #else
00045     operator H245_RequestMessage &();
00046     operator const H245_RequestMessage &() const;
00047 #endif
00048 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00049     operator H245_ResponseMessage &() const;
00050 #else
00051     operator H245_ResponseMessage &();
00052     operator const H245_ResponseMessage &() const;
00053 #endif
00054 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00055     operator H245_CommandMessage &() const;
00056 #else
00057     operator H245_CommandMessage &();
00058     operator const H245_CommandMessage &() const;
00059 #endif
00060 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00061     operator H245_IndicationMessage &() const;
00062 #else
00063     operator H245_IndicationMessage &();
00064     operator const H245_IndicationMessage &() const;
00065 #endif
00066 
00067     BOOL CreateObject();
00068     PObject * Clone() const;
00069 };
00070 
00071 
00072 //
00073 // RequestMessage
00074 //
00075 
00076 class H245_NonStandardMessage;
00077 class H245_MasterSlaveDetermination;
00078 class H245_TerminalCapabilitySet;
00079 class H245_OpenLogicalChannel;
00080 class H245_CloseLogicalChannel;
00081 class H245_RequestChannelClose;
00082 class H245_MultiplexEntrySend;
00083 class H245_RequestMultiplexEntry;
00084 class H245_RequestMode;
00085 class H245_RoundTripDelayRequest;
00086 class H245_MaintenanceLoopRequest;
00087 class H245_CommunicationModeRequest;
00088 class H245_ConferenceRequest;
00089 class H245_MultilinkRequest;
00090 class H245_LogicalChannelRateRequest;
00091 class H245_GenericMessage;
00092 
00093 class H245_RequestMessage : public PASN_Choice
00094 {
00095 #ifndef PASN_LEANANDMEAN
00096     PCLASSINFO(H245_RequestMessage, PASN_Choice);
00097 #endif
00098   public:
00099     H245_RequestMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00100 
00101     enum Choices {
00102       e_nonStandard,
00103       e_masterSlaveDetermination,
00104       e_terminalCapabilitySet,
00105       e_openLogicalChannel,
00106       e_closeLogicalChannel,
00107       e_requestChannelClose,
00108       e_multiplexEntrySend,
00109       e_requestMultiplexEntry,
00110       e_requestMode,
00111       e_roundTripDelayRequest,
00112       e_maintenanceLoopRequest,
00113       e_communicationModeRequest,
00114       e_conferenceRequest,
00115       e_multilinkRequest,
00116       e_logicalChannelRateRequest,
00117       e_genericRequest
00118     };
00119 
00120 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00121     operator H245_NonStandardMessage &() const;
00122 #else
00123     operator H245_NonStandardMessage &();
00124     operator const H245_NonStandardMessage &() const;
00125 #endif
00126 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00127     operator H245_MasterSlaveDetermination &() const;
00128 #else
00129     operator H245_MasterSlaveDetermination &();
00130     operator const H245_MasterSlaveDetermination &() const;
00131 #endif
00132 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00133     operator H245_TerminalCapabilitySet &() const;
00134 #else
00135     operator H245_TerminalCapabilitySet &();
00136     operator const H245_TerminalCapabilitySet &() const;
00137 #endif
00138 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00139     operator H245_OpenLogicalChannel &() const;
00140 #else
00141     operator H245_OpenLogicalChannel &();
00142     operator const H245_OpenLogicalChannel &() const;
00143 #endif
00144 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00145     operator H245_CloseLogicalChannel &() const;
00146 #else
00147     operator H245_CloseLogicalChannel &();
00148     operator const H245_CloseLogicalChannel &() const;
00149 #endif
00150 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00151     operator H245_RequestChannelClose &() const;
00152 #else
00153     operator H245_RequestChannelClose &();
00154     operator const H245_RequestChannelClose &() const;
00155 #endif
00156 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00157     operator H245_MultiplexEntrySend &() const;
00158 #else
00159     operator H245_MultiplexEntrySend &();
00160     operator const H245_MultiplexEntrySend &() const;
00161 #endif
00162 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00163     operator H245_RequestMultiplexEntry &() const;
00164 #else
00165     operator H245_RequestMultiplexEntry &();
00166     operator const H245_RequestMultiplexEntry &() const;
00167 #endif
00168 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00169     operator H245_RequestMode &() const;
00170 #else
00171     operator H245_RequestMode &();
00172     operator const H245_RequestMode &() const;
00173 #endif
00174 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00175     operator H245_RoundTripDelayRequest &() const;
00176 #else
00177     operator H245_RoundTripDelayRequest &();
00178     operator const H245_RoundTripDelayRequest &() const;
00179 #endif
00180 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00181     operator H245_MaintenanceLoopRequest &() const;
00182 #else
00183     operator H245_MaintenanceLoopRequest &();
00184     operator const H245_MaintenanceLoopRequest &() const;
00185 #endif
00186 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00187     operator H245_CommunicationModeRequest &() const;
00188 #else
00189     operator H245_CommunicationModeRequest &();
00190     operator const H245_CommunicationModeRequest &() const;
00191 #endif
00192 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00193     operator H245_ConferenceRequest &() const;
00194 #else
00195     operator H245_ConferenceRequest &();
00196     operator const H245_ConferenceRequest &() const;
00197 #endif
00198 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00199     operator H245_MultilinkRequest &() const;
00200 #else
00201     operator H245_MultilinkRequest &();
00202     operator const H245_MultilinkRequest &() const;
00203 #endif
00204 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00205     operator H245_LogicalChannelRateRequest &() const;
00206 #else
00207     operator H245_LogicalChannelRateRequest &();
00208     operator const H245_LogicalChannelRateRequest &() const;
00209 #endif
00210 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00211     operator H245_GenericMessage &() const;
00212 #else
00213     operator H245_GenericMessage &();
00214     operator const H245_GenericMessage &() const;
00215 #endif
00216 
00217     BOOL CreateObject();
00218     PObject * Clone() const;
00219 };
00220 
00221 
00222 //
00223 // ResponseMessage
00224 //
00225 
00226 class H245_NonStandardMessage;
00227 class H245_MasterSlaveDeterminationAck;
00228 class H245_MasterSlaveDeterminationReject;
00229 class H245_TerminalCapabilitySetAck;
00230 class H245_TerminalCapabilitySetReject;
00231 class H245_OpenLogicalChannelAck;
00232 class H245_OpenLogicalChannelReject;
00233 class H245_CloseLogicalChannelAck;
00234 class H245_RequestChannelCloseAck;
00235 class H245_RequestChannelCloseReject;
00236 class H245_MultiplexEntrySendAck;
00237 class H245_MultiplexEntrySendReject;
00238 class H245_RequestMultiplexEntryAck;
00239 class H245_RequestMultiplexEntryReject;
00240 class H245_RequestModeAck;
00241 class H245_RequestModeReject;
00242 class H245_RoundTripDelayResponse;
00243 class H245_MaintenanceLoopAck;
00244 class H245_MaintenanceLoopReject;
00245 class H245_CommunicationModeResponse;
00246 class H245_ConferenceResponse;
00247 class H245_MultilinkResponse;
00248 class H245_LogicalChannelRateAcknowledge;
00249 class H245_LogicalChannelRateReject;
00250 class H245_GenericMessage;
00251 
00252 class H245_ResponseMessage : public PASN_Choice
00253 {
00254 #ifndef PASN_LEANANDMEAN
00255     PCLASSINFO(H245_ResponseMessage, PASN_Choice);
00256 #endif
00257   public:
00258     H245_ResponseMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00259 
00260     enum Choices {
00261       e_nonStandard,
00262       e_masterSlaveDeterminationAck,
00263       e_masterSlaveDeterminationReject,
00264       e_terminalCapabilitySetAck,
00265       e_terminalCapabilitySetReject,
00266       e_openLogicalChannelAck,
00267       e_openLogicalChannelReject,
00268       e_closeLogicalChannelAck,
00269       e_requestChannelCloseAck,
00270       e_requestChannelCloseReject,
00271       e_multiplexEntrySendAck,
00272       e_multiplexEntrySendReject,
00273       e_requestMultiplexEntryAck,
00274       e_requestMultiplexEntryReject,
00275       e_requestModeAck,
00276       e_requestModeReject,
00277       e_roundTripDelayResponse,
00278       e_maintenanceLoopAck,
00279       e_maintenanceLoopReject,
00280       e_communicationModeResponse,
00281       e_conferenceResponse,
00282       e_multilinkResponse,
00283       e_logicalChannelRateAcknowledge,
00284       e_logicalChannelRateReject,
00285       e_genericResponse
00286     };
00287 
00288 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00289     operator H245_NonStandardMessage &() const;
00290 #else
00291     operator H245_NonStandardMessage &();
00292     operator const H245_NonStandardMessage &() const;
00293 #endif
00294 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00295     operator H245_MasterSlaveDeterminationAck &() const;
00296 #else
00297     operator H245_MasterSlaveDeterminationAck &();
00298     operator const H245_MasterSlaveDeterminationAck &() const;
00299 #endif
00300 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00301     operator H245_MasterSlaveDeterminationReject &() const;
00302 #else
00303     operator H245_MasterSlaveDeterminationReject &();
00304     operator const H245_MasterSlaveDeterminationReject &() const;
00305 #endif
00306 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00307     operator H245_TerminalCapabilitySetAck &() const;
00308 #else
00309     operator H245_TerminalCapabilitySetAck &();
00310     operator const H245_TerminalCapabilitySetAck &() const;
00311 #endif
00312 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00313     operator H245_TerminalCapabilitySetReject &() const;
00314 #else
00315     operator H245_TerminalCapabilitySetReject &();
00316     operator const H245_TerminalCapabilitySetReject &() const;
00317 #endif
00318 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00319     operator H245_OpenLogicalChannelAck &() const;
00320 #else
00321     operator H245_OpenLogicalChannelAck &();
00322     operator const H245_OpenLogicalChannelAck &() const;
00323 #endif
00324 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00325     operator H245_OpenLogicalChannelReject &() const;
00326 #else
00327     operator H245_OpenLogicalChannelReject &();
00328     operator const H245_OpenLogicalChannelReject &() const;
00329 #endif
00330 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00331     operator H245_CloseLogicalChannelAck &() const;
00332 #else
00333     operator H245_CloseLogicalChannelAck &();
00334     operator const H245_CloseLogicalChannelAck &() const;
00335 #endif
00336 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00337     operator H245_RequestChannelCloseAck &() const;
00338 #else
00339     operator H245_RequestChannelCloseAck &();
00340     operator const H245_RequestChannelCloseAck &() const;
00341 #endif
00342 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00343     operator H245_RequestChannelCloseReject &() const;
00344 #else
00345     operator H245_RequestChannelCloseReject &();
00346     operator const H245_RequestChannelCloseReject &() const;
00347 #endif
00348 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00349     operator H245_MultiplexEntrySendAck &() const;
00350 #else
00351     operator H245_MultiplexEntrySendAck &();
00352     operator const H245_MultiplexEntrySendAck &() const;
00353 #endif
00354 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00355     operator H245_MultiplexEntrySendReject &() const;
00356 #else
00357     operator H245_MultiplexEntrySendReject &();
00358     operator const H245_MultiplexEntrySendReject &() const;
00359 #endif
00360 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00361     operator H245_RequestMultiplexEntryAck &() const;
00362 #else
00363     operator H245_RequestMultiplexEntryAck &();
00364     operator const H245_RequestMultiplexEntryAck &() const;
00365 #endif
00366 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00367     operator H245_RequestMultiplexEntryReject &() const;
00368 #else
00369     operator H245_RequestMultiplexEntryReject &();
00370     operator const H245_RequestMultiplexEntryReject &() const;
00371 #endif
00372 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00373     operator H245_RequestModeAck &() const;
00374 #else
00375     operator H245_RequestModeAck &();
00376     operator const H245_RequestModeAck &() const;
00377 #endif
00378 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00379     operator H245_RequestModeReject &() const;
00380 #else
00381     operator H245_RequestModeReject &();
00382     operator const H245_RequestModeReject &() const;
00383 #endif
00384 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00385     operator H245_RoundTripDelayResponse &() const;
00386 #else
00387     operator H245_RoundTripDelayResponse &();
00388     operator const H245_RoundTripDelayResponse &() const;
00389 #endif
00390 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00391     operator H245_MaintenanceLoopAck &() const;
00392 #else
00393     operator H245_MaintenanceLoopAck &();
00394     operator const H245_MaintenanceLoopAck &() const;
00395 #endif
00396 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00397     operator H245_MaintenanceLoopReject &() const;
00398 #else
00399     operator H245_MaintenanceLoopReject &();
00400     operator const H245_MaintenanceLoopReject &() const;
00401 #endif
00402 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00403     operator H245_CommunicationModeResponse &() const;
00404 #else
00405     operator H245_CommunicationModeResponse &();
00406     operator const H245_CommunicationModeResponse &() const;
00407 #endif
00408 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00409     operator H245_ConferenceResponse &() const;
00410 #else
00411     operator H245_ConferenceResponse &();
00412     operator const H245_ConferenceResponse &() const;
00413 #endif
00414 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00415     operator H245_MultilinkResponse &() const;
00416 #else
00417     operator H245_MultilinkResponse &();
00418     operator const H245_MultilinkResponse &() const;
00419 #endif
00420 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00421     operator H245_LogicalChannelRateAcknowledge &() const;
00422 #else
00423     operator H245_LogicalChannelRateAcknowledge &();
00424     operator const H245_LogicalChannelRateAcknowledge &() const;
00425 #endif
00426 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00427     operator H245_LogicalChannelRateReject &() const;
00428 #else
00429     operator H245_LogicalChannelRateReject &();
00430     operator const H245_LogicalChannelRateReject &() const;
00431 #endif
00432 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00433     operator H245_GenericMessage &() const;
00434 #else
00435     operator H245_GenericMessage &();
00436     operator const H245_GenericMessage &() const;
00437 #endif
00438 
00439     BOOL CreateObject();
00440     PObject * Clone() const;
00441 };
00442 
00443 
00444 //
00445 // CommandMessage
00446 //
00447 
00448 class H245_NonStandardMessage;
00449 class H245_MaintenanceLoopOffCommand;
00450 class H245_SendTerminalCapabilitySet;
00451 class H245_EncryptionCommand;
00452 class H245_FlowControlCommand;
00453 class H245_EndSessionCommand;
00454 class H245_MiscellaneousCommand;
00455 class H245_CommunicationModeCommand;
00456 class H245_ConferenceCommand;
00457 class H245_H223MultiplexReconfiguration;
00458 class H245_NewATMVCCommand;
00459 class H245_MobileMultilinkReconfigurationCommand;
00460 class H245_GenericMessage;
00461 
00462 class H245_CommandMessage : public PASN_Choice
00463 {
00464 #ifndef PASN_LEANANDMEAN
00465     PCLASSINFO(H245_CommandMessage, PASN_Choice);
00466 #endif
00467   public:
00468     H245_CommandMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00469 
00470     enum Choices {
00471       e_nonStandard,
00472       e_maintenanceLoopOffCommand,
00473       e_sendTerminalCapabilitySet,
00474       e_encryptionCommand,
00475       e_flowControlCommand,
00476       e_endSessionCommand,
00477       e_miscellaneousCommand,
00478       e_communicationModeCommand,
00479       e_conferenceCommand,
00480       e_h223MultiplexReconfiguration,
00481       e_newATMVCCommand,
00482       e_mobileMultilinkReconfigurationCommand,
00483       e_genericCommand
00484     };
00485 
00486 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00487     operator H245_NonStandardMessage &() const;
00488 #else
00489     operator H245_NonStandardMessage &();
00490     operator const H245_NonStandardMessage &() const;
00491 #endif
00492 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00493     operator H245_MaintenanceLoopOffCommand &() const;
00494 #else
00495     operator H245_MaintenanceLoopOffCommand &();
00496     operator const H245_MaintenanceLoopOffCommand &() const;
00497 #endif
00498 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00499     operator H245_SendTerminalCapabilitySet &() const;
00500 #else
00501     operator H245_SendTerminalCapabilitySet &();
00502     operator const H245_SendTerminalCapabilitySet &() const;
00503 #endif
00504 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00505     operator H245_EncryptionCommand &() const;
00506 #else
00507     operator H245_EncryptionCommand &();
00508     operator const H245_EncryptionCommand &() const;
00509 #endif
00510 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00511     operator H245_FlowControlCommand &() const;
00512 #else
00513     operator H245_FlowControlCommand &();
00514     operator const H245_FlowControlCommand &() const;
00515 #endif
00516 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00517     operator H245_EndSessionCommand &() const;
00518 #else
00519     operator H245_EndSessionCommand &();
00520     operator const H245_EndSessionCommand &() const;
00521 #endif
00522 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00523     operator H245_MiscellaneousCommand &() const;
00524 #else
00525     operator H245_MiscellaneousCommand &();
00526     operator const H245_MiscellaneousCommand &() const;
00527 #endif
00528 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00529     operator H245_CommunicationModeCommand &() const;
00530 #else
00531     operator H245_CommunicationModeCommand &();
00532     operator const H245_CommunicationModeCommand &() const;
00533 #endif
00534 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00535     operator H245_ConferenceCommand &() const;
00536 #else
00537     operator H245_ConferenceCommand &();
00538     operator const H245_ConferenceCommand &() const;
00539 #endif
00540 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00541     operator H245_H223MultiplexReconfiguration &() const;
00542 #else
00543     operator H245_H223MultiplexReconfiguration &();
00544     operator const H245_H223MultiplexReconfiguration &() const;
00545 #endif
00546 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00547     operator H245_NewATMVCCommand &() const;
00548 #else
00549     operator H245_NewATMVCCommand &();
00550     operator const H245_NewATMVCCommand &() const;
00551 #endif
00552 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00553     operator H245_MobileMultilinkReconfigurationCommand &() const;
00554 #else
00555     operator H245_MobileMultilinkReconfigurationCommand &();
00556     operator const H245_MobileMultilinkReconfigurationCommand &() const;
00557 #endif
00558 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00559     operator H245_GenericMessage &() const;
00560 #else
00561     operator H245_GenericMessage &();
00562     operator const H245_GenericMessage &() const;
00563 #endif
00564 
00565     BOOL CreateObject();
00566     PObject * Clone() const;
00567 };
00568 
00569 
00570 //
00571 // IndicationMessage
00572 //
00573 
00574 class H245_NonStandardMessage;
00575 class H245_FunctionNotUnderstood;
00576 class H245_MasterSlaveDeterminationRelease;
00577 class H245_TerminalCapabilitySetRelease;
00578 class H245_OpenLogicalChannelConfirm;
00579 class H245_RequestChannelCloseRelease;
00580 class H245_MultiplexEntrySendRelease;
00581 class H245_RequestMultiplexEntryRelease;
00582 class H245_RequestModeRelease;
00583 class H245_MiscellaneousIndication;
00584 class H245_JitterIndication;
00585 class H245_H223SkewIndication;
00586 class H245_NewATMVCIndication;
00587 class H245_UserInputIndication;
00588 class H245_H2250MaximumSkewIndication;
00589 class H245_MCLocationIndication;
00590 class H245_ConferenceIndication;
00591 class H245_VendorIdentification;
00592 class H245_FunctionNotSupported;
00593 class H245_MultilinkIndication;
00594 class H245_LogicalChannelRateRelease;
00595 class H245_FlowControlIndication;
00596 class H245_MobileMultilinkReconfigurationIndication;
00597 class H245_GenericMessage;
00598 
00599 class H245_IndicationMessage : public PASN_Choice
00600 {
00601 #ifndef PASN_LEANANDMEAN
00602     PCLASSINFO(H245_IndicationMessage, PASN_Choice);
00603 #endif
00604   public:
00605     H245_IndicationMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00606 
00607     enum Choices {
00608       e_nonStandard,
00609       e_functionNotUnderstood,
00610       e_masterSlaveDeterminationRelease,
00611       e_terminalCapabilitySetRelease,
00612       e_openLogicalChannelConfirm,
00613       e_requestChannelCloseRelease,
00614       e_multiplexEntrySendRelease,
00615       e_requestMultiplexEntryRelease,
00616       e_requestModeRelease,
00617       e_miscellaneousIndication,
00618       e_jitterIndication,
00619       e_h223SkewIndication,
00620       e_newATMVCIndication,
00621       e_userInput,
00622       e_h2250MaximumSkewIndication,
00623       e_mcLocationIndication,
00624       e_conferenceIndication,
00625       e_vendorIdentification,
00626       e_functionNotSupported,
00627       e_multilinkIndication,
00628       e_logicalChannelRateRelease,
00629       e_flowControlIndication,
00630       e_mobileMultilinkReconfigurationIndication,
00631       e_genericIndication
00632     };
00633 
00634 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00635     operator H245_NonStandardMessage &() const;
00636 #else
00637     operator H245_NonStandardMessage &();
00638     operator const H245_NonStandardMessage &() const;
00639 #endif
00640 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00641     operator H245_FunctionNotUnderstood &() const;
00642 #else
00643     operator H245_FunctionNotUnderstood &();
00644     operator const H245_FunctionNotUnderstood &() const;
00645 #endif
00646 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00647     operator H245_MasterSlaveDeterminationRelease &() const;
00648 #else
00649     operator H245_MasterSlaveDeterminationRelease &();
00650     operator const H245_MasterSlaveDeterminationRelease &() const;
00651 #endif
00652 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00653     operator H245_TerminalCapabilitySetRelease &() const;
00654 #else
00655     operator H245_TerminalCapabilitySetRelease &();
00656     operator const H245_TerminalCapabilitySetRelease &() const;
00657 #endif
00658 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00659     operator H245_OpenLogicalChannelConfirm &() const;
00660 #else
00661     operator H245_OpenLogicalChannelConfirm &();
00662     operator const H245_OpenLogicalChannelConfirm &() const;
00663 #endif
00664 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00665     operator H245_RequestChannelCloseRelease &() const;
00666 #else
00667     operator H245_RequestChannelCloseRelease &();
00668     operator const H245_RequestChannelCloseRelease &() const;
00669 #endif
00670 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00671     operator H245_MultiplexEntrySendRelease &() const;
00672 #else
00673     operator H245_MultiplexEntrySendRelease &();
00674     operator const H245_MultiplexEntrySendRelease &() const;
00675 #endif
00676 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00677     operator H245_RequestMultiplexEntryRelease &() const;
00678 #else
00679     operator H245_RequestMultiplexEntryRelease &();
00680     operator const H245_RequestMultiplexEntryRelease &() const;
00681 #endif
00682 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00683     operator H245_RequestModeRelease &() const;
00684 #else
00685     operator H245_RequestModeRelease &();
00686     operator const H245_RequestModeRelease &() const;
00687 #endif
00688 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00689     operator H245_MiscellaneousIndication &() const;
00690 #else
00691     operator H245_MiscellaneousIndication &();
00692     operator const H245_MiscellaneousIndication &() const;
00693 #endif
00694 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00695     operator H245_JitterIndication &() const;
00696 #else
00697     operator H245_JitterIndication &();
00698     operator const H245_JitterIndication &() const;
00699 #endif
00700 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00701     operator H245_H223SkewIndication &() const;
00702 #else
00703     operator H245_H223SkewIndication &();
00704     operator const H245_H223SkewIndication &() const;
00705 #endif
00706 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00707     operator H245_NewATMVCIndication &() const;
00708 #else
00709     operator H245_NewATMVCIndication &();
00710     operator const H245_NewATMVCIndication &() const;
00711 #endif
00712 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00713     operator H245_UserInputIndication &() const;
00714 #else
00715     operator H245_UserInputIndication &();
00716     operator const H245_UserInputIndication &() const;
00717 #endif
00718 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00719     operator H245_H2250MaximumSkewIndication &() const;
00720 #else
00721     operator H245_H2250MaximumSkewIndication &();
00722     operator const H245_H2250MaximumSkewIndication &() const;
00723 #endif
00724 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00725     operator H245_MCLocationIndication &() const;
00726 #else
00727     operator H245_MCLocationIndication &();
00728     operator const H245_MCLocationIndication &() const;
00729 #endif
00730 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00731     operator H245_ConferenceIndication &() const;
00732 #else
00733     operator H245_ConferenceIndication &();
00734     operator const H245_ConferenceIndication &() const;
00735 #endif
00736 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00737     operator H245_VendorIdentification &() const;
00738 #else
00739     operator H245_VendorIdentification &();
00740     operator const H245_VendorIdentification &() const;
00741 #endif
00742 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00743     operator H245_FunctionNotSupported &() const;
00744 #else
00745     operator H245_FunctionNotSupported &();
00746     operator const H245_FunctionNotSupported &() const;
00747 #endif
00748 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00749     operator H245_MultilinkIndication &() const;
00750 #else
00751     operator H245_MultilinkIndication &();
00752     operator const H245_MultilinkIndication &() const;
00753 #endif
00754 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00755     operator H245_LogicalChannelRateRelease &() const;
00756 #else
00757     operator H245_LogicalChannelRateRelease &();
00758     operator const H245_LogicalChannelRateRelease &() const;
00759 #endif
00760 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00761     operator H245_FlowControlIndication &() const;
00762 #else
00763     operator H245_FlowControlIndication &();
00764     operator const H245_FlowControlIndication &() const;
00765 #endif
00766 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00767     operator H245_MobileMultilinkReconfigurationIndication &() const;
00768 #else
00769     operator H245_MobileMultilinkReconfigurationIndication &();
00770     operator const H245_MobileMultilinkReconfigurationIndication &() const;
00771 #endif
00772 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00773     operator H245_GenericMessage &() const;
00774 #else
00775     operator H245_GenericMessage &();
00776     operator const H245_GenericMessage &() const;
00777 #endif
00778 
00779     BOOL CreateObject();
00780     PObject * Clone() const;
00781 };
00782 
00783 
00784 //
00785 // SequenceNumber
00786 //
00787 
00788 class H245_SequenceNumber : public PASN_Integer
00789 {
00790 #ifndef PASN_LEANANDMEAN
00791     PCLASSINFO(H245_SequenceNumber, PASN_Integer);
00792 #endif
00793   public:
00794     H245_SequenceNumber(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00795 
00796     H245_SequenceNumber & operator=(int v);
00797     H245_SequenceNumber & operator=(unsigned v);
00798     PObject * Clone() const;
00799 };
00800 
00801 
00802 //
00803 // NonStandardIdentifier
00804 //
00805 
00806 class H245_NonStandardIdentifier_h221NonStandard;
00807 
00808 class H245_NonStandardIdentifier : public PASN_Choice
00809 {
00810 #ifndef PASN_LEANANDMEAN
00811     PCLASSINFO(H245_NonStandardIdentifier, PASN_Choice);
00812 #endif
00813   public:
00814     H245_NonStandardIdentifier(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00815 
00816     enum Choices {
00817       e_object,
00818       e_h221NonStandard
00819     };
00820 
00821 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00822     operator H245_NonStandardIdentifier_h221NonStandard &() const;
00823 #else
00824     operator H245_NonStandardIdentifier_h221NonStandard &();
00825     operator const H245_NonStandardIdentifier_h221NonStandard &() const;
00826 #endif
00827 
00828     BOOL CreateObject();
00829     PObject * Clone() const;
00830 };
00831 
00832 
00833 //
00834 // MasterSlaveDetermination
00835 //
00836 
00837 class H245_MasterSlaveDetermination : public PASN_Sequence
00838 {
00839 #ifndef PASN_LEANANDMEAN
00840     PCLASSINFO(H245_MasterSlaveDetermination, PASN_Sequence);
00841 #endif
00842   public:
00843     H245_MasterSlaveDetermination(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00844 
00845     PASN_Integer m_terminalType;
00846     PASN_Integer m_statusDeterminationNumber;
00847 
00848     PINDEX GetDataLength() const;
00849     BOOL Decode(PASN_Stream & strm);
00850     void Encode(PASN_Stream & strm) const;
00851 #ifndef PASN_NOPRINTON
00852     void PrintOn(ostream & strm) const;
00853 #endif
00854     Comparison Compare(const PObject & obj) const;
00855     PObject * Clone() const;
00856 };
00857 
00858 
00859 //
00860 // MasterSlaveDeterminationRelease
00861 //
00862 
00863 class H245_MasterSlaveDeterminationRelease : public PASN_Sequence
00864 {
00865 #ifndef PASN_LEANANDMEAN
00866     PCLASSINFO(H245_MasterSlaveDeterminationRelease, PASN_Sequence);
00867 #endif
00868   public:
00869     H245_MasterSlaveDeterminationRelease(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00870 
00871 
00872     PINDEX GetDataLength() const;
00873     BOOL Decode(PASN_Stream & strm);
00874     void Encode(PASN_Stream & strm) const;
00875 #ifndef PASN_NOPRINTON
00876     void PrintOn(ostream & strm) const;
00877 #endif
00878     PObject * Clone() const;
00879 };
00880 
00881 
00882 //
00883 // AlternativeCapabilitySet
00884 //
00885 
00886 class H245_CapabilityTableEntryNumber;
00887 
00888 class H245_AlternativeCapabilitySet : public PASN_Array
00889 {
00890 #ifndef PASN_LEANANDMEAN
00891     PCLASSINFO(H245_AlternativeCapabilitySet, PASN_Array);
00892 #endif
00893   public:
00894     H245_AlternativeCapabilitySet(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00895 
00896     PASN_Object * CreateObject() const;
00897     H245_CapabilityTableEntryNumber & operator[](PINDEX i) const;
00898     PObject * Clone() const;
00899 };
00900 
00901 
00902 //
00903 // CapabilityTableEntryNumber
00904 //
00905 
00906 class H245_CapabilityTableEntryNumber : public PASN_Integer
00907 {
00908 #ifndef PASN_LEANANDMEAN
00909     PCLASSINFO(H245_CapabilityTableEntryNumber, PASN_Integer);
00910 #endif
00911   public:
00912     H245_CapabilityTableEntryNumber(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00913 
00914     H245_CapabilityTableEntryNumber & operator=(int v);
00915     H245_CapabilityTableEntryNumber & operator=(unsigned v);
00916     PObject * Clone() const;
00917 };
00918 
00919 
00920 //
00921 // CapabilityDescriptorNumber
00922 //
00923 
00924 class H245_CapabilityDescriptorNumber : public PASN_Integer
00925 {
00926 #ifndef PASN_LEANANDMEAN
00927     PCLASSINFO(H245_CapabilityDescriptorNumber, PASN_Integer);
00928 #endif
00929   public:
00930     H245_CapabilityDescriptorNumber(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00931 
00932     H245_CapabilityDescriptorNumber & operator=(int v);
00933     H245_CapabilityDescriptorNumber & operator=(unsigned v);
00934     PObject * Clone() const;
00935 };
00936 
00937 
00938 //
00939 // TerminalCapabilitySetAck
00940 //
00941 
00942 class H245_TerminalCapabilitySetAck : public PASN_Sequence
00943 {
00944 #ifndef PASN_LEANANDMEAN
00945     PCLASSINFO(H245_TerminalCapabilitySetAck, PASN_Sequence);
00946 #endif
00947   public:
00948     H245_TerminalCapabilitySetAck(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00949 
00950     H245_SequenceNumber m_sequenceNumber;
00951 
00952     PINDEX GetDataLength() const;
00953     BOOL Decode(PASN_Stream & strm);
00954     void Encode(PASN_Stream & strm) const;
00955 #ifndef PASN_NOPRINTON
00956     void PrintOn(ostream & strm) const;
00957 #endif
00958     Comparison Compare(const PObject & obj) const;
00959     PObject * Clone() const;
00960 };
00961 
00962 
00963 //
00964 // TerminalCapabilitySetRelease
00965 //
00966 
00967 class H245_TerminalCapabilitySetRelease : public PASN_Sequence
00968 {
00969 #ifndef PASN_LEANANDMEAN
00970     PCLASSINFO(H245_TerminalCapabilitySetRelease, PASN_Sequence);
00971 #endif
00972   public:
00973     H245_TerminalCapabilitySetRelease(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00974 
00975 
00976     PINDEX GetDataLength() const;
00977     BOOL Decode(PASN_Stream & strm);
00978     void Encode(PASN_Stream & strm) const;
00979 #ifndef PASN_NOPRINTON
00980     void PrintOn(ostream & strm) const;
00981 #endif
00982     PObject * Clone() const;
00983 };
00984 
00985 
00986 //
00987 // Capability
00988 //
00989 
00990 class H245_NonStandardParameter;
00991 class H245_VideoCapability;
00992 class H245_AudioCapability;
00993 class H245_DataApplicationCapability;
00994 class H245_Capability_h233EncryptionReceiveCapability;
00995 class H245_ConferenceCapability;
00996 class H245_H235SecurityCapability;
00997 class H245_UserInputCapability;
00998 class H245_GenericCapability;
00999 class H245_MultiplexedStreamCapability;
01000 class H245_AudioTelephonyEventCapability;
01001 class H245_AudioToneCapability;
01002 class H245_DepFECCapability;
01003 class H245_MultiplePayloadStreamCapability;
01004 class H245_FECCapability;
01005 class H245_RedundancyEncodingCapability;
01006 class H245_AlternativeCapabilitySet;
01007 
01008 class H245_Capability : public PASN_Choice
01009 {
01010 #ifndef PASN_LEANANDMEAN
01011     PCLASSINFO(H245_Capability, PASN_Choice);
01012 #endif
01013   public:
01014     H245_Capability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01015 
01016     enum Choices {
01017       e_nonStandard,
01018       e_receiveVideoCapability,
01019       e_transmitVideoCapability,
01020       e_receiveAndTransmitVideoCapability,
01021       e_receiveAudioCapability,
01022       e_transmitAudioCapability,
01023       e_receiveAndTransmitAudioCapability,
01024       e_receiveDataApplicationCapability,
01025       e_transmitDataApplicationCapability,
01026       e_receiveAndTransmitDataApplicationCapability,
01027       e_h233EncryptionTransmitCapability,
01028       e_h233EncryptionReceiveCapability,
01029       e_conferenceCapability,
01030       e_h235SecurityCapability,
01031       e_maxPendingReplacementFor,
01032       e_receiveUserInputCapability,
01033       e_transmitUserInputCapability,
01034       e_receiveAndTransmitUserInputCapability,
01035       e_genericControlCapability,
01036       e_receiveMultiplexedStreamCapability,
01037       e_transmitMultiplexedStreamCapability,
01038       e_receiveAndTransmitMultiplexedStreamCapability,
01039       e_receiveRTPAudioTelephonyEventCapability,
01040       e_receiveRTPAudioToneCapability,
01041       e_depFecCapability,
01042       e_multiplePayloadStreamCapability,
01043       e_fecCapability,
01044       e_redundancyEncodingCap,
01045       e_oneOfCapabilities
01046     };
01047 
01048 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01049     operator H245_NonStandardParameter &() const;
01050 #else
01051     operator H245_NonStandardParameter &();
01052     operator const H245_NonStandardParameter &() const;
01053 #endif
01054 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01055     operator H245_VideoCapability &() const;
01056 #else
01057     operator H245_VideoCapability &();
01058     operator const H245_VideoCapability &() const;
01059 #endif
01060 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01061     operator H245_AudioCapability &() const;
01062 #else
01063     operator H245_AudioCapability &();
01064     operator const H245_AudioCapability &() const;
01065 #endif
01066 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01067     operator H245_DataApplicationCapability &() const;
01068 #else
01069     operator H245_DataApplicationCapability &();
01070     operator const H245_DataApplicationCapability &() const;
01071 #endif
01072 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01073     operator H245_Capability_h233EncryptionReceiveCapability &() const;
01074 #else
01075     operator H245_Capability_h233EncryptionReceiveCapability &();
01076     operator const H245_Capability_h233EncryptionReceiveCapability &() const;
01077 #endif
01078 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01079     operator H245_ConferenceCapability &() const;
01080 #else
01081     operator H245_ConferenceCapability &();
01082     operator const H245_ConferenceCapability &() const;
01083 #endif
01084 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01085     operator H245_H235SecurityCapability &() const;
01086 #else
01087     operator H245_H235SecurityCapability &();
01088     operator const H245_H235SecurityCapability &() const;
01089 #endif
01090 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01091     operator H245_UserInputCapability &() const;
01092 #else
01093     operator H245_UserInputCapability &();
01094     operator const H245_UserInputCapability &() const;
01095 #endif
01096 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01097     operator H245_GenericCapability &() const;
01098 #else
01099     operator H245_GenericCapability &();
01100     operator const H245_GenericCapability &() const;
01101 #endif
01102 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01103     operator H245_MultiplexedStreamCapability &() const;
01104 #else
01105     operator H245_MultiplexedStreamCapability &();
01106     operator const H245_MultiplexedStreamCapability &() const;
01107 #endif
01108 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01109     operator H245_AudioTelephonyEventCapability &() const;
01110 #else
01111     operator H245_AudioTelephonyEventCapability &();
01112     operator const H245_AudioTelephonyEventCapability &() const;
01113 #endif
01114 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01115     operator H245_AudioToneCapability &() const;
01116 #else
01117     operator H245_AudioToneCapability &();
01118     operator const H245_AudioToneCapability &() const;
01119 #endif
01120 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01121     operator H245_DepFECCapability &() const;
01122 #else
01123     operator H245_DepFECCapability &();
01124     operator const H245_DepFECCapability &() const;
01125 #endif
01126 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01127     operator H245_MultiplePayloadStreamCapability &() const;
01128 #else
01129     operator H245_MultiplePayloadStreamCapability &();
01130     operator const H245_MultiplePayloadStreamCapability &() const;
01131 #endif
01132 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01133     operator H245_FECCapability &() const;
01134 #else
01135     operator H245_FECCapability &();
01136     operator const H245_FECCapability &() const;
01137 #endif
01138 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01139     operator H245_RedundancyEncodingCapability &() const;
01140 #else
01141     operator H245_RedundancyEncodingCapability &();
01142     operator const H245_RedundancyEncodingCapability &() const;
01143 #endif
01144 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01145     operator H245_AlternativeCapabilitySet &() const;
01146 #else
01147     operator H245_AlternativeCapabilitySet &();
01148     operator const H245_AlternativeCapabilitySet &() const;
01149 #endif
01150 
01151     BOOL CreateObject();
01152     PObject * Clone() const;
01153 };
01154 
01155 
01156 //
01157 // MultiplexCapability
01158 //
01159 
01160 class H245_NonStandardParameter;
01161 class H245_H222Capability;
01162 class H245_H223Capability;
01163 class H245_V76Capability;
01164 class H245_H2250Capability;
01165 class H245_GenericCapability;
01166 
01167 class H245_MultiplexCapability : public PASN_Choice
01168 {
01169 #ifndef PASN_LEANANDMEAN
01170     PCLASSINFO(H245_MultiplexCapability, PASN_Choice);
01171 #endif
01172   public:
01173     H245_MultiplexCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01174 
01175     enum Choices {
01176       e_nonStandard,
01177       e_h222Capability,
01178       e_h223Capability,
01179       e_v76Capability,
01180       e_h2250Capability,
01181       e_genericMultiplexCapability
01182     };
01183 
01184 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01185     operator H245_NonStandardParameter &() const;
01186 #else
01187     operator H245_NonStandardParameter &();
01188     operator const H245_NonStandardParameter &() const;
01189 #endif
01190 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01191     operator H245_H222Capability &() const;
01192 #else
01193     operator H245_H222Capability &();
01194     operator const H245_H222Capability &() const;
01195 #endif
01196 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01197     operator H245_H223Capability &() const;
01198 #else
01199     operator H245_H223Capability &();
01200     operator const H245_H223Capability &() const;
01201 #endif
01202 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01203     operator H245_V76Capability &() const;
01204 #else
01205     operator H245_V76Capability &();
01206     operator const H245_V76Capability &() const;
01207 #endif
01208 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01209     operator H245_H2250Capability &() const;
01210 #else
01211     operator H245_H2250Capability &();
01212     operator const H245_H2250Capability &() const;
01213 #endif
01214 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01215     operator H245_GenericCapability &() const;
01216 #else
01217     operator H245_GenericCapability &();
01218     operator const H245_GenericCapability &() const;
01219 #endif
01220 
01221     BOOL CreateObject();
01222     PObject * Clone() const;
01223 };
01224 
01225 
01226 //
01227 // H223AnnexCCapability
01228 //
01229 
01230 class H245_H223AnnexCCapability : public PASN_Sequence
01231 {
01232 #ifndef PASN_LEANANDMEAN
01233     PCLASSINFO(H245_H223AnnexCCapability, PASN_Sequence);
01234 #endif
01235   public:
01236     H245_H223AnnexCCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01237 
01238     enum OptionalFields {
01239       e_rsCodeCapability
01240     };
01241 
01242     PASN_Boolean m_videoWithAL1M;
01243     PASN_Boolean m_videoWithAL2M;
01244     PASN_Boolean m_videoWithAL3M;
01245     PASN_Boolean m_audioWithAL1M;
01246     PASN_Boolean m_audioWithAL2M;
01247     PASN_Boolean m_audioWithAL3M;
01248     PASN_Boolean m_dataWithAL1M;
01249     PASN_Boolean m_dataWithAL2M;
01250     PASN_Boolean m_dataWithAL3M;
01251     PASN_Boolean m_alpduInterleaving;
01252     PASN_Integer m_maximumAL1MPDUSize;
01253     PASN_Integer m_maximumAL2MSDUSize;
01254     PASN_Integer m_maximumAL3MSDUSize;
01255     PASN_Boolean m_rsCodeCapability;
01256 
01257     PINDEX GetDataLength() const;
01258     BOOL Decode(PASN_Stream & strm);
01259     void Encode(PASN_Stream & strm) const;
01260 #ifndef PASN_NOPRINTON
01261     void PrintOn(ostream & strm) const;
01262 #endif
01263     Comparison Compare(const PObject & obj) const;
01264     PObject * Clone() const;
01265 };
01266 
01267 
01268 //
01269 // V75Capability
01270 //
01271 
01272 class H245_V75Capability : public PASN_Sequence
01273 {
01274 #ifndef PASN_LEANANDMEAN
01275     PCLASSINFO(H245_V75Capability, PASN_Sequence);
01276 #endif
01277   public:
01278     H245_V75Capability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01279 
01280     PASN_Boolean m_audioHeader;
01281 
01282     PINDEX GetDataLength() const;
01283     BOOL Decode(PASN_Stream & strm);
01284     void Encode(PASN_Stream & strm) const;
01285 #ifndef PASN_NOPRINTON
01286     void PrintOn(ostream & strm) const;
01287 #endif
01288     Comparison Compare(const PObject & obj) const;
01289     PObject * Clone() const;
01290 };
01291 
01292 
01293 //
01294 // QOSMode
01295 //
01296 
01297 class H245_QOSMode : public PASN_Choice
01298 {
01299 #ifndef PASN_LEANANDMEAN
01300     PCLASSINFO(H245_QOSMode, PASN_Choice);
01301 #endif
01302   public:
01303     H245_QOSMode(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01304 
01305     enum Choices {
01306       e_guaranteedQOS,
01307       e_controlledLoad
01308     };
01309 
01310     BOOL CreateObject();
01311     PObject * Clone() const;
01312 };
01313 
01314 
01315 //
01316 // ATMParameters
01317 //
01318 
01319 class H245_ATMParameters : public PASN_Sequence
01320 {
01321 #ifndef PASN_LEANANDMEAN
01322     PCLASSINFO(H245_ATMParameters, PASN_Sequence);
01323 #endif
01324   public:
01325     H245_ATMParameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01326 
01327     PASN_Integer m_maxNTUSize;
01328     PASN_Boolean m_atmUBR;
01329     PASN_Boolean m_atmrtVBR;
01330     PASN_Boolean m_atmnrtVBR;
01331     PASN_Boolean m_atmABR;
01332     PASN_Boolean m_atmCBR;
01333 
01334     PINDEX GetDataLength() const;
01335     BOOL Decode(PASN_Stream & strm);
01336     void Encode(PASN_Stream & strm) const;
01337 #ifndef PASN_NOPRINTON
01338     void PrintOn(ostream & strm) const;
01339 #endif
01340     Comparison Compare(const PObject & obj) const;
01341     PObject * Clone() const;
01342 };
01343 
01344 
01345 //
01346 // MediaTransportType
01347 //
01348 
01349 class H245_MediaTransportType_atm_AAL5_compressed;
01350 
01351 class H245_MediaTransportType : public PASN_Choice
01352 {
01353 #ifndef PASN_LEANANDMEAN
01354     PCLASSINFO(H245_MediaTransportType, PASN_Choice);
01355 #endif
01356   public:
01357     H245_MediaTransportType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01358 
01359     enum Choices {
01360       e_ip_UDP,
01361       e_ip_TCP,
01362       e_atm_AAL5_UNIDIR,
01363       e_atm_AAL5_BIDIR,
01364       e_atm_AAL5_compressed
01365     };
01366 
01367 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01368     operator H245_MediaTransportType_atm_AAL5_compressed &() const;
01369 #else
01370     operator H245_MediaTransportType_atm_AAL5_compressed &();
01371     operator const H245_MediaTransportType_atm_AAL5_compressed &() const;
01372 #endif
01373 
01374     BOOL CreateObject();
01375     PObject * Clone() const;
01376 };
01377 
01378 
01379 //
01380 // MediaChannelCapability
01381 //
01382 
01383 class H245_MediaChannelCapability : public PASN_Sequence
01384 {
01385 #ifndef PASN_LEANANDMEAN
01386     PCLASSINFO(H245_MediaChannelCapability, PASN_Sequence);
01387 #endif
01388   public:
01389     H245_MediaChannelCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01390 
01391     enum OptionalFields {
01392       e_mediaTransport
01393     };
01394 
01395     H245_MediaTransportType m_mediaTransport;
01396 
01397     PINDEX GetDataLength() const;
01398     BOOL Decode(PASN_Stream & strm);
01399     void Encode(PASN_Stream & strm) const;
01400 #ifndef PASN_NOPRINTON
01401     void PrintOn(ostream & strm) const;
01402 #endif
01403     Comparison Compare(const PObject & obj) const;
01404     PObject * Clone() const;
01405 };
01406 
01407 
01408 //
01409 // RedundancyEncodingMethod
01410 //
01411 
01412 class H245_NonStandardParameter;
01413 class H245_RTPH263VideoRedundancyEncoding;
01414 
01415 class H245_RedundancyEncodingMethod : public PASN_Choice
01416 {
01417 #ifndef PASN_LEANANDMEAN
01418     PCLASSINFO(H245_RedundancyEncodingMethod, PASN_Choice);
01419 #endif
01420   public:
01421     H245_RedundancyEncodingMethod(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01422 
01423     enum Choices {
01424       e_nonStandard,
01425       e_rtpAudioRedundancyEncoding,
01426       e_rtpH263VideoRedundancyEncoding
01427     };
01428 
01429 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01430     operator H245_NonStandardParameter &() const;
01431 #else
01432     operator H245_NonStandardParameter &();
01433     operator const H245_NonStandardParameter &() const;
01434 #endif
01435 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01436     operator H245_RTPH263VideoRedundancyEncoding &() const;
01437 #else
01438     operator H245_RTPH263VideoRedundancyEncoding &();
01439     operator const H245_RTPH263VideoRedundancyEncoding &() const;
01440 #endif
01441 
01442     BOOL CreateObject();
01443     PObject * Clone() const;
01444 };
01445 
01446 
01447 //
01448 // VideoCapability
01449 //
01450 
01451 class H245_NonStandardParameter;
01452 class H245_H261VideoCapability;
01453 class H245_H262VideoCapability;
01454 class H245_H263VideoCapability;
01455 class H245_IS11172VideoCapability;
01456 class H245_GenericCapability;
01457 class H245_ExtendedVideoCapability;
01458 
01459 class H245_VideoCapability : public PASN_Choice
01460 {
01461 #ifndef PASN_LEANANDMEAN
01462     PCLASSINFO(H245_VideoCapability, PASN_Choice);
01463 #endif
01464   public:
01465     H245_VideoCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01466 
01467     enum Choices {
01468       e_nonStandard,
01469       e_h261VideoCapability,
01470       e_h262VideoCapability,
01471       e_h263VideoCapability,
01472       e_is11172VideoCapability,
01473       e_genericVideoCapability,
01474       e_extendedVideoCapability
01475     };
01476 
01477 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01478     operator H245_NonStandardParameter &() const;
01479 #else
01480     operator H245_NonStandardParameter &();
01481     operator const H245_NonStandardParameter &() const;
01482 #endif
01483 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01484     operator H245_H261VideoCapability &() const;
01485 #else
01486     operator H245_H261VideoCapability &();
01487     operator const H245_H261VideoCapability &() const;
01488 #endif
01489 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01490     operator H245_H262VideoCapability &() const;
01491 #else
01492     operator H245_H262VideoCapability &();
01493     operator const H245_H262VideoCapability &() const;
01494 #endif
01495 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01496     operator H245_H263VideoCapability &() const;
01497 #else
01498     operator H245_H263VideoCapability &();
01499     operator const H245_H263VideoCapability &() const;
01500 #endif
01501 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01502     operator H245_IS11172VideoCapability &() const;
01503 #else
01504     operator H245_IS11172VideoCapability &();
01505     operator const H245_IS11172VideoCapability &() const;
01506 #endif
01507 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01508     operator H245_GenericCapability &() const;
01509 #else
01510     operator H245_GenericCapability &();
01511     operator const H245_GenericCapability &() const;
01512 #endif
01513 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01514     operator H245_ExtendedVideoCapability &() const;
01515 #else
01516     operator H245_ExtendedVideoCapability &();
01517     operator const H245_ExtendedVideoCapability &() const;
01518 #endif
01519 
01520     BOOL CreateObject();
01521     PObject * Clone() const;
01522 };
01523 
01524 
01525 //
01526 // H261VideoCapability
01527 //
01528 
01529 class H245_H261VideoCapability : public PASN_Sequence
01530 {
01531 #ifndef PASN_LEANANDMEAN
01532     PCLASSINFO(H245_H261VideoCapability, PASN_Sequence);
01533 #endif
01534   public:
01535     H245_H261VideoCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01536 
01537     enum OptionalFields {
01538       e_qcifMPI,
01539       e_cifMPI,
01540       e_videoBadMBsCap
01541     };
01542 
01543     PASN_Integer m_qcifMPI;
01544     PASN_Integer m_cifMPI;
01545     PASN_Boolean m_temporalSpatialTradeOffCapability;
01546     PASN_Integer m_maxBitRate;
01547     PASN_Boolean m_stillImageTransmission;
01548     PASN_Boolean m_videoBadMBsCap;
01549 
01550     PINDEX GetDataLength() const;
01551     BOOL Decode(PASN_Stream & strm);
01552     void Encode(PASN_Stream & strm) const;
01553 #ifndef PASN_NOPRINTON
01554     void PrintOn(ostream & strm) const;
01555 #endif
01556     Comparison Compare(const PObject & obj) const;
01557     PObject * Clone() const;
01558 };
01559 
01560 
01561 //
01562 // H262VideoCapability
01563 //
01564 
01565 class H245_H262VideoCapability : public PASN_Sequence
01566 {
01567 #ifndef PASN_LEANANDMEAN
01568     PCLASSINFO(H245_H262VideoCapability, PASN_Sequence);
01569 #endif
01570   public:
01571     H245_H262VideoCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01572 
01573     enum OptionalFields {
01574       e_videoBitRate,
01575       e_vbvBufferSize,
01576       e_samplesPerLine,
01577       e_linesPerFrame,
01578       e_framesPerSecond,
01579       e_luminanceSampleRate
01580     };
01581 
01582     PASN_Boolean m_profileAndLevel_SPatML;
01583     PASN_Boolean m_profileAndLevel_MPatLL;
01584     PASN_Boolean m_profileAndLevel_MPatML;
01585     PASN_Boolean m_profileAndLevel_MPatH_14;
01586     PASN_Boolean m_profileAndLevel_MPatHL;
01587     PASN_Boolean m_profileAndLevel_SNRatLL;
01588     PASN_Boolean m_profileAndLevel_SNRatML;
01589     PASN_Boolean m_profileAndLevel_SpatialatH_14;
01590     PASN_Boolean m_profileAndLevel_HPatML;
01591     PASN_Boolean m_profileAndLevel_HPatH_14;
01592     PASN_Boolean m_profileAndLevel_HPatHL;
01593     PASN_Integer m_videoBitRate;
01594     PASN_Integer m_vbvBufferSize;
01595     PASN_Integer m_samplesPerLine;
01596     PASN_Integer m_linesPerFrame;
01597     PASN_Integer m_framesPerSecond;
01598     PASN_Integer m_luminanceSampleRate;
01599     PASN_Boolean m_videoBadMBsCap;
01600 
01601     PINDEX GetDataLength() const;
01602     BOOL Decode(PASN_Stream & strm);
01603     void Encode(PASN_Stream & strm) const;
01604 #ifndef PASN_NOPRINTON
01605     void PrintOn(ostream & strm) const;
01606 #endif
01607     Comparison Compare(const PObject & obj) const;
01608     PObject * Clone() const;
01609 };
01610 
01611 
01612 //
01613 // TransparencyParameters
01614 //
01615 
01616 class H245_TransparencyParameters : public PASN_Sequence
01617 {
01618 #ifndef PASN_LEANANDMEAN
01619     PCLASSINFO(H245_TransparencyParameters, PASN_Sequence);
01620 #endif
01621   public:
01622     H245_TransparencyParameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01623 
01624     PASN_Integer m_presentationOrder;
01625     PASN_Integer m_offset_x;
01626     PASN_Integer m_offset_y;
01627     PASN_Integer m_scale_x;
01628     PASN_Integer m_scale_y;
01629 
01630     PINDEX GetDataLength() const;
01631     BOOL Decode(PASN_Stream & strm);
01632     void Encode(PASN_Stream & strm) const;
01633 #ifndef PASN_NOPRINTON
01634     void PrintOn(ostream & strm) const;
01635 #endif
01636     Comparison Compare(const PObject & obj) const;
01637     PObject * Clone() const;
01638 };
01639 
01640 
01641 //
01642 // CustomPictureClockFrequency
01643 //
01644 
01645 class H245_CustomPictureClockFrequency : public PASN_Sequence
01646 {
01647 #ifndef PASN_LEANANDMEAN
01648     PCLASSINFO(H245_CustomPictureClockFrequency, PASN_Sequence);
01649 #endif
01650   public:
01651     H245_CustomPictureClockFrequency(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01652 
01653     enum OptionalFields {
01654       e_sqcifMPI,
01655       e_qcifMPI,
01656       e_cifMPI,
01657       e_cif4MPI,
01658       e_cif16MPI
01659     };
01660 
01661     PASN_Integer m_clockConversionCode;
01662     PASN_Integer m_clockDivisor;
01663     PASN_Integer m_sqcifMPI;
01664     PASN_Integer m_qcifMPI;
01665     PASN_Integer m_cifMPI;
01666     PASN_Integer m_cif4MPI;
01667     PASN_Integer m_cif16MPI;
01668 
01669     PINDEX GetDataLength() const;
01670     BOOL Decode(PASN_Stream & strm);
01671     void Encode(PASN_Stream & strm) const;
01672 #ifndef PASN_NOPRINTON
01673     void PrintOn(ostream & strm) const;
01674 #endif
01675     Comparison Compare(const PObject & obj) const;
01676     PObject * Clone() const;
01677 };
01678 
01679 
01680 //
01681 // H263Version3Options
01682 //
01683 
01684 class H245_H263Version3Options : public PASN_Sequence
01685 {
01686 #ifndef PASN_LEANANDMEAN
01687     PCLASSINFO(H245_H263Version3Options, PASN_Sequence);
01688 #endif
01689   public:
01690     H245_H263Version3Options(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01691 
01692     PASN_Boolean m_dataPartitionedSlices;
01693     PASN_Boolean m_fixedPointIDCT0;
01694     PASN_Boolean m_interlacedFields;
01695     PASN_Boolean m_currentPictureHeaderRepetition;
01696     PASN_Boolean m_previousPictureHeaderRepetition;
01697     PASN_Boolean m_nextPictureHeaderRepetition;
01698     PASN_Boolean m_pictureNumber;
01699     PASN_Boolean m_spareReferencePictures;
01700 
01701     PINDEX GetDataLength() const;
01702     BOOL Decode(PASN_Stream & strm);
01703     void Encode(PASN_Stream & strm) const;
01704 #ifndef PASN_NOPRINTON
01705     void PrintOn(ostream & strm) const;
01706 #endif
01707     Comparison Compare(const PObject & obj) const;
01708     PObject * Clone() const;
01709 };
01710 
01711 
01712 //
01713 // IS11172VideoCapability
01714 //
01715 
01716 class H245_IS11172VideoCapability : public PASN_Sequence
01717 {
01718 #ifndef PASN_LEANANDMEAN
01719     PCLASSINFO(H245_IS11172VideoCapability, PASN_Sequence);
01720 #endif
01721   public:
01722     H245_IS11172VideoCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01723 
01724     enum OptionalFields {
01725       e_videoBitRate,
01726       e_vbvBufferSize,
01727       e_samplesPerLine,
01728       e_linesPerFrame,
01729       e_pictureRate,
01730       e_luminanceSampleRate,
01731       e_videoBadMBsCap
01732     };
01733 
01734     PASN_Boolean m_constrainedBitstream;
01735     PASN_Integer m_videoBitRate;
01736     PASN_Integer m_vbvBufferSize;
01737     PASN_Integer m_samplesPerLine;
01738     PASN_Integer m_linesPerFrame;
01739     PASN_Integer m_pictureRate;
01740     PASN_Integer m_luminanceSampleRate;
01741     PASN_Boolean m_videoBadMBsCap;
01742 
01743     PINDEX GetDataLength() const;
01744     BOOL Decode(PASN_Stream & strm);
01745     void Encode(PASN_Stream & strm) const;
01746 #ifndef PASN_NOPRINTON
01747     void PrintOn(ostream & strm) const;
01748 #endif
01749     Comparison Compare(const PObject & obj) const;
01750     PObject * Clone() const;
01751 };
01752 
01753 
01754 //
01755 // AudioCapability
01756 //
01757 
01758 class H245_NonStandardParameter;
01759 class H245_AudioCapability_g7231;
01760 class H245_IS11172AudioCapability;
01761 class H245_IS13818AudioCapability;
01762 class H245_G7231AnnexCCapability;
01763 class H245_GSMAudioCapability;
01764 class H245_GenericCapability;
01765 class H245_G729Extensions;
01766 class H245_VBDCapability;
01767 class H245_NoPTAudioTelephonyEventCapability;
01768 class H245_NoPTAudioToneCapability;
01769 
01770 class H245_AudioCapability : public PASN_Choice
01771 {
01772 #ifndef PASN_LEANANDMEAN
01773     PCLASSINFO(H245_AudioCapability, PASN_Choice);
01774 #endif
01775   public:
01776     H245_AudioCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01777 
01778 // following code added by command line option
01779 
01780 #ifndef PASN_NOPRINTON
01781 void PrintOn(ostream & strm) const;
01782 #endif
01783 
01784 // end of added code
01785 
01786     enum Choices {
01787       e_nonStandard,
01788       e_g711Alaw64k,
01789       e_g711Alaw56k,
01790       e_g711Ulaw64k,
01791       e_g711Ulaw56k,
01792       e_g722_64k,
01793       e_g722_56k,
01794       e_g722_48k,
01795       e_g7231,
01796       e_g728,
01797       e_g729,
01798       e_g729AnnexA,
01799       e_is11172AudioCapability,
01800       e_is13818AudioCapability,
01801       e_g729wAnnexB,
01802       e_g729AnnexAwAnnexB,
01803       e_g7231AnnexCCapability,
01804       e_gsmFullRate,
01805       e_gsmHalfRate,
01806       e_gsmEnhancedFullRate,
01807       e_genericAudioCapability,
01808       e_g729Extensions,
01809       e_vbd,
01810       e_audioTelephonyEvent,
01811       e_audioTone
01812     };
01813 
01814 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01815     operator H245_NonStandardParameter &() const;
01816 #else
01817     operator H245_NonStandardParameter &();
01818     operator const H245_NonStandardParameter &() const;
01819 #endif
01820 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01821     operator H245_AudioCapability_g7231 &() const;
01822 #else
01823     operator H245_AudioCapability_g7231 &();
01824     operator const H245_AudioCapability_g7231 &() const;
01825 #endif
01826 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01827     operator H245_IS11172AudioCapability &() const;
01828 #else
01829     operator H245_IS11172AudioCapability &();
01830     operator const H245_IS11172AudioCapability &() const;
01831 #endif
01832 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01833     operator H245_IS13818AudioCapability &() const;
01834 #else
01835     operator H245_IS13818AudioCapability &();
01836     operator const H245_IS13818AudioCapability &() const;
01837 #endif
01838 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01839     operator H245_G7231AnnexCCapability &() const;
01840 #else
01841     operator H245_G7231AnnexCCapability &();
01842     operator const H245_G7231AnnexCCapability &() const;
01843 #endif
01844 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01845     operator H245_GSMAudioCapability &() const;
01846 #else
01847     operator H245_GSMAudioCapability &();
01848     operator const H245_GSMAudioCapability &() const;
01849 #endif
01850 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01851     operator H245_GenericCapability &() const;
01852 #else
01853     operator H245_GenericCapability &();
01854     operator const H245_GenericCapability &() const;
01855 #endif
01856 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01857     operator H245_G729Extensions &() const;
01858 #else
01859     operator H245_G729Extensions &();
01860     operator const H245_G729Extensions &() const;
01861 #endif
01862 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01863     operator H245_VBDCapability &() const;
01864 #else
01865     operator H245_VBDCapability &();
01866     operator const H245_VBDCapability &() const;
01867 #endif
01868 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01869     operator H245_NoPTAudioTelephonyEventCapability &() const;
01870 #else
01871     operator H245_NoPTAudioTelephonyEventCapability &();
01872     operator const H245_NoPTAudioTelephonyEventCapability &() const;
01873 #endif
01874 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01875     operator H245_NoPTAudioToneCapability &() const;
01876 #else
01877     operator H245_NoPTAudioToneCapability &();
01878     operator const H245_NoPTAudioToneCapability &() const;
01879 #endif
01880 
01881     BOOL CreateObject();
01882     PObject * Clone() const;
01883 };
01884 
01885 
01886 //
01887 // G729Extensions
01888 //
01889 
01890 class H245_G729Extensions : public PASN_Sequence
01891 {
01892 #ifndef PASN_LEANANDMEAN
01893     PCLASSINFO(H245_G729Extensions, PASN_Sequence);
01894 #endif
01895   public:
01896     H245_G729Extensions(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01897 
01898     enum OptionalFields {
01899       e_audioUnit
01900     };
01901 
01902     PASN_Integer m_audioUnit;
01903     PASN_Boolean m_annexA;
01904     PASN_Boolean m_annexB;
01905     PASN_Boolean m_annexD;
01906     PASN_Boolean m_annexE;
01907     PASN_Boolean m_annexF;
01908     PASN_Boolean m_annexG;
01909     PASN_Boolean m_annexH;
01910 
01911     PINDEX GetDataLength() const;
01912     BOOL Decode(PASN_Stream & strm);
01913     void Encode(PASN_Stream & strm) const;
01914 #ifndef PASN_NOPRINTON
01915     void PrintOn(ostream & strm) const;
01916 #endif
01917     Comparison Compare(const PObject & obj) const;
01918     PObject * Clone() const;
01919 };
01920 
01921 
01922 //
01923 // IS11172AudioCapability
01924 //
01925 
01926 class H245_IS11172AudioCapability : public PASN_Sequence
01927 {
01928 #ifndef PASN_LEANANDMEAN
01929     PCLASSINFO(H245_IS11172AudioCapability, PASN_Sequence);
01930 #endif
01931   public:
01932     H245_IS11172AudioCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01933 
01934     PASN_Boolean m_audioLayer1;
01935     PASN_Boolean m_audioLayer2;
01936     PASN_Boolean m_audioLayer3;
01937     PASN_Boolean m_audioSampling32k;
01938     PASN_Boolean m_audioSampling44k1;
01939     PASN_Boolean m_audioSampling48k;
01940     PASN_Boolean m_singleChannel;
01941     PASN_Boolean m_twoChannels;
01942     PASN_Integer m_bitRate;
01943 
01944     PINDEX GetDataLength() const;
01945     BOOL Decode(PASN_Stream & strm);
01946     void Encode(PASN_Stream & strm) const;
01947 #ifndef PASN_NOPRINTON
01948     void PrintOn(ostream & strm) const;
01949 #endif
01950     Comparison Compare(const PObject & obj) const;
01951     PObject * Clone() const;
01952 };
01953 
01954 
01955 //
01956 // IS13818AudioCapability
01957 //
01958 
01959 class H245_IS13818AudioCapability : public PASN_Sequence
01960 {
01961 #ifndef PASN_LEANANDMEAN
01962     PCLASSINFO(H245_IS13818AudioCapability, PASN_Sequence);
01963 #endif
01964   public:
01965     H245_IS13818AudioCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01966 
01967     PASN_Boolean m_audioLayer1;
01968     PASN_Boolean m_audioLayer2;
01969     PASN_Boolean m_audioLayer3;
01970     PASN_Boolean m_audioSampling16k;
01971     PASN_Boolean m_audioSampling22k05;
01972     PASN_Boolean m_audioSampling24k;
01973     PASN_Boolean m_audioSampling32k;
01974     PASN_Boolean m_audioSampling44k1;
01975     PASN_Boolean m_audioSampling48k;
01976     PASN_Boolean m_singleChannel;
01977     PASN_Boolean m_twoChannels;
01978     PASN_Boolean m_threeChannels2_1;
01979     PASN_Boolean m_threeChannels3_0;
01980     PASN_Boolean m_fourChannels2_0_2_0;
01981     PASN_Boolean m_fourChannels2_2;
01982     PASN_Boolean m_fourChannels3_1;
01983     PASN_Boolean m_fiveChannels3_0_2_0;
01984     PASN_Boolean m_fiveChannels3_2;
01985     PASN_Boolean m_lowFrequencyEnhancement;
01986     PASN_Boolean m_multilingual;
01987     PASN_Integer m_bitRate;
01988 
01989     PINDEX GetDataLength() const;
01990     BOOL Decode(PASN_Stream & strm);
01991     void Encode(PASN_Stream & strm) const;
01992 #ifndef PASN_NOPRINTON
01993     void PrintOn(ostream & strm) const;
01994 #endif
01995     Comparison Compare(const PObject & obj) const;
01996     PObject * Clone() const;
01997 };
01998 
01999 
02000 //
02001 // GSMAudioCapability
02002 //
02003 
02004 class H245_GSMAudioCapability : public PASN_Sequence
02005 {
02006 #ifndef PASN_LEANANDMEAN
02007     PCLASSINFO(H245_GSMAudioCapability, PASN_Sequence);
02008 #endif
02009   public:
02010     H245_GSMAudioCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02011 
02012     PASN_Integer m_audioUnitSize;
02013     PASN_Boolean m_comfortNoise;
02014     PASN_Boolean m_scrambled;
02015 
02016     PINDEX GetDataLength() const;
02017     BOOL Decode(PASN_Stream & strm);
02018     void Encode(PASN_Stream & strm) const;
02019 #ifndef PASN_NOPRINTON
02020     void PrintOn(ostream & strm) const;
02021 #endif
02022     Comparison Compare(const PObject & obj) const;
02023     PObject * Clone() const;
02024 };
02025 
02026 
02027 //
02028 // VBDCapability
02029 //
02030 
02031 class H245_VBDCapability : public PASN_Sequence
02032 {
02033 #ifndef PASN_LEANANDMEAN
02034     PCLASSINFO(H245_VBDCapability, PASN_Sequence);
02035 #endif
02036   public:
02037     H245_VBDCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02038 
02039     H245_AudioCapability m_type;
02040 
02041     PINDEX GetDataLength() const;
02042     BOOL Decode(PASN_Stream & strm);
02043     void Encode(PASN_Stream & strm) const;
02044 #ifndef PASN_NOPRINTON
02045     void PrintOn(ostream & strm) const;
02046 #endif
02047     Comparison Compare(const PObject & obj) const;
02048     PObject * Clone() const;
02049 };
02050 
02051 
02052 //
02053 // DataProtocolCapability
02054 //
02055 
02056 class H245_NonStandardParameter;
02057 class H245_DataProtocolCapability_v76wCompression;
02058 
02059 class H245_DataProtocolCapability : public PASN_Choice
02060 {
02061 #ifndef PASN_LEANANDMEAN
02062     PCLASSINFO(H245_DataProtocolCapability, PASN_Choice);
02063 #endif
02064   public:
02065     H245_DataProtocolCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02066 
02067     enum Choices {
02068       e_nonStandard,
02069       e_v14buffered,
02070       e_v42lapm,
02071       e_hdlcFrameTunnelling,
02072       e_h310SeparateVCStack,
02073       e_h310SingleVCStack,
02074       e_transparent,
02075       e_segmentationAndReassembly,
02076       e_hdlcFrameTunnelingwSAR,
02077       e_v120,
02078       e_separateLANStack,
02079       e_v76wCompression,
02080       e_tcp,
02081       e_udp
02082     };
02083 
02084 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02085     operator H245_NonStandardParameter &() const;
02086 #else
02087     operator H245_NonStandardParameter &();
02088     operator const H245_NonStandardParameter &() const;
02089 #endif
02090 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02091     operator H245_DataProtocolCapability_v76wCompression &() const;
02092 #else
02093     operator H245_DataProtocolCapability_v76wCompression &();
02094     operator const H245_DataProtocolCapability_v76wCompression &() const;
02095 #endif
02096 
02097     BOOL CreateObject();
02098     PObject * Clone() const;
02099 };
02100 
02101 
02102 //
02103 // CompressionType
02104 //
02105 
02106 class H245_V42bis;
02107 
02108 class H245_CompressionType : public PASN_Choice
02109 {
02110 #ifndef PASN_LEANANDMEAN
02111     PCLASSINFO(H245_CompressionType, PASN_Choice);
02112 #endif
02113   public:
02114     H245_CompressionType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02115 
02116     enum Choices {
02117       e_v42bis
02118     };
02119 
02120 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02121     operator H245_V42bis &() const;
02122 #else
02123     operator H245_V42bis &();
02124     operator const H245_V42bis &() const;
02125 #endif
02126 
02127     BOOL CreateObject();
02128     PObject * Clone() const;
02129 };
02130 
02131 
02132 //
02133 // V42bis
02134 //
02135 
02136 class H245_V42bis : public PASN_Sequence
02137 {
02138 #ifndef PASN_LEANANDMEAN
02139     PCLASSINFO(H245_V42bis, PASN_Sequence);
02140 #endif
02141   public:
02142     H245_V42bis(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02143 
02144     PASN_Integer m_numberOfCodewords;
02145     PASN_Integer m_maximumStringLength;
02146 
02147     PINDEX GetDataLength() const;
02148     BOOL Decode(PASN_Stream & strm);
02149     void Encode(PASN_Stream & strm) const;
02150 #ifndef PASN_NOPRINTON
02151     void PrintOn(ostream & strm) const;
02152 #endif
02153     Comparison Compare(const PObject & obj) const;
02154     PObject * Clone() const;
02155 };
02156 
02157 
02158 //
02159 // T84Profile
02160 //
02161 
02162 class H245_T84Profile_t84Restricted;
02163 
02164 class H245_T84Profile : public PASN_Choice
02165 {
02166 #ifndef PASN_LEANANDMEAN
02167     PCLASSINFO(H245_T84Profile, PASN_Choice);
02168 #endif
02169   public:
02170     H245_T84Profile(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02171 
02172     enum Choices {
02173       e_t84Unrestricted,
02174       e_t84Restricted
02175     };
02176 
02177 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02178     operator H245_T84Profile_t84Restricted &() const;
02179 #else
02180     operator H245_T84Profile_t84Restricted &();
02181     operator const H245_T84Profile_t84Restricted &() const;
02182 #endif
02183 
02184     BOOL CreateObject();
02185     PObject * Clone() const;
02186 };
02187 
02188 
02189 //
02190 // T38FaxRateManagement
02191 //
02192 
02193 class H245_T38FaxRateManagement : public PASN_Choice
02194 {
02195 #ifndef PASN_LEANANDMEAN
02196     PCLASSINFO(H245_T38FaxRateManagement, PASN_Choice);
02197 #endif
02198   public:
02199     H245_T38FaxRateManagement(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02200 
02201     enum Choices {
02202       e_localTCF,
02203       e_transferredTCF
02204     };
02205 
02206     BOOL CreateObject();
02207     PObject * Clone() const;
02208 };
02209 
02210 
02211 //
02212 // T38FaxTcpOptions
02213 //
02214 
02215 class H245_T38FaxTcpOptions : public PASN_Sequence
02216 {
02217 #ifndef PASN_LEANANDMEAN
02218     PCLASSINFO(H245_T38FaxTcpOptions, PASN_Sequence);
02219 #endif
02220   public:
02221     H245_T38FaxTcpOptions(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02222 
02223     PASN_Boolean m_t38TCPBidirectionalMode;
02224 
02225     PINDEX GetDataLength() const;
02226     BOOL Decode(PASN_Stream & strm);
02227     void Encode(PASN_Stream & strm) const;
02228 #ifndef PASN_NOPRINTON
02229     void PrintOn(ostream & strm) const;
02230 #endif
02231     Comparison Compare(const PObject & obj) const;
02232     PObject * Clone() const;
02233 };
02234 
02235 
02236 //
02237 // EncryptionCapability
02238 //
02239 
02240 class H245_MediaEncryptionAlgorithm;
02241 
02242 class H245_EncryptionCapability : public PASN_Array
02243 {
02244 #ifndef PASN_LEANANDMEAN
02245     PCLASSINFO(H245_EncryptionCapability, PASN_Array);
02246 #endif
02247   public:
02248     H245_EncryptionCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02249 
02250     PASN_Object * CreateObject() const;
02251     H245_MediaEncryptionAlgorithm & operator[](PINDEX i) const;
02252     PObject * Clone() const;
02253 };
02254 
02255 
02256 //
02257 // MediaEncryptionAlgorithm
02258 //
02259 
02260 class H245_NonStandardParameter;
02261 
02262 class H245_MediaEncryptionAlgorithm : public PASN_Choice
02263 {
02264 #ifndef PASN_LEANANDMEAN
02265     PCLASSINFO(H245_MediaEncryptionAlgorithm, PASN_Choice);
02266 #endif
02267   public:
02268     H245_MediaEncryptionAlgorithm(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02269 
02270     enum Choices {
02271       e_nonStandard,
02272       e_algorithm
02273     };
02274 
02275 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02276     operator H245_NonStandardParameter &() const;
02277 #else
02278     operator H245_NonStandardParameter &();
02279     operator const H245_NonStandardParameter &() const;
02280 #endif
02281 
02282     BOOL CreateObject();
02283     PObject * Clone() const;
02284 };
02285 
02286 
02287 //
02288 // UserInputCapability
02289 //
02290 
02291 class H245_ArrayOf_NonStandardParameter;
02292 
02293 class H245_UserInputCapability : public PASN_Choice
02294 {
02295 #ifndef PASN_LEANANDMEAN
02296     PCLASSINFO(H245_UserInputCapability, PASN_Choice);
02297 #endif
02298   public:
02299     H245_UserInputCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02300 
02301     enum Choices {
02302       e_nonStandard,
02303       e_basicString,
02304       e_iA5String,
02305       e_generalString,
02306       e_dtmf,
02307       e_hookflash,
02308       e_extendedAlphanumeric,
02309       e_encryptedBasicString,
02310       e_encryptedIA5String,
02311       e_encryptedGeneralString,
02312       e_secureDTMF
02313     };
02314 
02315 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02316     operator H245_ArrayOf_NonStandardParameter &() const;
02317 #else
02318     operator H245_ArrayOf_NonStandardParameter &();
02319     operator const H245_ArrayOf_NonStandardParameter &() const;
02320 #endif
02321 
02322     BOOL CreateObject();
02323     PObject * Clone() const;
02324 };
02325 
02326 
02327 //
02328 // CapabilityIdentifier
02329 //
02330 
02331 class H245_NonStandardParameter;
02332 
02333 class H245_CapabilityIdentifier : public PASN_Choice
02334 {
02335 #ifndef PASN_LEANANDMEAN
02336     PCLASSINFO(H245_CapabilityIdentifier, PASN_Choice);
02337 #endif
02338   public:
02339     H245_CapabilityIdentifier(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02340 
02341     enum Choices {
02342       e_standard,
02343       e_h221NonStandard,
02344       e_uuid,
02345       e_domainBased
02346     };
02347 
02348 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02349     operator H245_NonStandardParameter &() const;
02350 #else
02351     operator H245_NonStandardParameter &();
02352     operator const H245_NonStandardParameter &() const;
02353 #endif
02354 
02355     BOOL CreateObject();
02356     PObject * Clone() const;
02357 };
02358 
02359 
02360 //
02361 // ParameterIdentifier
02362 //
02363 
02364 class H245_NonStandardParameter;
02365 
02366 class H245_ParameterIdentifier : public PASN_Choice
02367 {
02368 #ifndef PASN_LEANANDMEAN
02369     PCLASSINFO(H245_ParameterIdentifier, PASN_Choice);
02370 #endif
02371   public:
02372     H245_ParameterIdentifier(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02373 
02374     enum Choices {
02375       e_standard,
02376       e_h221NonStandard,
02377       e_uuid,
02378       e_domainBased
02379     };
02380 
02381 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02382     operator H245_NonStandardParameter &() const;
02383 #else
02384     operator H245_NonStandardParameter &();
02385     operator const H245_NonStandardParameter &() const;
02386 #endif
02387 
02388     BOOL CreateObject();
02389     PObject * Clone() const;
02390 };
02391 
02392 
02393 //
02394 // ParameterValue
02395 //
02396 
02397 class H245_ArrayOf_GenericParameter;
02398 
02399 class H245_ParameterValue : public PASN_Choice
02400 {
02401 #ifndef PASN_LEANANDMEAN
02402     PCLASSINFO(H245_ParameterValue, PASN_Choice);
02403 #endif
02404   public:
02405     H245_ParameterValue(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02406 
02407     enum Choices {
02408       e_logical,
02409       e_booleanArray,
02410       e_unsignedMin,
02411       e_unsignedMax,
02412       e_unsigned32Min,
02413       e_unsigned32Max,
02414       e_octetString,
02415       e_genericParameter
02416     };
02417 
02418 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02419     operator H245_ArrayOf_GenericParameter &() const;
02420 #else
02421     operator H245_ArrayOf_GenericParameter &();
02422     operator const H245_ArrayOf_GenericParameter &() const;
02423 #endif
02424 
02425     BOOL CreateObject();
02426     PObject * Clone() const;
02427 };
02428 
02429 
02430 //
02431 // MultiplexFormat
02432 //
02433 
02434 class H245_NonStandardParameter;
02435 class H245_H222Capability;
02436 class H245_H223Capability;
02437 
02438 class H245_MultiplexFormat : public PASN_Choice
02439 {
02440 #ifndef PASN_LEANANDMEAN
02441     PCLASSINFO(H245_MultiplexFormat, PASN_Choice);
02442 #endif
02443   public:
02444     H245_MultiplexFormat(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02445 
02446     enum Choices {
02447       e_nonStandard,
02448       e_h222Capability,
02449       e_h223Capability
02450     };
02451 
02452 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02453     operator H245_NonStandardParameter &() const;
02454 #else
02455     operator H245_NonStandardParameter &();
02456     operator const H245_NonStandardParameter &() const;
02457 #endif
02458 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02459     operator H245_H222Capability &() const;
02460 #else
02461     operator H245_H222Capability &();
02462     operator const H245_H222Capability &() const;
02463 #endif
02464 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02465     operator H245_H223Capability &() const;
02466 #else
02467     operator H245_H223Capability &();
02468     operator const H245_H223Capability &() const;
02469 #endif
02470 
02471     BOOL CreateObject();
02472     PObject * Clone() const;
02473 };
02474 
02475 
02476 //
02477 // AudioTelephonyEventCapability
02478 //
02479 
02480 class H245_AudioTelephonyEventCapability : public PASN_Sequence
02481 {
02482 #ifndef PASN_LEANANDMEAN
02483     PCLASSINFO(H245_AudioTelephonyEventCapability, PASN_Sequence);
02484 #endif
02485   public:
02486     H245_AudioTelephonyEventCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02487 
02488     PASN_Integer m_dynamicRTPPayloadType;
02489     PASN_GeneralString m_audioTelephoneEvent;
02490 
02491     PINDEX GetDataLength() const;
02492     BOOL Decode(PASN_Stream & strm);
02493     void Encode(PASN_Stream & strm) const;
02494 #ifndef PASN_NOPRINTON
02495     void PrintOn(ostream & strm) const;
02496 #endif
02497     Comparison Compare(const PObject & obj) const;
02498     PObject * Clone() const;
02499 };
02500 
02501 
02502 //
02503 // AudioToneCapability
02504 //
02505 
02506 class H245_AudioToneCapability : public PASN_Sequence
02507 {
02508 #ifndef PASN_LEANANDMEAN
02509     PCLASSINFO(H245_AudioToneCapability, PASN_Sequence);
02510 #endif
02511   public:
02512     H245_AudioToneCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02513 
02514     PASN_Integer m_dynamicRTPPayloadType;
02515 
02516     PINDEX GetDataLength() const;
02517     BOOL Decode(PASN_Stream & strm);
02518     void Encode(PASN_Stream & strm) const;
02519 #ifndef PASN_NOPRINTON
02520     void PrintOn(ostream & strm) const;
02521 #endif
02522     Comparison Compare(const PObject & obj) const;
02523     PObject * Clone() const;
02524 };
02525 
02526 
02527 //
02528 // NoPTAudioTelephonyEventCapability
02529 //
02530 
02531 class H245_NoPTAudioTelephonyEventCapability : public PASN_Sequence
02532 {
02533 #ifndef PASN_LEANANDMEAN
02534     PCLASSINFO(H245_NoPTAudioTelephonyEventCapability, PASN_Sequence);
02535 #endif
02536   public:
02537     H245_NoPTAudioTelephonyEventCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02538 
02539     PASN_GeneralString m_audioTelephoneEvent;
02540 
02541     PINDEX GetDataLength() const;
02542     BOOL Decode(PASN_Stream & strm);
02543     void Encode(PASN_Stream & strm) const;
02544 #ifndef PASN_NOPRINTON
02545     void PrintOn(ostream & strm) const;
02546 #endif
02547     Comparison Compare(const PObject & obj) const;
02548     PObject * Clone() const;
02549 };
02550 
02551 
02552 //
02553 // NoPTAudioToneCapability
02554 //
02555 
02556 class H245_NoPTAudioToneCapability : public PASN_Sequence
02557 {
02558 #ifndef PASN_LEANANDMEAN
02559     PCLASSINFO(H245_NoPTAudioToneCapability, PASN_Sequence);
02560 #endif
02561   public:
02562     H245_NoPTAudioToneCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02563 
02564 
02565     PINDEX GetDataLength() const;
02566     BOOL Decode(PASN_Stream & strm);
02567     void Encode(PASN_Stream & strm) const;
02568 #ifndef PASN_NOPRINTON
02569     void PrintOn(ostream & strm) const;
02570 #endif
02571     PObject * Clone() const;
02572 };
02573 
02574 
02575 //
02576 // DepFECCapability
02577 //
02578 
02579 class H245_DepFECCapability_rfc2733;
02580 
02581 class H245_DepFECCapability : public PASN_Choice
02582 {
02583 #ifndef PASN_LEANANDMEAN
02584     PCLASSINFO(H245_DepFECCapability, PASN_Choice);
02585 #endif
02586   public:
02587     H245_DepFECCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02588 
02589     enum Choices {
02590       e_rfc2733
02591     };
02592 
02593 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02594     operator H245_DepFECCapability_rfc2733 &() const;
02595 #else
02596     operator H245_DepFECCapability_rfc2733 &();
02597     operator const H245_DepFECCapability_rfc2733 &() const;
02598 #endif
02599 
02600     BOOL CreateObject();
02601     PObject * Clone() const;
02602 };
02603 
02604 
02605 //
02606 // MaxRedundancy
02607 //
02608 
02609 class H245_MaxRedundancy : public PASN_Integer
02610 {
02611 #ifndef PASN_LEANANDMEAN
02612     PCLASSINFO(H245_MaxRedundancy, PASN_Integer);
02613 #endif
02614   public:
02615     H245_MaxRedundancy(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
02616 
02617     H245_MaxRedundancy & operator=(int v);
02618     H245_MaxRedundancy & operator=(unsigned v);
02619     PObject * Clone() const;
02620 };
02621 
02622 
02623 //
02624 // LogicalChannelNumber
02625 //
02626 
02627 class H245_LogicalChannelNumber : public PASN_Integer
02628 {
02629 #ifndef PASN_LEANANDMEAN
02630     PCLASSINFO(H245_LogicalChannelNumber, PASN_Integer);
02631 #endif
02632   public:
02633     H245_LogicalChannelNumber(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
02634 
02635     H245_LogicalChannelNumber & operator=(int v);
02636     H245_LogicalChannelNumber & operator=(unsigned v);
02637     PObject * Clone() const;
02638 };
02639 
02640 
02641 //
02642 // V75Parameters
02643 //
02644 
02645 class H245_V75Parameters : public PASN_Sequence
02646 {
02647 #ifndef PASN_LEANANDMEAN
02648     PCLASSINFO(H245_V75Parameters, PASN_Sequence);
02649 #endif
02650   public:
02651     H245_V75Parameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02652 
02653     PASN_Boolean m_audioHeaderPresent;
02654 
02655     PINDEX GetDataLength() const;
02656     BOOL Decode(PASN_Stream & strm);
02657     void Encode(PASN_Stream & strm) const;
02658 #ifndef PASN_NOPRINTON
02659     void PrintOn(ostream & strm) const;
02660 #endif
02661     Comparison Compare(const PObject & obj) const;
02662     PObject * Clone() const;
02663 };
02664 
02665 
02666 //
02667 // DataType
02668 //
02669 
02670 class H245_NonStandardParameter;
02671 class H245_VideoCapability;
02672 class H245_AudioCapability;
02673 class H245_DataApplicationCapability;
02674 class H245_EncryptionMode;
02675 class H245_H235Media;
02676 class H245_MultiplexedStreamParameter;
02677 class H245_RedundancyEncoding;
02678 class H245_MultiplePayloadStream;
02679 class H245_DepFECData;
02680 class H245_FECData;
02681 
02682 class H245_DataType : public PASN_Choice
02683 {
02684 #ifndef PASN_LEANANDMEAN
02685     PCLASSINFO(H245_DataType, PASN_Choice);
02686 #endif
02687   public:
02688     H245_DataType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02689 
02690     enum Choices {
02691       e_nonStandard,
02692       e_nullData,
02693       e_videoData,
02694       e_audioData,
02695       e_data,
02696       e_encryptionData,
02697       e_h235Control,
02698       e_h235Media,
02699       e_multiplexedStream,
02700       e_redundancyEncoding,
02701       e_multiplePayloadStream,
02702       e_depFec,
02703       e_fec
02704     };
02705 
02706 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02707     operator H245_NonStandardParameter &() const;
02708 #else
02709     operator H245_NonStandardParameter &();
02710     operator const H245_NonStandardParameter &() const;
02711 #endif
02712 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02713     operator H245_VideoCapability &() const;
02714 #else
02715     operator H245_VideoCapability &();
02716     operator const H245_VideoCapability &() const;
02717 #endif
02718 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02719     operator H245_AudioCapability &() const;
02720 #else
02721     operator H245_AudioCapability &();
02722     operator const H245_AudioCapability &() const;
02723 #endif
02724 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02725     operator H245_DataApplicationCapability &() const;
02726 #else
02727     operator H245_DataApplicationCapability &();
02728     operator const H245_DataApplicationCapability &() const;
02729 #endif
02730 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02731     operator H245_EncryptionMode &() const;
02732 #else
02733     operator H245_EncryptionMode &();
02734     operator const H245_EncryptionMode &() const;
02735 #endif
02736 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02737     operator H245_H235Media &() const;
02738 #else
02739     operator H245_H235Media &();
02740     operator const H245_H235Media &() const;
02741 #endif
02742 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02743     operator H245_MultiplexedStreamParameter &() const;
02744 #else
02745     operator H245_MultiplexedStreamParameter &();
02746     operator const H245_MultiplexedStreamParameter &() const;
02747 #endif
02748 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02749     operator H245_RedundancyEncoding &() const;
02750 #else
02751     operator H245_RedundancyEncoding &();
02752     operator const H245_RedundancyEncoding &() const;
02753 #endif
02754 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02755     operator H245_MultiplePayloadStream &() const;
02756 #else
02757     operator H245_MultiplePayloadStream &();
02758     operator const H245_MultiplePayloadStream &() const;
02759 #endif
02760 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02761     operator H245_DepFECData &() const;
02762 #else
02763     operator H245_DepFECData &();
02764     operator const H245_DepFECData &() const;
02765 #endif
02766 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02767     operator H245_FECData &() const;
02768 #else
02769     operator H245_FECData &();
02770     operator const H245_FECData &() const;
02771 #endif
02772 
02773     BOOL CreateObject();
02774     PObject * Clone() const;
02775 };
02776 
02777 
02778 //
02779 // MultiplexedStreamParameter
02780 //
02781 
02782 class H245_MultiplexedStreamParameter : public PASN_Sequence
02783 {
02784 #ifndef PASN_LEANANDMEAN
02785     PCLASSINFO(H245_MultiplexedStreamParameter, PASN_Sequence);
02786 #endif
02787   public:
02788     H245_MultiplexedStreamParameter(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02789 
02790     H245_MultiplexFormat m_multiplexFormat;
02791     PASN_Boolean m_controlOnMuxStream;
02792 
02793     PINDEX GetDataLength() const;
02794     BOOL Decode(PASN_Stream & strm);
02795     void Encode(PASN_Stream & strm) const;
02796 #ifndef PASN_NOPRINTON
02797     void PrintOn(ostream & strm) const;
02798 #endif
02799     Comparison Compare(const PObject & obj) const;
02800     PObject * Clone() const;
02801 };
02802 
02803 
02804 //
02805 // H222LogicalChannelParameters
02806 //
02807 
02808 class H245_H222LogicalChannelParameters : public PASN_Sequence
02809 {
02810 #ifndef PASN_LEANANDMEAN
02811     PCLASSINFO(H245_H222LogicalChannelParameters, PASN_Sequence);
02812 #endif
02813   public:
02814     H245_H222LogicalChannelParameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02815 
02816     enum OptionalFields {
02817       e_pcr_pid,
02818       e_programDescriptors,
02819       e_streamDescriptors
02820     };
02821 
02822     PASN_Integer m_resourceID;
02823     PASN_Integer m_subChannelID;
02824     PASN_Integer m_pcr_pid;
02825     PASN_OctetString m_programDescriptors;
02826     PASN_OctetString m_streamDescriptors;
02827 
02828     PINDEX GetDataLength() const;
02829     BOOL Decode(PASN_Stream & strm);
02830     void Encode(PASN_Stream & strm) const;
02831 #ifndef PASN_NOPRINTON
02832     void PrintOn(ostream & strm) const;
02833 #endif
02834     Comparison Compare(const PObject & obj) const;
02835     PObject * Clone() const;
02836 };
02837 
02838 
02839 //
02840 // CRCLength
02841 //
02842 
02843 class H245_CRCLength : public PASN_Choice
02844 {
02845 #ifndef PASN_LEANANDMEAN
02846     PCLASSINFO(H245_CRCLength, PASN_Choice);
02847 #endif
02848   public:
02849     H245_CRCLength(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02850 
02851     enum Choices {
02852       e_crc8bit,
02853       e_crc16bit,
02854       e_crc32bit
02855     };
02856 
02857     BOOL CreateObject();
02858     PObject * Clone() const;
02859 };
02860 
02861 
02862 //
02863 // RedundancyEncodingElement
02864 //
02865 
02866 class H245_RedundancyEncodingElement : public PASN_Sequence
02867 {
02868 #ifndef PASN_LEANANDMEAN
02869     PCLASSINFO(H245_RedundancyEncodingElement, PASN_Sequence);
02870 #endif
02871   public:
02872     H245_RedundancyEncodingElement(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02873 
02874     enum OptionalFields {
02875       e_payloadType
02876     };
02877 
02878     H245_DataType m_dataType;
02879     PASN_Integer m_payloadType;
02880 
02881     PINDEX GetDataLength() const;
02882     BOOL Decode(PASN_Stream & strm);
02883     void Encode(PASN_Stream & strm) const;
02884 #ifndef PASN_NOPRINTON
02885     void PrintOn(ostream & strm) const;
02886 #endif
02887     Comparison Compare(const PObject & obj) const;
02888     PObject * 02807