Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

H323EndPoint Class Reference

#include <h323ep.h>

List of all members.

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 SetLocalUserName (const PString &name)
virtual const PString & GetLocalUserName () const
BOOL AddAliasName (const PString &name)
BOOL RemoveAliasName (const PString &name)
const PStringList & GetAliasNames () const
const PString & GetDefaultILSServer () const
void SetDefaultILSServer (const PString &server)
BOOL IsFastStartDisabled () const
void DisableFastStart (BOOL mode)
BOOL IsH245TunnelingDisabled () const
void DisableH245Tunneling (BOOL mode)
BOOL IsH245inSetupDisabled () const
void DisableH245inSetup (BOOL mode)
BOOL DetectInBandDTMFDisabled () const
void DisableDetectInBandDTMF (BOOL mode)
BOOL CanDisplayAmountString () const
void SetCanDisplayAmountString (BOOL mode)
BOOL CanEnforceDurationLimit () const
void SetCanEnforceDurationLimit (BOOL mode)
unsigned GetCallIntrusionProtectionLevel () const
void SetCallIntrusionProtectionLevel (unsigned level)
virtual BOOL SetSoundChannelPlayDevice (const PString &name)
virtual BOOL SetSoundChannelPlayDriver (const PString &name)
const PString & GetSoundChannelPlayDevice () const
const PString & GetSoundChannelPlayDriver () const
virtual BOOL SetSoundChannelRecordDevice (const PString &name)
virtual BOOL SetSoundChannelRecordDriver (const PString &name)
const PString & GetSoundChannelRecordDevice () const
const PString & GetSoundChannelRecordDriver () const
unsigned GetSoundChannelBufferDepth () const
void SetSoundChannelBufferDepth (unsigned depth)
H323AudioCodec::SilenceDetectionMode GetSilenceDetectionMode () const
void SetSilenceDetectionMode (H323AudioCodec::SilenceDetectionMode mode)
H323Connection::SendUserInputModes GetSendUserInputMode () const
void SetSendUserInputMode (H323Connection::SendUserInputModes mode)
BOOL CanAutoStartReceiveVideo () const
BOOL CanAutoStartTransmitVideo () const
BOOL CanAutoStartReceiveFax () const
BOOL CanAutoStartTransmitFax () const
BOOL CanAutoCallForward () const
const H323ListenerList & GetListeners () const
const H323CapabilitiesGetCapabilities () const
TerminalTypes GetTerminalType () const
BOOL IsTerminal () const
BOOL IsGateway () const
BOOL IsGatekeeper () const
BOOL IsMCU () const
unsigned GetMinAudioJitterDelay () const
unsigned GetMaxAudioJitterDelay () const
void SetAudioJitterDelay (unsigned minDelay, unsigned maxDelay)
unsigned GetInitialBandwidth () const
void SetInitialBandwidth (unsigned bandwidth)
virtual BOOL OnSendFeatureSet (unsigned, H225_FeatureSet &)
virtual void OnReceiveFeatureSet (unsigned, const H225_FeatureSet &)
PSTUNClient * GetSTUN (const PIPSocket::Address &address=0) const
void SetSTUNServer (const PString &server)
virtual BOOL IsLocalAddress (const PIPSocket::Address &remoteAddress) const
virtual void TranslateTCPAddress (PIPSocket::Address &, const PIPSocket::Address &)
void InternalTranslateTCPAddress (PIPSocket::Address &, const PIPSocket::Address &)
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 GetRtpIpTypeofService () const
void 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
BOOL ShouldClearCallOnRoundTripFail () const
const PTimeInterval & GetNoMediaTimeout () const
BOOL SetNoMediaTimeout (PTimeInterval newInterval)
const PTimeInterval & GetGatekeeperRequestTimeout () const
unsigned GetGatekeeperRequestRetries () const
const PTimeInterval & GetRasRequestTimeout () const
unsigned GetRasRequestRetries () const
const PTimeInterval & GetGatekeeperTimeToLive () const
const PString & GetGkAccessTokenOID () const
void SetGkAccessTokenOID (const PString &token)
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
PINDEX GetCleanerThreadStackSize () const
PINDEX GetListenerThreadStackSize () const
PINDEX GetSignallingThreadStackSize () const
PINDEX GetControlThreadStackSize () const
PINDEX GetChannelThreadStackSize () const
PINDEX GetRasThreadStackSize () const
PINDEX GetJitterThreadStackSize () const
PThread::Priority GetChannelThreadPriority () const
H323CallIdentityDict & GetCallIdentityDictionary ()

Connection management

BOOL StartListener (H323Listener *listener)
BOOL StartListener (const H323TransportAddress &iface)
BOOL StartListeners (const H323TransportAddressArray &ifaces)
BOOL RemoveListener (H323Listener *listener)
H323TransportAddressArray GetInterfaceAddresses (BOOL excludeLocalHost=TRUE, H323Transport *associatedTransport=NULL)
H323ConnectionMakeCall (const PString &remoteParty, PString &token, void *userData=NULL)
H323ConnectionMakeCall (const PString &remoteParty, H323Transport *transport, PString &token, void *userData=NULL)
H323ConnectionMakeCallLocked (const PString &remoteParty, PString &token, void *userData=NULL, H323Transport *transport=NULL)
virtual H323ConnectionSetupTransfer (const PString &token, const PString &callIdentity, const PString &remoteParty, PString &newToken, 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, BOOL localHold)
H323ConnectionIntrudeCall (const PString &remoteParty, PString &token, unsigned capabilityLevel, void *userData=NULL)
H323ConnectionIntrudeCall (const PString &remoteParty, H323Transport *transport, PString &token, unsigned capabilityLevel, void *userData=NULL)
BOOL ParsePartyName (const PString &party, PString &alias, H323TransportAddress &address)
virtual BOOL ClearCall (const PString &token, H323Connection::CallEndReason reason=H323Connection::EndedByLocalUser)
virtual BOOL ClearCallSynchronous (const PString &token, H323Connection::CallEndReason reason=H323Connection::EndedByLocalUser)
virtual BOOL ClearCallSynchronous (const PString &token, H323Connection::CallEndReason reason, PSyncPoint *sync)
virtual void ClearAllCalls (H323Connection::CallEndReason reason=H323Connection::EndedByLocalUser, BOOL wait=TRUE)
virtual BOOL HasConnection (const PString &token)
H323ConnectionFindConnectionWithLock (const PString &token)
PStringList GetAllConnections ()
virtual BOOL OnIncomingCall (H323Connection &connection, const H323SignalPDU &setupPDU, H323SignalPDU &alertingPDU)
virtual BOOL OnCallTransferInitiate (H323Connection &connection, const PString &remoteParty)
virtual BOOL OnCallTransferIdentify (H323Connection &connection)
virtual void OnSendARQ (H323Connection &conn, H225_AdmissionRequest &arq)
virtual H323Connection::AnswerCallResponse OnAnswerCall (H323Connection &connection, const PString &callerName, const H323SignalPDU &setupPDU, H323SignalPDU &connectPDU)
virtual BOOL OnAlerting (H323Connection &connection, const H323SignalPDU &alertingPDU, const PString &user)
virtual BOOL OnConnectionForwarded (H323Connection &connection, const PString &forwardParty, const H323SignalPDU &pdu)
virtual BOOL ForwardConnection (H323Connection &connection, const PString &forwardParty, const H323SignalPDU &pdu)
virtual void OnConnectionEstablished (H323Connection &connection, const PString &token)
virtual BOOL IsConnectionEstablished (const PString &token)
virtual void OnConnectionCleared (H323Connection &connection, const PString &token)
virtual H323ConnectionOnIncomingConnection (H323Transport *transport, H323SignalPDU &setupPDU)
virtual BOOL OnOutgoingCall (H323Connection &conn, const H323SignalPDU &connectPDU)
virtual H323ConnectionCreateConnection (unsigned callReference, void *userData, H323Transport *transport, H323SignalPDU *setupPDU)
virtual H323ConnectionCreateConnection (unsigned callReference, void *userData)
virtual H323ConnectionCreateConnection (unsigned callReference)
virtual void CleanUpConnections ()
static PString BuildConnectionToken (const H323Transport &transport, unsigned callReference, BOOL fromRemote)

Public Types

enum  { DefaultTcpPort = 1720 }

Public Member Functions

Construction
 H323EndPoint ()
 ~H323EndPoint ()
virtual void SetEndpointTypeInfo (H225_EndpointType &info) const
virtual void SetVendorIdentifierInfo (H225_VendorIdentifier &info) const
virtual void SetH221NonStandardInfo (H225_H221NonStandard &info) 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)
H323CapabilityFindCapability (const H245_Capability &cap) const
H323CapabilityFindCapability (const H245_DataType &dataType) const
H323CapabilityFindCapability (H323Capability::MainTypes mainType, unsigned subType) const
Gatekeeper management
BOOL UseGatekeeper (const PString &address=PString::Empty(), const PString &identifier=PString::Empty(), const PString &localAddress=PString::Empty())
BOOL SetGatekeeper (const PString &address, H323Transport *transport=NULL)
BOOL SetGatekeeperZone (const PString &address, const PString &identifier, H323Transport *transport=NULL)
BOOL LocateGatekeeper (const PString &identifier, H323Transport *transport=NULL)
BOOL DiscoverGatekeeper (H323Transport *transport=NULL)
virtual H323GatekeeperCreateGatekeeper (H323Transport *transport)
H323GatekeeperGetGatekeeper () const
BOOL IsRegisteredWithGatekeeper () const
BOOL RemoveGatekeeper (int reason=-1)
virtual void SetGatekeeperPassword (const PString &password)
virtual const PString & GetGatekeeperPassword () const
virtual H235Authenticators CreateAuthenticators ()
virtual void OnGatekeeperConfirm ()
virtual void OnGatekeeperReject ()
virtual void OnRegistrationConfirm ()
virtual void OnRegistrationReject ()
Logical Channels management
virtual BOOL OnStartLogicalChannel (H323Connection &connection, H323Channel &channel)
virtual void OnClosedLogicalChannel (H323Connection &connection, const H323Channel &channel)
virtual BOOL OpenAudioChannel (H323Connection &connection, BOOL isEncoding, unsigned bufferSize, H323AudioCodec &codec)
virtual BOOL OpenVideoChannel (H323Connection &connection, BOOL isEncoding, H323VideoCodec &codec)
virtual void OnRTPStatistics (const H323Connection &connection, const RTP_Session &session) const
Indications
virtual void OnUserInputString (H323Connection &connection, const PString &value)
virtual void OnUserInputTone (H323Connection &connection, char tone, unsigned duration, unsigned logicalChannel, unsigned rtpTimestamp)
Service Control
virtual void OnHTTPServiceControl (unsigned operation, unsigned sessionId, const PString &url)
virtual void OnCallCreditServiceControl (const PString &amount, BOOL mode)
virtual void OnServiceControlSession (unsigned type, unsigned sessionid, const H323ServiceControlSession &session, H323Connection *connection)
virtual H323ServiceControlSessionCreateServiceControlSession (const H225_ServiceControlDescriptor &contents)
Other services
virtual OpalT120ProtocolCreateT120ProtocolHandler (const H323Connection &connection) const
virtual OpalT38ProtocolCreateT38ProtocolHandler (const H323Connection &connection) const
Additional call services
virtual BOOL OnConferenceInvite (const H323SignalPDU &setupPDU)
virtual BOOL OnCallIndependentSupplementaryService (const H323SignalPDU &setupPDU)
virtual BOOL OnNegotiateConferenceCapabilities (const H323SignalPDU &setupPDU)

Static Public Attributes

static BYTE defaultT35CountryCode
static BYTE defaultT35Extension
static WORD defaultManufacturerCode

Protected Member Functions

H323GatekeeperInternalCreateGatekeeper (H323Transport *transport)
BOOL InternalRegisterGatekeeper (H323Gatekeeper *gk, BOOL discovered)
H323ConnectionFindConnectionWithoutLocks (const PString &token)
virtual H323ConnectionInternalMakeCall (const PString &existingToken, const PString &callIdentity, unsigned capabilityLevel, const PString &remoteParty, H323Transport *transport, PString &token, void *userData)

Protected Attributes

PStringList localAliasNames
PString soundChannelPlayDevice
PString soundChannelPlayDriver
PString soundChannelRecordDevice
PString soundChannelRecordDriver
PString videoChannelPlayDevice
PString videoChannelRecordDevice
BOOL autoStartReceiveVideo
BOOL autoStartTransmitVideo
BOOL autoStartReceiveFax
BOOL autoStartTransmitFax
BOOL autoCallForward
BOOL disableFastStart
BOOL disableH245Tunneling
BOOL disableH245inSetup
BOOL disableDetectInBandDTMF
BOOL canDisplayAmountString
BOOL canEnforceDurationLimit
unsigned callIntrusionProtectionLevel
H323AudioCodec::SilenceDetectionMode defaultSilenceDetection
H323Connection::SendUserInputModes defaultSendUserInputMode
PString ilsServer
unsigned soundChannelBuffers
BYTE rtpIpTypeofService
PTimeInterval signallingChannelCallTimeout
PTimeInterval controlChannelStartTimeout
PTimeInterval endSessionTimeout
PTimeInterval masterSlaveDeterminationTimeout
unsigned masterSlaveDeterminationRetries
PTimeInterval capabilityExchangeTimeout
PTimeInterval logicalChannelTimeout
PTimeInterval requestModeTimeout
PTimeInterval roundTripDelayTimeout
PTimeInterval roundTripDelayRate
PTimeInterval noMediaTimeout
PTimeInterval gatekeeperRequestTimeout
unsigned gatekeeperRequestRetries
PTimeInterval rasRequestTimeout
unsigned rasRequestRetries
PTimeInterval registrationTimeToLive
PString gkAccessTokenOID
unsigned minAudioJitterDelay
unsigned maxAudioJitterDelay
unsigned initialBandwidth
BOOL clearCallOnRoundTripFail
H323EndPoint::PortInfo tcpPorts
H323EndPoint::PortInfo udpPorts
H323EndPoint::PortInfo rtpIpPorts
PSTUNClient * stun
BYTE t35CountryCode
BYTE t35Extension
WORD manufacturerCode
TerminalTypes terminalType
PTimeInterval callTransferT1
PTimeInterval callTransferT2
PTimeInterval callTransferT3
PTimeInterval callTransferT4
PTimeInterval callIntrusionT1
PTimeInterval callIntrusionT2
PTimeInterval callIntrusionT3
PTimeInterval callIntrusionT4
PTimeInterval callIntrusionT5
PTimeInterval callIntrusionT6
PINDEX cleanerThreadStackSize
PINDEX listenerThreadStackSize
PINDEX signallingThreadStackSize
PINDEX controlThreadStackSize
PINDEX logicalThreadStackSize
PINDEX rasThreadStackSize
PINDEX jitterThreadStackSize
PThread::Priority channelThreadPriority
H323ListenerList listeners
H323Capabilities capabilities
H323Gatekeepergatekeeper
PString gatekeeperPassword
H323ConnectionDict connectionsActive
H323CallIdentityDict secondaryConnectionsActive
PMutex connectionsMutex
PMutex noMediaMutex
PStringSet connectionsToBeCleaned
H323ConnectionsCleaner * connectionsCleaner
PSyncPoint connectionsAreCleaned

Classes

struct  PortInfo


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 conenctions 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
 

Enumeration values:
DefaultTcpPort 

enum H323EndPoint::TerminalTypes
 

Endpoint types.

Enumeration values:
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  ) 
 

Create a new endpoint.

H323EndPoint::~H323EndPoint  ) 
 

Destroy endpoint.


Member Function Documentation

BOOL 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

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:
simultaneous  The member of the capabilityDescriptor to add
name  The member of the SimultaneousCapabilitySet to add 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:
simultaneous  The member of the capabilityDescriptor to add 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

static PString H323EndPoint::BuildConnectionToken const H323Transport transport,
unsigned  callReference,
BOOL  fromRemote
[static]
 

Build a unique token for the connection. This identifies the call using the Q931 transport host name and the Q931 call reference number.

Parameters:
callReference  Transport for connection
fromRemote  Call reference of Q.931 link Call reference is from remote endpoint

BOOL H323EndPoint::CanAutoCallForward  )  const [inline]
 

See if should automatically do call forward of connection.

BOOL H323EndPoint::CanAutoStartReceiveFax  )  const [inline]
 

See if should auto-start receive fax channels on connection.

BOOL H323EndPoint::CanAutoStartReceiveVideo  )  const [inline]
 

See if should auto-start receive video channels on connection.

BOOL H323EndPoint::CanAutoStartTransmitFax  )  const [inline]
 

See if should auto-start transmit fax channels on connection.

BOOL H323EndPoint::CanAutoStartTransmitVideo  )  const [inline]
 

See if should auto-start transmit video channels on connection.

BOOL H323EndPoint::CanDisplayAmountString  )  const [inline]
 

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

BOOL H323EndPoint::CanEnforceDurationLimit  )  const [inline]
 

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

virtual void H323EndPoint::CleanUpConnections  )  [virtual]
 

Clean up connections. This function is called from a background thread and checks for closed connections to clean up.

This would not normally be called by an application.

virtual void H323EndPoint::ClearAllCalls H323Connection::CallEndReason  reason = H323Connection::EndedByLocalUser,
BOOL  wait = TRUE
[virtual]
 

Clear all current connections. This hangs up all the connections to remote endpoints. The wait parameter is used to wait for all the calls to be cleared and their memory usage cleaned up before returning. This is typically used in the destructor for your descendant of H323EndPoint.

Parameters:
wait  Reason for call clearing Flag for wait for calls to e cleared.

virtual BOOL H323EndPoint::ClearCall const PString &  token,
H323Connection::CallEndReason  reason = H323Connection::EndedByLocalUser
[virtual]
 

Clear a current connection. This hangs up the connection to a remote endpoint. Note that this function is asynchronous

Parameters:
reason  Token for identifying connection Reason for call clearing

virtual BOOL H323EndPoint::ClearCallSynchronous const PString &  token,
H323Connection::CallEndReason  reason,
PSyncPoint *  sync
[virtual]
 

Parameters:
reason  Token for identifying connection
sync  Reason for call clearing

virtual BOOL H323EndPoint::ClearCallSynchronous const PString &  token,
H323Connection::CallEndReason  reason = H323Connection::EndedByLocalUser
[virtual]
 

Clear a current connection. This hangs up the connection to a remote endpoint. Note that these functions are synchronous

Parameters:
reason  Token for identifying connection Reason for call clearing

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:
secondaryCallToken  Token of primary call Token of secondary call

virtual H235Authenticators H323EndPoint::CreateAuthenticators  )  [virtual]
 

Create a list of authenticators for gatekeeper.

virtual H323Connection* H323EndPoint::CreateConnection unsigned  callReference  )  [virtual]
 

Parameters:
callReference  Call reference to use

virtual H323Connection* H323EndPoint::CreateConnection unsigned  callReference,
void *  userData
[virtual]
 

Parameters:
userData  Call reference to use user data to pass to CreateConnection

virtual H323Connection* H323EndPoint::CreateConnection unsigned  callReference,
void *  userData,
H323Transport transport,
H323SignalPDU setupPDU
[virtual]
 

Create a connection that uses the specified call reference.

Parameters:
userData  Call reference to use
transport  user data to pass to CreateConnection
setupPDU  Transport for connection Setup PDU, NULL if outgoing call

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.

virtual OpalT120Protocol* H323EndPoint::CreateT120ProtocolHandler const H323Connection connection  )  const [virtual]
 

Create an instance of the T.120 protocol handler. This is called when the OpenLogicalChannel subsystem requires that a T.120 channel be established.

Note that if the application overrides this it should return a pointer to a heap variable (using new) as it will be automatically deleted when the H323Connection is deleted.

The default behavour returns NULL.

Parameters:
connection  Connection for which T.120 handler created

virtual OpalT38Protocol* H323EndPoint::CreateT38ProtocolHandler const H323Connection connection  )  const [virtual]
 

Create an instance of the T.38 protocol handler. This is called when the OpenLogicalChannel subsystem requires that a T.38 fax channel be established.

Note that if the application overrides this it should return a pointer to a heap variable (using new) as it will be automatically deleted when the H323Connection is deleted.

The default behavour returns NULL.

Parameters:
connection  Connection for which T.38 handler created

BOOL H323EndPoint::DetectInBandDTMFDisabled  )  const [inline]
 

Get the detect in-band DTMF flag.

void H323EndPoint::DisableDetectInBandDTMF BOOL  mode  )  [inline]
 

Set the detect in-band DTMF flag.

Parameters:
mode  New default mode

void H323EndPoint::DisableFastStart BOOL  mode  )  [inline]
 

Set the default fast start mode.

Parameters:
mode  New default mode

void H323EndPoint::DisableH245inSetup BOOL  mode  )  [inline]
 

Set the default H.245 tunneling mode.

Parameters:
mode  New default mode

void H323EndPoint::DisableH245Tunneling BOOL  mode  )  [inline]
 

Set the default H.245 tunneling mode.

Parameters:
mode  New default mode

BOOL 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.

H323Capability* H323EndPoint::FindCapability H323Capability::MainTypes  mainType,
unsigned  subType
const
 

Find a capability that has been registered.

Parameters:
subType  Main type of codec Subtype of codec

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 const H245_Capability cap  )  const
 

Find a capability that has been registered.

Parameters:
cap  H245 capability table entry

H323Connection* H323EndPoint::FindConnectionWithLock const PString &  token  ) 
 

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() (as built by the BuildConnectionToken() function). 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

H323Connection* H323EndPoint::FindConnectionWithoutLocks const PString &  token  )  [protected]
 

virtual BOOL 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:
forwardParty  Connection to be forwarded
pdu  Remote party to forward to Full PDU initiating forwarding

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.

PStringList H323EndPoint::GetAllConnections  ) 
 

Get all calls current on the endpoint.

H323CallIdentityDict& H323EndPoint::GetCallIdentityDictionary  )  [inline]
 

Get the dictionary of <callIdentities, connections>

unsigned H323EndPoint::GetCallIntrusionProtectionLevel  )  const [inline]
 

Get Call Intrusion Protection Level of the end point.

const PTimeInterval& H323EndPoint::GetCallIntrusionT1  )  const [inline]
 

Get Call Intrusion timers timeout

const PTimeInterval& H323EndPoint::GetCallIntrusionT2  )  const [inline]
 

const PTimeInterval& H323EndPoint::GetCallIntrusionT3  )  const [inline]
 

const PTimeInterval& H323EndPoint::GetCallIntrusionT4  )  const [inline]
 

const PTimeInterval& H323EndPoint::GetCallIntrusionT5  )  const [inline]
 

const PTimeInterval& H323EndPoint::GetCallIntrusionT6  )  const [inline]
 

const PTimeInterval& H323EndPoint::GetCallTransferT1  )  const [inline]
 

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

const PTimeInterval& H323EndPoint::GetCallTransferT2  )  const [inline]
 

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

const PTimeInterval& H323EndPoint::GetCallTransferT3  )  const [inline]
 

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

const PTimeInterval& H323EndPoint::GetCallTransferT4  )  const [inline]
 

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

const H323Capabilities& H323EndPoint::GetCapabilities  )  const [inline]
 

Get the current capability table for this endpoint.

const PTimeInterval& H323EndPoint::GetCapabilityExchangeTimeout  )  const [inline]
 

Get the default timeout for H245 capability exchange negotiations.

PThread::Priority H323EndPoint::GetChannelThreadPriority  )  const [inline]
 

Get the priority at which channel threads run

PINDEX H323EndPoint::GetChannelThreadStackSize  )  const [inline]
 

Get the default stack size of logical channel threads.

PINDEX H323EndPoint::GetCleanerThreadStackSize  )  const [inline]
 

Get the default stack size of cleaner threads.

const PTimeInterval& H323EndPoint::GetControlChannelStartTimeout  )  const [inline]
 

Get the default timeout for incoming H.245 connection.

PINDEX H323EndPoint::GetControlThreadStackSize  )  const [inline]
 

Get the default stack size of control channel threads.

const PString& H323EndPoint::GetDefaultILSServer  )  const [inline]
 

Get the default ILS server to use for user lookup.

const PTimeInterval& H323EndPoint::GetEndSessionTimeout  )  const [inline]
 

Get the default timeout for waiting on an end session.

H323Gatekeeper* H323EndPoint::GetGatekeeper  )  const [inline]
 

Get the gatekeeper we are registered with.

virtual const PString& H323EndPoint::GetGatekeeperPassword  )  const [inline, virtual]
 

Get the H.235 password for the gatekeeper.

unsigned H323EndPoint::GetGatekeeperRequestRetries  )  const [inline]
 

Get the default retries for GatekeeperRequest and Gatekeeper discovery.

const PTimeInterval& H323EndPoint::GetGatekeeperRequestTimeout  )  const [inline]
 

Get the default timeout for GatekeeperRequest and Gatekeeper discovery.

const PTimeInterval& H323EndPoint::GetGatekeeperTimeToLive  )  const [inline]
 

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

const PString& H323EndPoint::GetGkAccessTokenOID  )  const [inline]
 

Get the iNow Gatekeeper Access Token OID.

unsigned H323EndPoint::GetInitialBandwidth  )  const [inline]
 

Get the initial bandwidth parameter.

H323TransportAddressArray H323EndPoint::GetInterfaceAddresses BOOL  excludeLocalHost = TRUE,
H323Transport associatedTransport = NULL
 

Return a list of the transport addresses for all listeners on this endpoint

Parameters:
associatedTransport  Flag to exclude 127.0.0.1 Associated transport for precedence and translation

PINDEX H323EndPoint::GetJitterThreadStackSize  )  const [inline]
 

Get the default stack size of jitter buffer threads.

const H323ListenerList& H323EndPoint::GetListeners  )  const [inline]
 

Get the set of listeners (incoming call transports) for this endpoint.

PINDEX H323EndPoint::GetListenerThreadStackSize  )  const [inline]
 

Get the default stack size of listener threads.

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.

const PTimeInterval& H323EndPoint::GetLogicalChannelTimeout  )  const [inline]
 

Get the default timeout for H245 logical channel negotiations.

unsigned H323EndPoint::GetMasterSlaveDeterminationRetries  )  const [inline]
 

Get the default retries for H245 master slave negotiations.

const PTimeInterval& H323EndPoint::GetMasterSlaveDeterminationTimeout  )  const [inline]
 

Get the default timeout for master slave negotiations.

unsigned H323EndPoint::GetMaxAudioJitterDelay  )  const [inline]
 

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

unsigned H323EndPoint::GetMinAudioJitterDelay  )  const [inline]
 

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

WORD H323EndPoint::GetNextTCPPort  ) 
 

Get the next TCP port number for H.245 channels

WORD H323EndPoint::GetNextUDPPort  ) 
 

Get the next UDP port number for RAS channels

const PTimeInterval& H323EndPoint::GetNoMediaTimeout  )  const
 

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

unsigned H323EndPoint::GetRasRequestRetries  )  const [inline]
 

Get the default retries for RAS protocol transations.

const PTimeInterval& H323EndPoint::GetRasRequestTimeout  )  const [inline]
 

Get the default timeout for RAS protocol transactions.

PINDEX H323EndPoint::GetRasThreadStackSize  )  const [inline]
 

Get the default stack size of RAS channel threads.

const PTimeInterval& H323EndPoint::GetRequestModeTimeout  )  const [inline]
 

Get the default timeout for H245 request mode negotiations.

const PTimeInterval& H323EndPoint::GetRoundTripDelayRate  )  const [inline]
 

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

const PTimeInterval& H323EndPoint::GetRoundTripDelayTimeout  )  const [inline]
 

Get the default timeout for H245 round trip delay negotiations.

WORD H323EndPoint::GetRtpIpPortBase  )  const [inline]
 

Get the UDP port number base for RTP channels.

WORD H323EndPoint::GetRtpIpPortMax  )  const [inline]
 

Get the max UDP port number for RTP channels.

WORD H323EndPoint::GetRtpIpPortPair  ) 
 

Get the UDP port number pair for RTP channels.

BYTE H323EndPoint::GetRtpIpTypeofService  )  const [inline]
 

Get the IP Type Of Service byte for RTP channels.

H323Connection::SendUserInputModes H323EndPoint::GetSendUserInputMode  )  const [inline]
 

Get the default mode for sending User Input Indications.

const PTimeInterval& H323EndPoint::GetSignallingChannelCallTimeout  )  const [inline]
 

Get the default timeout for calling another endpoint.

PINDEX H323EndPoint::GetSignallingThreadStackSize  )  const [inline]
 

Get the default stack size of signalling channel threads.

H323AudioCodec::SilenceDetectionMode H323EndPoint::GetSilenceDetectionMode  )  const [inline]
 

Get the default silence detection mode.

unsigned H323EndPoint::GetSoundChannelBufferDepth  )  const [inline]
 

Get default the sound channel buffer depth.

const PString& H323EndPoint::GetSoundChannelPlayDevice  )  const [inline]
 

Get the name for the sound channel to be used for output. This defaults to the value of the PSoundChannel::GetDefaultDevice() function.

const PString& H323EndPoint::GetSoundChannelPlayDriver  )  const [inline]
 

const PString& H323EndPoint::GetSoundChannelRecordDevice  )  const [inline]
 

Get the name for the sound channel to be used for input. This defaults to the value of the PSoundChannel::GetDefaultDevice() function.

const PString& H323EndPoint::GetSoundChannelRecordDriver  )  const [inline]
 

PSTUNClient* H323EndPoint::GetSTUN const PIPSocket::Address &  address = 0  )  const
 

Return the STUN server to use. Returns NULL if address is a local address as per IsLocalAddress(). Always returns the STUN server if address is zero. Note, the pointer is NOT to be deleted by the user.

WORD H323EndPoint::GetTCPPortBase  )  const [inline]
 

Get the TCP port number base for H.245 channels

WORD H323EndPoint::GetTCPPortMax  )  const [inline]
 

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

TerminalTypes H323EndPoint::GetTerminalType  )  const [inline]
 

Get the endpoint terminal type.

WORD H323EndPoint::GetUDPPortBase  )  const [inline]
 

Get the UDP port number base for RAS channels

WORD H323EndPoint::GetUDPPortMax  )  const [inline]
 

Get the UDP port number base for RAS channels.

virtual BOOL H323EndPoint::HasConnection const PString &  token  )  [virtual]
 

Determine if a connection is active.

Parameters:
token  Token for identifying connection

void H323EndPoint::HoldCall const PString &  token,
BOOL  localHold
 

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

Parameters:
localHold  Existing connection to be transferred true for Local Hold, false for Remote Hold

H323Gatekeeper* H323EndPoint::InternalCreateGatekeeper H323Transport transport  )  [protected]
 

virtual H323Connection* H323EndPoint::InternalMakeCall const PString &  existingToken,
const PString &  callIdentity,
unsigned  capabilityLevel,
const PString &  remoteParty,
H323Transport transport,
PString &  token,
void *  userData
[protected, virtual]
 

Parameters:
callIdentity  Existing connection to be transferred
capabilityLevel  Call identity of the secondary call (if it exists)
remoteParty  Intrusion capability level
transport  Remote party to call
token  Transport to use for call.
userData  String to use/receive token for connection user data to pass to CreateConnection

BOOL H323EndPoint::InternalRegisterGatekeeper H323Gatekeeper gk,
BOOL  discovered
[protected]
 

void H323EndPoint::InternalTranslateTCPAddress PIPSocket::Address &  ,
const PIPSocket::Address & 
 

H323Connection* H323EndPoint::IntrudeCall const PString &  remoteParty,
H323Transport transport,
PString &  token,
unsigned  capabilityLevel,
void *  userData = NULL
 

Parameters:
transport  Remote party to intrude call
token  Transport to use for call.
capabilityLevel  String to receive token for connection
userData  Capability level user data to pass to CreateConnection

H323Connection* H323EndPoint::IntrudeCall const PString &  remoteParty,
PString &  token,
unsigned  capabilityLevel,
void *  userData = NULL
 

Initiate Call intrusion Designed similar to MakeCall function

Parameters:
token  Remote party to intrude call
capabilityLevel  String to receive token for connection
userData  Capability level user data to pass to CreateConnection

virtual BOOL H323EndPoint::IsConnectionEstablished const PString &  token  )  [virtual]
 

Determine if a connection is established.

Parameters:
token  Token for identifying connection

BOOL H323EndPoint::IsFastStartDisabled  )  const [inline]
 

Get the default fast start mode.

BOOL H323EndPoint::IsGatekeeper  )  const
 

Determine if endpoint is gatekeeper type.

BOOL H323EndPoint::IsGateway  )  const
 

Determine if endpoint is gateway type.

BOOL H323EndPoint::IsH245inSetupDisabled  )  const [inline]
 

Get the default H.245 tunneling mode.

BOOL H323EndPoint::IsH245TunnelingDisabled  )  const [inline]
 

Get the default H.245 tunneling mode.

virtual BOOL H323EndPoint::IsLocalAddress const PIPSocket::Address &  remoteAddress  )  const [virtual]
 

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

BOOL H323EndPoint::IsMCU  )  const
 

Determine if endpoint is gatekeeper type.

BOOL H323EndPoint::IsRegisteredWithGatekeeper  )  const
 

Return if endpoint is registered with gatekeeper.

BOOL H323EndPoint::IsTerminal  )  const
 

Determine if endpoint is terminal type.

BOOL 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:
transport  Identifier of gatekeeper to locate. Transport over which to talk to gatekeeper.

H323Connection* H323EndPoint::MakeCall const PString &  remoteParty,
H323Transport transport,
PString &  token,
void *  userData = NULL
 

Make a call to a remote party using the specified transport. The remoteParty may be a hostname, alias or other user name that is to be passed to the transport, if present.

If the transport parameter is NULL the transport is determined from the remoteParty description.

This function returns almost immediately with the call occurring in a new background thread. Note that the call could be created and cleared ie OnConnectionCleared is called BEFORE this function returns. It is guaranteed that the token variable is set before OnConnectionCleared called.

Note, the returned pointer to the connection is not locked and may be deleted at any time. This is extremely unlikely immediately after the function is called, but you should not keep this pointer beyond that brief time. The the FindConnectionWithLock() function for future references to the connection object. It is recommended that MakeCallLocked() be usedin instead.

Parameters:
transport  Remote party to call
token  Transport to use for call.
userData  String to receive token for connection user data to pass to CreateConnection

H323Connection* H323EndPoint::MakeCall const PString &  remoteParty,
PString &  token,
void *  userData = NULL
 

Make a call to a remote party. 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.

This function returns almost immediately with the call occurring in a new background thread. Note that the call could be created and cleared ie OnConnectionCleared is called BEFORE this function returns. It is guaranteed that the token variable is set before OnConnectionCleared called.

Note, the returned pointer to the connection is not locked and may be deleted at any time. This is extremely unlikely immediately after the function is called, but you should not keep this pointer beyond that brief time. The the FindConnectionWithLock() function for future references to the connection object. It is recommended that MakeCallLocked() be usedin instead.

Parameters:
token  Remote party to call
userData  String to receive token for connection user data to pass to CreateConnection

H323Connection* H323EndPoint::MakeCallLocked const PString &  remoteParty,
PString &  token,
void *  userData = NULL,
H323Transport transport = NULL
 

Make a call to a remote party using the specified transport. The remoteParty may be a hostname, alias or other user name that is to be passed to the transport, if present.

If the transport parameter is NULL the transport is determined from the remoteParty description.

This function returns almost immediately with the call occurring in a new background thread. However the call will not progress very far

Parameters:
token  Remote party to call
userData  String to receive token for connection
transport  user data to pass to CreateConnection Transport to use for call.

virtual BOOL 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:
alertingPDU  Connection that was established
user  Received Alerting PDU Username of remote endpoint

virtual H323Connection::AnswerCallResponse H323EndPoint::OnAnswerCall H323Connection connection,
const PString &  callerName,
const H323SignalPDU setupPDU,
H323SignalPDU connectPDU
[virtual]
 

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

It also gives an 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 a Release Complete PDU is sent. If AnswerCallNow is returned then the H.323 protocol proceeds. Finally if AnswerCallPending is returned then the protocol negotiations are paused until the AnsweringCall() function is called.

The default behaviour simply returns AnswerNow.

Parameters:
callerName  Connection that was established
setupPDU  Name of caller
connectPDU  Received setup PDU Connect PDU to send.

virtual void H323EndPoint::OnCallCreditServiceControl const PString &  amount,
BOOL  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:
mode  UTF-8 string for amount, including currency. Flag indicating that calls will debit the account.

virtual BOOL 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 BOOL 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 BOOL 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:
remoteParty  Connection to transfer 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:
channel  Connection for the channel Channel being started

virtual BOOL 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::OnConnectionCleared H323Connection connection,
const PString &  token
[virtual]
 

A call back function whenever a connection is broken. This indicates that a connection to a remote endpoint is no longer available.

The default behaviour does nothing.

Parameters:
token  Connection that was established Token for identifying 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:
token  Connection that was established Token for identifying connection

virtual BOOL 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:
forwardParty  Connection to be forwarded
pdu  Remote party to forward to Full PDU initiating forwarding

virtual void H323EndPoint::OnGatekeeperConfirm  )  [virtual]
 

Called when the gatekeeper sends a GatekeeperConfirm

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:
sessionId  Control operation
url  Session ID for HTTP page URL to use.

virtual BOOL 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:
setupPDU  Connection that was established
alertingPDU  Received setup PDU Alerting PDU to send

virtual H323Connection* H323EndPoint::OnIncomingConnection H323Transport transport,
H323SignalPDU setupPDU
[virtual]
 

Handle a new incoming connection. This will examine the setup PDU and either attach the signalling transport to an existing connection that has the same Q.931 call reference, or creates a new connection using CreateConnection().

Parameters:
setupPDU  Transport for connection Setup PDU

virtual BOOL 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 BOOL 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::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:
session  Connection for the channel Session with statistics

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 BOOL H323EndPoint::OnSendFeatureSet unsigned  ,
H225_FeatureSet
[virtual]
 

Called when an outgoing PDU requires a feature set

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::OnStartLogicalChannel H323Connection connection,
H323Channel channel
[virtual]
 

Call back for opening a logical channel.

The default behaviour simply returns TRUE.

Parameters:
channel  Connection for the channel Channel being started

virtual void H323EndPoint::OnUserInputString H323Connection connection,
const PString &  value
[virtual]
 

Call back for remote enpoint has sent user input as a string.

The default behaviour does nothing.

Parameters:
value  Connection for the input String value of indication

virtual void H323EndPoint::OnUserInputTone H323Connection connection,
char  tone,
unsigned  duration,
unsigned  logicalChannel,
unsigned  rtpTimestamp
[virtual]
 

Call back for remote enpoint has sent user input.

The default behaviour calls H323Connection::OnUserInputTone().

Parameters:
tone  Connection for the input
duration  DTMF tone code
logicalChannel  Duration of tone in milliseconds
rtpTimestamp  Logical channel number for RTP sync. RTP timestamp in logical channel sync.

virtual BOOL H323EndPoint::OpenAudioChannel H323Connection connection,
BOOL  isEncoding,
unsigned  bufferSize,
H323AudioCodec codec
[virtual]
 

Open a channel for use by an audio codec. The H323AudioCodec class will use this function to open the channel to read/write PCM data.

The default function creates a PSoundChannel using the member variables soundChannelPlayDevice or soundChannelRecordDevice.

Parameters:
isEncoding  Connection for the channel
bufferSize  Direction of data flow
codec  Size of each sound buffer codec that is doing the opening

virtual BOOL H323EndPoint::OpenVideoChannel H323Connection connection,
BOOL  isEncoding,
H323VideoCodec codec
[virtual]
 

Open a channel for use by an video codec. The H323VideoCodec class will use this function to open the channel to read/write image data (which is one frame in a video stream - YUV411 format).

The default function creates a PVideoChannel using the member variables.

Parameters:
isEncoding  Connection for the channel
codec  Direction of data flow codec doing the opening

BOOL H323EndPoint::ParsePartyName const PString &  party,
PString &  alias,
H323TransportAddress address
 

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:
alias  Party name string.
address  Parsed alias name Parsed transport address

BOOL 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.

BOOL 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

BOOL H323EndPoint::RemoveListener H323Listener listener  ) 
 

Remove a listener from the endpoint. If the listener parameter is NULL then all listeners are removed.

Parameters:
listener  Transport dependent listener.

void H323EndPoint::ReorderCapabilities const PStringArray &  preferenceOrder  ) 
 

Reorder capabilites in table.

void H323EndPoint::SetAudioJitterDelay unsigned  minDelay,
unsigned  maxDelay
 

Set the maximum audio delay jitter parameter.

void H323EndPoint::SetCallIntrusionProtectionLevel unsigned  level  )  [inline]
 

Set Call Intrusion Protection Level of the end point.

void H323EndPoint::SetCanDisplayAmountString BOOL  mode  )  [inline]
 

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

Parameters:
mode  New default mode

void H323EndPoint::SetCanEnforceDurationLimit BOOL  mode  )  [inline]
 

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

Parameters:
mode  New default mode

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:
simultaneous  The member of the capabilityDescriptor to add
cap  The member of the SimultaneousCapabilitySet to add New capability specification

void H323EndPoint::SetDefaultILSServer const PString &  server  )  [inline]
 

Set the default ILS server to use for user lookup.

virtual void H323EndPoint::SetEndpointTypeInfo H225_EndpointType info  )  const [virtual]
 

Set the endpoint information in H225 PDU's.

BOOL 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:
transport  Address of gatekeeper to use. Transport over which to talk to gatekeeper.

virtual void H323EndPoint::SetGatekeeperPassword const PString &  password  )  [virtual]
 

Set the H.235 password for the gatekeeper.

BOOL 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:
identifier  Address of gatekeeper to use.
transport  Identifier of gatekeeper to use. Transport over which to talk to gatekeeper.

void H323EndPoint::SetGkAccessTokenOID const PString &  token  )  [inline]
 

Set the iNow Gatekeeper Access Token OID.

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.

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)

BOOL H323EndPoint::SetNoMediaTimeout PTimeInterval  newInterval  ) 
 

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

void H323EndPoint::SetRtpIpPorts unsigned  udpBase,
unsigned  udpMax
 

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

void H323EndPoint::SetRtpIpTypeofService unsigned  tos  )  [inline]
 

Set the IP Type Of Service byte for RTP channels.

void H323EndPoint::SetSendUserInputMode H323Connection::SendUserInputModes  mode  )  [inline]
 

Set the default mode for sending User Input Indications.

void H323EndPoint::SetSilenceDetectionMode H323AudioCodec::SilenceDetectionMode  mode  )  [inline]
 

Set the default silence detection mode.

Parameters:
mode  New default mode

void H323EndPoint::SetSoundChannelBufferDepth unsigned  depth  ) 
 

Set the default sound channel buffer depth.

virtual BOOL H323EndPoint::SetSoundChannelPlayDevice const PString &  name  )  [virtual]
 

Set the name for the sound channel to be used for output. If the name is not suitable for use with the PSoundChannel class then the function will return FALSE and not change the device.

This defaults to the value of the PSoundChannel::GetDefaultDevice() function.

virtual BOOL H323EndPoint::SetSoundChannelPlayDriver const PString &  name  )  [virtual]
 

virtual BOOL H323EndPoint::SetSoundChannelRecordDevice const PString &  name  )  [virtual]
 

Set the name for the sound channel to be used for input. If the name is not suitable for use with the PSoundChannel class then the function will return FALSE and not change the device.

This defaults to the value of the PSoundChannel::GetDefaultDevice() function.

virtual BOOL H323EndPoint::SetSoundChannelRecordDriver const PString &  name  )  [virtual]
 

void H323EndPoint::SetSTUNServer const PString &  server  ) 
 

Set the STUN server address, is of the form host[:port]

void H323EndPoint::SetTCPPorts unsigned  tcpBase,
unsigned  tcpMax
 

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

void H323EndPoint::SetUDPPorts unsigned  udpBase,
unsigned  udpMax
 

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

virtual H323Connection* H323EndPoint::SetupTransfer const PString &  token,
const PString &  callIdentity,
const PString &  remoteParty,
PString &  newToken,
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.

Note, the returned pointer to the connection is not locked and may be deleted at any time. This is extremely unlikely immediately after the function is called, but you should not keep this pointer beyond that brief time. The the FindConnectionWithLock() function for future references to the connection object.

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

Parameters:
callIdentity  Existing connection to be transferred
remoteParty  Call identity of the secondary call (if it exists)
newToken  Remote party to transfer the existing call to
userData  String to receive token for the new connection user data to pass to CreateConnection

virtual void H323EndPoint::SetVendorIdentifierInfo H225_VendorIdentifier info  )  const [virtual]
 

Set the vendor information in H225 PDU's.

BOOL H323EndPoint::ShouldClearCallOnRoundTripFail  )  const [inline]
 

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

BOOL H323EndPoint::StartListener const H323TransportAddress iface  ) 
 

Add a listener to the endpoint. This allows for the automatic creating of incoming call connections. An application should use OnConnectionEstablished() to monitor when calls have arrived and been successfully negotiated.

If a listener already exists on the same address then it is ignored, but TRUE is still returned.

If the iface string is empty then "*" is assumed which will listen on the standard TCP port on INADDR_ANY.

Parameters:
iface  Address of interface to listen on.

BOOL H323EndPoint::StartListener H323Listener listener  ) 
 

Add a listener to the endpoint. This allows for the automatic creating of incoming call connections. An application should use OnConnectionEstablished() to monitor when calls have arrived and been successfully negotiated.

Note if this returns TRUE, then the endpoint is responsible for deleting the H323Listener listener object. If FALSE is returned then the object is not deleted and it is up to the caller to release the memory allocated for the object.

If a listener already exists on the same transport address then it is ignored, but TRUE is still returned. The caller does not need to delete the object.

Parameters:
listener  Transport dependent listener.

BOOL H323EndPoint::StartListeners const H323TransportAddressArray &  ifaces  ) 
 

Add listeners to the endpoint. Set the collection of listeners which will allow the automatic creating of incoming call connections. An application should use OnConnectionEstablished() to monitor when calls have arrived and been successfully negotiated.

If a listener already exists on the interface specified in the list then it is ignored. If a listener does not yet exist a new one is created and if a listener is running that is not in the list then it is stopped and removed.

If the array is empty then the string "*" is assumed which will listen on the standard TCP port on INADDR_ANY.

Returns TRUE if at least one interface was successfully started.

Parameters:
ifaces  Interfaces to listen on.

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:
remoteParty  Existing connection to be transferred
callIdentity  Remote party to transfer the existing call to Call Identity of secondary call if present

virtual void H323EndPoint::TranslateTCPAddress PIPSocket::Address &  ,
const PIPSocket::Address & 
[inline, virtual]
 

Provide TCP address translation hook

BOOL 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.

Parameters:
identifier  Address of gatekeeper to use.
localAddress  Identifier of gatekeeper to use. Local interface to use.


Member Data Documentation

BOOL H323EndPoint::autoCallForward [protected]
 

BOOL H323EndPoint::autoStartReceiveFax [protected]
 

BOOL H323EndPoint::autoStartReceiveVideo [protected]
 

BOOL H323EndPoint::autoStartTransmitFax [protected]
 

BOOL H323EndPoint::autoStartTransmitVideo [protected]
 

unsigned H323EndPoint::callIntrusionProtectionLevel [protected]
 

PTimeInterval H323EndPoint::callIntrusionT1 [protected]
 

Call Intrusion Timers

PTimeInterval H323EndPoint::callIntrusionT2 [protected]
 

PTimeInterval H323EndPoint::callIntrusionT3 [protected]
 

PTimeInterval H323EndPoint::callIntrusionT4 [protected]
 

PTimeInterval H323EndPoint::callIntrusionT5 [protected]
 

PTimeInterval H323EndPoint::callIntrusionT6 [protected]
 

PTimeInterval H323EndPoint::callTransferT1 [protected]
 

PTimeInterval H323EndPoint::callTransferT2 [protected]
 

PTimeInterval H323EndPoint::callTransferT3 [protected]
 

PTimeInterval H323EndPoint::callTransferT4 [protected]
 

BOOL H323EndPoint::canDisplayAmountString [protected]
 

BOOL H323EndPoint::canEnforceDurationLimit [protected]
 

H323Capabilities H323EndPoint::capabilities [protected]
 

PTimeInterval H323EndPoint::capabilityExchangeTimeout [protected]
 

PThread::Priority H323EndPoint::channelThreadPriority [protected]
 

PINDEX H323EndPoint::cleanerThreadStackSize [protected]
 

BOOL H323EndPoint::clearCallOnRoundTripFail [protected]
 

H323ConnectionDict H323EndPoint::connectionsActive [protected]
 

PSyncPoint H323EndPoint::connectionsAreCleaned [protected]
 

H323ConnectionsCleaner* H323EndPoint::connectionsCleaner [protected]
 

PMutex H323EndPoint::connectionsMutex [protected]
 

PStringSet H323EndPoint::connectionsToBeCleaned [protected]
 

PTimeInterval H323EndPoint::controlChannelStartTimeout [protected]
 

PINDEX H323EndPoint::controlThreadStackSize [protected]
 

WORD H323EndPoint::defaultManufacturerCode [static]
 

H323Connection::SendUserInputModes H323EndPoint::defaultSendUserInputMode [protected]
 

H323AudioCodec::SilenceDetectionMode H323EndPoint::defaultSilenceDetection [protected]
 

BYTE H323EndPoint::defaultT35CountryCode [static]
 

default settings H.221 settings

BYTE H323EndPoint::defaultT35Extension [static]
 

BOOL H323EndPoint::disableDetectInBandDTMF [protected]
 

BOOL H323EndPoint::disableFastStart [protected]
 

BOOL H323EndPoint::disableH245inSetup [protected]
 

BOOL H323EndPoint::disableH245Tunneling [protected]
 

PTimeInterval H323EndPoint::endSessionTimeout [protected]
 

H323Gatekeeper* H323EndPoint::gatekeeper [protected]
 

PString H323EndPoint::gatekeeperPassword [protected]
 

unsigned H323EndPoint::gatekeeperRequestRetries [protected]
 

PTimeInterval H323EndPoint::gatekeeperRequestTimeout [protected]
 

PString H323EndPoint::gkAccessTokenOID [protected]
 

PString H323EndPoint::ilsServer [protected]
 

unsigned H323EndPoint::initialBandwidth [protected]
 

PINDEX H323EndPoint::jitterThreadStackSize [protected]
 

H323ListenerList H323EndPoint::listeners [protected]
 

PINDEX H323EndPoint::listenerThreadStackSize [protected]
 

PStringList H323EndPoint::localAliasNames [protected]
 

PTimeInterval H323EndPoint::logicalChannelTimeout [protected]
 

PINDEX H323EndPoint::logicalThreadStackSize [protected]
 

WORD H323EndPoint::manufacturerCode [protected]
 

unsigned H323EndPoint::masterSlaveDeterminationRetries [protected]
 

PTimeInterval H323EndPoint::masterSlaveDeterminationTimeout [protected]
 

unsigned H323EndPoint::maxAudioJitterDelay [protected]
 

unsigned H323EndPoint::minAudioJitterDelay [protected]
 

PMutex H323EndPoint::noMediaMutex [protected]
 

PTimeInterval H323EndPoint::noMediaTimeout [protected]
 

unsigned H323EndPoint::rasRequestRetries [protected]
 

PTimeInterval H323EndPoint::rasRequestTimeout [protected]
 

PINDEX H323EndPoint::rasThreadStackSize [protected]
 

PTimeInterval H323EndPoint::registrationTimeToLive [protected]
 

PTimeInterval H323EndPoint::requestModeTimeout [protected]
 

PTimeInterval H323EndPoint::roundTripDelayRate [protected]
 

PTimeInterval H323EndPoint::roundTripDelayTimeout [protected]
 

struct H323EndPoint::PortInfo H323EndPoint::rtpIpPorts [protected]
 

BYTE H323EndPoint::rtpIpTypeofService [protected]
 

H323CallIdentityDict H323EndPoint::secondaryConnectionsActive [protected]
 

PTimeInterval H323EndPoint::signallingChannelCallTimeout [protected]
 

PINDEX H323EndPoint::signallingThreadStackSize [protected]
 

unsigned H323EndPoint::soundChannelBuffers [protected]
 

PString H323EndPoint::soundChannelPlayDevice [protected]
 

PString H323EndPoint::soundChannelPlayDriver [protected]
 

PString H323EndPoint::soundChannelRecordDevice [protected]
 

PString H323EndPoint::soundChannelRecordDriver [protected]
 

PSTUNClient* H323EndPoint::stun [protected]
 

BYTE H323EndPoint::t35CountryCode [protected]
 

BYTE H323EndPoint::t35Extension [protected]
 

struct H323EndPoint::PortInfo H323EndPoint::tcpPorts [protected]
 

TerminalTypes H323EndPoint::terminalType [protected]
 

struct H323EndPoint::PortInfo H323EndPoint::udpPorts [protected]
 

PString H323EndPoint::videoChannelPlayDevice [protected]
 

PString H323EndPoint::videoChannelRecordDevice [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Mar 15 11:17:58 2005 for OpenH323 by  doxygen 1.4.0