h4601.h
Go to the documentation of this file.
// H4601.h:
/*
* Virteos H.460 Implementation for the h323plus Library.
*
* Virteos is a Trade Mark of ISVO (Asia) Pte Ltd.
*
* Copyright (c) 2004 ISVO (Asia) Pte Ltd. All Rights Reserved.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Alternatively, the contents of this file may be used under the terms
* of the General Public License (the "GNU License"), in which case the
* provisions of GNU License are applicable instead of those
* above. If you wish to allow use of your version of this file only
* under the terms of the GNU License and not to allow others to use
* your version of this file under the MPL, indicate your decision by
* deleting the provisions above and replace them with the notice and
* other provisions required by the GNU License. If you do not delete
* the provisions above, a recipient may use your version of this file
* under either the MPL or the GNU License."
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is derived from and used in conjunction with the
* OpenH323 Project (www.openh323.org/)
*
* The Initial Developer of the Original Code is ISVO (Asia) Pte Ltd.
*
*
* Contributor(s): Many thanks to Simon Horne.
*
* $Revision: 22679 $
* $Author: rjongbloed $
* $Date: 2009-05-20 19:38:09 -0500 (Wed, 20 May 2009) $
*/
#ifndef OPAL_H460_H4601_H
#define OPAL_H460_H4601_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <opal/buildopts.h>
#if OPAL_H460
#include <asn/h225.h>
#include <h323/transaddr.h>
#include <opal/guid.h>
#include <ptlib/pluginmgr.h>
#include <ptclib/url.h>
#ifdef _MSC_VER
#pragma warning(disable:4100)
#endif
template<class H225>
class H460 : public H225 {
public:
virtual void OnReceivedPDU(
const H225 & /*id*/
) {};
virtual PBoolean OnSendingPDU(
H225 & /*id*/
) const { return FALSE;};
protected:
};
class OpalOID : public PASN_ObjectId
{
public:
OpalOID();
OpalOID(
const char * str
);
OpalOID & operator+(const char *);
unsigned GetLastIdentifier()
{ return (*this)[GetSize()-1]; }
};
class H460_FeatureID : public H460<H225_GenericIdentifier>
{
public:
H460_FeatureID();
H460_FeatureID(unsigned ID);
H460_FeatureID(OpalOID ID);
H460_FeatureID(PString ID);
H460_FeatureID(H225_GenericIdentifier ID);
operator unsigned () const
{ return ((PASN_Integer *)choice)->GetValue(); };
operator OpalOID & ()
{ return (OpalOID &)*choice; };
operator PString () const
{ return ((H225_GloballyUniqueID *)choice)->AsString(); };
PINLINE H460_FeatureID & operator=(unsigned ID);
PINLINE H460_FeatureID & operator=(OpalOID ID);
PINLINE H460_FeatureID & operator=(PString ID);
unsigned GetFeatureType() const { return GetTag(); };
PString IDString() const;
PObject * Clone() const;
PObject::Comparison Compare(const PObject & obj) const;
};
class H460_Feature;
class H460_FeatureTable;
class H460_FeatureContent : public H460<H225_Content>
{
public:
H460_FeatureContent();
H460_FeatureContent(PASN_OctetString & param);
H460_FeatureContent(const PString & param);
H460_FeatureContent(PASN_BMPString & param);
H460_FeatureContent(PBoolean param);
H460_FeatureContent(unsigned param, unsigned len);
H460_FeatureContent(const H460_FeatureID & id);
H460_FeatureContent(const H225_AliasAddress & add);
H460_FeatureContent(const PURL & add);
H460_FeatureContent(const H323TransportAddress & add);
H460_FeatureContent(const H460_FeatureTable & table);
H460_FeatureContent(const OpalGloballyUniqueID & guid);
H460_FeatureContent(H460_Feature * data);
H460_FeatureContent(const H225_Content & param);
operator PASN_OctetString () const { return *((PASN_OctetString *)choice); };
operator PString () const
{
switch (GetTag()) {
case e_text:
return ((PASN_IA5String &)*choice).GetValue();
case e_transport:
return H323TransportAddress(*(H225_TransportAddress *)choice);
default:
break;
}
return PString();
};
operator PASN_BMPString () const { return *(PASN_BMPString *)choice; };
operator PBoolean () const { return *(PASN_Boolean *)choice; };
operator unsigned () const
{
switch (GetTag()) {
case e_number8:
case e_number16:
case e_number32:
return *(PASN_Integer*)choice;
default:
return 0;
}
}
operator H460_FeatureID () const { return *(H225_GenericIdentifier *)choice; };
operator H225_AliasAddress () const { return *(H225_AliasAddress *)choice; };
operator H323TransportAddress () const { return H323TransportAddress(*(H225_TransportAddress *)choice); };
operator H460_FeatureTable *() { return (H460_FeatureTable *)choice; };
operator H460_Feature *() { return (H460_Feature *)choice; };
};
class H460_Feature;
class H460_FeatureParameter : public H460<H225_EnumeratedParameter>
{
public:
H460_FeatureParameter();
H460_FeatureParameter(unsigned Identifier);
H460_FeatureParameter(const PString & Identifier);
H460_FeatureParameter(const OpalOID & Identifier);
H460_FeatureParameter(const H225_EnumeratedParameter & param);
H460_FeatureParameter(const H460_FeatureID & ID);
const H460_FeatureID ID() { return m_id; };
void addContent(const H460_FeatureContent & con )
{ IncludeOptionalField(e_content); m_content = con; };
void replaceContent(const H460_FeatureContent & con )
{ if (hasContent())
delete &m_content;
m_content = con; };
PBoolean hasContent()
{ return (GetTag() == e_content); };
operator PASN_OctetString &();
operator PString &();
operator PASN_BMPString &();
operator PBoolean ();
operator unsigned ();
operator H460_FeatureID &();
operator H225_AliasAddress &();
operator H323TransportAddress ();
operator H225_ArrayOf_EnumeratedParameter &();
operator PURL &();
operator OpalGloballyUniqueID ();
H460_FeatureContent operator=(
const PASN_OctetString & value
);
H460_FeatureContent operator=(
const PString & value
);
H460_FeatureContent operator=(
const PASN_BMPString & value
);
H460_FeatureContent operator=(
const PBoolean & value
);
H460_FeatureContent operator=(
const unsigned & value
);
H460_FeatureContent operator=(
const H460_FeatureID & value
);
H460_FeatureContent operator=(
const H225_AliasAddress & value
);
H460_FeatureContent operator=(
const H323TransportAddress & value
);
H460_FeatureContent operator=(
const H460_FeatureTable & value
);
H460_FeatureContent operator=(
H460_Feature * value
);
H460_FeatureContent operator=(
const OpalGloballyUniqueID & value
);
};
class H460_FeatureTable : public H460<H225_ArrayOf_EnumeratedParameter>
{
public:
H460_FeatureTable();
H460_FeatureTable(const H225_ArrayOf_EnumeratedParameter & Xparams);
H460_FeatureParameter & AddParameter(const H460_FeatureID & id, const H460_FeatureContent & con);
H460_FeatureParameter & AddParameter(const H460_FeatureID & id);
void AddParameter(H225_EnumeratedParameter & Xparam);
H460_FeatureParameter & GetParameter(PINDEX id);
H460_FeatureParameter & GetParameter(const H460_FeatureID & id);
PINDEX GetParameterIndex(const H460_FeatureID & id);
PBoolean HasParameter(const H460_FeatureID & id);
void RemoveParameter(PINDEX id);
void RemoveParameter(const H460_FeatureID & id);
void ReplaceParameter(const H460_FeatureID & id, const H460_FeatureContent & con);
int ParameterCount() { return GetSize(); };
PBoolean ParameterIsUnique(const H460_FeatureID & id);
inline H460_FeatureParameter & operator[](
PINDEX id
) const { return operator[](id); };
H460_FeatureParameter & operator[](
PINDEX id
);
};
class H323EndPoint;
class H323Connection;
class H460_Feature : public H460<H225_FeatureDescriptor>
{
public:
H460_Feature();
H460_Feature(unsigned Identifier);
H460_Feature(PString Identifier);
H460_Feature(OpalOID Indentifier);
H460_Feature(const H225_FeatureDescriptor & descriptor);
enum {
FeatureNeeded = 1,
FeatureDesired,
FeatureSupported
} FeatureCategory;
enum {
FeatureBase =4,
FeatureBaseAll =5,
FeatureBaseRas =6,
FeatureBaseSignal=7,
FeatureRas =8,
FeatureSignal =16
} FeatureInstance;
operator unsigned () const { return (H460_FeatureID)m_id; };
// operator OpalOID () const { return (H460_FeatureID)m_id; };
operator PString () const { return (H460_FeatureID)m_id; };
H460_FeatureID GetFeatureID() { return m_id; };
void SetFeatureID(const H460_FeatureID & id) { m_id = id; };
PString GetFeatureIDAsString();
unsigned GetFeatureType() { return ((H460_FeatureID)m_id).GetFeatureType(); };
virtual H460_FeatureParameter & AddParameter(H460_FeatureID * id, const H460_FeatureContent & con);
virtual H460_FeatureParameter & AddParameter(H460_FeatureID * id);
virtual void AddParameter(H460_FeatureParameter * param);
virtual void RemoveParameter(PINDEX id);
virtual void ReplaceParameter(const H460_FeatureID id, const H460_FeatureContent & con);
H460_FeatureParameter & GetFeatureParameter(PINDEX id);
H460_FeatureParameter & GetFeatureParameter(const H460_FeatureID & id);
PBoolean HasFeatureParameter(const H460_FeatureID & id);
PBoolean Contains(const H460_FeatureID & id);
H460_FeatureParameter & Value(const H460_FeatureID & id);
inline H460_FeatureParameter & operator()(
PINDEX id //* Index position in the collection of the object.
) const { return operator()(id); };
H460_FeatureParameter & operator()(
PINDEX id
);
inline H460_FeatureParameter & operator[](
const H460_FeatureID & id //< FeatureID of the object.
) const { return operator()(id); };
H460_FeatureParameter & operator()(
const H460_FeatureID & id
);
int GetParameterCount()
{ return CurrentTable->ParameterCount(); };
H460_FeatureTable & GetCurrentTable();
void SetCurrentTable(H460_FeatureTable & table);
void SetCurrentTable(H460_FeatureParameter & param);
void SetDefaultTable();
static PStringList GetFeatureNames(PPluginManager * pluginMgr = NULL);
static PStringList GetFeatureFriendlyNames(const PString & feature, PPluginManager * pluginMgr = NULL);
static H460_Feature * CreateFeature(const PString & featurename,
int FeatureType = FeatureBase,
PPluginManager * pluginMgr = NULL
);
static PStringList GetFeatureName() { return PStringList("empty"); };
static PStringList GetFeatureFriendlyName() { return PStringList("empty"); };
static int GetPurpose() { return FeatureBase; };
virtual void AttachEndPoint(H323EndPoint * _ep);
virtual void AttachConnection(H323Connection * _con);
/* These are the main calls which can be overridden to
allow the various derived features access to the GEF
interface.
*/
// PDU calls (Used in the H225_RAS Class)
virtual PBoolean OnSendGatekeeperRequest(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual PBoolean OnSendGatekeeperConfirm(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual PBoolean OnSendGatekeeperReject(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveGatekeeperRequest(const H225_FeatureDescriptor & /*pdu*/) {};
virtual void OnReceiveGatekeeperConfirm(const H225_FeatureDescriptor & /*pdu*/) {};
virtual void OnReceiveGatekeeperReject(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendRegistrationRequest(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual PBoolean OnSendRegistrationConfirm(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual PBoolean OnSendRegistrationReject(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveRegistrationRequest(const H225_FeatureDescriptor & /*pdu*/) {};
virtual void OnReceiveRegistrationConfirm(const H225_FeatureDescriptor & /*pdu*/) {};
virtual void OnReceiveRegistrationReject(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendAdmissionRequest(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual PBoolean OnSendAdmissionConfirm(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual PBoolean OnSendAdmissionReject(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveAdmissionRequest(const H225_FeatureDescriptor & /*pdu*/) {};
virtual void OnReceiveAdmissionConfirm(const H225_FeatureDescriptor & /*pdu*/) {};
virtual void OnReceiveAdmissionReject(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendLocationRequest(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual PBoolean OnSendLocationConfirm(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual PBoolean OnSendLocationReject(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveLocationRequest(const H225_FeatureDescriptor & /*pdu*/) {};
virtual void OnReceiveLocationConfirm(const H225_FeatureDescriptor & /*pdu*/) {};
virtual void OnReceiveLocationReject(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendServiceControlIndication(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual PBoolean OnSendServiceControlResponse(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveServiceControlIndication(const H225_FeatureDescriptor & /*pdu*/) {};
virtual void OnReceiveServiceControlResponse(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendNonStandardMessage(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveNonStandardMessage(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendUnregistrationRequest(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveUnregistrationRequest(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendEndpoint(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveEndpoint(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendInfoRequestMessage(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveInfoRequestMessage(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendInfoRequestResponseMessage(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveInfoRequestResponseMessage(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendDisengagementRequestMessage(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveDisengagementRequestMessage(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendDisengagementConfirmMessage(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveDisengagementConfirmMessage(const H225_FeatureDescriptor & /*pdu*/) {};
// UUIE Calls (Used in the H323SignalPDU Class)
virtual PBoolean OnSendSetup_UUIE(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveSetup_UUIE(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendAlerting_UUIE(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveAlerting_UUIE(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendCallProceeding_UUIE(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveCallProceeding_UUIE(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendCallConnect_UUIE(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveCallConnect_UUIE(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendFacility_UUIE(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveFacility_UUIE(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendReleaseComplete_UUIE(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceiveReleaseComplete_UUIE(const H225_FeatureDescriptor & /*pdu*/) {};
virtual PBoolean OnSendUnAllocatedPDU(H225_FeatureDescriptor & /*pdu*/) { return FALSE; };
virtual void OnReceivedUnAllocatedPDU(const H225_FeatureDescriptor & /*pdu*/) {};
// H501 Calls (To Be Implemented
// H501_MessageCommonInfo
// H501_AddressTemplate
// H501_ContactInformation
// H501_RouteInformation
protected:
H460_FeatureTable * CurrentTable;
H323EndPoint * ep;
H323Connection * con;
};
class H460_FeatureStd : public H460_Feature
{
PCLASSINFO(H460_FeatureStd, H460_Feature);
public:
H460_FeatureStd() {};
H460_FeatureStd(unsigned Identifier);
H460_FeatureParameter & Add(unsigned id, const H460_FeatureContent & con);
void Remove(unsigned id);
void Replace(unsigned id,const H460_FeatureContent & con);
PBoolean HasParameter(unsigned id);
H460_FeatureParameter & GetParameter(unsigned id);
inline H460_FeatureParameter & operator[] (
unsigned id
) { return GetParameter(id); };
};
class H460_FeatureNonStd : public H460_Feature
{
PCLASSINFO(H460_FeatureNonStd, H460_Feature);
public:
H460_FeatureNonStd(PString Identifier);
H460_FeatureParameter & Add(const PString id, const H460_FeatureContent & con);
void Remove(const PString & id);
void Replace( const PString & id, const H460_FeatureContent & con);
PBoolean HasParameter(PString id);
inline H460_FeatureParameter & operator[](
PString id
) const { return operator[](id); };
H460_FeatureParameter & operator[](
PString id
);
};
class H460_FeatureOID : public H460_Feature
{
PCLASSINFO(H460_FeatureOID, H460_Feature);
public:
H460_FeatureOID(OpalOID Identifier);
H460_FeatureParameter & Add(const PString & id, const H460_FeatureContent & con);
void Remove(const PString & id);
void Replace(const PString & id, const H460_FeatureContent & con);
PBoolean HasParameter(OpalOID id);
PBoolean Contains(const PString & id);
H460_FeatureParameter & Value(const PString & id);
inline H460_FeatureParameter & operator[](
OpalOID id
) const { return operator[](id); };
H460_FeatureParameter & operator[](
OpalOID id
);
protected:
PString GetBase();
};
// Dictionary/List of Features
PDICTIONARY(H460_Features, H460_FeatureID , H460_Feature);
// FeatureSet Main Calling Class
class H323EndPoint;
class H460_FeatureSet : public PObject
{
PCLASSINFO(H460_FeatureSet, PObject);
public:
H460_FeatureSet();
H460_FeatureSet(H460_FeatureSet * _base);
H460_FeatureSet(const H225_FeatureSet & fs);
H460_FeatureSet(const H225_ArrayOf_GenericData & genericData);
H460_FeatureSet * DeriveNewFeatureSet();
virtual PBoolean LoadFeatureSet(int inst = H460_Feature::FeatureBase,
H323Connection * con = NULL);
PBoolean ProcessFirstPDU(const H225_FeatureSet & fs);
virtual PBoolean CreateFeatureSet(const H225_FeatureSet & fs);
virtual PBoolean LoadFeature(const PString & featid);
PBoolean AddFeature(H460_Feature * Nfeat);
void RemoveFeature(H460_FeatureID id);
H460_Feature * GetFeature(const H460_FeatureID & id);
PBoolean HasFeature(const H460_FeatureID & feat);
void ReceiveFeature(unsigned id, const H225_FeatureSet & Message);
PBoolean SendFeature(unsigned id, H225_FeatureSet & Message);
virtual void AttachEndPoint(H323EndPoint * _ep);
virtual void AttachBaseFeatureSet(H460_FeatureSet * _baseSet);
H323EndPoint * GetEndPoint() { return ep; };
protected:
PBoolean CreateFeatureSetPDU(H225_FeatureSet & fs, unsigned MessageID);
void ReadFeatureSetPDU(const H225_FeatureSet & fs, unsigned MessageID);
H460_FeatureID GetFeatureIDPDU(H225_FeatureDescriptor & pdu);
PBoolean CreateFeaturePDU(H460_Feature & Feat, H225_FeatureDescriptor & pdu, unsigned MessageID);
void ReadFeaturePDU(H460_Feature & Feat, const H225_FeatureDescriptor & pdu, unsigned MessageID);
PString PTracePDU(PINDEX id) const;
H460_Features Features;
H323EndPoint * ep;
H460_FeatureSet * baseSet;
};
template <class className> class H460PluginServiceDescriptor : public PDevicePluginServiceDescriptor
{
public:
virtual PObject * CreateInstance(int /*userData*/) const { return new className; }
virtual PStringArray GetDeviceNames(int /*userData*/) const { return className::GetFeatureFriendlyName(); }
virtual bool ValidateDeviceName(const PString & deviceName, int userData) const
{
PStringList devices = className::GetFeatureName();
if ((deviceName == devices[0]) &&
(className::GetPurpose() >= userData) &&
(className::GetPurpose() < userData*2)) {
return TRUE;
} else
return FALSE;
}
};
#define H460_FEATURE(name) \
static H460PluginServiceDescriptor<H460_Feature##name> H460_Feature##name##_descriptor; \
PCREATE_PLUGIN(H460_Feature##name##, H460_Feature, &H460_Feature##name##_descriptor); \
#ifdef _MSC_VER
#pragma warning(disable:4100)
#endif
#endif // OPAL_H460
#endif // OPAL_H460_H4601_H
H460_Feature::FeatureBaseAll
Create Startup use RAS and Signal.
Definition: h4601.h:590
H460_Feature::OnSendLocationReject
virtual PBoolean OnSendLocationReject(H225_FeatureDescriptor &)
Definition: h4601.h:787
H460_Feature::FeatureDesired
Desired Feature.
Definition: h4601.h:583
H460_FeatureSet
Definition: h4601.h:1017
H460_Feature::OnReceiveInfoRequestResponseMessage
virtual void OnReceiveInfoRequestResponseMessage(const H225_FeatureDescriptor &)
Definition: h4601.h:812
H460_Feature::ReplaceParameter
virtual void ReplaceParameter(const H460_FeatureID id, const H460_FeatureContent &con)
H460_Feature::OnReceiveGatekeeperRequest
virtual void OnReceiveGatekeeperRequest(const H225_FeatureDescriptor &)
Definition: h4601.h:765
H460_Feature::GetParameterCount
int GetParameterCount()
Definition: h4601.h:694
H460PluginServiceDescriptor::CreateInstance
virtual PObject * CreateInstance(int) const
Definition: h4601.h:1123
H460PluginServiceDescriptor::ValidateDeviceName
virtual bool ValidateDeviceName(const PString &deviceName, int userData) const
Definition: h4601.h:1125
H460_Feature::FeatureBase
Create Startup use only Startup.
Definition: h4601.h:589
H460_FeatureSet::AttachEndPoint
virtual void AttachEndPoint(H323EndPoint *_ep)
H460_Feature::FeatureRas
Create Registering GK.
Definition: h4601.h:593
H460_Feature::GetFeatureName
static PStringList GetFeatureName()
Definition: h4601.h:733
H460_Feature::OnSendCallProceeding_UUIE
virtual PBoolean OnSendCallProceeding_UUIE(H225_FeatureDescriptor &)
Definition: h4601.h:830
H460_Feature::OnSendLocationRequest
virtual PBoolean OnSendLocationRequest(H225_FeatureDescriptor &)
Definition: h4601.h:785
H460_Feature::operator[]
H460_FeatureParameter & operator[](const H460_FeatureID &id) const
Definition: h4601.h:684
H460_FeatureSet::AttachBaseFeatureSet
virtual void AttachBaseFeatureSet(H460_FeatureSet *_baseSet)
H460_Feature::FeatureNeeded
The Feature is Needed.
Definition: h4601.h:582
H460_FeatureOID::operator[]
H460_FeatureParameter & operator[](OpalOID id) const
Definition: h4601.h:995
H460_Feature::CurrentTable
H460_FeatureTable * CurrentTable
Definition: h4601.h:857
H460_FeatureTable::ParameterCount
int ParameterCount()
Definition: h4601.h:517
H460_FeatureStd::Replace
void Replace(unsigned id, const H460_FeatureContent &con)
H460_Feature::SetFeatureID
void SetFeatureID(const H460_FeatureID &id)
Definition: h4601.h:619
H460PluginServiceDescriptor
Definition: h4601.h:1120
H460_Feature::SetCurrentTable
void SetCurrentTable(H460_FeatureTable &table)
H460_Feature::ep
H323EndPoint * ep
Definition: h4601.h:858
buildopts.h
H460_FeatureOID::Value
H460_FeatureParameter & Value(const PString &id)
H460_FeatureParameter::ID
const H460_FeatureID ID()
Definition: h4601.h:344
H460_Feature::Value
H460_FeatureParameter & Value(const H460_FeatureID &id)
H460_FeatureParameter::addContent
void addContent(const H460_FeatureContent &con)
Definition: h4601.h:348
H460::OnReceivedPDU
virtual void OnReceivedPDU(const H225 &)
Definition: h4601.h:76
H460_FeatureSet::LoadFeature
virtual PBoolean LoadFeature(const PString &featid)
H460_FeatureSet::PTracePDU
PString PTracePDU(PINDEX id) const
H460_Feature::OnSendReleaseComplete_UUIE
virtual PBoolean OnSendReleaseComplete_UUIE(H225_FeatureDescriptor &)
Definition: h4601.h:839
H460_FeatureSet::ReadFeaturePDU
void ReadFeaturePDU(H460_Feature &Feat, const H225_FeatureDescriptor &pdu, unsigned MessageID)
H460_FeatureParameter::operator=
H460_FeatureContent operator=(const PASN_OctetString &value)
H460_Feature::OnReceiveRegistrationConfirm
virtual void OnReceiveRegistrationConfirm(const H225_FeatureDescriptor &)
Definition: h4601.h:774
H460_Feature::OnSendNonStandardMessage
virtual PBoolean OnSendNonStandardMessage(H225_FeatureDescriptor &)
Definition: h4601.h:799
H460_FeatureNonStd::H460_FeatureNonStd
H460_FeatureNonStd(PString Identifier)
H460_FeatureSet::DeriveNewFeatureSet
H460_FeatureSet * DeriveNewFeatureSet()
H460_FeatureParameter::replaceContent
void replaceContent(const H460_FeatureContent &con)
Definition: h4601.h:353
H460_FeatureParameter::hasContent
PBoolean hasContent()
Definition: h4601.h:360
H460_Feature::OnReceivedUnAllocatedPDU
virtual void OnReceivedUnAllocatedPDU(const H225_FeatureDescriptor &)
Definition: h4601.h:843
H460_Feature::FeatureCategory
enum H460_Feature::@22 FeatureCategory
guid.h
H460_FeatureSet::baseSet
H460_FeatureSet * baseSet
Definition: h4601.h:1114
H460_Feature::OnSendGatekeeperRequest
virtual PBoolean OnSendGatekeeperRequest(H225_FeatureDescriptor &)
Definition: h4601.h:761
H460_FeatureSet::ProcessFirstPDU
PBoolean ProcessFirstPDU(const H225_FeatureSet &fs)
H460_FeatureID::IDString
PString IDString() const
H460_Feature::operator()
H460_FeatureParameter & operator()(PINDEX id) const
Definition: h4601.h:674
H460_Feature::GetFeatureIDAsString
PString GetFeatureIDAsString()
H460_FeatureSet::HasFeature
PBoolean HasFeature(const H460_FeatureID &feat)
H460_FeatureSet::Features
H460_Features Features
Definition: h4601.h:1112
H460_FeatureSet::GetEndPoint
H323EndPoint * GetEndPoint()
Definition: h4601.h:1097
H460_Feature::OnSendRegistrationReject
virtual PBoolean OnSendRegistrationReject(H225_FeatureDescriptor &)
Definition: h4601.h:771
H460_Feature::OnSendCallConnect_UUIE
virtual PBoolean OnSendCallConnect_UUIE(H225_FeatureDescriptor &)
Definition: h4601.h:833
H460_Feature::OnSendGatekeeperReject
virtual PBoolean OnSendGatekeeperReject(H225_FeatureDescriptor &)
Definition: h4601.h:763
H460_FeatureSet::RemoveFeature
void RemoveFeature(H460_FeatureID id)
OpalOID::OpalOID
OpalOID()
H460_FeatureTable::operator[]
H460_FeatureParameter & operator[](PINDEX id) const
Definition: h4601.h:530
H460_FeatureStd::Add
H460_FeatureParameter & Add(unsigned id, const H460_FeatureContent &con)
H460_Feature::SetDefaultTable
void SetDefaultTable()
H460_Feature::OnReceiveLocationConfirm
virtual void OnReceiveLocationConfirm(const H225_FeatureDescriptor &)
Definition: h4601.h:790
OpalOID
Definition: h4601.h:92
H460_Feature::RemoveParameter
virtual void RemoveParameter(PINDEX id)
H460_Feature::OnSendServiceControlIndication
virtual PBoolean OnSendServiceControlIndication(H225_FeatureDescriptor &)
Definition: h4601.h:793
H460_Feature::AttachEndPoint
virtual void AttachEndPoint(H323EndPoint *_ep)
H460_FeatureOID::Contains
PBoolean Contains(const PString &id)
H460_FeatureSet::GetFeatureIDPDU
H460_FeatureID GetFeatureIDPDU(H225_FeatureDescriptor &pdu)
H460_FeatureTable::GetParameter
H460_FeatureParameter & GetParameter(PINDEX id)
H460_Feature::OnReceiveCallConnect_UUIE
virtual void OnReceiveCallConnect_UUIE(const H225_FeatureDescriptor &)
Definition: h4601.h:834
H460_FeatureTable
Definition: h4601.h:434
OpalOID::GetLastIdentifier
unsigned GetLastIdentifier()
Definition: h4601.h:102
H460_Feature::GetFeatureFriendlyName
static PStringList GetFeatureFriendlyName()
Definition: h4601.h:737
H460_FeatureSet::SendFeature
PBoolean SendFeature(unsigned id, H225_FeatureSet &Message)
H460_Feature::OnReceiveReleaseComplete_UUIE
virtual void OnReceiveReleaseComplete_UUIE(const H225_FeatureDescriptor &)
Definition: h4601.h:840
H460_FeatureSet::ReadFeatureSetPDU
void ReadFeatureSetPDU(const H225_FeatureSet &fs, unsigned MessageID)
H460_Feature::FeatureSupported
Supported Feature.
Definition: h4601.h:584
H460_FeatureOID::Replace
void Replace(const PString &id, const H460_FeatureContent &con)
H460_Feature::OnSendDisengagementRequestMessage
virtual PBoolean OnSendDisengagementRequestMessage(H225_FeatureDescriptor &)
Definition: h4601.h:814
H460_FeatureTable::ParameterIsUnique
PBoolean ParameterIsUnique(const H460_FeatureID &id)
H460_Feature::OnSendServiceControlResponse
virtual PBoolean OnSendServiceControlResponse(H225_FeatureDescriptor &)
Definition: h4601.h:794
H460_Feature::OnSendGatekeeperConfirm
virtual PBoolean OnSendGatekeeperConfirm(H225_FeatureDescriptor &)
Definition: h4601.h:762
H460_FeatureStd::H460_FeatureStd
H460_FeatureStd()
Definition: h4601.h:869
H460_FeatureSet::AddFeature
PBoolean AddFeature(H460_Feature *Nfeat)
H460_Feature::OnReceiveAdmissionConfirm
virtual void OnReceiveAdmissionConfirm(const H225_FeatureDescriptor &)
Definition: h4601.h:782
H460_Feature::OnSendAdmissionRequest
virtual PBoolean OnSendAdmissionRequest(H225_FeatureDescriptor &)
Definition: h4601.h:777
H460_FeatureOID::Add
H460_FeatureParameter & Add(const PString &id, const H460_FeatureContent &con)
H460_Feature::OnSendUnregistrationRequest
virtual PBoolean OnSendUnregistrationRequest(H225_FeatureDescriptor &)
Definition: h4601.h:802
H460_Feature::OnSendUnAllocatedPDU
virtual PBoolean OnSendUnAllocatedPDU(H225_FeatureDescriptor &)
Definition: h4601.h:842
H460_FeatureStd::GetParameter
H460_FeatureParameter & GetParameter(unsigned id)
H460_Feature::OnSendDisengagementConfirmMessage
virtual PBoolean OnSendDisengagementConfirmMessage(H225_FeatureDescriptor &)
Definition: h4601.h:817
H460_Feature::OnReceiveLocationReject
virtual void OnReceiveLocationReject(const H225_FeatureDescriptor &)
Definition: h4601.h:791
H460_FeatureTable::ReplaceParameter
void ReplaceParameter(const H460_FeatureID &id, const H460_FeatureContent &con)
H460_Feature::OnReceiveAdmissionRequest
virtual void OnReceiveAdmissionRequest(const H225_FeatureDescriptor &)
Definition: h4601.h:781
H460_Feature::GetPurpose
static int GetPurpose()
Definition: h4601.h:742
H460_FeatureID::operator=
PINLINE H460_FeatureID & operator=(unsigned ID)
H460_Feature::OnSendLocationConfirm
virtual PBoolean OnSendLocationConfirm(H225_FeatureDescriptor &)
Definition: h4601.h:786
H460_FeatureSet::CreateFeatureSetPDU
PBoolean CreateFeatureSetPDU(H225_FeatureSet &fs, unsigned MessageID)
H460_FeatureOID
Definition: h4601.h:953
H460_FeatureSet::LoadFeatureSet
virtual PBoolean LoadFeatureSet(int inst=H460_Feature::FeatureBase, H323Connection *con=NULL)
H460_FeatureTable::AddParameter
H460_FeatureParameter & AddParameter(const H460_FeatureID &id, const H460_FeatureContent &con)
TRUE
#define TRUE
Definition: lidplugin.h:71
H460_Feature::FeatureBaseSignal
Create Base use Signal.
Definition: h4601.h:592
H460_Feature::AddParameter
virtual H460_FeatureParameter & AddParameter(H460_FeatureID *id, const H460_FeatureContent &con)
H460_Feature::OnSendAlerting_UUIE
virtual PBoolean OnSendAlerting_UUIE(H225_FeatureDescriptor &)
Definition: h4601.h:827
H460_Feature::H460_Feature
H460_Feature()
H460_Feature::OnReceiveNonStandardMessage
virtual void OnReceiveNonStandardMessage(const H225_FeatureDescriptor &)
Definition: h4601.h:800
H460_Feature::OnSendRegistrationConfirm
virtual PBoolean OnSendRegistrationConfirm(H225_FeatureDescriptor &)
Definition: h4601.h:770
H460_Feature::OnSendInfoRequestResponseMessage
virtual PBoolean OnSendInfoRequestResponseMessage(H225_FeatureDescriptor &)
Definition: h4601.h:811
H460_FeatureSet::GetFeature
H460_Feature * GetFeature(const H460_FeatureID &id)
H460_Feature::AttachConnection
virtual void AttachConnection(H323Connection *_con)
H460_Feature::OnReceiveDisengagementRequestMessage
virtual void OnReceiveDisengagementRequestMessage(const H225_FeatureDescriptor &)
Definition: h4601.h:815
H460_Feature::OnReceiveGatekeeperConfirm
virtual void OnReceiveGatekeeperConfirm(const H225_FeatureDescriptor &)
Definition: h4601.h:766
H460_Feature::OnReceiveRegistrationReject
virtual void OnReceiveRegistrationReject(const H225_FeatureDescriptor &)
Definition: h4601.h:775
H460_Feature::OnReceiveServiceControlResponse
virtual void OnReceiveServiceControlResponse(const H225_FeatureDescriptor &)
Definition: h4601.h:797
H460_Feature::OnReceiveInfoRequestMessage
virtual void OnReceiveInfoRequestMessage(const H225_FeatureDescriptor &)
Definition: h4601.h:809
H460_Feature::GetFeatureType
unsigned GetFeatureType()
Definition: h4601.h:627
H460_Feature::OnReceiveDisengagementConfirmMessage
virtual void OnReceiveDisengagementConfirmMessage(const H225_FeatureDescriptor &)
Definition: h4601.h:818
OpalOID::operator+
OpalOID & operator+(const char *)
H323Connection
Definition: h323con.h:130
H460_FeatureSet::ep
H323EndPoint * ep
Definition: h4601.h:1113
H460_FeatureSet::CreateFeaturePDU
PBoolean CreateFeaturePDU(H460_Feature &Feat, H225_FeatureDescriptor &pdu, unsigned MessageID)
H460_Feature::OnReceiveLocationRequest
virtual void OnReceiveLocationRequest(const H225_FeatureDescriptor &)
Definition: h4601.h:789
H460_FeatureNonStd::Remove
void Remove(const PString &id)
H460PluginServiceDescriptor::GetDeviceNames
virtual PStringArray GetDeviceNames(int) const
Definition: h4601.h:1124
H460_FeatureContent::H460_FeatureContent
H460_FeatureContent()
H460_FeatureNonStd::operator[]
H460_FeatureParameter & operator[](PString id) const
Definition: h4601.h:941
H460_Feature::OnSendSetup_UUIE
virtual PBoolean OnSendSetup_UUIE(H225_FeatureDescriptor &)
Definition: h4601.h:824
H460_Feature::OnReceiveGatekeeperReject
virtual void OnReceiveGatekeeperReject(const H225_FeatureDescriptor &)
Definition: h4601.h:767
H460_Feature::HasFeatureParameter
PBoolean HasFeatureParameter(const H460_FeatureID &id)
H460_Feature::GetFeatureParameter
H460_FeatureParameter & GetFeatureParameter(PINDEX id)
H460_FeatureOID::HasParameter
PBoolean HasParameter(OpalOID id)
H460_FeatureTable::RemoveParameter
void RemoveParameter(PINDEX id)
H460_FeatureNonStd::HasParameter
PBoolean HasParameter(PString id)
H460_Feature::OnSendRegistrationRequest
virtual PBoolean OnSendRegistrationRequest(H225_FeatureDescriptor &)
Definition: h4601.h:769
H460_FeatureOID::GetBase
PString GetBase()
H460_Feature::Contains
PBoolean Contains(const H460_FeatureID &id)
H460_FeatureTable::HasParameter
PBoolean HasParameter(const H460_FeatureID &id)
H460_FeatureID::H460_FeatureID
H460_FeatureID()
H460_Feature::OnSendAdmissionConfirm
virtual PBoolean OnSendAdmissionConfirm(H225_FeatureDescriptor &)
Definition: h4601.h:778
FALSE
#define FALSE
Definition: lidplugin.h:68
H460_FeatureStd
Definition: h4601.h:862
H460_FeatureParameter::H460_FeatureParameter
H460_FeatureParameter()
H460
Definition: h4601.h:68
H460_FeatureID::Clone
PObject * Clone() const
H460_Feature::OnSendFacility_UUIE
virtual PBoolean OnSendFacility_UUIE(H225_FeatureDescriptor &)
Definition: h4601.h:836
H460::OnSendingPDU
virtual PBoolean OnSendingPDU(H225 &) const
Definition: h4601.h:84
H460_FeatureNonStd::Add
H460_FeatureParameter & Add(const PString id, const H460_FeatureContent &con)
H460_FeatureID
Definition: h4601.h:119
H460_FeatureTable::H460_FeatureTable
H460_FeatureTable()
H460_Feature::FeatureSignal
Create Call Setup.
Definition: h4601.h:594
H460_Feature::OnReceiveCallProceeding_UUIE
virtual void OnReceiveCallProceeding_UUIE(const H225_FeatureDescriptor &)
Definition: h4601.h:831
H460_Feature::GetCurrentTable
H460_FeatureTable & GetCurrentTable()
H460_Feature::OnReceiveAlerting_UUIE
virtual void OnReceiveAlerting_UUIE(const H225_FeatureDescriptor &)
Definition: h4601.h:828
H460_FeatureContent
Definition: h4601.h:194
H460_FeatureSet::CreateFeatureSet
virtual PBoolean CreateFeatureSet(const H225_FeatureSet &fs)
transaddr.h
H460_FeatureOID::Remove
void Remove(const PString &id)
H460_FeatureTable::GetParameterIndex
PINDEX GetParameterIndex(const H460_FeatureID &id)
H460_Feature::CreateFeature
static H460_Feature * CreateFeature(const PString &featurename, int FeatureType=FeatureBase, PPluginManager *pluginMgr=NULL)
H460_FeatureSet::ReceiveFeature
void ReceiveFeature(unsigned id, const H225_FeatureSet &Message)
H460_FeatureParameter
Definition: h4601.h:308
H460_Feature::OnReceiveEndpoint
virtual void OnReceiveEndpoint(const H225_FeatureDescriptor &)
Definition: h4601.h:806
H460_Feature::OnReceiveAdmissionReject
virtual void OnReceiveAdmissionReject(const H225_FeatureDescriptor &)
Definition: h4601.h:783
H460_Feature::OnSendInfoRequestMessage
virtual PBoolean OnSendInfoRequestMessage(H225_FeatureDescriptor &)
Definition: h4601.h:808
H460_Feature::GetFeatureNames
static PStringList GetFeatureNames(PPluginManager *pluginMgr=NULL)
OpalGloballyUniqueID
#define OpalGloballyUniqueID
Definition: guid.h:42
H460_Feature::OnReceiveServiceControlIndication
virtual void OnReceiveServiceControlIndication(const H225_FeatureDescriptor &)
Definition: h4601.h:796
H323EndPoint
Definition: h323ep.h:85
H460_Feature::FeatureBaseRas
Create Startup use RAS.
Definition: h4601.h:591
H460_Feature::OnReceiveRegistrationRequest
virtual void OnReceiveRegistrationRequest(const H225_FeatureDescriptor &)
Definition: h4601.h:773
H460_FeatureOID::H460_FeatureOID
H460_FeatureOID(OpalOID Identifier)
H460_FeatureStd::Remove
void Remove(unsigned id)
H460_Feature::OnReceiveFacility_UUIE
virtual void OnReceiveFacility_UUIE(const H225_FeatureDescriptor &)
Definition: h4601.h:837
H460_FeatureSet::H460_FeatureSet
H460_FeatureSet()
PDICTIONARY
PDICTIONARY(H460_Features, H460_FeatureID, H460_Feature)
H460_Feature::OnSendAdmissionReject
virtual PBoolean OnSendAdmissionReject(H225_FeatureDescriptor &)
Definition: h4601.h:779
H323TransportAddress
Definition: transaddr.h:66
H460_Feature::GetFeatureFriendlyNames
static PStringList GetFeatureFriendlyNames(const PString &feature, PPluginManager *pluginMgr=NULL)
H460_FeatureStd::HasParameter
PBoolean HasParameter(unsigned id)
H460_Feature::OnSendEndpoint
virtual PBoolean OnSendEndpoint(H225_FeatureDescriptor &)
Definition: h4601.h:805
H460_Feature::OnReceiveUnregistrationRequest
virtual void OnReceiveUnregistrationRequest(const H225_FeatureDescriptor &)
Definition: h4601.h:803
H460_FeatureID::Compare
PObject::Comparison Compare(const PObject &obj) const
H460_Feature
Definition: h4601.h:550
H460_Feature::GetFeatureID
H460_FeatureID GetFeatureID()
Definition: h4601.h:615
H460_FeatureStd::operator[]
H460_FeatureParameter & operator[](unsigned id)
Definition: h4601.h:901
H460_Feature::FeatureInstance
enum H460_Feature::@23 FeatureInstance
H460_FeatureNonStd::Replace
void Replace(const PString &id, const H460_FeatureContent &con)
H460_Feature::OnReceiveSetup_UUIE
virtual void OnReceiveSetup_UUIE(const H225_FeatureDescriptor &)
Definition: h4601.h:825
H460_FeatureID::GetFeatureType
unsigned GetFeatureType() const
Definition: h4601.h:171
H460_FeatureNonStd
Definition: h4601.h:907
H460_Feature::con
H323Connection * con
Definition: h4601.h:859