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