OpalEndPoint Class Reference

#include <endpoint.h>

Inheritance diagram for OpalEndPoint:
OpalFaxEndPoint OpalLineEndPoint OpalLocalEndPoint OpalPCSSEndPoint OpalRTPEndPoint SIPEndPoint

List of all members.

Classes

class  ConnectionDict

Public Types

enum  Attributes { CanTerminateCall = 1, HasLineInterface = 2 }

Public Member Functions

virtual PString GetDefaultTransport () const
virtual void OnNewConnection (OpalCall &call, OpalConnection &connection)
PString GetSSLCertificate () const
bool FindListenerForProtocol (const char *protoPrefix, OpalTransportAddress &addr)
virtual void AddIMMediaFormats (OpalMediaFormatList &mediaFormats, const OpalConnection *connection=NULL) const
Construction

 OpalEndPoint (OpalManager &manager, const PCaselessString &prefix, unsigned attributes)
 ~OpalEndPoint ()
virtual void ShutDown ()
Overrides from PObject

void PrintOn (ostream &strm) const
Listeners management

PBoolean StartListeners (const PStringArray &interfaces)
PBoolean StartListener (const OpalTransportAddress &iface)
PBoolean StartListener (OpalListener *listener)
virtual PStringArray GetDefaultListeners () const
OpalListenerFindListener (const OpalTransportAddress &iface)
PBoolean StopListener (const OpalTransportAddress &iface)
PBoolean RemoveListener (OpalListener *listener)
OpalTransportAddressArray GetInterfaceAddresses (PBoolean excludeLocalHost=PTrue, const OpalTransport *associatedTransport=NULL)
 PDECLARE_NOTIFIER (PThread, OpalEndPoint, ListenerCallback)
virtual PBoolean NewIncomingConnection (OpalTransport *transport)
Connection management

virtual PBoolean MakeConnection (OpalCall &call, const PString &party, void *userData=NULL, unsigned int options=0, OpalConnection::StringOptions *stringOptions=NULL)=0
virtual PBoolean OnSetUpConnection (OpalConnection &connection)
virtual PBoolean OnIncomingConnection (OpalConnection &connection, unsigned options, OpalConnection::StringOptions *stringOptions)
virtual PBoolean OnIncomingConnection (OpalConnection &connection, unsigned options)
virtual PBoolean OnIncomingConnection (OpalConnection &connection)
virtual void OnProceeding (OpalConnection &connection)
virtual void OnAlerting (OpalConnection &connection)
virtual
OpalConnection::AnswerCallResponse 
OnAnswerCall (OpalConnection &connection, const PString &caller)
virtual void OnConnected (OpalConnection &connection)
virtual void OnEstablished (OpalConnection &connection)
virtual void OnReleased (OpalConnection &connection)
virtual void OnHold (OpalConnection &connection, bool fromRemote, bool onHold)
virtual void OnHold (OpalConnection &connection)
virtual PBoolean OnForwarded (OpalConnection &connection, const PString &remoteParty)
virtual PBoolean ClearCall (const PString &token, OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PSyncPoint *sync=NULL)
virtual PBoolean ClearCallSynchronous (const PString &token, OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PSyncPoint *sync=NULL)
virtual void ClearAllCalls (OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PBoolean wait=PTrue)
PSafePtr< OpalConnectionGetConnectionWithLock (const PString &token, PSafetyMode mode=PSafeReadWrite)
template<class ConnClass >
PSafePtr< ConnClass > GetConnectionWithLockAs (const PString &token, PSafetyMode mode=PSafeReadWrite)
PStringList GetAllConnections ()
PINDEX GetConnectionCount () const
virtual PBoolean HasConnection (const PString &token)
virtual void DestroyConnection (OpalConnection *connection)
Media Streams management

virtual OpalMediaFormatList GetMediaFormats () const
virtual void AdjustMediaFormats (const OpalConnection &connection, OpalMediaFormatList &mediaFormats) const
virtual PBoolean OnOpenMediaStream (OpalConnection &connection, OpalMediaStream &stream)
virtual void OnClosedMediaStream (const OpalMediaStream &stream)
User indications

virtual void OnUserInputString (OpalConnection &connection, const PString &value)
virtual void OnUserInputTone (OpalConnection &connection, char tone, int duration)
virtual PString ReadUserInput (OpalConnection &connection, const char *terminators="#\r\n", unsigned lastDigitTimeout=4, unsigned firstDigitTimeout=30)
Other services

virtual void OnMWIReceived (const PString &party, OpalManager::MessageWaitingType type, const PString &extraInfo)
virtual PBoolean GarbageCollection ()
Member variable access

OpalManagerGetManager () const
const PString & GetPrefixName () const
PBoolean HasAttribute (Attributes opt) const
WORD GetDefaultSignalPort () const
const OpalProductInfoGetProductInfo () const
void SetProductInfo (const OpalProductInfo &info)
const PString & GetDefaultLocalPartyName () const
virtual void SetDefaultLocalPartyName (const PString &name)
const PString & GetDefaultDisplayName () const
void SetDefaultDisplayName (const PString &name)
unsigned GetInitialBandwidth () const
void SetInitialBandwidth (unsigned bandwidth)
const OpalListenerList & GetListeners () const
const
OpalConnection::StringOptions
GetDefaultStringOptions () const
void SetDefaultStringOptions (const OpalConnection::StringOptions &opts)
void SetDefaultStringOption (const PCaselessString &key, const PString &data)
OpalConnection::SendUserInputModes GetSendUserInputMode () const
void SetSendUserInputMode (OpalConnection::SendUserInputModes mode)

Protected Member Functions

PBoolean AddConnection (OpalConnection *connection)

Protected Attributes

OpalManagermanager
PCaselessString prefixName
unsigned attributeBits
WORD defaultSignalPort
OpalProductInfo productInfo
PString defaultLocalPartyName
PString defaultDisplayName
unsigned initialBandwidth
OpalConnection::StringOptions m_defaultStringOptions
OpalConnection::SendUserInputModes defaultSendUserInputMode
OpalListenerList listeners
OpalEndPoint::ConnectionDict connectionsActive
PMutex inUseFlag

Friends

void OpalManager::GarbageCollection ()
void OpalConnection::Release (CallEndReason reason)

Detailed Description

This class describes an endpoint base class. Each protocol (or psuedo-protocol) would create a descendant off this class to manage its particular subsystem. Typically this would involve listening for incoming connections and being able to set up outgoing connections. Depending on exact semantics it may need to spawn many threads to achieve this.

An endpoint will also have a default set of media data formats that it can support. Connections created by it would initially have the same set, but according to the semantics of the underlying protocol may end up using a different set.

Various call backs are provided for points in the connection management. As a rule these are passed straight on to the OpalManager for processing. An application may create descendants off this class' subclasses, eg H323EndPoint, to modify or monitor its behaviour but it does not have to do so as all basic operations are passed to the OpalManager so only that class need be subclassed.


Member Enumeration Documentation

Enumerator:
CanTerminateCall 
HasLineInterface 

Constructor & Destructor Documentation

OpalEndPoint::OpalEndPoint ( OpalManager manager,
const PCaselessString &  prefix,
unsigned  attributes 
)

Create a new endpoint.

Parameters:
manager Manager of all endpoints.
prefix Prefix for URL style address strings
attributes Bit mask of attributes endpoint has
OpalEndPoint::~OpalEndPoint (  ) 

Destroy the endpoint.


Member Function Documentation

PBoolean OpalEndPoint::AddConnection ( OpalConnection connection  )  [protected]
virtual void OpalEndPoint::AddIMMediaFormats ( OpalMediaFormatList mediaFormats,
const OpalConnection connection = NULL 
) const [virtual]

Add IM media formats available on a connection. The default behaviour calls the OpalEndPoint function of the same name.

Parameters:
mediaFormats Media formats to use
connection Optional connection that is using formats
virtual void OpalEndPoint::AdjustMediaFormats ( const OpalConnection connection,
OpalMediaFormatList mediaFormats 
) const [virtual]

Adjust media formats available on a connection. This is called by a connection after it has called OpalCall::GetMediaFormats() to get all media formats that it can use so that an application may remove or reorder the media formats before they are used to open media streams.

The default behaviour calls the OpalManager function of the same name.

Parameters:
connection Connection that is about to use formats
mediaFormats Media formats to use
virtual void OpalEndPoint::ClearAllCalls ( OpalConnection::CallEndReason  reason = OpalConnection::EndedByLocalUser,
PBoolean  wait = PTrue 
) [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:
reason Reason for call clearing
wait Flag for wait for calls to e cleared.
virtual PBoolean OpalEndPoint::ClearCall ( const PString &  token,
OpalConnection::CallEndReason  reason = OpalConnection::EndedByLocalUser,
PSyncPoint *  sync = NULL 
) [virtual]

Clear a call. This finds the call by using the token then calls the OpalCall::Clear() function on it. All connections are released, and the conenctions and call disposed of. Note that this function returns quickly and the disposal happens at some later time by a background thread. This it is safe to call this function from anywhere.

Parameters:
token Token for identifying connection
reason Reason for call clearing
sync Sync point to wait on.
virtual PBoolean OpalEndPoint::ClearCallSynchronous ( const PString &  token,
OpalConnection::CallEndReason  reason = OpalConnection::EndedByLocalUser,
PSyncPoint *  sync = NULL 
) [virtual]

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

Parameters:
token Token for identifying connection
reason Reason for call clearing
sync Sync point to wait on.
virtual void OpalEndPoint::DestroyConnection ( OpalConnection connection  )  [virtual]

Destroy the connection.

Parameters:
connection Connection to destroy
OpalListener* OpalEndPoint::FindListener ( const OpalTransportAddress iface  ) 

Find a listener given the transport address.

Parameters:
iface Address of interface we may be listening on.
bool OpalEndPoint::FindListenerForProtocol ( const char *  protoPrefix,
OpalTransportAddress addr 
)

Find a listener that is compatible with the specified protocol

virtual PBoolean OpalEndPoint::GarbageCollection (  )  [virtual]

Execute garbage collection for endpoint. Returns PTrue if all garbage has been collected. Default behaviour deletes the objects in the connectionsActive list.

Reimplemented in SIPEndPoint.

PStringList OpalEndPoint::GetAllConnections (  ) 

Get all calls current on the endpoint.

PINDEX OpalEndPoint::GetConnectionCount (  )  const [inline]

Get calls count on the endpoint

References connectionsActive.

PSafePtr<OpalConnection> OpalEndPoint::GetConnectionWithLock ( const PString &  token,
PSafetyMode  mode = PSafeReadWrite 
) [inline]

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 MakeConnection().

Parameters:
token Token to identify connection

References connectionsActive.

Referenced by GetConnectionWithLockAs(), and OpalLineEndPoint::GetLIDConnectionWithLock().

template<class ConnClass >
PSafePtr<ConnClass> OpalEndPoint::GetConnectionWithLockAs ( const PString &  token,
PSafetyMode  mode = PSafeReadWrite 
) [inline]

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 MakeConnection(). If not then it attempts to use the token as a OpalCall token and find a connection of the same class.

Parameters:
token Token to identify connection

References OpalManager::FindCallWithLock(), GetConnectionWithLock(), and manager.

const PString& OpalEndPoint::GetDefaultDisplayName (  )  const [inline]

Get the default local display name for all connections on this endpoint.

References defaultDisplayName.

virtual PStringArray OpalEndPoint::GetDefaultListeners (  )  const [virtual]

Get the default listeners for the endpoint type. Default behaviour returns empty list if defaultSignalPort is zero, else one entry using tcp and INADDR_ANY, eg tcp$*:1720

const PString& OpalEndPoint::GetDefaultLocalPartyName (  )  const [inline]

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

References defaultLocalPartyName.

WORD OpalEndPoint::GetDefaultSignalPort (  )  const [inline]

Get the default signal port for this endpoint.

References defaultSignalPort.

const OpalConnection::StringOptions& OpalEndPoint::GetDefaultStringOptions (  )  const [inline]

Get the default options for created connections.

References m_defaultStringOptions.

virtual PString OpalEndPoint::GetDefaultTransport (  )  const [virtual]

Reimplemented in SIPEndPoint.

unsigned OpalEndPoint::GetInitialBandwidth (  )  const [inline]

Get the initial bandwidth parameter.

References initialBandwidth.

OpalTransportAddressArray OpalEndPoint::GetInterfaceAddresses ( PBoolean  excludeLocalHost = PTrue,
const OpalTransport associatedTransport = NULL 
)

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

Parameters:
excludeLocalHost Flag to exclude 127.0.0.1
associatedTransport Associated transport for precedence and translation
const OpalListenerList& OpalEndPoint::GetListeners (  )  const [inline]

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

References listeners.

OpalManager& OpalEndPoint::GetManager (  )  const [inline]

Get the manager for this endpoint.

References manager.

virtual OpalMediaFormatList OpalEndPoint::GetMediaFormats (  )  const [virtual]

Get the data formats this endpoint is capable of operating. This provides a list of media data format names that may be used by an OpalMediaStream may be created by a connection from this endpoint.

Note that a specific connection may not actually support all of the media formats returned here, but should return no more.

The default behaviour returns the most basic media formats, PCM audio and YUV420P video.

Reimplemented in OpalLineEndPoint, OpalPCSSEndPoint, and OpalFaxEndPoint.

const PString& OpalEndPoint::GetPrefixName (  )  const [inline]

Get the protocol prefix name for the endpoint.

References prefixName.

const OpalProductInfo& OpalEndPoint::GetProductInfo (  )  const [inline]

Get the product info for all endpoints.

References productInfo.

OpalConnection::SendUserInputModes OpalEndPoint::GetSendUserInputMode (  )  const [inline]

Get the default mode for sending User Input Indications.

References defaultSendUserInputMode.

PString OpalEndPoint::GetSSLCertificate (  )  const
PBoolean OpalEndPoint::HasAttribute ( Attributes  opt  )  const [inline]

Get an indication of if this endpoint has particular option.

References attributeBits.

virtual PBoolean OpalEndPoint::HasConnection ( const PString &  token  )  [virtual]

Determine if a connection is active.

Parameters:
token Token for identifying connection
virtual PBoolean OpalEndPoint::MakeConnection ( OpalCall call,
const PString &  party,
void *  userData = NULL,
unsigned int  options = 0,
OpalConnection::StringOptions stringOptions = NULL 
) [pure virtual]

Set up a connection to a remote party. This is called from the OpalManager::MakeConnection() 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 PFalse is returned.

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

If PFalse 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

Implemented in OpalLineEndPoint, OpalLocalEndPoint, OpalPCSSEndPoint, SIPEndPoint, and OpalFaxEndPoint.

virtual PBoolean OpalEndPoint::NewIncomingConnection ( OpalTransport transport  )  [virtual]

Handle new incoming connection from listener.

A return value of PTrue indicates that the transport object should be deleted by the caller. PFalse indicates that something else (eg the connection) has taken over responsibility for deleting the transport.

The default behaviour just returns PTrue.

Parameters:
transport Transport connection came in on

Reimplemented in SIPEndPoint.

virtual void OpalEndPoint::OnAlerting ( OpalConnection connection  )  [virtual]

Call back for remote party being alerted. This function is called after the connection is informed that the remote endpoint is "ringing". Generally some time after the MakeConnection() function was called, this is function is called.

If PFalse is returned the connection is aborted.

If an application overrides this function, it should generally call the ancestor version for correct operation. An application would typically only intercept this function if it wishes to do some form of logging. For this you can obtain the name of the caller by using the function OpalConnection::GetRemotePartyName().

The default behaviour calls the OpalManager function of the same name.

Parameters:
connection Connection that is alerting
virtual OpalConnection::AnswerCallResponse OpalEndPoint::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.

Parameters:
connection connection that is being answered
caller caller
virtual void OpalEndPoint::OnClosedMediaStream ( const OpalMediaStream stream  )  [virtual]

Call back for closed a media stream.

The default behaviour calls the OpalManager function of the same name.

Parameters:
stream Media stream being closed
virtual void OpalEndPoint::OnConnected ( OpalConnection connection  )  [virtual]

A call back function whenever a connection is "connected". This indicates that a connection to an endpoint was connected. That is the endpoint received acknowledgement via whatever protocol it uses that the connection may now start media streams.

In the context of H.323 this means that the CONNECT pdu has been received.

The default behaviour calls the OpalManager function of the same name.

Parameters:
connection Connection that was established
virtual void OpalEndPoint::OnEstablished ( OpalConnection connection  )  [virtual]

A call back function whenever a connection is established. This indicates that a connection to an endpoint was established. This usually occurs after OnConnected() and indicates that the connection is both connected and has media flowing.

In the context of H.323 this means that the signalling and control channels are open and the TerminalCapabilitySet and MasterSlave negotiations are complete.

The default behaviour does nothing.

Parameters:
connection Connection that was established
virtual PBoolean OpalEndPoint::OnForwarded ( OpalConnection connection,
const PString &  remoteParty 
) [virtual]

A call back function whenever a connection is forwarded.

The default behaviour does nothing.

Parameters:
connection Connection that was held
remoteParty The new remote party
virtual void OpalEndPoint::OnHold ( OpalConnection connection  )  [virtual]
virtual void OpalEndPoint::OnHold ( OpalConnection connection,
bool  fromRemote,
bool  onHold 
) [virtual]

A call back function whenever a connection is "held" or "retrieved". This indicates that a connection to an endpoint was held, or retrieved, either locally or by the remote endpoint.

The default behaviour calls the OpalManager function of the same name.

Parameters:
connection Connection that was held/retrieved
fromRemote Indicates remote has held local connection
onHold Indicates have just been held/retrieved.
virtual PBoolean OpalEndPoint::OnIncomingConnection ( OpalConnection connection  )  [virtual]
Parameters:
connection Connection that is calling
virtual PBoolean OpalEndPoint::OnIncomingConnection ( OpalConnection connection,
unsigned  options 
) [virtual]
Parameters:
connection Connection that is calling
options options for new connection (can't use default value as overrides will fail)
virtual PBoolean OpalEndPoint::OnIncomingConnection ( OpalConnection connection,
unsigned  options,
OpalConnection::StringOptions stringOptions 
) [virtual]

Call back for answering an incoming call. This function is used for an application to control the answering of incoming calls.

If PTrue is returned then the connection continues. If PFalse then the connection is aborted.

Note this function should not block for any length of time. If the decision to answer the call may take some time eg waiting for a user to pick up the phone, then AnswerCallPending or AnswerCallDeferred should be returned.

If an application overrides this function, it should generally call the ancestor version to complete calls. Unless the application completely takes over that responsibility. Generally, an application would only intercept this function if it wishes to do some form of logging. For this you can obtain the name of the caller by using the function OpalConnection::GetRemotePartyName().

The default behaviour calls the OpalManager function of the same name.

Parameters:
connection Connection that is calling
options options for new connection (can't use default value as overrides will fail)
virtual void OpalEndPoint::OnMWIReceived ( const PString &  party,
OpalManager::MessageWaitingType  type,
const PString &  extraInfo 
) [virtual]

Callback called when Message Waiting Indication (MWI) is received

Parameters:
party Name of party MWI is for
type Type of message that is waiting
extraInfo Addition information on the MWI
virtual void OpalEndPoint::OnNewConnection ( OpalCall call,
OpalConnection connection 
) [virtual]

Call back for a new connection has been constructed. This is called after CreateConnection has returned a new connection. It allows an application to make any custom adjustments to the connection before it begins to process the protocol. behind it.

Parameters:
call Call that owns the newly created connection.
connection New connection just created
virtual PBoolean OpalEndPoint::OnOpenMediaStream ( OpalConnection connection,
OpalMediaStream stream 
) [virtual]

Call back when opening a media stream. This function is called when a connection has created a new media stream according to the logic of its underlying protocol.

The usual requirement is that media streams are created on all other connections participating in the call and all of the media streams are attached to an instance of an OpalMediaPatch object that will read from one of the media streams passing data to the other media streams.

The default behaviour calls the OpalManager function of the same name.

Parameters:
connection Connection that owns the media stream
stream New media stream being opened
virtual void OpalEndPoint::OnProceeding ( OpalConnection connection  )  [virtual]

Call back for remote party is now responsible for completing the call. This function is called when the remote system has been contacted and it has accepted responsibility for completing, or failing, the call. This is distinct from OnAlerting() in that it is not known at this time if anything is ringing. This indication may be used to distinguish between "transport" level error, in which case another host may be tried, and that finalising the call has moved "upstream" and the local system has no more to do but await a result.

If an application overrides this function, it should generally call the ancestor version for correct operation.

The default behaviour calls the OpalManager function of the same name.

Parameters:
connection Connection that is proceeeding
virtual void OpalEndPoint::OnReleased ( OpalConnection connection  )  [virtual]

A call back function whenever a connection is broken. This function can do any internal cleaning up and waiting on background threads that may be using the connection object.

Note that there is not a one to one relationship with the OnEstablishedConnection() function. This function may be called without that function being called. For example if MakeConnection() was used but the call never completed.

Classes that override this function should make sure they call the ancestor version for correct operation.

An application will not typically call this function as it is used by the OpalManager during a release of the connection.

The default behaviour removes the connection from the internal database and calls the OpalManager function of the same name.

Parameters:
connection Connection that was established

Reimplemented in SIPEndPoint.

virtual PBoolean OpalEndPoint::OnSetUpConnection ( OpalConnection connection  )  [virtual]

Callback for outgoing connection, it is invoked after OpalLineConnection::SetUpConnection This function allows the application to set up some parameters or to log some messages

virtual void OpalEndPoint::OnUserInputString ( OpalConnection connection,
const PString &  value 
) [virtual]

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

The default behaviour calls the OpalManager function of the same name.

Parameters:
connection Connection input has come from
value String value of indication
virtual void OpalEndPoint::OnUserInputTone ( OpalConnection connection,
char  tone,
int  duration 
) [virtual]

Call back for remote enpoint has sent user input. If duration is zero then this indicates the beginning of the tone. If duration is non-zero then it indicates the end of the tone output.

The default behaviour calls the OpalManager function of the same name.

Parameters:
connection Connection input has come from
tone Tone received
duration Duration of tone
OpalEndPoint::PDECLARE_NOTIFIER ( PThread  ,
OpalEndPoint  ,
ListenerCallback   
)

Handle new incoming connection. This will either create a new connection object or utilise a previously created connection on the same transport address and reference number.

void OpalEndPoint::PrintOn ( ostream &  strm  )  const

Standard stream print function. The PObject class has a << operator defined that calls this function polymorphically.

Parameters:
strm Stream to output text representation
virtual PString OpalEndPoint::ReadUserInput ( OpalConnection connection,
const char *  terminators = "#\r\n",
unsigned  lastDigitTimeout = 4,
unsigned  firstDigitTimeout = 30 
) [virtual]

Read a sequence of user indications from connection with timeouts.

Parameters:
connection Connection to read input from
terminators Characters that can terminte input
lastDigitTimeout Timeout on last digit in string
firstDigitTimeout Timeout on receiving any digits
PBoolean OpalEndPoint::RemoveListener ( OpalListener listener  ) 

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

Parameters:
listener Transport dependent listener.
void OpalEndPoint::SetDefaultDisplayName ( const PString &  name  )  [inline]

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

References defaultDisplayName.

virtual void OpalEndPoint::SetDefaultLocalPartyName ( const PString &  name  )  [inline, virtual]

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

Parameters:
name Name for local party

References defaultLocalPartyName.

void OpalEndPoint::SetDefaultStringOption ( const PCaselessString &  key,
const PString &  data 
) [inline]

Set the default option for created connections.

References m_defaultStringOptions.

void OpalEndPoint::SetDefaultStringOptions ( const OpalConnection::StringOptions opts  )  [inline]

Set the default options for created connections.

References m_defaultStringOptions.

void OpalEndPoint::SetInitialBandwidth ( unsigned  bandwidth  )  [inline]

Get the initial bandwidth parameter.

References initialBandwidth.

void OpalEndPoint::SetProductInfo ( const OpalProductInfo info  )  [inline]

Set the product info for all endpoints.

References productInfo.

void OpalEndPoint::SetSendUserInputMode ( OpalConnection::SendUserInputModes  mode  )  [inline]

Set the default mode for sending User Input Indications.

References defaultSendUserInputMode.

virtual void OpalEndPoint::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 in SIPEndPoint.

PBoolean OpalEndPoint::StartListener ( OpalListener listener  ) 

Add a listener to the endoint. 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.

Parameters:
listener Transport dependent listener.
PBoolean OpalEndPoint::StartListener ( const OpalTransportAddress iface  ) 

Add a listener to the endoint. This allows for the automatic creating of incoming call connections. / If the address is empty then the first entry of GetDefaultListeners() is used.

Parameters:
iface Address of interface to listen on.
PBoolean OpalEndPoint::StartListeners ( const PStringArray &  interfaces  ) 

Add a set of listeners to the endoint. This allows for the automatic creating of incoming call connections. If the list is empty then GetDefaultListeners() is used.

Parameters:
interfaces Address of interface to listen on.
PBoolean OpalEndPoint::StopListener ( const OpalTransportAddress iface  ) 

Stop a listener given the transport address. Returns PTrue if a listener was on that interface, and was stopped.

Parameters:
iface Address of interface we may be listening on.

Friends And Related Function Documentation

void OpalConnection::Release ( CallEndReason  reason  )  [friend]
void OpalManager::GarbageCollection (  )  [friend]

Member Data Documentation

unsigned OpalEndPoint::attributeBits [protected]

Referenced by HasAttribute().

PString OpalEndPoint::defaultDisplayName [protected]

Referenced by GetDefaultSignalPort().

unsigned OpalEndPoint::initialBandwidth [protected]
PMutex OpalEndPoint::inUseFlag [protected]
OpalListenerList OpalEndPoint::listeners [protected]

Referenced by GetListeners().

PCaselessString OpalEndPoint::prefixName [protected]

Referenced by GetPrefixName().

Referenced by GetProductInfo(), and SetProductInfo().


The documentation for this class was generated from the following file:
Generated on Tue Jun 15 00:29:14 2010 for OPAL by  doxygen 1.6.3