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 2.1  2004/02/19 10:46:44  rjongbloed
00028  * Merged OpenH323 version 1.13.1 changes.
00029  *
00030  * Revision 1.10  2003/04/10 01:03:39  craigs
00031  * Changed to allow reply address to be a list
00032  *
00033  * Revision 1.9  2003/03/28 05:08:16  robertj
00034  * Added delay parameter to BuildRequestInProgress
00035  *
00036  * Revision 1.8  2003/03/25 04:56:17  robertj
00037  * Fixed issues to do with multiple inheritence in transaction reply cache.
00038  *
00039  * Revision 1.7  2003/03/20 01:51:07  robertj
00040  * More abstraction of H.225 RAS and H.501 protocols transaction handling.
00041  *
00042  * Revision 1.6  2003/03/18 13:58:16  craigs
00043  * More H.501 implementation
00044  *
00045  * Revision 1.5  2003/03/17 13:19:49  craigs
00046  * More H501 implementation
00047  *
00048  * Revision 1.4  2003/03/14 06:00:42  craigs
00049  * More updates
00050  *
00051  * Revision 1.3  2003/03/01 00:23:42  craigs
00052  * New PeerElement implementation
00053  *
00054  * Revision 1.2  2003/02/25 06:48:15  robertj
00055  * More work on PDU transaction abstraction.
00056  *
00057  * Revision 1.1  2003/02/21 05:28:39  craigs
00058  * Factored out code for user with peer elements
00059  *
00060  */
00061 
00062 #ifndef __OPAL_H501PDU_H
00063 #define __OPAL_H501PDU_H
00064 
00065 #ifdef P_USE_PRAGMA
00066 #pragma interface
00067 #endif
00068 
00069 
00070 #include <ptlib/sockets.h>
00071 
00072 #include <h323/transaddr.h>
00073 #include <h323/h323trans.h>
00074 #include <asn/h501.h>
00075 
00076 
00077 class H323_AnnexG;
00078 
00079 
00082 class H501PDU : public H501_Message, public H323TransactionPDU
00083 {
00084   PCLASSINFO(H501PDU, H501_Message);
00085 
00086   public:
00087     H501PDU();
00088 
00089     // overrides from PObject
00090     virtual PObject * Clone() const;
00091 
00092     // overrides from H323TransactionPDU
00093     virtual PASN_Object & GetPDU();
00094     virtual PASN_Choice & GetChoice();
00095     virtual const PASN_Object & GetPDU() const;
00096     virtual const PASN_Choice & GetChoice() const;
00097     virtual unsigned GetSequenceNumber() const;
00098     virtual unsigned GetRequestInProgressDelay() const;
00099 #if PTRACING
00100     virtual const char * GetProtocolName() const;
00101 #endif
00102     virtual H323TransactionPDU * ClonePDU() const;
00103     virtual void DeletePDU();
00104 
00105     // new functions
00106     H501_ServiceRequest               & BuildServiceRequest              (unsigned seqnum, const H323TransportAddressArray & reply);
00107     H501_ServiceConfirmation          & BuildServiceConfirmation         (unsigned seqnum);
00108     H501_ServiceRejection             & BuildServiceRejection            (unsigned seqnum, unsigned reason);
00109     H501_ServiceRelease               & BuildServiceRelease              (unsigned seqnum);
00110     H501_DescriptorRequest            & BuildDescriptorRequest           (unsigned seqnum, const H323TransportAddressArray & reply);
00111     H501_DescriptorConfirmation       & BuildDescriptorConfirmation      (unsigned seqnum);
00112     H501_DescriptorRejection          & BuildDescriptorRejection         (unsigned seqnum, unsigned reason);
00113     H501_DescriptorIDRequest          & BuildDescriptorIDRequest         (unsigned seqnum, const H323TransportAddressArray & reply);
00114     H501_DescriptorIDConfirmation     & BuildDescriptorIDConfirmation    (unsigned seqnum);
00115     H501_DescriptorIDRejection        & BuildDescriptorIDRejection       (unsigned seqnum, unsigned reason);
00116     H501_DescriptorUpdate             & BuildDescriptorUpdate            (unsigned seqnum, const H323TransportAddressArray & reply);
00117     H501_DescriptorUpdateAck          & BuildDescriptorUpdateAck         (unsigned seqnum);
00118     H501_AccessRequest                & BuildAccessRequest               (unsigned seqnum, const H323TransportAddressArray & reply);
00119     H501_AccessConfirmation           & BuildAccessConfirmation          (unsigned seqnum);
00120     H501_AccessRejection              & BuildAccessRejection             (unsigned seqnum, int reason);
00121     H501_RequestInProgress            & BuildRequestInProgress           (unsigned seqnum, unsigned delay);
00122     H501_NonStandardRequest           & BuildNonStandardRequest          (unsigned seqnum, const H323TransportAddressArray & reply);
00123     H501_NonStandardConfirmation      & BuildNonStandardConfirmation     (unsigned seqnum);
00124     H501_NonStandardRejection         & BuildNonStandardRejection        (unsigned seqnum, unsigned reason);
00125     H501_UnknownMessageResponse       & BuildUnknownMessageResponse      (unsigned seqnum);
00126     H501_UsageRequest                 & BuildUsageRequest                (unsigned seqnum, const H323TransportAddressArray & reply);
00127     H501_UsageConfirmation            & BuildUsageConfirmation           (unsigned seqnum);
00128     H501_UsageIndicationConfirmation  & BuildUsageIndicationConfirmation (unsigned seqnum);
00129     H501_UsageIndicationRejection     & BuildUsageIndicationRejection    (unsigned seqnum, unsigned reason);
00130     H501_UsageRejection               & BuildUsageRejection              (unsigned seqnum);
00131     H501_ValidationRequest            & BuildValidationRequest           (unsigned seqnum, const H323TransportAddressArray & reply);
00132     H501_ValidationConfirmation       & BuildValidationConfirmation      (unsigned seqnum);
00133     H501_ValidationRejection          & BuildValidationRejection         (unsigned seqnum, unsigned reason);
00134     H501_AuthenticationRequest        & BuildAuthenticationRequest       (unsigned seqnum, const H323TransportAddressArray & reply);
00135     H501_AuthenticationConfirmation   & BuildAuthenticationConfirmation  (unsigned seqnum);
00136     H501_AuthenticationRejection      & BuildAuthenticationRejection     (unsigned seqnum, unsigned reason);
00137 
00138   protected:
00139     void BuildRequest(unsigned tag, unsigned seqnum, const H323TransportAddressArray & replyAddr);
00140     void BuildPDU(unsigned tag, unsigned seqnum);
00141 };
00142 
00143 #endif  // __OPAL_H501PDU_H
00144 
00145 

Generated on Fri Mar 7 06:33:37 2008 for OPAL by  doxygen 1.5.1