00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef OPAL_H323_H501PDU_H
00032 #define OPAL_H323_H501PDU_H
00033
00034 #ifdef P_USE_PRAGMA
00035 #pragma interface
00036 #endif
00037
00038 #include <opal/buildopts.h>
00039
00040 #if OPAL_H501
00041
00042 #include <ptlib/sockets.h>
00043
00044 #include <h323/transaddr.h>
00045 #include <h323/h323trans.h>
00046 #include <asn/h501.h>
00047
00048
00049 class H323_AnnexG;
00050
00051
00054 class H501PDU : public H501_Message, public H323TransactionPDU
00055 {
00056 PCLASSINFO(H501PDU, H501_Message);
00057
00058 public:
00059 H501PDU();
00060
00061
00062 virtual PObject * Clone() const;
00063
00064
00065 virtual PASN_Object & GetPDU();
00066 virtual PASN_Choice & GetChoice();
00067 virtual const PASN_Object & GetPDU() const;
00068 virtual const PASN_Choice & GetChoice() const;
00069 virtual unsigned GetSequenceNumber() const;
00070 virtual unsigned GetRequestInProgressDelay() const;
00071 #if PTRACING
00072 virtual const char * GetProtocolName() const;
00073 #endif
00074 virtual H323TransactionPDU * ClonePDU() const;
00075 virtual void DeletePDU();
00076
00077
00078 H501_ServiceRequest & BuildServiceRequest (unsigned seqnum, const H323TransportAddressArray & reply);
00079 H501_ServiceConfirmation & BuildServiceConfirmation (unsigned seqnum);
00080 H501_ServiceRejection & BuildServiceRejection (unsigned seqnum, unsigned reason);
00081 H501_ServiceRelease & BuildServiceRelease (unsigned seqnum);
00082 H501_DescriptorRequest & BuildDescriptorRequest (unsigned seqnum, const H323TransportAddressArray & reply);
00083 H501_DescriptorConfirmation & BuildDescriptorConfirmation (unsigned seqnum);
00084 H501_DescriptorRejection & BuildDescriptorRejection (unsigned seqnum, unsigned reason);
00085 H501_DescriptorIDRequest & BuildDescriptorIDRequest (unsigned seqnum, const H323TransportAddressArray & reply);
00086 H501_DescriptorIDConfirmation & BuildDescriptorIDConfirmation (unsigned seqnum);
00087 H501_DescriptorIDRejection & BuildDescriptorIDRejection (unsigned seqnum, unsigned reason);
00088 H501_DescriptorUpdate & BuildDescriptorUpdate (unsigned seqnum, const H323TransportAddressArray & reply);
00089 H501_DescriptorUpdateAck & BuildDescriptorUpdateAck (unsigned seqnum);
00090 H501_AccessRequest & BuildAccessRequest (unsigned seqnum, const H323TransportAddressArray & reply);
00091 H501_AccessConfirmation & BuildAccessConfirmation (unsigned seqnum);
00092 H501_AccessRejection & BuildAccessRejection (unsigned seqnum, int reason);
00093 H501_RequestInProgress & BuildRequestInProgress (unsigned seqnum, unsigned delay);
00094 H501_NonStandardRequest & BuildNonStandardRequest (unsigned seqnum, const H323TransportAddressArray & reply);
00095 H501_NonStandardConfirmation & BuildNonStandardConfirmation (unsigned seqnum);
00096 H501_NonStandardRejection & BuildNonStandardRejection (unsigned seqnum, unsigned reason);
00097 H501_UnknownMessageResponse & BuildUnknownMessageResponse (unsigned seqnum);
00098 H501_UsageRequest & BuildUsageRequest (unsigned seqnum, const H323TransportAddressArray & reply);
00099 H501_UsageConfirmation & BuildUsageConfirmation (unsigned seqnum);
00100 H501_UsageIndicationConfirmation & BuildUsageIndicationConfirmation (unsigned seqnum);
00101 H501_UsageIndicationRejection & BuildUsageIndicationRejection (unsigned seqnum, unsigned reason);
00102 H501_UsageRejection & BuildUsageRejection (unsigned seqnum);
00103 H501_ValidationRequest & BuildValidationRequest (unsigned seqnum, const H323TransportAddressArray & reply);
00104 H501_ValidationConfirmation & BuildValidationConfirmation (unsigned seqnum);
00105 H501_ValidationRejection & BuildValidationRejection (unsigned seqnum, unsigned reason);
00106 H501_AuthenticationRequest & BuildAuthenticationRequest (unsigned seqnum, const H323TransportAddressArray & reply);
00107 H501_AuthenticationConfirmation & BuildAuthenticationConfirmation (unsigned seqnum);
00108 H501_AuthenticationRejection & BuildAuthenticationRejection (unsigned seqnum, unsigned reason);
00109
00110 protected:
00111 void BuildRequest(unsigned tag, unsigned seqnum, const H323TransportAddressArray & replyAddr);
00112 void BuildPDU(unsigned tag, unsigned seqnum);
00113 };
00114
00115
00116 #endif // OPAL_H501
00117
00118 #endif // OPAL_H323_H501PDU_H
00119
00120