OPAL Version 3.10.4

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

- Data Structures
- Class Hierarchy
- Data Fields

Protected Member Functions | Protected Attributes
OpalLineConnection Class Reference

`#include <lidep.h>`

Inheritance diagram for OpalLineConnection:

## Public Member Functions

Construction
| OpalLineConnection (OpalCall &call, OpalLineEndPoint &endpoint, OpalLine &line, const PString &number)
Overrides from OpalConnection
virtual PString | GetPrefixName () const
virtual bool | IsNetworkConnection () const
virtual PBoolean | SetUpConnection ()
virtual PBoolean | SetAlerting (const PString &calleeName, PBoolean withMedia)
virtual PBoolean | SetConnected ()
virtual void | OnReleased ()
virtual PString | GetDestinationAddress ()
virtual OpalMediaFormatList | GetMediaFormats () const
virtual OpalMediaStream * | CreateMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, PBoolean isSource)
virtual PBoolean | OnOpenMediaStream (OpalMediaStream &stream)
virtual void | OnClosedMediaStream (const OpalMediaStream &stream)
virtual PBoolean | SetAudioVolume (PBoolean source, unsigned percentage)
virtual unsigned | GetAudioSignalLevel (PBoolean source)
virtual PBoolean | SendUserInputString (const PString &value)
virtual PBoolean | SendUserInputTone (char tone, int duration)
virtual PBoolean | PromptUserInput (PBoolean play)
Call handling functions
void | StartIncoming ()
virtual void | Monitor ()
Member variable access
OpalLine & | GetLine ()
OpalLineInterfaceDevice::CallProgressTones | GetPromptTone () const
void | SetPromptTone (OpalLineInterfaceDevice::CallProgressTones tone)
void | setDialDelay (unsigned int uiDialDelay)
unsigned int | getDialDelay () const
Public Member Functions inherited from OpalConnection
virtual bool | GarbageCollection ()
const StringOptions & | GetStringOptions () const
| Get the string options associated with this connection.
void | SetStringOptions (const StringOptions &options, bool overwrite)
| Set the string options associated with this connection.
virtual void | OnApplyStringOptions ()
| Call back for connection to act on changed string options.
virtual void | EnableRecording ()
virtual void | DisableRecording ()
| OpalConnection (OpalCall &call, OpalEndPoint &endpoint, const PString &token, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
| ~OpalConnection ()
void | PrintOn (ostream &strm) const
virtual PBoolean | OnIncomingConnection (unsigned int options, OpalConnection::StringOptions *stringOptions)
virtual PBoolean | OnSetUpConnection ()
virtual void | OnProceeding ()
virtual void | OnAlerting ()
virtual AnswerCallResponse | OnAnswerCall (const PString &callerName)
virtual void | AnsweringCall (AnswerCallResponse response)
virtual void | OnConnected ()
virtual void | OnEstablished ()
virtual bool | OnTransferNotify (const PStringToString &info, const OpalConnection *transferringConnection)
virtual void | Release (CallEndReason reason=EndedByLocalUser)
virtual PBoolean | ForwardCall (const PString &forwardParty)
PSafePtr< OpalConnection > | GetOtherPartyConnection () const
template<class cls >
PSafePtr< cls > | GetOtherPartyConnectionAs () const
virtual OpalMediaFormatList | GetLocalMediaFormats ()
virtual void | AdjustMediaFormats (bool local, const OpalConnection *otherConnection, OpalMediaFormatList &mediaFormats) const
virtual unsigned | GetNextSessionID (const OpalMediaType &mediaType, bool isSource)
virtual OpalMediaType::AutoStartMode | GetAutoStart (const OpalMediaType &mediaType) const
virtual void | AutoStartMediaStreams (bool force=false)
virtual bool | SwitchFaxMediaStreams (bool enableFax)
virtual void | OnSwitchedFaxMediaStreams (bool enabledFax)
virtual OpalMediaStreamPtr | OpenMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource)
virtual bool | CloseMediaStream (unsigned sessionId, bool source)
virtual bool | CloseMediaStream (OpalMediaStream &stream)
bool | RemoveMediaStream (OpalMediaStream &strm)
virtual void | StartMediaStreams ()
virtual void | CloseMediaStreams ()
virtual void | PauseMediaStreams (bool paused)
virtual void | OnPauseMediaStream (OpalMediaStream &strm, bool paused)
OpalMediaStreamPtr | GetMediaStream (const PString &streamID, bool source) const
OpalMediaStreamPtr | GetMediaStream (unsigned sessionId, bool source) const
OpalMediaStreamPtr | GetMediaStream (const OpalMediaType &mediaType, bool source, OpalMediaStreamPtr previous=NULL) const
virtual void | OnPatchMediaStream (PBoolean isSource, OpalMediaPatch &patch)
virtual void | OnStartMediaPatch (OpalMediaPatch &patch)
virtual void | OnStopMediaPatch (OpalMediaPatch &patch)
virtual bool | OnMediaCommand (OpalMediaStream &stream, const OpalMediaCommand &command)
virtual void | AttachRFC2833HandlerToPatch (PBoolean isSource, OpalMediaPatch &patch)
virtual PBoolean | IsMediaBypassPossible (unsigned sessionID) const
virtual PBoolean | CreateVideoInputDevice (const OpalMediaFormat &mediaFormat, PVideoInputDevice *&device, PBoolean &autoDelete)
virtual PBoolean | CreateVideoOutputDevice (const OpalMediaFormat &mediaFormat, PBoolean preview, PVideoOutputDevice *&device, PBoolean &autoDelete)
virtual bool | SendVideoUpdatePicture (unsigned sessionID=0, bool force=false) const
unsigned | GetBandwidthAvailable () const
virtual PBoolean | SetBandwidthAvailable (unsigned newBandwidth, PBoolean force=false)
virtual unsigned | GetBandwidthUsed () const
virtual PBoolean | SetBandwidthUsed (unsigned releasedBandwidth, unsigned requiredBandwidth)
OpalEndPoint & | GetEndPoint () const
OpalCall & | GetCall () const
const PString & | GetToken () const
PBoolean | IsOriginating () const
const PTime & | GetPhaseTime (Phases phase) const
const PTime & | GetSetupUpTime () const
const PTime & | GetAlertingTime () const
const PTime & | GetConnectionStartTime () const
const PTime & | GetConnectionEndTime () const
const OpalProductInfo & | GetProductInfo () const
void | SetProductInfo (const OpalProductInfo &info)
const PString & | GetLocalPartyName () const
virtual void | SetLocalPartyName (const PString &name)
virtual PString | GetLocalPartyURL () const
const PString & | GetDisplayName () const
void | SetDisplayName (const PString &name)
virtual bool | IsPresentationBlocked () const
const PString & | GetRemotePartyName () const
void | SetRemotePartyName (const PString &name)
const PString & | GetRemotePartyNumber () const
const PString & | GetRemotePartyAddress () const
void | SetRemotePartyAddress (const PString &addr)
virtual PString | GetRemotePartyURL () const
const PString & | GetRedirectingParty () const
void | SetRedirectingParty (const PString &party)
const PString | GetRemotePartyCallbackURL () const
PCaselessString | GetRemoteApplication () const
const OpalProductInfo & | GetRemoteProductInfo () const
const PString & | GetCalledPartyName () const
const PString & | GetCalledPartyNumber () const
virtual PString | GetCalledPartyURL ()
void | CopyPartyNames (const OpalConnection &other)
virtual PString | GetAlertingType () const
virtual bool | SetAlertingType (const PString &info)
virtual PString | GetCallInfo () const
unsigned | GetMinAudioJitterDelay () const
unsigned | GetMaxAudioJitterDelay () const
void | SetAudioJitterDelay (unsigned minDelay, unsigned maxDelay)
OpalSilenceDetector * | GetSilenceDetector () const
virtual PString | GetIdentifier () const
virtual PINDEX | GetMaxRtpPayloadSize () const
virtual OpalTransport & | GetTransport () const
| PDICTIONARY (MediaAddressesDict, POrdinalKey, OpalTransportAddress)
MediaAddressesDict & | GetMediaTransportAddresses ()
unsigned | GetVideoUpdateRequestsSent () const
__inline Phases | GetPhase () const
__inline bool | IsEstablished () const
| Return true if connection is in the established phase.
__inline bool | IsReleased () const
| Return true if connection is in the established phase.
void | SetPhase (Phases phaseToSet)
CallEndReason | GetCallEndReason () const
PString | GetCallEndReasonText () const
virtual void | SetCallEndReason (CallEndReason reason)
void | ClearCall (CallEndReason reason=EndedByLocalUser)
virtual void | ClearCallSynchronous (PSyncPoint *sync, CallEndReason reason=EndedByLocalUser)
unsigned | GetQ931Cause () const
void | SetQ931Cause (unsigned v)
virtual bool | TransferConnection (const PString &remoteParty)
virtual bool | Hold (bool fromRemote, bool placeOnHold)
virtual bool | IsOnHold (bool fromRemote)
virtual void | OnHold (bool fromRemote, bool onHold)
virtual void | SetSendUserInputMode (SendUserInputModes mode)
virtual SendUserInputModes | GetSendUserInputMode () const
virtual SendUserInputModes | GetRealSendUserInputMode () const
virtual PBoolean | SendUserInputTone (char tone, unsigned duration=0)
virtual void | OnUserInputString (const PString &value)
virtual void | OnUserInputTone (char tone, unsigned duration)
void | SendUserInputHookFlash (unsigned duration=500)
virtual PString | GetUserInput (unsigned timeout=30)
virtual void | SetUserInput (const PString &input)
virtual PString | ReadUserInput (const char *terminators="#\r\n", unsigned lastDigitTimeout=4, unsigned firstDigitTimeout=30)

## Protected Member Functions

| PDECLARE_NOTIFIER (PThread, OpalLineConnection, HandleIncoming)
Protected Member Functions inherited from OpalConnection
void | OnConnectedInternal ()
| PDECLARE_NOTIFIER (PThread, OpalConnection, OnReleaseThreadMain)
| PDECLARE_NOTIFIER (RTP_DataFrame, OpalConnection, OnRecordAudio)
| PDECLARE_NOTIFIER (RTP_DataFrame, OpalConnection, OnRecordVideo)
void | OnStartRecording (OpalMediaPatch *patch)
void | OnStopRecording (OpalMediaPatch *patch)

## Protected Attributes

OpalLineEndPoint & | endpoint
OpalLine & | line
bool | wasOffHook
unsigned | minimumRingCount
OpalLineInterfaceDevice::DialParams | m_dialParams
OpalLineInterfaceDevice::CallProgressTones | m_promptTone
PThread * | handlerThread
Protected Attributes inherited from OpalConnection
OpalCall & | ownerCall
PString | callToken
PBoolean | originating
OpalProductInfo | productInfo
PString | localPartyName
PString | displayName
PString | remotePartyName
PString | remotePartyURL
OpalProductInfo | remoteProductInfo
PString | remotePartyNumber
PString | remotePartyAddress
PString | m_redirectingParty
CallEndReason | callEndReason
bool | synchronousOnRelease
PString | m_calledPartyNumber
PString | m_calledPartyName
SendUserInputModes | sendUserInputMode
PString | userInputString
PSyncPoint | userInputAvailable
OpalSilenceDetector * | silenceDetector
OpalMediaFormat | m_filterMediaFormat
OpalMediaFormatList | m_localMediaFormats
MediaAddressesDict | mediaTransportAddresses
PSafeList< OpalMediaStream > | mediaStreams
unsigned | minAudioJitterDelay
unsigned | maxAudioJitterDelay
unsigned | bandwidthAvailable
StringOptions | m_stringOptions
PString | m_recordingFilename
PNotifier | m_recordAudioNotifier
PNotifier | m_recordVideoNotifier
unsigned | m_VideoUpdateRequestsSent
AutoStartMap | m_autoStartInfo
enum OpalConnection:: { ... } | m_faxMediaStreamsSwitchState
ZeroTime | m_phaseTime [NumPhases]

## Additional Inherited Members

Public Types inherited from OpalConnection

enum

CallEndReasonCodes {
EndedByLocalUser, EndedByNoAccept, EndedByAnswerDenied, EndedByRemoteUser,
EndedByRefusal, EndedByNoAnswer, EndedByCallerAbort, EndedByTransportFail,
EndedByConnectFail, EndedByGatekeeper, EndedByNoUser, EndedByNoBandwidth,
EndedByCapabilityExchange, EndedByCallForwarded, EndedBySecurityDenial, EndedByLocalBusy,
EndedByLocalCongestion, EndedByRemoteBusy, EndedByRemoteCongestion, EndedByUnreachable,
EndedByNoEndPoint, EndedByHostOffline, EndedByTemporaryFailure, EndedByQ931Cause,
EndedByDurationLimit, EndedByInvalidConferenceID, EndedByNoDialTone, EndedByNoRingBackTone,
EndedByOutOfService, EndedByAcceptingCallWaiting, EndedByGkAdmissionFailed, NumCallEndReasons
}

enum | AnswerCallResponse { AnswerCallNow, AnswerCallDenied, AnswerCallPending, AnswerCallDeferred, AnswerCallAlertWithMedia, AnswerCallDeferredWithMedia, AnswerCallProgress, AnswerCallNowAndReleaseCurrent, NumAnswerCallResponses }

enum

Options {
FastStartOptionDisable = 0x0001, FastStartOptionEnable = 0x0002, FastStartOptionMask = 0x0003, H245TunnelingOptionDisable = 0x0004,
H245TunnelingOptionEnable = 0x0008, H245TunnelingOptionMask = 0x000c, H245inSetupOptionDisable = 0x0010, H245inSetupOptionEnable = 0x0020,
H245inSetupOptionMask = 0x0030, DetectInBandDTMFOptionDisable = 0x0040, DetectInBandDTMFOptionEnable = 0x0080, DetectInBandDTMFOptionMask = 0x00c0,
RTPAggregationDisable = 0x0100, RTPAggregationEnable = 0x0200, RTPAggregationMask = 0x0300, SendDTMFAsDefault = 0x0000,
SendDTMFAsString = 0x0400, SendDTMFAsTone = 0x0800, SendDTMFAsRFC2833 = 0x0c00, SendDTMFMask = 0x0c00
}

enum | Phases { UninitialisedPhase, SetUpPhase, ProceedingPhase, AlertingPhase, ConnectedPhase, EstablishedPhase, ForwardingPhase, ReleasingPhase, ReleasedPhase, NumPhases }
enum | SendUserInputModes { SendUserInputAsQ931, SendUserInputAsString, SendUserInputAsTone, SendUserInputAsRFC2833, SendUserInputInBand, SendUserInputAsProtocolDefault, NumSendUserInputModes, SendUserInputAsInlineRFC2833 = SendUserInputAsRFC2833 }
static PString | GetCallEndReasonText (CallEndReason reason)
static void | SetCallEndReasonText (CallEndReasonCodes reasonCode, const PString &newText)
Protected Types inherited from OpalConnection
enum | { e_NotSwitchingFaxMediaStreams, e_SwitchingToFaxMediaStreams, e_SwitchingFromFaxMediaStreams }

## Detailed Description

This class describes the LID based codec capability.

## Constructor & Destructor Documentation

OpalLineConnection::OpalLineConnection | ( | OpalCall & | call,
|  | OpalLineEndPoint & | endpoint,
|  | OpalLine & | line,
|  | const PString & | number
| ) |  |

Create a new connection.

Parameters:

  call | Owner calll for connection
  endpoint | Endpoint for LID connection
  line | Line to make connection on
  number | Number to call on line

## Member Function Documentation

virtual OpalMediaStream* OpalLineConnection::CreateMediaStream | ( | const OpalMediaFormat & | mediaFormat,
|  | unsigned | sessionID,
|  | PBoolean | isSource
| ) |  |

virtual

Open a new media stream. This will create a media stream of an appropriate subclass as required by the underlying connection protocol. For instance H.323 would create an OpalRTPStream.

The sessionID parameter may not be needed by a particular media stream and may be ignored. In the case of an OpalRTPStream it us used.

Note that media streams may be created internally to the underlying protocol. This function is not the only way a stream can come into existance.

The default behaviour is pure.

Parameters:

  mediaFormat | Media format for stream
  sessionID | Session number for stream
  isSource | Is a source stream

Reimplemented from OpalConnection.

virtual unsigned OpalLineConnection::GetAudioSignalLevel | ( | PBoolean | source | ) |

virtual

Get the average signal level (0..32767) for the audio media channel. A return value of UINT_MAX indicates no valid signal, eg no audio channel opened.

Parameters:

  source | true for source (microphone), false for sink (speaker)

Reimplemented from OpalConnection.

virtual PString OpalLineConnection::GetDestinationAddress | ( |  | ) |

virtual

Get the destination address of an incoming connection. The default behaviour collects a DTMF number terminated with a '#' or if no digits were entered for a time (default 3 seconds). If no digits are entered within a longer time time (default 30 seconds), then an empty string is returned.

Reimplemented from OpalConnection.

unsigned int OpalLineConnection::getDialDelay | ( |  | ) | const

inline

Delay in msec to wait between the dial tone detection and dialing the dtmf

Returns:
  uiDialDelay the dial delay to get

References m_dialParams, and OpalLineInterfaceDevice::DialParams::m_dialStartDelay.

OpalLine& OpalLineConnection::GetLine | ( |  | ) |

inline

Get the line being used by this media stream.

References line.

virtual OpalMediaFormatList OpalLineConnection::GetMediaFormats | ( |  | ) | const

virtual

Get the data formats this connection is capable of operating. This provides a list of media data format names that a OpalMediaStream may be created in within this connection.

The default behaviour returns the capabilities of the LID line.

Reimplemented from OpalConnection.

virtual PString OpalLineConnection::GetPrefixName | ( |  | ) | const

virtual

Get this connections protocol prefix for URLs.

Reimplemented from OpalConnection.

OpalLineInterfaceDevice::CallProgressTones OpalLineConnection::GetPromptTone | ( |  | ) | const

inline

Get the prompt tone used on POTS lines. Defaults to OpalLineInterfaceDevice::DialTone.

References m_promptTone.

virtual bool OpalLineConnection::IsNetworkConnection | ( |  | ) | const

inline virtual

Get indication of connection being to a "network". This indicates the if the connection may be regarded as a "network" connection. The distinction is about if there is a concept of a "remote" party being connected to and is best described by example: sip, h323, iax and pstn are all "network" connections as they connect to something "remote". While pc, pots and ivr are not as the entity being connected to is intrinsically local.

Implements OpalConnection.

References OpalLine::IsTerminal().

virtual void OpalLineConnection::Monitor | ( |  | ) |

virtual

Check for line hook state, DTMF tone for user indication etc.

virtual void OpalLineConnection::OnClosedMediaStream | ( | const OpalMediaStream & | stream | ) |

virtual

Call back for closed a media stream.

       Note that this is called while the OpalMediaStream is locked. Care needs to be
       taken to avoid deadlocks.

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

Parameters:

  stream | Media stream being closed

Reimplemented from OpalConnection.

virtual PBoolean OpalLineConnection::OnOpenMediaStream | ( | 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 ancestor and adds a LID silence detector filter.

Parameters:

  stream | New media stream being opened

Reimplemented from OpalConnection.

virtual void OpalLineConnection::OnReleased | ( |  | ) |

virtual

Clean up the termination of the connection. 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 SetUpConnection() 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 calls starts playing the busy tone and calls the ancestor function.

Reimplemented from OpalConnection.

OpalLineConnection::PDECLARE_NOTIFIER | ( | PThread | ,
|  | OpalLineConnection | ,
|  | HandleIncoming |
| ) |  |

protected

virtual PBoolean OpalLineConnection::PromptUserInput | ( | PBoolean | play | ) |

virtual

Play a prompt to the connection before rading user indication string.

       For example the LID connection would play a dial tone.

       The default behaviour does nothing.

Parameters:

  play | Flag to start or stop playing the prompt

Reimplemented from OpalConnection.

virtual PBoolean OpalLineConnection::SendUserInputString | ( | const PString & | value | ) |

virtual

Send a user input indication to the remote endpoint. This sends an arbitrary string as a user indication. If DTMF tones in particular are required to be sent then the SendIndicationTone() function should be used.

The default behaviour plays the DTMF tones on the line.

Parameters:

  value | String value of indication

Reimplemented from OpalConnection.

virtual PBoolean OpalLineConnection::SendUserInputTone | ( | char | tone,
|  | int | duration
| ) |  |

virtual

Send a user input indication to the remote endpoint. This sends DTMF emulation user input. If something other than the standard tones need be sent use the SendUserInputString() function.

The default behaviour plays the DTMF tone on the line.

Parameters:

  tone | DTMF tone code
  duration | Duration of tone in milliseconds

virtual PBoolean OpalLineConnection::SetAlerting | ( | const PString & | calleeName,
|  | PBoolean | withMedia
| ) |  |

virtual

Indicate to remote endpoint an alert is in progress. If this is an incoming connection and the AnswerCallResponse is in a AnswerCallDeferred or AnswerCallPending state, then this function is used to indicate to that endpoint that an alert is in progress. This is usually due to another connection which is in the call (the B party) has received an OnAlerting() indicating that its remoteendpoint is "ringing".

The default behaviour starts the ring back tone.

Parameters:

  calleeName | Name of endpoint being alerted.
  withMedia | Open media with alerting

Implements OpalConnection.

virtual PBoolean OpalLineConnection::SetAudioVolume | ( | PBoolean | source,
|  | unsigned | percentage
| ) |  |

virtual

Set the volume (gain) for the audio media channel to the specified percentage.

Parameters:

  source | true for source (microphone), false for sink (speaker)
  percentage | Gain, 0=silent, 100=maximun

Reimplemented from OpalConnection.

virtual PBoolean OpalLineConnection::SetConnected | ( |  | ) |

virtual

Indicate to remote endpoint we are connected.

       The default behaviour stops the ring back tone.

Reimplemented from OpalConnection.

void OpalLineConnection::setDialDelay | ( | unsigned int | uiDialDelay | ) |

inline

Delay in msec to wait between the dial tone detection and dialing the dtmf

Parameters:

  uiDialDelay | Dialing delay

References m_dialParams, and OpalLineInterfaceDevice::DialParams::m_dialStartDelay.

void OpalLineConnection::SetPromptTone | ( | OpalLineInterfaceDevice::CallProgressTones | tone | ) |

inline

Set the prompt tone used on POTS lines.

References m_promptTone.

virtual PBoolean OpalLineConnection::SetUpConnection | ( |  | ) |

virtual

Start an outgoing connection. This function will initiate the connection to the remote entity, for example in H.323 it sends a SETUP, in SIP it sends an INVITE etc.

The default behaviour does.

Implements OpalConnection.

void OpalLineConnection::StartIncoming | ( |  | ) |

Handle a new connection from the LID line.

## Field Documentation

OpalLineEndPoint& OpalLineConnection::endpoint

protected

Reimplemented from OpalConnection.

PThread* OpalLineConnection::handlerThread

protected

OpalLine& OpalLineConnection::line

protected

Referenced by GetLine().

OpalLineInterfaceDevice::DialParams OpalLineConnection::m_dialParams

protected

Referenced by getDialDelay(), and setDialDelay().

OpalLineInterfaceDevice::CallProgressTones OpalLineConnection::m_promptTone

protected

Referenced by GetPromptTone(), and SetPromptTone().

unsigned OpalLineConnection::minimumRingCount

protected

bool OpalLineConnection::wasOffHook

protected

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

- lidep.h