h460_std18.h

Go to the documentation of this file.
00001 /* H460_std18.h
00002  *
00003  * h323plus library
00004  *
00005  * Copyright (c) 2008 ISVO (Asia) Pte. Ltd.
00006  *
00007  * The contents of this file are subject to the Mozilla Public License
00008  * Version 1.1 (the "License"); you may not use this file except in
00009  * compliance with the License. You may obtain a copy of the License at
00010  * http://www.mozilla.org/MPL/
00011  *
00012  * Alternatively, the contents of this file may be used under the terms
00013  * of the General Public License (the  "GNU License"), in which case the
00014  * provisions of GNU License are applicable instead of those
00015  * above. If you wish to allow use of your version of this file only
00016  * under the terms of the GNU License and not to allow others to use
00017  * your version of this file under the MPL, indicate your decision by
00018  * deleting the provisions above and replace them with the notice and
00019  * other provisions required by the GNU License. If you do not delete
00020  * the provisions above, a recipient may use your version of this file
00021  * under either the MPL or the GNU License."
00022  *
00023  * Software distributed under the License is distributed on an "AS IS"
00024  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
00025  * the License for the specific language governing rights and limitations
00026  * under the License.
00027  *
00028  *
00029  * The Initial Developer of the Original Code is ISVO (Asia) Pte. Ltd.
00030  *
00031  * Portions of this code were written with the assisance of funding from
00032  * triple-IT. http://www.triple-it.nl.
00033  *
00034  * Contributor(s): ______________________________________.
00035  *
00036  * $Revision: 26465 $
00037  * $Author: rjongbloed $
00038  * $Date: 2011-09-23 22:00:15 -0500 (Fri, 23 Sep 2011) $
00039  */
00040 
00041 #ifndef H_H460_FeatureStd18
00042 #define H_H460_FeatureStd18
00043 
00044 #include <h460/h4601.h>
00045 
00046 // Must call the following
00047 #include <ptlib/plugin.h>
00048 
00049 #if _MSC_VER
00050 #pragma once
00051 #endif 
00052 
00054 
00055 class MyH323EndPoint;
00056 class MyH323Connection;
00057 class H46018Handler;
00058 
00059 class H460_FeatureStd18 : public H460_FeatureStd 
00060 {
00061     PCLASSINFO(H460_FeatureStd18, H460_FeatureStd);
00062 
00063   public:
00064     H460_FeatureStd18();
00065     virtual ~H460_FeatureStd18();
00066 
00067     // Universal Declarations Every H460 Feature should have the following
00068     virtual void AttachEndPoint(H323EndPoint * _ep);
00069 
00070     static PStringArray GetFeatureName()         { return PStringArray("Std18"); };
00071     static PStringArray GetFeatureFriendlyName() { return PStringArray("NatTraversal-H.460.18"); };
00072     static int GetPurpose()                      { return FeatureRas; };
00073     static PStringArray GetIdentifier()          { return PStringArray("18"); };
00074 
00075     virtual PBoolean CommonFeature() { return isEnabled; }
00076 
00078     // H.460.18 Messages
00079     virtual PBoolean OnSendGatekeeperRequest(H225_FeatureDescriptor & pdu);
00080     virtual void OnReceiveGatekeeperConfirm(const H225_FeatureDescriptor & pdu);
00081 
00082     virtual PBoolean OnSendRegistrationRequest(H225_FeatureDescriptor & pdu);
00083     virtual void OnReceiveRegistrationConfirm(const H225_FeatureDescriptor & pdu);
00084 
00085     virtual void OnReceiveServiceControlIndication(const H225_FeatureDescriptor & pdu);
00086 
00087   private:
00088     H323EndPoint * EP;
00089 
00090     H46018Handler * handler;
00091     PBoolean isEnabled;
00092 };
00093 
00094 
00095 // Need to declare for Factory Loader
00096 #ifndef _WIN32_WCE
00097   PPLUGIN_STATIC_LOAD(Std18, H460_Feature);
00098 #endif
00099 
00100 
00102 
00103 class MyH323EndPoint;
00104 class MyH323Connection;
00105 
00106 class H460_FeatureStd19 : public H460_FeatureStd 
00107 {
00108     PCLASSINFO(H460_FeatureStd19,H460_FeatureStd);
00109 
00110   public:
00111     H460_FeatureStd19();
00112     virtual ~H460_FeatureStd19();
00113 
00114     // Universal Declarations Every H460 Feature should have the following
00115     virtual void AttachEndPoint(H323EndPoint * _ep);
00116     virtual void AttachConnection(H323Connection * _con);
00117 
00118     static PStringArray GetFeatureName()         { return PStringArray("Std19"); };
00119     static PStringArray GetFeatureFriendlyName() { return PStringArray("NatTraversal-H.460.19"); };
00120     static int GetPurpose()                      { return FeatureSignal; };
00121     static PStringArray GetIdentifier()          { return PStringArray("19"); };
00122 
00123     virtual PBoolean CommonFeature() { return remoteSupport; }
00124 
00126     // H.460.19 Messages
00127     virtual PBoolean OnSendSetup_UUIE(H225_FeatureDescriptor & pdu);
00128     virtual void OnReceiveSetup_UUIE(const H225_FeatureDescriptor & pdu);
00129 
00130     virtual PBoolean OnSendCallProceeding_UUIE(H225_FeatureDescriptor & pdu);
00131     virtual void OnReceiveCallProceeding_UUIE(const H225_FeatureDescriptor & pdu);
00132 
00133     virtual PBoolean OnSendFacility_UUIE(H225_FeatureDescriptor & pdu);
00134     //virtual void OnReceiveFacility_UUIE(const H225_FeatureDescriptor & pdu) {};
00135 
00136     virtual PBoolean OnSendAlerting_UUIE(H225_FeatureDescriptor & pdu);
00137     virtual void OnReceiveAlerting_UUIE(const H225_FeatureDescriptor & pdu);
00138 
00139     virtual PBoolean OnSendCallConnect_UUIE(H225_FeatureDescriptor & pdu);
00140     virtual void OnReceiveCallConnect_UUIE(const H225_FeatureDescriptor & pdu);
00141 
00143     // H.460.24 Override
00144     void SetAvailable(bool avail);
00145 
00146   private:
00147     H323EndPoint * EP;
00148     H323Connection * CON;
00149 
00150     PBoolean isEnabled;
00151     PBoolean isAvailable;
00152     PBoolean remoteSupport;
00153 };
00154  
00155 
00156 // Need to declare for Factory Loader
00157 #ifndef _WIN32_WCE
00158   PPLUGIN_STATIC_LOAD(Std19, H460_Feature);
00159 #endif
00160 
00161 
00162 #endif // H_H460_FeatureStd18

Generated on 21 Jun 2013 for OPAL by  doxygen 1.4.7