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