OpenH323 1.18.0
|
00001 /* 00002 * h501pdu.h 00003 * 00004 * H.501 protocol handler 00005 * 00006 * Open H323 Library 00007 * 00008 * Copyright (c) 2003 Equivalence Pty. Ltd. 00009 * 00010 * The contents of this file are subject to the Mozilla Public License 00011 * Version 1.0 (the "License"); you may not use this file except in 00012 * compliance with the License. You may obtain a copy of the License at 00013 * http://www.mozilla.org/MPL/ 00014 * 00015 * Software distributed under the License is distributed on an "AS IS" 00016 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 00017 * the License for the specific language governing rights and limitations 00018 * under the License. 00019 * 00020 * The Original Code is Open H323 Library. 00021 * 00022 * The Initial Developer of the Original Code is Equivalence Pty. Ltd. 00023 * 00024 * Contributor(s): ______________________________________. 00025 * 00026 * $Log: h501pdu.h,v $ 00027 * Revision 1.10 2003/04/10 01:03:39 craigs 00028 * Changed to allow reply address to be a list 00029 * 00030 * Revision 1.9 2003/03/28 05:08:16 robertj 00031 * Added delay parameter to BuildRequestInProgress 00032 * 00033 * Revision 1.8 2003/03/25 04:56:17 robertj 00034 * Fixed issues to do with multiple inheritence in transaction reply cache. 00035 * 00036 * Revision 1.7 2003/03/20 01:51:07 robertj 00037 * More abstraction of H.225 RAS and H.501 protocols transaction handling. 00038 * 00039 * Revision 1.6 2003/03/18 13:58:16 craigs 00040 * More H.501 implementation 00041 * 00042 * Revision 1.5 2003/03/17 13:19:49 craigs 00043 * More H501 implementation 00044 * 00045 * Revision 1.4 2003/03/14 06:00:42 craigs 00046 * More updates 00047 * 00048 * Revision 1.3 2003/03/01 00:23:42 craigs 00049 * New PeerElement implementation 00050 * 00051 * Revision 1.2 2003/02/25 06:48:15 robertj 00052 * More work on PDU transaction abstraction. 00053 * 00054 * Revision 1.1 2003/02/21 05:28:39 craigs 00055 * Factored out code for user with peer elements 00056 * 00057 */ 00058 00059 #ifndef __OPAL_H501PDU_H 00060 #define __OPAL_H501PDU_H 00061 00062 #ifdef P_USE_PRAGMA 00063 #pragma interface 00064 #endif 00065 00066 00067 #include <ptlib/sockets.h> 00068 00069 #include "transports.h" 00070 #include "h323trans.h" 00071 #include "h501.h" 00072 00073 class H323_AnnexG; 00074 00077 class H501PDU : public H501_Message, public H323TransactionPDU 00078 { 00079 PCLASSINFO(H501PDU, H501_Message); 00080 00081 public: 00082 H501PDU(); 00083 00084 // overrides from PObject 00085 virtual PObject * Clone() const; 00086 00087 // overrides from H323TransactionPDU 00088 virtual PASN_Object & GetPDU(); 00089 virtual PASN_Choice & GetChoice(); 00090 virtual const PASN_Object & GetPDU() const; 00091 virtual const PASN_Choice & GetChoice() const; 00092 virtual unsigned GetSequenceNumber() const; 00093 virtual unsigned GetRequestInProgressDelay() const; 00094 #if PTRACING 00095 virtual const char * GetProtocolName() const; 00096 #endif 00097 virtual H323TransactionPDU * ClonePDU() const; 00098 virtual void DeletePDU(); 00099 00100 // new functions 00101 H501_ServiceRequest & BuildServiceRequest (unsigned seqnum, const H323TransportAddressArray & reply); 00102 H501_ServiceConfirmation & BuildServiceConfirmation (unsigned seqnum); 00103 H501_ServiceRejection & BuildServiceRejection (unsigned seqnum, unsigned reason); 00104 H501_ServiceRelease & BuildServiceRelease (unsigned seqnum); 00105 H501_DescriptorRequest & BuildDescriptorRequest (unsigned seqnum, const H323TransportAddressArray & reply); 00106 H501_DescriptorConfirmation & BuildDescriptorConfirmation (unsigned seqnum); 00107 H501_DescriptorRejection & BuildDescriptorRejection (unsigned seqnum, unsigned reason); 00108 H501_DescriptorIDRequest & BuildDescriptorIDRequest (unsigned seqnum, const H323TransportAddressArray & reply); 00109 H501_DescriptorIDConfirmation & BuildDescriptorIDConfirmation (unsigned seqnum); 00110 H501_DescriptorIDRejection & BuildDescriptorIDRejection (unsigned seqnum, unsigned reason); 00111 H501_DescriptorUpdate & BuildDescriptorUpdate (unsigned seqnum, const H323TransportAddressArray & reply); 00112 H501_DescriptorUpdateAck & BuildDescriptorUpdateAck (unsigned seqnum); 00113 H501_AccessRequest & BuildAccessRequest (unsigned seqnum, const H323TransportAddressArray & reply); 00114 H501_AccessConfirmation & BuildAccessConfirmation (unsigned seqnum); 00115 H501_AccessRejection & BuildAccessRejection (unsigned seqnum, int reason); 00116 H501_RequestInProgress & BuildRequestInProgress (unsigned seqnum, unsigned delay); 00117 H501_NonStandardRequest & BuildNonStandardRequest (unsigned seqnum, const H323TransportAddressArray & reply); 00118 H501_NonStandardConfirmation & BuildNonStandardConfirmation (unsigned seqnum); 00119 H501_NonStandardRejection & BuildNonStandardRejection (unsigned seqnum, unsigned reason); 00120 H501_UnknownMessageResponse & BuildUnknownMessageResponse (unsigned seqnum); 00121 H501_UsageRequest & BuildUsageRequest (unsigned seqnum, const H323TransportAddressArray & reply); 00122 H501_UsageConfirmation & BuildUsageConfirmation (unsigned seqnum); 00123 H501_UsageIndicationConfirmation & BuildUsageIndicationConfirmation (unsigned seqnum); 00124 H501_UsageIndicationRejection & BuildUsageIndicationRejection (unsigned seqnum, unsigned reason); 00125 H501_UsageRejection & BuildUsageRejection (unsigned seqnum); 00126 H501_ValidationRequest & BuildValidationRequest (unsigned seqnum, const H323TransportAddressArray & reply); 00127 H501_ValidationConfirmation & BuildValidationConfirmation (unsigned seqnum); 00128 H501_ValidationRejection & BuildValidationRejection (unsigned seqnum, unsigned reason); 00129 H501_AuthenticationRequest & BuildAuthenticationRequest (unsigned seqnum, const H323TransportAddressArray & reply); 00130 H501_AuthenticationConfirmation & BuildAuthenticationConfirmation (unsigned seqnum); 00131 H501_AuthenticationRejection & BuildAuthenticationRejection (unsigned seqnum, unsigned reason); 00132 00133 protected: 00134 void BuildRequest(unsigned tag, unsigned seqnum, const H323TransportAddressArray & replyAddr); 00135 void BuildPDU(unsigned tag, unsigned seqnum); 00136 }; 00137 00138 #endif // __OPAL_H501PDU_H 00139 00140