h501pdu.h

Go to the documentation of this file.
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 

Generated on Wed Feb 6 23:05:22 2008 for OpenH323 by  doxygen 1.5.4