# 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