OPAL Version 3.10.4

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Public Types | Protected Member Functions | Protected Attributes
H323EndPoint Class Reference

`#include <h323ep.h>`

Inheritance diagram for H323EndPoint:

## Public Types

enum | { DefaultTcpSignalPort = 1720 }

## Public Member Functions

Construction
| H323EndPoint (OpalManager &manager)
| ~H323EndPoint ()
Overrides from OpalEndPoint
virtual void | ShutDown ()
virtual PSafePtr< OpalConnection > | MakeConnection (OpalCall &call, const PString &party, void *userData=NULL, unsigned int options=NULL, OpalConnection::StringOptions *stringOptions=NULL)
Set up functions
virtual void | SetEndpointTypeInfo (H225_EndpointType &info) const
virtual void | SetVendorIdentifierInfo (H225_VendorIdentifier &info) const
virtual void | SetH221NonStandardInfo (H225_H221NonStandard &info) const
virtual bool | SetGatewaySupportedProtocol (H225_ArrayOf_SupportedProtocols &protocols) const
virtual bool | OnSetGatewayPrefixes (PStringList &prefixes) const
Capabilities
void | AddCapability (H323Capability *capability)
PINDEX | SetCapability (PINDEX descriptorNum, PINDEX simultaneous, H323Capability *cap)
PINDEX | AddAllCapabilities (PINDEX descriptorNum, PINDEX simultaneous, const PString &name)
void | AddAllUserInputCapabilities (PINDEX descriptorNum, PINDEX simultaneous)
void | RemoveCapabilities (const PStringArray &codecNames)
void | ReorderCapabilities (const PStringArray &preferenceOrder)
H323Capability * | FindCapability (const H245_Capability &cap) const
H323Capability * | FindCapability (const H245_DataType &dataType) const
H323Capability * | FindCapability (H323Capability::MainTypes mainType, unsigned subType) const
Gatekeeper management
PBoolean | UseGatekeeper (const PString &address=PString::Empty(), const PString &identifier=PString::Empty(), const PString &localAddress=PString::Empty())
PBoolean | SetGatekeeper (const PString &address, H323Transport *transport=NULL)
PBoolean | SetGatekeeperZone (const PString &address, const PString &identifier, H323Transport *transport=NULL)
PBoolean | LocateGatekeeper (const PString &identifier, H323Transport *transport=NULL)
PBoolean | DiscoverGatekeeper (H323Transport *transport=NULL)
virtual H323Gatekeeper * | CreateGatekeeper (H323Transport *transport)
H323Gatekeeper * | GetGatekeeper () const
PBoolean | IsRegisteredWithGatekeeper () const
PBoolean | RemoveGatekeeper (int reason=-1)
virtual void | SetGatekeeperPassword (const PString &password, const PString &username=PString::Empty())
virtual const PString & | GetGatekeeperUsername () const
virtual const PString & | GetGatekeeperPassword () const
virtual H235Authenticators | CreateAuthenticators ()
virtual void | OnGatekeeperConfirm ()
virtual void | OnGatekeeperReject ()
virtual void | OnRegistrationConfirm ()
virtual void | OnRegistrationReject ()
Connection management
virtual PBoolean | NewIncomingConnection (OpalTransport *transport)
virtual H323Connection * | CreateConnection (OpalCall &call, const PString &token, void *userData, OpalTransport &transport, const PString &alias, const H323TransportAddress &address, H323SignalPDU *setupPDU, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
virtual PBoolean | SetupTransfer (const PString &token, const PString &callIdentity, const PString &remoteParty, void *userData=NULL)
void | TransferCall (const PString &token, const PString &remoteParty, const PString &callIdentity=PString::Empty())
void | ConsultationTransfer (const PString &primaryCallToken, const PString &secondaryCallToken)
void | HoldCall (const PString &token, PBoolean localHold)
PBoolean | IntrudeCall (const PString &remoteParty, unsigned capabilityLevel, void *userData=NULL)
PBoolean | ParsePartyName (const PString &party, PString &alias, H323TransportAddress &address, OpalConnection::StringOptions *stringOptions=NULL)
PSafePtr< H323Connection > | FindConnectionWithLock (const PString &token, PSafetyMode mode=PSafeReadWrite)
virtual PBoolean | OnSendSignalSetup (H323Connection &connection, H323SignalPDU &setupPDU)
virtual PBoolean | OnSendCallProceeding (H323Connection &connection, H323SignalPDU &callProceedingPDU)
virtual PBoolean | OnSendConnect (H323Connection &connection, H323SignalPDU &connectPDU)
virtual PBoolean | OnIncomingCall (H323Connection &connection, const H323SignalPDU &setupPDU, H323SignalPDU &alertingPDU)
virtual PBoolean | OnOutgoingCall (H323Connection &conn, const H323SignalPDU &connectPDU)
virtual PBoolean | OnCallTransferInitiate (H323Connection &connection, const PString &remoteParty)
virtual PBoolean | OnCallTransferIdentify (H323Connection &connection)
virtual void | OnSendARQ (H323Connection &conn, H225_AdmissionRequest &arq)
virtual OpalConnection::AnswerCallResponse | OnAnswerCall (H323Connection &connection, const PString &callerName, const H323SignalPDU &setupPDU, H323SignalPDU &connectPDU, H323SignalPDU &progressPDU)
virtual OpalConnection::AnswerCallResponse | OnAnswerCall (OpalConnection &connection, const PString &caller)
virtual PBoolean | OnAlerting (H323Connection &connection, const H323SignalPDU &alertingPDU, const PString &user)
virtual PBoolean | OnSendAlerting (H323Connection &connection, H323SignalPDU &alerting, const PString &calleeName, PBoolean withMedia)
virtual PBoolean | OnSentAlerting (H323Connection &connection)
virtual PBoolean | OnConnectionForwarded (H323Connection &connection, const PString &forwardParty, const H323SignalPDU &pdu)
virtual PBoolean | ForwardConnection (H323Connection &connection, const PString &forwardParty, const H323SignalPDU &pdu)
virtual void | OnConnectionEstablished (H323Connection &connection, const PString &token)
virtual PBoolean | IsConnectionEstablished (const PString &token)
Logical Channels management
virtual PBoolean | OnStartLogicalChannel (H323Connection &connection, H323Channel &channel)
virtual void | OnClosedLogicalChannel (H323Connection &connection, const H323Channel &channel)
virtual void | OnRTPStatistics (const H323Connection &connection, const RTP_Session &session) const
virtual void | OnGatekeeperNATDetect (PIPSocket::Address publicAddr, PString &gkIdentifier, H323TransportAddress &gkRouteAddress)
Service Control
virtual void | OnHTTPServiceControl (unsigned operation, unsigned sessionId, const PString &url)
virtual void | OnCallCreditServiceControl (const PString &amount, PBoolean mode)
virtual void | OnServiceControlSession (unsigned type, unsigned sessionid, const H323ServiceControlSession &session, H323Connection *connection)
virtual H323ServiceControlSession * | CreateServiceControlSession (const H225_ServiceControlDescriptor &contents)
Additional call services
virtual PBoolean | OnConferenceInvite (const H323SignalPDU &setupPDU)
virtual PBoolean | OnCallIndependentSupplementaryService (const H323SignalPDU &setupPDU)
virtual PBoolean | OnNegotiateConferenceCapabilities (const H323SignalPDU &setupPDU)

## Protected Member Functions

bool | InternalCreateGatekeeper (H323Transport *transport)
H323Connection * | InternalMakeCall (OpalCall &call, const PString &existingToken, const PString &callIdentity, unsigned capabilityLevel, const PString &remoteParty, void *userData, unsigned int options=0, OpalConnection::StringOptions *stringOptions=NULL)

## Protected Attributes

PStringList | localAliasNames
PStringList | localAliasPatterns
PBoolean | autoCallForward
PBoolean | disableFastStart
PBoolean | disableH245Tunneling
PBoolean | disableH245inSetup
PBoolean | m_bH245Disabled
PBoolean | canDisplayAmountString
PBoolean | canEnforceDurationLimit
unsigned | callIntrusionProtectionLevel
TerminalTypes | terminalType
bool | m_defaultH239Control
PBoolean | clearCallOnRoundTripFail
PTimeInterval | signallingChannelCallTimeout
PTimeInterval | controlChannelStartTimeout
PTimeInterval | endSessionTimeout
PTimeInterval | masterSlaveDeterminationTimeout
unsigned | masterSlaveDeterminationRetries
PTimeInterval | capabilityExchangeTimeout
PTimeInterval | logicalChannelTimeout
PTimeInterval | requestModeTimeout
PTimeInterval | roundTripDelayTimeout
PTimeInterval | roundTripDelayRate
PTimeInterval | gatekeeperRequestTimeout
unsigned | gatekeeperRequestRetries
PTimeInterval | rasRequestTimeout
unsigned | rasRequestRetries
PTimeInterval | registrationTimeToLive
PString | gkAccessTokenOID
PBoolean | sendGRQ
PTimeInterval | callTransferT1
PTimeInterval | callTransferT2
PTimeInterval | callTransferT3
PTimeInterval | callTransferT4
PTimeInterval | callIntrusionT1
PTimeInterval | callIntrusionT2
PTimeInterval | callIntrusionT3
PTimeInterval | callIntrusionT4
PTimeInterval | callIntrusionT5
PTimeInterval | callIntrusionT6
H323Capabilities | capabilities
H323Gatekeeper * | gatekeeper
PString | gatekeeperUsername
PString | gatekeeperPassword
H323CallIdentityDict | secondaryConnectionsActive
PAtomicInteger | nextH450CallIdentity
bool | disableH460
| Next available callIdentity for H450 Transfer operations via consultation.
H460_FeatureSet | features
Protected Attributes inherited from OpalRTPEndPoint
LocalRtpInfoMap | m_connectionsByRtpLocalPort
Protected Attributes inherited from OpalEndPoint
OpalManager & | manager
PCaselessString | prefixName
unsigned | attributeBits
WORD | defaultSignalPort
PINDEX | m_maxSizeUDP
OpalProductInfo | productInfo
PString | defaultLocalPartyName
PString | defaultDisplayName
unsigned | initialBandwidth
OpalConnection::StringOptions | m_defaultStringOptions
OpalConnection::SendUserInputModes | defaultSendUserInputMode
OpalListenerList | listeners
OpalEndPoint::ConnectionDict | connectionsActive
PMutex | inUseFlag

## Member variable access

enum | TerminalTypes { e_TerminalOnly = 50, e_TerminalAndMC = 70, e_GatewayOnly = 60, e_GatewayAndMC = 80, e_GatewayAndMCWithDataMP = 90, e_GatewayAndMCWithAudioMP = 100, e_GatewayAndMCWithAVMP = 110, e_GatekeeperOnly = 120, e_GatekeeperWithDataMP = 130, e_GatekeeperWithAudioMP = 140, e_GatekeeperWithAVMP = 150, e_MCUOnly = 160, e_MCUWithDataMP = 170, e_MCUWithAudioMP = 180, e_MCUWithAVMP = 190 }
virtual void | SetDefaultLocalPartyName (const PString &name)
virtual void | SetLocalUserName (const PString &name)
virtual const PString & | GetLocalUserName () const
PBoolean | AddAliasName (const PString &name)
PBoolean | RemoveAliasName (const PString &name)
const PStringList & | GetAliasNames () const
const PStringList & | GetAliasNamePatterns () const
PBoolean | AddAliasNamePattern (const PString &pattern)
const PString & | GetDefaultILSServer () const
void | SetDefaultILSServer (const PString &server)
PBoolean | IsFastStartDisabled () const
void | DisableFastStart (PBoolean mode)
PBoolean | IsH245TunnelingDisabled () const
void | DisableH245Tunneling (PBoolean mode)
PBoolean | IsH245inSetupDisabled () const
void | DisableH245inSetup (PBoolean mode)
PBoolean | IsH245Disabled () const
void | DisableH245 (PBoolean bH245Disabled)
PBoolean | CanDisplayAmountString () const
void | SetCanDisplayAmountString (PBoolean mode)
PBoolean | CanEnforceDurationLimit () const
void | SetCanEnforceDurationLimit (PBoolean mode)
unsigned | GetCallIntrusionProtectionLevel () const
void | SetCallIntrusionProtectionLevel (unsigned level)
virtual void | OnReceivedInitiateReturnError ()
PBoolean | CanAutoCallForward () const
const H323Capabilities & | GetCapabilities () const
void | SetTerminalType (TerminalTypes type)
TerminalTypes | GetTerminalType () const
PBoolean | IsTerminal () const
PBoolean | IsGateway () const
PBoolean | IsGatekeeper () const
PBoolean | IsMCU () const
unsigned | GetMinAudioJitterDelay () const
unsigned | GetMaxAudioJitterDelay () const
void | SetAudioJitterDelay (unsigned minDelay, unsigned maxDelay)
unsigned | GetInitialBandwidth () const
void | SetInitialBandwidth (unsigned bandwidth)
bool | GetDefaultH239Control () const
void | SetDefaultH239Control (bool on)
virtual PBoolean | OnSendFeatureSet (unsigned, H225_FeatureSet &)
virtual void | OnReceiveFeatureSet (unsigned, const H225_FeatureSet &)
virtual void | LoadBaseFeatureSet ()
virtual bool | OnFeatureInstance (int instType, const PString &identifer)
bool | FeatureSetDisabled () const
void | FeatureSetDisable ()
H460_FeatureSet * | GetFeatureSet ()
virtual PBoolean | IsLocalAddress (const PIPSocket::Address &remoteAddress) const
virtual void | TranslateTCPAddress (PIPSocket::Address &localAddr, const PIPSocket::Address &remoteAddr)
WORD | GetTCPPortBase () const
WORD | GetTCPPortMax () const
void | SetTCPPorts (unsigned tcpBase, unsigned tcpMax)
WORD | GetNextTCPPort ()
WORD | GetUDPPortBase () const
WORD | GetUDPPortMax () const
void | SetUDPPorts (unsigned udpBase, unsigned udpMax)
WORD | GetNextUDPPort ()
WORD | GetRtpIpPortBase () const
WORD | GetRtpIpPortMax () const
void | SetRtpIpPorts (unsigned udpBase, unsigned udpMax)
WORD | GetRtpIpPortPair ()
BYTE P_DEPRECATED | GetRtpIpTypeofService () const
void P_DEPRECATED | SetRtpIpTypeofService (unsigned tos)
const PTimeInterval & | GetSignallingChannelCallTimeout () const
const PTimeInterval & | GetControlChannelStartTimeout () const
const PTimeInterval & | GetEndSessionTimeout () const
const PTimeInterval & | GetMasterSlaveDeterminationTimeout () const
unsigned | GetMasterSlaveDeterminationRetries () const
const PTimeInterval & | GetCapabilityExchangeTimeout () const
const PTimeInterval & | GetLogicalChannelTimeout () const
const PTimeInterval & | GetRequestModeTimeout () const
const PTimeInterval & | GetRoundTripDelayTimeout () const
const PTimeInterval & | GetRoundTripDelayRate () const
PBoolean | ShouldClearCallOnRoundTripFail () const
const PTimeInterval & | GetNoMediaTimeout () const
PBoolean | SetNoMediaTimeout (const PTimeInterval &newInterval)
const PTimeInterval & | GetGatekeeperRequestTimeout () const
unsigned | GetGatekeeperRequestRetries () const
const PTimeInterval & | GetRasRequestTimeout () const
unsigned | GetRasRequestRetries () const
const PTimeInterval & | GetGatekeeperTimeToLive () const
void | SetGatekeeperTimeToLive (const PTimeInterval &ttl)
const PString & | GetGkAccessTokenOID () const
void | SetGkAccessTokenOID (const PString &token)
PBoolean | GetSendGRQ () const
void | SetSendGRQ (PBoolean v)
const PTimeInterval & | GetCallTransferT1 () const
const PTimeInterval & | GetCallTransferT2 () const
const PTimeInterval & | GetCallTransferT3 () const
const PTimeInterval & | GetCallTransferT4 () const
const PTimeInterval & | GetCallIntrusionT1 () const
const PTimeInterval & | GetCallIntrusionT2 () const
const PTimeInterval & | GetCallIntrusionT3 () const
const PTimeInterval & | GetCallIntrusionT4 () const
const PTimeInterval & | GetCallIntrusionT5 () const
const PTimeInterval & | GetCallIntrusionT6 () const
H323CallIdentityDict & | GetCallIdentityDictionary ()
unsigned | GetNextH450CallIdentityValue () const
PString | GetDefaultTransport () const

## Additional Inherited Members

Protected Types inherited from OpalRTPEndPoint
typedef std::map< WORD, LocalRtpInfo > | LocalRtpInfoMap

## Detailed Description

This class manages the H323 endpoint. An endpoint may have zero or more listeners to create incoming connections or zero or more outgoing connections initiated via the MakeCall() function. Once a conection exists it is managed by this class instance.

The main thing this class embodies is the capabilities of the application, that is the codecs and protocols it is capable of.

An application may create a descendent off this class and overide the CreateConnection() function, if they require a descendent of H323Connection to be created. This would be quite likely in most applications.

## Member Enumeration Documentation

anonymous enum

Enumerator:

  DefaultTcpSignalPort |

enum H323EndPoint::TerminalTypes

Endpoint types.

Enumerator:

  e_TerminalOnly |
  e_TerminalAndMC |
  e_GatewayOnly |
  e_GatewayAndMC |
  e_GatewayAndMCWithDataMP |
  e_GatewayAndMCWithAudioMP |
  e_GatewayAndMCWithAVMP |
  e_GatekeeperOnly |
  e_GatekeeperWithDataMP |
  e_GatekeeperWithAudioMP |
  e_GatekeeperWithAVMP |
  e_MCUOnly |
  e_MCUWithDataMP |
  e_MCUWithAudioMP |
  e_MCUWithAVMP |

## Constructor & Destructor Documentation

H323EndPoint::H323EndPoint | ( | OpalManager & | manager | ) |

Create a new endpoint.

H323EndPoint::~H323EndPoint | ( |  | ) |

Destroy endpoint.

## Member Function Documentation

PBoolean H323EndPoint::AddAliasName | ( | const PString & | name | ) |

Add an alias name to be used for the local end of any connections. If the alias name already exists in the list then is is not added again.

The list defaults to the value set in the SetLocalUserName() function. Note that calling SetLocalUserName() will clear the alias list.

Parameters:

  name | New alias name to add

PBoolean H323EndPoint::AddAliasNamePattern | ( | const PString & | pattern | ) |

Add an alias name pattern to localAliasPatterns. If the pattern already exists in the list then is is not added again.

PINDEX H323EndPoint::AddAllCapabilities | ( | PINDEX | descriptorNum,
|  | PINDEX | simultaneous,
|  | const PString & | name
| ) |  |

Add all matching capabilities in list. All capabilities that match the specified name are added. See the capabilities code for details on the matching algorithm.

Parameters:

  descriptorNum | The member of the capabilityDescriptor to add
  simultaneous | The member of the SimultaneousCapabilitySet to add
  name | New capabilities name, if using "known" one.

void H323EndPoint::AddAllUserInputCapabilities | ( | PINDEX | descriptorNum,
|  | PINDEX | simultaneous
| ) |  |

Add all user input capabilities to this endpoints capability table.

Parameters:

  descriptorNum | The member of the capabilityDescriptor to add
  simultaneous | The member of the SimultaneousCapabilitySet to add

void H323EndPoint::AddCapability | ( | H323Capability * | capability | ) |

Add a codec to the capabilities table. This will assure that the assignedCapabilityNumber field in the codec is unique for all codecs installed on this endpoint.

If the specific instnace of the capability is already in the table, it is not added again. Ther can be multiple instances of the same capability class however.

Parameters:

  capability | New codec specification

PBoolean H323EndPoint::CanAutoCallForward | ( |  | ) | const

inline

See if should automatically do call forward of connection.

References autoCallForward.

PBoolean H323EndPoint::CanDisplayAmountString | ( |  | ) | const

inline

Get the flag indicating the endpoint can display an amount string.

References canDisplayAmountString.

PBoolean H323EndPoint::CanEnforceDurationLimit | ( |  | ) | const

inline

Get the flag indicating the call will automatically clear after a time.

References canEnforceDurationLimit.

void H323EndPoint::ConsultationTransfer | ( | const PString & | primaryCallToken,
|  | const PString & | secondaryCallToken
| ) |  |

Transfer the call through consultation so the remote party in the primary call is connected to the called party in the second call using H.450.2. This sends a Call Transfer Identify Invoke message from the A-Party (transferring endpoint) to the C-Party (transferred-to endpoint).

Parameters:

  primaryCallToken | Token of primary call
  secondaryCallToken | Token of secondary call

virtual H235Authenticators H323EndPoint::CreateAuthenticators | ( |  | ) |

virtual

Create a list of authenticators for gatekeeper.

virtual H323Connection* H323EndPoint::CreateConnection | ( | OpalCall & | call,
|  | const PString & | token,
|  | void * | userData,
|  | OpalTransport & | transport,
|  | const PString & | alias,
|  | const H323TransportAddress & | address,
|  | H323SignalPDU * | setupPDU,
|  | unsigned | options = `0`,
|  | OpalConnection::StringOptions * | stringOptions = `NULL`
| ) |  |

virtual

Create a connection that uses the specified call.

Parameters:

  call | Call object to attach the connection to
  token | Call token for new connection
  userData | Arbitrary user data from MakeConnection
  transport | Transport for connection
  alias | Alias for outgoing call
  address | Address for outgoing call
  setupPDU | Setup PDU for incoming call
  stringOptions | complex string options

virtual H323Gatekeeper* H323EndPoint::CreateGatekeeper | ( | H323Transport * | transport | ) |

virtual

Create a gatekeeper. This allows the application writer to have the gatekeeper as a descendent of the H323Gatekeeper in order to add functionality to the base capabilities in the library.

The default creates an instance of the H323Gatekeeper class.

Parameters:

  transport | Transport over which gatekeepers communicates.

virtual H323ServiceControlSession* H323EndPoint::CreateServiceControlSession | ( | const H225_ServiceControlDescriptor & | contents | ) |

virtual

Create the service control session object.

void H323EndPoint::DisableFastStart | ( | PBoolean | mode | ) |

inline

Set the default fast start mode.

Parameters:

  mode | New default mode

References disableFastStart.

void H323EndPoint::DisableH245 | ( | PBoolean | bH245Disabled | ) |

inline

Disable/Enable H.245, used at least for h450.7 calls

Parameters:

  bH245Disabled | true if h245 has to be disabled

References m_bH245Disabled.

void H323EndPoint::DisableH245inSetup | ( | PBoolean | mode | ) |

inline

Set the default H.245 tunneling mode.

Parameters:

  mode | New default mode

References disableH245inSetup.

void H323EndPoint::DisableH245Tunneling | ( | PBoolean | mode | ) |

inline

Set the default H.245 tunneling mode.

Parameters:

  mode | New default mode

References disableH245Tunneling.

PBoolean H323EndPoint::DiscoverGatekeeper | ( | H323Transport * | transport = `NULL` | ) |

Discover and select gatekeeper. This function will use the automatic gatekeeper discovery methods to locate the first gatekeeper on a particular transport.

Note the transport being passed in will be deleted becomes owned by the H323Gatekeeper created by this function and will be deleted by it. Also if transport is NULL then a H323TransportUDP is created.

Parameters:

  transport | Transport over which to talk to gatekeeper.

void H323EndPoint::FeatureSetDisable | ( |  | ) |

inline

Disable all FeatureSets. Use this for pre H323v4 interoperability

References disableH460.

bool H323EndPoint::FeatureSetDisabled | ( |  | ) | const

inline

Is the FeatureSet disabled

References disableH460.

H323Capability* H323EndPoint::FindCapability | ( | const H245_Capability & | cap | ) | const

Find a capability that has been registered.

Parameters:

  cap | H245 capability table entry

H323Capability* H323EndPoint::FindCapability | ( | const H245_DataType & | dataType | ) | const

Find a capability that has been registered.

Parameters:

  dataType | H245 data type of codec

H323Capability* H323EndPoint::FindCapability | ( | H323Capability::MainTypes | mainType,
|  | unsigned | subType
| ) |  | const

Find a capability that has been registered.

Parameters:

  mainType | Main type of codec
  subType | Subtype of codec

PSafePtr<H323Connection> H323EndPoint::FindConnectionWithLock | ( | const PString & | token,
|  | PSafetyMode | mode = `PSafeReadWrite`
| ) |  |

Find a connection that uses the specified token. This searches the endpoint for the connection that contains the token as provided by functions such as MakeCall(). if not found it will then search for the string representation of the CallIdentifier for the connection, and finally try for the string representation of the ConferenceIdentifier.

Note the caller of this function MUSt call the H323Connection::Unlock() function if this function returns a non-NULL pointer. If it does not then a deadlock can occur.

Parameters:

  token | Token to identify connection

virtual PBoolean H323EndPoint::ForwardConnection | ( | H323Connection & | connection,
|  | const PString & | forwardParty,
|  | const H323SignalPDU & | pdu
| ) |  |

virtual

Forward the call using the same token as the specified connection. Return true if the call is being redirected.

The default behaviour will replace the current call in the endpoints call list using the same token as the call being redirected. Not that even though the same token is being used the actual object is completely mad anew.

Parameters:

  connection | Connection to be forwarded
  forwardParty | Remote party to forward to
  pdu | Full PDU initiating forwarding

const PStringList& H323EndPoint::GetAliasNamePatterns | ( |  | ) | const

inline

Get the alias patterns, might be used in terminalAliasPattern.

References localAliasPatterns.

const PStringList& H323EndPoint::GetAliasNames | ( |  | ) | const

inline

Get the user name to be used for the local end of any connections. This defaults to the logged in user as obtained from the PProcess::GetUserName() function.

References localAliasNames.

H323CallIdentityDict& H323EndPoint::GetCallIdentityDictionary | ( |  | ) |

inline

Get the dictionary of <callIdentities, connections>

References secondaryConnectionsActive.

unsigned H323EndPoint::GetCallIntrusionProtectionLevel | ( |  | ) | const

inline

Get Call Intrusion Protection Level of the end point.

References callIntrusionProtectionLevel.

const PTimeInterval& H323EndPoint::GetCallIntrusionT1 | ( |  | ) | const

inline

Get Call Intrusion timers timeout

References callIntrusionT1.

const PTimeInterval& H323EndPoint::GetCallIntrusionT2 | ( |  | ) | const

inline

References callIntrusionT2.

const PTimeInterval& H323EndPoint::GetCallIntrusionT3 | ( |  | ) | const

inline

References callIntrusionT3.

const PTimeInterval& H323EndPoint::GetCallIntrusionT4 | ( |  | ) | const

inline

References callIntrusionT4.

const PTimeInterval& H323EndPoint::GetCallIntrusionT5 | ( |  | ) | const

inline

References callIntrusionT5.

const PTimeInterval& H323EndPoint::GetCallIntrusionT6 | ( |  | ) | const

inline

References callIntrusionT6.

const PTimeInterval& H323EndPoint::GetCallTransferT1 | ( |  | ) | const

inline

Get the default timeout for Call Transfer Timer CT-T1.

References callTransferT1.

const PTimeInterval& H323EndPoint::GetCallTransferT2 | ( |  | ) | const

inline

Get the default timeout for Call Transfer Timer CT-T2.

References callTransferT2.

const PTimeInterval& H323EndPoint::GetCallTransferT3 | ( |  | ) | const

inline

Get the default timeout for Call Transfer Timer CT-T3.

References callTransferT3.

const PTimeInterval& H323EndPoint::GetCallTransferT4 | ( |  | ) | const

inline

Get the default timeout for Call Transfer Timer CT-T4.

References callTransferT4.

const H323Capabilities& H323EndPoint::GetCapabilities | ( |  | ) | const

Get the current capability table for this endpoint.

const PTimeInterval& H323EndPoint::GetCapabilityExchangeTimeout | ( |  | ) | const

inline

Get the default timeout for H245 capability exchange negotiations.

References capabilityExchangeTimeout.

const PTimeInterval& H323EndPoint::GetControlChannelStartTimeout | ( |  | ) | const

inline

Get the default timeout for incoming H.245 connection.

References controlChannelStartTimeout.

bool H323EndPoint::GetDefaultH239Control | ( |  | ) | const

inline

Get the default H.239 control capability.

References m_defaultH239Control.

const PString& H323EndPoint::GetDefaultILSServer | ( |  | ) | const

inline

Get the default ILS server to use for user lookup.

References OpalManager::GetDefaultILSServer(), and OpalEndPoint::manager.

PString H323EndPoint::GetDefaultTransport | ( |  | ) | const

virtual

Get comma separated list of transport protocols to create if no explicit listeners started.

Reimplemented from OpalEndPoint.

const PTimeInterval& H323EndPoint::GetEndSessionTimeout | ( |  | ) | const

inline

Get the default timeout for waiting on an end session.

References endSessionTimeout.

H460_FeatureSet* H323EndPoint::GetFeatureSet | ( |  | ) |

inline

Get the Endpoint FeatureSet This creates a new instance of the featureSet

References H460_FeatureSet::DeriveNewFeatureSet(), and features.

H323Gatekeeper* H323EndPoint::GetGatekeeper | ( |  | ) | const

inline

Get the gatekeeper we are registered with.

References gatekeeper.

virtual const PString& H323EndPoint::GetGatekeeperPassword | ( |  | ) | const

inline virtual

Get the H.235 password for the gatekeeper.

References gatekeeperPassword.

unsigned H323EndPoint::GetGatekeeperRequestRetries | ( |  | ) | const

inline

Get the default retries for GatekeeperRequest and Gatekeeper discovery.

References gatekeeperRequestRetries.

const PTimeInterval& H323EndPoint::GetGatekeeperRequestTimeout | ( |  | ) | const

inline

Get the default timeout for GatekeeperRequest and Gatekeeper discovery.

References gatekeeperRequestTimeout.

const PTimeInterval& H323EndPoint::GetGatekeeperTimeToLive | ( |  | ) | const

inline

Get the default time for gatekeeper to reregister. A value of zero disables the keep alive facility.

References registrationTimeToLive.

virtual const PString& H323EndPoint::GetGatekeeperUsername | ( |  | ) | const

inline virtual

Get the H.235 username for the gatekeeper.

References gatekeeperUsername.

const PString& H323EndPoint::GetGkAccessTokenOID | ( |  | ) | const

inline

Get the iNow Gatekeeper Access Token OID.

References gkAccessTokenOID.

unsigned H323EndPoint::GetInitialBandwidth | ( |  | ) | const

inline

Get the initial bandwidth parameter.

Reimplemented from OpalEndPoint.

References OpalEndPoint::initialBandwidth.

virtual const PString& H323EndPoint::GetLocalUserName | ( |  | ) | const

inline virtual

Get the user name to be used for the local end of any connections. This defaults to the logged in user as obtained from the PProcess::GetUserName() function.

References localAliasNames.

const PTimeInterval& H323EndPoint::GetLogicalChannelTimeout | ( |  | ) | const

inline

Get the default timeout for H245 logical channel negotiations.

References logicalChannelTimeout.

unsigned H323EndPoint::GetMasterSlaveDeterminationRetries | ( |  | ) | const

inline

Get the default retries for H245 master slave negotiations.

References masterSlaveDeterminationRetries.

const PTimeInterval& H323EndPoint::GetMasterSlaveDeterminationTimeout | ( |  | ) | const

inline

Get the default timeout for master slave negotiations.

References masterSlaveDeterminationTimeout.

unsigned H323EndPoint::GetMaxAudioJitterDelay | ( |  | ) | const

inline

Get the default maximum audio delay jitter parameter. Defaults to 250ms.

References OpalManager::GetMaxAudioJitterDelay(), and OpalEndPoint::manager.

unsigned H323EndPoint::GetMinAudioJitterDelay | ( |  | ) | const

inline

Get the default maximum audio jitter delay parameter. Defaults to 50ms

References OpalManager::GetMinAudioJitterDelay(), and OpalEndPoint::manager.

unsigned H323EndPoint::GetNextH450CallIdentityValue | ( |  | ) | const

inline

Get the next available invoke Id for H450 operations

References nextH450CallIdentity.

WORD H323EndPoint::GetNextTCPPort | ( |  | ) |

inline

Get the next TCP port number for H.245 channels

References OpalManager::GetNextTCPPort(), and OpalEndPoint::manager.

WORD H323EndPoint::GetNextUDPPort | ( |  | ) |

inline

Get the next UDP port number for RAS channels

References OpalManager::GetNextUDPPort(), and OpalEndPoint::manager.

const PTimeInterval& H323EndPoint::GetNoMediaTimeout | ( |  | ) | const

inline

Get the amount of time with no media that should cause call to clear

References OpalManager::GetNoMediaTimeout(), and OpalEndPoint::manager.

unsigned H323EndPoint::GetRasRequestRetries | ( |  | ) | const

inline

Get the default retries for RAS protocol transations.

References rasRequestRetries.

const PTimeInterval& H323EndPoint::GetRasRequestTimeout | ( |  | ) | const

inline

Get the default timeout for RAS protocol transactions.

References rasRequestTimeout.

const PTimeInterval& H323EndPoint::GetRequestModeTimeout | ( |  | ) | const

inline

Get the default timeout for H245 request mode negotiations.

References logicalChannelTimeout.

const PTimeInterval& H323EndPoint::GetRoundTripDelayRate | ( |  | ) | const

inline

Get the default rate H245 round trip delay is calculated by connection.

References roundTripDelayRate.

const PTimeInterval& H323EndPoint::GetRoundTripDelayTimeout | ( |  | ) | const

inline

Get the default timeout for H245 round trip delay negotiations.

References roundTripDelayTimeout.

WORD H323EndPoint::GetRtpIpPortBase | ( |  | ) | const

inline

Get the UDP port number base for RTP channels.

References OpalManager::GetRtpIpPortBase(), and OpalEndPoint::manager.

WORD H323EndPoint::GetRtpIpPortMax | ( |  | ) | const

inline

Get the max UDP port number for RTP channels.

References OpalManager::GetRtpIpPortMax(), and OpalEndPoint::manager.

WORD H323EndPoint::GetRtpIpPortPair | ( |  | ) |

inline

Get the UDP port number pair for RTP channels.

References OpalManager::GetRtpIpPortPair(), and OpalEndPoint::manager.

BYTE P_DEPRECATED H323EndPoint::GetRtpIpTypeofService | ( |  | ) | const

inline

Get the IP Type Of Service byte for RTP channels.

References OpalManager::GetMediaTypeOfService(), and OpalEndPoint::manager.

PBoolean H323EndPoint::GetSendGRQ | ( |  | ) | const

inline

Get flag to indicate whether to send GRQ on gatekeeper registration

References sendGRQ.

const PTimeInterval& H323EndPoint::GetSignallingChannelCallTimeout | ( |  | ) | const

inline

Get the default timeout for calling another endpoint.

References signallingChannelCallTimeout.

WORD H323EndPoint::GetTCPPortBase | ( |  | ) | const

inline

Get the TCP port number base for H.245 channels

References OpalManager::GetTCPPortBase(), and OpalEndPoint::manager.

WORD H323EndPoint::GetTCPPortMax | ( |  | ) | const

inline

Get the TCP port number base for H.245 channels.

References OpalManager::GetTCPPortMax(), and OpalEndPoint::manager.

TerminalTypes H323EndPoint::GetTerminalType | ( |  | ) | const

inline

Get the endpoint terminal type.

References terminalType.

WORD H323EndPoint::GetUDPPortBase | ( |  | ) | const

inline

Get the UDP port number base for RAS channels

References OpalManager::GetUDPPortBase(), and OpalEndPoint::manager.

WORD H323EndPoint::GetUDPPortMax | ( |  | ) | const

inline

Get the UDP port number base for RAS channels.

References OpalManager::GetUDPPortMax(), and OpalEndPoint::manager.

void H323EndPoint::HoldCall | ( | const PString & | token,
|  | PBoolean | localHold
| ) |  |

Place the call on hold, suspending all media channels (H.450.4) NOTE: Only Local Hold is implemented so far.

Parameters:

  token | Existing connection to be transferred
  localHold | true for Local Hold, false for Remote Hold

bool H323EndPoint::InternalCreateGatekeeper | ( | H323Transport * | transport | ) |

protected

H323Connection* H323EndPoint::InternalMakeCall | ( | OpalCall & | call,
|  | const PString & | existingToken,
|  | const PString & | callIdentity,
|  | unsigned | capabilityLevel,
|  | const PString & | remoteParty,
|  | void * | userData,
|  | unsigned int | options = `0`,
|  | OpalConnection::StringOptions * | stringOptions = `NULL`
| ) |  |

protected

Parameters:

  existingToken | Existing connection to be transferred
  callIdentity | Call identity of the secondary call (if it exists)
  capabilityLevel | Intrusion capability level
  remoteParty | Remote party to call
  userData | user data to pass to CreateConnection
  options | options to pass to connection
  stringOptions | complex string options

PBoolean H323EndPoint::IntrudeCall | ( | const PString & | remoteParty,
|  | unsigned | capabilityLevel,
|  | void * | userData = `NULL`
| ) |  |

Initiate Call intrusion Designed similar to MakeCall function

Parameters:

  remoteParty | Remote party to intrude call
  capabilityLevel | Capability level
  userData | user data to pass to CreateConnection

virtual PBoolean H323EndPoint::IsConnectionEstablished | ( | const PString & | token | ) |

virtual

Determine if a connection is established.

Parameters:

  token | Token for identifying connection

PBoolean H323EndPoint::IsFastStartDisabled | ( |  | ) | const

inline

Get the default fast start mode.

References disableFastStart.

PBoolean H323EndPoint::IsGatekeeper | ( |  | ) | const

Determine if endpoint is gatekeeper type.

PBoolean H323EndPoint::IsGateway | ( |  | ) | const

Determine if endpoint is gateway type.

PBoolean H323EndPoint::IsH245Disabled | ( |  | ) | const

inline

find out if h245 is disabled or enabled

Returns:
  true if h245 is disabled

References m_bH245Disabled.

PBoolean H323EndPoint::IsH245inSetupDisabled | ( |  | ) | const

inline

Get the default H.245 tunneling mode.

References disableH245inSetup.

PBoolean H323EndPoint::IsH245TunnelingDisabled | ( |  | ) | const

inline

Get the default H.245 tunneling mode.

References disableH245Tunneling.

virtual PBoolean H323EndPoint::IsLocalAddress | ( | const PIPSocket::Address & | remoteAddress | ) | const

inline virtual

Determine if the address is "local", ie does not need STUN

References OpalManager::IsLocalAddress(), and OpalEndPoint::manager.

PBoolean H323EndPoint::IsMCU | ( |  | ) | const

Determine if endpoint is gatekeeper type.

PBoolean H323EndPoint::IsRegisteredWithGatekeeper | ( |  | ) | const

Return if endpoint is registered with gatekeeper.

PBoolean H323EndPoint::IsTerminal | ( |  | ) | const

Determine if endpoint is terminal type.

virtual void H323EndPoint::LoadBaseFeatureSet | ( |  | ) |

virtual

Load the Base FeatureSet usually called when you initialise the endpoint prior to registering with a gatekeeper.

PBoolean H323EndPoint::LocateGatekeeper | ( | const PString & | identifier,
|  | H323Transport * | transport = `NULL`
| ) |  |

Locate and select gatekeeper. This function will use the automatic gatekeeper discovery methods to locate the gatekeeper on the particular transport that has the specified gatekeeper identifier name. This is often the "Zone" for the gatekeeper.

Note the transport being passed in will be deleted becomes owned by the H323Gatekeeper created by this function and will be deleted by it. Also if transport is NULL then a H323TransportUDP is created.

Parameters:

  identifier | Identifier of gatekeeper to locate.
  transport | Transport over which to talk to gatekeeper.

virtual PSafePtr<OpalConnection> H323EndPoint::MakeConnection | ( | OpalCall & | call,
|  | const PString & | party,
|  | void * | userData = `NULL`,
|  | unsigned int | options = `NULL`,
|  | OpalConnection::StringOptions * | stringOptions = `NULL`
| ) |  |

virtual

Set up a connection to a remote party. This is called from the OpalManager::SetUpConnection() function once it has determined that this is the endpoint for the protocol.

The general form for this party parameter is:

     [proto:][alias@][transport$]address[:port]

where the various fields will have meanings specific to the endpoint type. For example, with H.323 it could be "h323:Fred@site.com" which indicates a user Fred at gatekeeper size.com. Whereas for the PSTN endpoint it could be "pstn:5551234" which is to call 5551234 on the first available PSTN line.

The proto field is optional when passed to a specific endpoint. If it is present, however, it must agree with the endpoints protocol name or false is returned.

This function usually returns almost immediately with the connection continuing to occur in a new background thread.

If false is returned then the connection could not be established. For example if a PSTN endpoint is used and the assiciated line is engaged then it may return immediately. Returning a non-NULL value does not mean that the connection will succeed, only that an attempt is being made.

The default behaviour is pure.

Parameters:

  call | Owner of connection
  party | Remote party to call
  userData | Arbitrary data to pass to connection
  options | options to pass to conneciton

Implements OpalEndPoint.

virtual PBoolean H323EndPoint::NewIncomingConnection | ( | OpalTransport * | transport | ) |

virtual

Handle new incoming connetion from listener.

Parameters:

  transport | Transport connection came in on

Reimplemented from OpalEndPoint.

virtual PBoolean H323EndPoint::OnAlerting | ( | H323Connection & | connection,
|  | const H323SignalPDU & | alertingPDU,
|  | const PString & | user
| ) |  |

virtual

Call back for remote party being alerted. This function is called from the SendSignalSetup() function after it receives the optional Alerting PDU from the remote endpoint. That is when the remote "phone" is "ringing".

If false is returned the connection is aborted and a Release Complete PDU is sent.

The default behaviour simply returns true.

Parameters:

  connection | Connection that was established
  alertingPDU | Received Alerting PDU
  user | Username of remote endpoint

virtual OpalConnection::AnswerCallResponse H323EndPoint::OnAnswerCall | ( | H323Connection & | connection,
|  | const PString & | callerName,
|  | const H323SignalPDU & | setupPDU,
|  | H323SignalPDU & | connectPDU,
|  | H323SignalPDU & | progressPDU
| ) |  |

virtual

Call back for answering an incoming call. This function is a H.323 specific version of OpalEndPoint::OnAnswerCall that contains additional information that applies only to H.323.

By default this calls OpalEndPoint::OnAnswerCall, which returns

Parameters:

  connection | Connection that was established
  callerName | Name of caller
  setupPDU | Received setup PDU
  connectPDU | Connect PDU to send.
  progressPDU | Progress PDU to send.

virtual OpalConnection::AnswerCallResponse H323EndPoint::OnAnswerCall | ( | OpalConnection & | connection,
|  | const PString & | caller
| ) |  |

virtual

Call back for answering an incoming call. This function is called after the connection has been acknowledged but before the connection is established

This gives the application time to wait for some event before signalling to the endpoint that the connection is to proceed. For example the user pressing an "Answer call" button.

If AnswerCallDenied is returned the connection is aborted and the connetion specific end call PDU is sent. If AnswerCallNow is returned then the connection proceeding, Finally if AnswerCallPending is returned then the protocol negotiations are paused until the AnsweringCall() function is called.

The default behaviour simply returns AnswerNow.

Reimplemented from OpalEndPoint.

virtual void H323EndPoint::OnCallCreditServiceControl | ( | const PString & | amount,
|  | PBoolean | mode
| ) |  |

virtual

Call back for call credit information. An application may override this to display call credit information on registration, or when a call is started.

The canDisplayAmountString member variable must also be set to true for this to operate.

The default behaviour does nothing.

Parameters:

  amount | UTF-8 string for amount, including currency.
  mode | Flag indicating that calls will debit the account.

virtual PBoolean H323EndPoint::OnCallIndependentSupplementaryService | ( | const H323SignalPDU & | setupPDU | ) |

virtual

Called when an endpoint receives a SETUP PDU with a conference goal of "callIndependentSupplementaryService"

The default behaviour is to return false, which will close the connection

virtual PBoolean H323EndPoint::OnCallTransferIdentify | ( | H323Connection & | connection | ) |

virtual

Handle a transfer via consultation. This gives the transferred-to user an opportunity to abort the transfer. The default behaviour just returns true.

Parameters:

  connection | Connection to transfer

virtual PBoolean H323EndPoint::OnCallTransferInitiate | ( | H323Connection & | connection,
|  | const PString & | remoteParty
| ) |  |

virtual

Handle a connection transfer. This gives the application an opportunity to abort the transfer. The default behaviour just returns true.

Parameters:

  connection | Connection to transfer
  remoteParty | Party transferring to.

virtual void H323EndPoint::OnClosedLogicalChannel | ( | H323Connection & | connection,
|  | const H323Channel & | channel
| ) |  |

virtual

Call back for closed a logical channel.

       The default behaviour does nothing.

Parameters:

  connection | Connection for the channel
  channel | Channel being started

virtual PBoolean H323EndPoint::OnConferenceInvite | ( | const H323SignalPDU & | setupPDU | ) |

virtual

Called when an endpoint receives a SETUP PDU with a conference goal of "invite"

The default behaviour is to return false, which will close the connection

virtual void H323EndPoint::OnConnectionEstablished | ( | H323Connection & | connection,
|  | const PString & | token
| ) |  |

virtual

A call back function whenever a connection is established. This indicates that a connection to a remote endpoint was established with a control channel and zero or more logical channels.

The default behaviour does nothing.

Parameters:

  connection | Connection that was established
  token | Token for identifying connection

virtual PBoolean H323EndPoint::OnConnectionForwarded | ( | H323Connection & | connection,
|  | const PString & | forwardParty,
|  | const H323SignalPDU & | pdu
| ) |  |

virtual

A call back function when a connection indicates it is to be forwarded. An H323 application may handle this call back so it can make complicated decisions on if the call forward ius to take place. If it decides to do so it must call MakeCall() and return true.

The default behaviour simply returns false and that the automatic call forwarding should take place. See ForwardConnection()

Parameters:

  connection | Connection to be forwarded
  forwardParty | Remote party to forward to
  pdu | Full PDU initiating forwarding

virtual bool H323EndPoint::OnFeatureInstance | ( | int | instType,
|  | const PString & | identifer
| ) |  |

virtual

Callback when creating Feature Instance. This can be used to disable features on a case by case basis by returning FALSE Default returns TRUE

virtual void H323EndPoint::OnGatekeeperConfirm | ( |  | ) |

virtual

Called when the gatekeeper sends a GatekeeperConfirm

virtual void H323EndPoint::OnGatekeeperNATDetect | ( | PIPSocket::Address | publicAddr,
|  | PString & | gkIdentifier,
|  | H323TransportAddress & | gkRouteAddress
| ) |  |

virtual

Call back from GK admission confirm to notify the Endpoint it is behind a NAT (GNUGK Gatekeeper). The default does nothing. Override this to notify the user they are behind a NAT.

Parameters:

  gkIdentifier

  > Public address as returned by the Gatekeeper

  gkRouteAddress

  > Identifier at the gatekeeper> Gatekeeper Route Address

virtual void H323EndPoint::OnGatekeeperReject | ( |  | ) |

virtual

Called when the gatekeeper sends a GatekeeperReject

virtual void H323EndPoint::OnHTTPServiceControl | ( | unsigned | operation,
|  | unsigned | sessionId,
|  | const PString & | url
| ) |  |

virtual

Call back for HTTP based Service Control. An application may override this to use an HTTP based channel using a resource designated by the session ID. For example the session ID can correspond to a browser window and the

The default behaviour does nothing.

Parameters:

  operation | Control operation
  sessionId | Session ID for HTTP page
  url | URL to use.

virtual PBoolean H323EndPoint::OnIncomingCall | ( | H323Connection & | connection,
|  | const H323SignalPDU & | setupPDU,
|  | H323SignalPDU & | alertingPDU
| ) |  |

virtual

Call back for incoming call. This function is called from the OnReceivedSignalSetup() function before it sends the Alerting PDU. It gives an opportunity for an application to alter the reply before transmission to the other endpoint.

If false is returned the connection is aborted and a Release Complete PDU is sent.

The default behaviour simply returns true.

Parameters:

  connection | Connection that was established
  setupPDU | Received setup PDU
  alertingPDU | Alerting PDU to send

virtual PBoolean H323EndPoint::OnNegotiateConferenceCapabilities | ( | const H323SignalPDU & | setupPDU | ) |

virtual

Called when an endpoint receives a SETUP PDU with a conference goal of "capability_negotiation"

The default behaviour is to return false, which will close the connection

virtual PBoolean H323EndPoint::OnOutgoingCall | ( | H323Connection & | conn,
|  | const H323SignalPDU & | connectPDU
| ) |  |

virtual

Called when an outgoing call connects If false is returned the connection is aborted and a Release Complete PDU is sent.

The default behaviour simply returns true.

virtual void H323EndPoint::OnReceivedInitiateReturnError | ( |  | ) |

virtual

Called from H.450 OnReceivedInitiateReturnError

virtual void H323EndPoint::OnReceiveFeatureSet | ( | unsigned | ,
|  | const H225_FeatureSet & |
| ) |  |

virtual

Called when an incoming PDU contains a feature set

virtual void H323EndPoint::OnRegistrationConfirm | ( |  | ) |

virtual

Called when the gatekeeper sends a RegistrationConfirm

virtual void H323EndPoint::OnRegistrationReject | ( |  | ) |

virtual

Called when the gatekeeper sends a RegistrationReject

virtual void H323EndPoint::OnRTPStatistics | ( | const H323Connection & | connection,
|  | const RTP_Session & | session
| ) |  | const

virtual

Callback from the RTP session for statistics monitoring. This is called every so many packets on the transmitter and receiver threads of the RTP session indicating that the statistics have been updated.

The default behaviour does nothing.

Parameters:

  connection | Connection for the channel
  session | Session with statistics

virtual PBoolean H323EndPoint::OnSendAlerting | ( | H323Connection & | connection,
|  | H323SignalPDU & | alerting,
|  | const PString & | calleeName,
|  | PBoolean | withMedia
| ) |  |

virtual

A call back function when the alerting is about to be sent, can be used by the application to alter the alerting Pdu

Returns:
  if false, then the alerting is not sent

Parameters:

  connection | onnection that was established
  alerting | Alerting PDU to modify
  calleeName | Name of endpoint being alerted.
  withMedia | Open media with alerting

virtual void H323EndPoint::OnSendARQ | ( | H323Connection & | conn,
|  | H225_AdmissionRequest & | arq
| ) |  |

virtual

Callback for ARQ send to a gatekeeper. This allows the endpoint to change or check fields in the ARQ before it is sent.

virtual PBoolean H323EndPoint::OnSendCallProceeding | ( | H323Connection & | connection,
|  | H323SignalPDU & | callProceedingPDU
| ) |  |

virtual

Adjust call proceeding PDU being sent. This function is called from the OnReceivedSignalSetup() function before it sends the Call Proceeding PDU. It gives an opportunity for an application to alter the request before transmission to the other endpoint. If this function returns false then the Call Proceeding PDU is not sent at all.

The default behaviour simply returns true.

Parameters:

  connection | the connection associated to the call proceeding
  callProceedingPDU | the call processding to modify

Returns:
  if false, do no send the connect pdu

virtual PBoolean H323EndPoint::OnSendConnect | ( | H323Connection & | connection,
|  | H323SignalPDU & | connectPDU
| ) |  |

virtual

Adjust call connect PDU being sent. This function is called from the H323Connection::SetConnected function before it sends the connect PDU. It gives an opportunity for an application to alter the request before transmission to the other endpoint. If this function returns false then the connect PDU is not sent at all.

The default behaviour simply returns true.

Parameters:

  connection | the connection associated to the connect
  connectPDU | the connect to modify

Returns:
  if false, do no send the connect pdu

virtual PBoolean H323EndPoint::OnSendFeatureSet | ( | unsigned | ,
|  | H225_FeatureSet & |
| ) |  |

virtual

Called when an outgoing PDU requires a feature set

virtual PBoolean H323EndPoint::OnSendSignalSetup | ( | H323Connection & | connection,
|  | H323SignalPDU & | setupPDU
| ) |  |

virtual

OnSendSignalSetup is a hook for the appliation to attach H450 info in setup, for instance, H450.7 Activate or Deactivate

Parameters:

  connection | the connection associated to the setup
  pduSetup | the setup message to modify

Returns:
  if false, do no send the setup pdu

virtual PBoolean H323EndPoint::OnSentAlerting | ( | H323Connection & | connection | ) |

virtual

A call back function when the alerting has been sent, can be used by the application to send the connect as soon as the alerting has been sent.

virtual void H323EndPoint::OnServiceControlSession | ( | unsigned | type,
|  | unsigned | sessionid,
|  | const H323ServiceControlSession & | session,
|  | H323Connection * | connection
| ) |  |

virtual

Handle incoming service control session information. Default behaviour calls session.OnChange()

virtual bool H323EndPoint::OnSetGatewayPrefixes | ( | PStringList & | prefixes | ) | const

virtual

Set the gateway prefixes Override this to set the acceptable prefixes to the gatekeeper

virtual PBoolean H323EndPoint::OnStartLogicalChannel | ( | H323Connection & | connection,
|  | H323Channel & | channel
| ) |  |

virtual

Call back for opening a logical channel.

       The default behaviour simply returns true.

Parameters:

  connection | Connection for the channel
  channel | Channel being started

PBoolean H323EndPoint::ParsePartyName | ( | const PString & | party,
|  | PString & | alias,
|  | H323TransportAddress & | address,
|  | OpalConnection::StringOptions * | stringOptions = `NULL`
| ) |  |

Parse a party address into alias and transport components. An appropriate transport is determined from the remoteParty parameter. The general form for this parameter is [alias@][transport$]host[:port] where the default alias is the same as the host, the default transport is "ip" and the default port is 1720.

Parameters:

  party | Party name string.
  alias | Parsed alias name
  address | Parsed transport address
  stringOptions | String options parsed from party name

PBoolean H323EndPoint::RemoveAliasName | ( | const PString & | name | ) |

Remove an alias name used for the local end of any connections. defaults to an empty list.

Parameters:

  name | New alias namer to add

void H323EndPoint::RemoveCapabilities | ( | const PStringArray & | codecNames | ) |

Remove capabilites in table.

PBoolean H323EndPoint::RemoveGatekeeper | ( | int | reason = `-1` | ) |

Unregister and delete the gatekeeper we are registered with. The return value indicates false if there was an error during the unregistration. However the gatekeeper is still removed and its instance deleted regardless of this error.

Parameters:

  reason | Reason for gatekeeper removal

void H323EndPoint::ReorderCapabilities | ( | const PStringArray & | preferenceOrder | ) |

Reorder capabilites in table.

void H323EndPoint::SetAudioJitterDelay | ( | unsigned | minDelay,
|  | unsigned | maxDelay
| ) |  |

inline

Set the maximum audio delay jitter parameter.

Parameters:

  minDelay | New minimum jitter buffer delay in milliseconds
  maxDelay | New maximum jitter buffer delay in milliseconds

References OpalEndPoint::manager, and OpalManager::SetAudioJitterDelay().

void H323EndPoint::SetCallIntrusionProtectionLevel | ( | unsigned | level | ) |

inline

Set Call Intrusion Protection Level of the end point.

Parameters:

  level | New level from 0 to 3

References callIntrusionProtectionLevel.

void H323EndPoint::SetCanDisplayAmountString | ( | PBoolean | mode | ) |

inline

Set the flag indicating the endpoint can display an amount string.

Parameters:

  mode | New default mode

References canDisplayAmountString.

void H323EndPoint::SetCanEnforceDurationLimit | ( | PBoolean | mode | ) |

inline

Set the flag indicating the call will automatically clear after a time.

Parameters:

  mode | New default mode

References canEnforceDurationLimit.

PINDEX H323EndPoint::SetCapability | ( | PINDEX | descriptorNum,
|  | PINDEX | simultaneous,
|  | H323Capability * | cap
| ) |  |

Set the capability descriptor lists. This is three tier set of codecs. The top most level is a list of particular capabilities. Each of these consists of a list of alternatives that can operate simultaneously. The lowest level is a list of codecs that cannot operate together. See H323 section 6.2.8.1 and H245 section 7.2 for details.

If descriptorNum is P_MAX_INDEX, the the next available index in the array of descriptors is used. Similarly if simultaneous is P_MAX_INDEX the the next available SimultaneousCapabilitySet is used. The return value is the index used for the new entry. Note if both are P_MAX_INDEX then the return value is the descriptor index as the simultaneous index must be zero.

Note that the capability specified here is automatically added to the capability table using the AddCapability() function. A specific instance of a capability is only ever added once, so multiple SetCapability() calls with the same H323Capability pointer will only add that capability once.

Parameters:

  descriptorNum | The member of the capabilityDescriptor to add
  simultaneous | The member of the SimultaneousCapabilitySet to add
  cap | New capability specification

void H323EndPoint::SetDefaultH239Control | ( | bool | on | ) |

inline

Set the default H.239 control capability.

Parameters:

  on | H.239 control capability is to be sent to remote

References m_defaultH239Control.

void H323EndPoint::SetDefaultILSServer | ( | const PString & | server | ) |

inline

Set the default ILS server to use for user lookup.

References OpalEndPoint::manager, and OpalManager::SetDefaultILSServer().

virtual void H323EndPoint::SetDefaultLocalPartyName | ( | const PString & | name | ) |

virtual

Set the default local party name for all connections on this endpoint.

Parameters:

  name | Name for local party

Reimplemented from OpalEndPoint.

virtual void H323EndPoint::SetEndpointTypeInfo | ( | H225_EndpointType & | info | ) | const

virtual

Set the endpoint information in H225 PDU's.

PBoolean H323EndPoint::SetGatekeeper | ( | const PString & | address,
|  | H323Transport * | transport = `NULL`
| ) |  |

Select and register with an explicit gatekeeper. This will use the specified transport and a string giving a transport dependent address to locate a specific gatekeeper. The endpoint will register with that gatekeeper and, if successful, set it as the current gatekeeper used by this endpoint.

Note the transport being passed in will be deleted by this function or the H323Gatekeeper object it becomes associated with. Also if transport is NULL then a H323TransportUDP is created.

Parameters:

  address | Address of gatekeeper to use.
  transport | Transport over which to talk to gatekeeper.

virtual void H323EndPoint::SetGatekeeperPassword | ( | const PString & | password,
|  | const PString & | username = `PString::Empty()`
| ) |  |

virtual

Set the H.235 password for the gatekeeper.

void H323EndPoint::SetGatekeeperTimeToLive | ( | const PTimeInterval & | ttl | ) |

inline

Set the default time for gatekeeper to reregister. A value of zero disables the keep alive facility.

References registrationTimeToLive.

PBoolean H323EndPoint::SetGatekeeperZone | ( | const PString & | address,
|  | const PString & | identifier,
|  | H323Transport * | transport = `NULL`
| ) |  |

Select and register with an explicit gatekeeper and zone. This will use the specified transport and a string giving a transport dependent address to locate a specific gatekeeper. The endpoint will register with that gatekeeper and, if successful, set it as the current gatekeeper used by this endpoint.

The gatekeeper identifier is set to the spplied parameter to allow the gatekeeper to either allocate a zone or sub-zone, or refuse to register if the zones do not match.

Note the transport being passed in will be deleted by this function or the H323Gatekeeper object it becomes associated with. Also if transport is NULL then a H323TransportUDP is created.

Parameters:

  address | Address of gatekeeper to use.
  identifier | Identifier of gatekeeper to use.
  transport | Transport over which to talk to gatekeeper.

virtual bool H323EndPoint::SetGatewaySupportedProtocol | ( | H225_ArrayOf_SupportedProtocols & | protocols | ) | const

virtual

Set the Gateway supported protocol default always H.323

void H323EndPoint::SetGkAccessTokenOID | ( | const PString & | token | ) |

inline

Set the iNow Gatekeeper Access Token OID.

References gkAccessTokenOID.

virtual void H323EndPoint::SetH221NonStandardInfo | ( | H225_H221NonStandard & | info | ) | const

virtual

Set the H221NonStandard information in H225 PDU's.

void H323EndPoint::SetInitialBandwidth | ( | unsigned | bandwidth | ) |

inline

Get the initial bandwidth parameter.

Reimplemented from OpalEndPoint.

References OpalEndPoint::initialBandwidth.

virtual void H323EndPoint::SetLocalUserName | ( | const PString & | name | ) |

virtual

Set the user name to be used for the local end of any connections. This defaults to the logged in user as obtained from the PProcess::GetUserName() function.

Note that this name is technically the first alias for the endpoint. Additional aliases may be added by the use of the AddAliasName() function, however that list will be cleared when this function is used.

Parameters:

  name | Local name of endpoint (prime alias)

PBoolean H323EndPoint::SetNoMediaTimeout | ( | const PTimeInterval & | newInterval | ) |

inline

Set the amount of time with no media that should cause call to clear

Parameters:

  newInterval | New timeout for media

References OpalEndPoint::manager, and OpalManager::SetNoMediaTimeout().

void H323EndPoint::SetRtpIpPorts | ( | unsigned | udpBase,
|  | unsigned | udpMax
| ) |  |

inline

Set the UDP port number base and max for RTP channels.

References OpalEndPoint::manager, and OpalManager::SetRtpIpPorts().

void P_DEPRECATED H323EndPoint::SetRtpIpTypeofService | ( | unsigned | tos | ) |

inline

Set the IP Type Of Service byte for RTP channels.

References OpalEndPoint::manager, and OpalManager::SetMediaTypeOfService().

void H323EndPoint::SetSendGRQ | ( | PBoolean | v | ) |

inline

Sent flag to indicate whether to send GRQ on gatekeeper registration

References sendGRQ.

void H323EndPoint::SetTCPPorts | ( | unsigned | tcpBase,
|  | unsigned | tcpMax
| ) |  |

inline

Set the TCP port number base and max for H.245 channels.

References OpalEndPoint::manager, and OpalManager::SetTCPPorts().

void H323EndPoint::SetTerminalType | ( | TerminalTypes | type | ) |

inline

Get the endpoint terminal type.

References terminalType.

void H323EndPoint::SetUDPPorts | ( | unsigned | udpBase,
|  | unsigned | udpMax
| ) |  |

inline

Set the TCP port number base and max for H.245 channels.

References OpalEndPoint::manager, and OpalManager::SetUDPPorts().

virtual PBoolean H323EndPoint::SetupTransfer | ( | const PString & | token,
|  | const PString & | callIdentity,
|  | const PString & | remoteParty,
|  | void * | userData = `NULL`
| ) |  |

virtual

Setup the transfer of an existing call (connection) to a new remote party using H.450.2. This sends a Call Transfer Setup Invoke message from the B-Party (transferred endpoint) to the C-Party (transferred-to endpoint).

If the transport parameter is NULL the transport is determined from the remoteParty description. The general form for this parameter is [alias@][transport$]host[:port] where the default alias is the same as the host, the default transport is "ip" and the default port is 1720.

This function returns almost immediately with the transfer occurring in a new background thread.

This function is declared virtual to allow an application to override the function and get the new call token of the forwarded call.

Parameters:

  token | Existing connection to be transferred
  callIdentity | Call identity of the secondary call (if it exists)
  remoteParty | Remote party to transfer the existing call to
  userData | user data to pass to CreateConnection

virtual void H323EndPoint::SetVendorIdentifierInfo | ( | H225_VendorIdentifier & | info | ) | const

virtual

Set the vendor information in H225 PDU's.

PBoolean H323EndPoint::ShouldClearCallOnRoundTripFail | ( |  | ) | const

inline

Get the flag for clearing a call if the round trip delay calculation fails.

References clearCallOnRoundTripFail.

virtual void H323EndPoint::ShutDown | ( |  | ) |

virtual

Shut down the endpoint, this is called by the OpalManager just before destroying the object and can be handy to make sure some things are stopped before the vtable gets clobbered.

Reimplemented from OpalEndPoint.

void H323EndPoint::TransferCall | ( | const PString & | token,
|  | const PString & | remoteParty,
|  | const PString & | callIdentity = `PString::Empty()`
| ) |  |

Initiate the transfer of an existing call (connection) to a new remote party using H.450.2. This sends a Call Transfer Initiate Invoke message from the A-Party (transferring endpoint) to the B-Party (transferred endpoint).

Parameters:

  token | Existing connection to be transferred
  remoteParty | Remote party to transfer the existing call to
  callIdentity | Call Identity of secondary call if present

virtual void H323EndPoint::TranslateTCPAddress | ( | PIPSocket::Address & | localAddr,
|  | const PIPSocket::Address & | remoteAddr
| ) |  |

virtual

Provide TCP address translation hook

PBoolean H323EndPoint::UseGatekeeper | ( | const PString & | address = `PString::Empty()`,
|  | const PString & | identifier = `PString::Empty()`,
|  | const PString & | localAddress = `PString::Empty()`
| ) |  |

Use and register with an explicit gatekeeper. This will call other functions according to the following table:

    address    identifier   function
    empty      empty        DiscoverGatekeeper()
    non-empty  empty        SetGatekeeper()
    empty      non-empty    LocateGatekeeper()
    non-empty  non-empty    SetGatekeeperZone()

The localAddress field, if non-empty, indicates the interface on which to look for the gatekeeper. An empty string is equivalent to "ip$*:*" which is any interface or port.

If the endpoint is already registered with a gatekeeper that meets the same criteria then the gatekeeper is not changed, otherwise it is deleted (with unregistration) and new one created and registered to.

Note that a gatekeeper address of "*" is treated like an empty string resulting in gatekeeper discovery.

Parameters:

  address | Address of gatekeeper to use.
  identifier | Identifier of gatekeeper to use.
  localAddress | Local interface to use.

## Field Documentation

PBoolean H323EndPoint::autoCallForward

protected

Referenced by CanAutoCallForward().

unsigned H323EndPoint::callIntrusionProtectionLevel

protected

Referenced by GetCallIntrusionProtectionLevel(), and SetCallIntrusionProtectionLevel().

PTimeInterval H323EndPoint::callIntrusionT1

protected

Call Intrusion Timers

Referenced by GetCallIntrusionT1().

PTimeInterval H323EndPoint::callIntrusionT2

protected

Referenced by GetCallIntrusionT2().

PTimeInterval H323EndPoint::callIntrusionT3

protected

Referenced by GetCallIntrusionT3().

PTimeInterval H323EndPoint::callIntrusionT4

protected

Referenced by GetCallIntrusionT4().

PTimeInterval H323EndPoint::callIntrusionT5

protected

Referenced by GetCallIntrusionT5().

PTimeInterval H323EndPoint::callIntrusionT6

protected

Referenced by GetCallIntrusionT6().

PTimeInterval H323EndPoint::callTransferT1

protected

Referenced by GetCallTransferT1().

PTimeInterval H323EndPoint::callTransferT2

protected

Referenced by GetCallTransferT2().

PTimeInterval H323EndPoint::callTransferT3

protected

Referenced by GetCallTransferT3().

PTimeInterval H323EndPoint::callTransferT4

protected

Referenced by GetCallTransferT4().

PBoolean H323EndPoint::canDisplayAmountString

protected

Referenced by CanDisplayAmountString(), and SetCanDisplayAmountString().

PBoolean H323EndPoint::canEnforceDurationLimit

protected

Referenced by CanEnforceDurationLimit(), and SetCanEnforceDurationLimit().

H323Capabilities H323EndPoint::capabilities

mutable protected

PTimeInterval H323EndPoint::capabilityExchangeTimeout

protected

Referenced by GetCapabilityExchangeTimeout().

PBoolean H323EndPoint::clearCallOnRoundTripFail

protected

Referenced by ShouldClearCallOnRoundTripFail().

PTimeInterval H323EndPoint::controlChannelStartTimeout

protected

Referenced by GetControlChannelStartTimeout().

PBoolean H323EndPoint::disableFastStart

protected

Referenced by DisableFastStart(), and IsFastStartDisabled().

PBoolean H323EndPoint::disableH245inSetup

protected

Referenced by DisableH245inSetup(), and IsH245inSetupDisabled().

PBoolean H323EndPoint::disableH245Tunneling

protected

Referenced by DisableH245Tunneling(), and IsH245TunnelingDisabled().

bool H323EndPoint::disableH460

protected

Next available callIdentity for H450 Transfer operations via consultation.

Referenced by FeatureSetDisable(), and FeatureSetDisabled().

PTimeInterval H323EndPoint::endSessionTimeout

protected

Referenced by GetEndSessionTimeout().

H460_FeatureSet H323EndPoint::features

protected

Referenced by GetFeatureSet().

H323Gatekeeper* H323EndPoint::gatekeeper

protected

Referenced by GetGatekeeper().

PString H323EndPoint::gatekeeperPassword

protected

Referenced by GetGatekeeperPassword().

unsigned H323EndPoint::gatekeeperRequestRetries

protected

Referenced by GetGatekeeperRequestRetries().

PTimeInterval H323EndPoint::gatekeeperRequestTimeout

protected

Referenced by GetGatekeeperRequestTimeout().

PString H323EndPoint::gatekeeperUsername

protected

Referenced by GetGatekeeperUsername().

PString H323EndPoint::gkAccessTokenOID

protected

Referenced by GetGkAccessTokenOID(), and SetGkAccessTokenOID().

PStringList H323EndPoint::localAliasNames

protected

Referenced by GetAliasNames(), and GetLocalUserName().

PStringList H323EndPoint::localAliasPatterns

protected

Referenced by GetAliasNamePatterns().

PTimeInterval H323EndPoint::logicalChannelTimeout

protected

Referenced by GetLogicalChannelTimeout(), and GetRequestModeTimeout().

PBoolean H323EndPoint::m_bH245Disabled

protected

Referenced by DisableH245(), and IsH245Disabled().

bool H323EndPoint::m_defaultH239Control

protected

Referenced by GetDefaultH239Control(), and SetDefaultH239Control().

unsigned H323EndPoint::masterSlaveDeterminationRetries

protected

Referenced by GetMasterSlaveDeterminationRetries().

PTimeInterval H323EndPoint::masterSlaveDeterminationTimeout

protected

Referenced by GetMasterSlaveDeterminationTimeout().

PAtomicInteger H323EndPoint::nextH450CallIdentity

mutable protected

Referenced by GetNextH450CallIdentityValue().

unsigned H323EndPoint::rasRequestRetries

protected

Referenced by GetRasRequestRetries().

PTimeInterval H323EndPoint::rasRequestTimeout

protected

Referenced by GetRasRequestTimeout().

PTimeInterval H323EndPoint::registrationTimeToLive

protected

Referenced by GetGatekeeperTimeToLive(), and SetGatekeeperTimeToLive().

PTimeInterval H323EndPoint::requestModeTimeout

protected

PTimeInterval H323EndPoint::roundTripDelayRate

protected

Referenced by GetRoundTripDelayRate().

PTimeInterval H323EndPoint::roundTripDelayTimeout

protected

Referenced by GetRoundTripDelayTimeout().

H323CallIdentityDict H323EndPoint::secondaryConnectionsActive

protected

Referenced by GetCallIdentityDictionary().

PBoolean H323EndPoint::sendGRQ

protected

Referenced by GetSendGRQ(), and SetSendGRQ().

PTimeInterval H323EndPoint::signallingChannelCallTimeout

protected

Referenced by GetSignallingChannelCallTimeout().

TerminalTypes H323EndPoint::terminalType

protected

Referenced by GetTerminalType(), and SetTerminalType().

The documentation for this class was generated from the following file:

- h323ep.h