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