OpalPCSSConnection Class Reference

`#include <pcss.h>`

Inheritance diagram for OpalPCSSConnection:

## Public Member Functions

Construction
| OpalPCSSConnection (OpalCall &call, OpalPCSSEndPoint &endpoint, const PString &playDevice, const PString &recordDevice, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
| ~OpalPCSSConnection ()
Overrides from OpalConnection
virtual bool | TransferConnection (const PString &remoteParty)
virtual OpalMediaStream * | CreateMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, PBoolean isSource)
virtual PBoolean | SetAudioVolume (PBoolean source, unsigned percentage)
virtual PBoolean | GetAudioVolume (PBoolean source, unsigned &percentage)
virtual bool | SetAudioMute (bool source, bool mute)
virtual bool | GetAudioMute (bool source, bool &mute)
virtual unsigned | GetAudioSignalLevel (PBoolean source)
New operations
virtual PSoundChannel * | CreateSoundChannel (const OpalMediaFormat &mediaFormat, PBoolean isSource)
Member variable access
const PString & | GetSoundChannelPlayDevice () const
const PString & | GetSoundChannelRecordDevice () const
unsigned | GetSoundChannelBufferDepth () const
unsigned | GetSoundChannelBufferTime () const
Public Member Functions inherited from OpalLocalConnection
| OpalLocalConnection (OpalCall &call, OpalLocalEndPoint &endpoint, void *userData, unsigned options, OpalConnection::StringOptions *stringOptions, char tokenPrefix= 'L')
| ~OpalLocalConnection ()
virtual PBoolean | IsNetworkConnection () const
virtual void | OnApplyStringOptions ()
| Call back for connection to act on changed string options. More...
virtual PBoolean | SetUpConnection ()
virtual PBoolean | SetAlerting (const PString &calleeName, PBoolean withMedia)
virtual PBoolean | SetConnected ()
virtual OpalMediaStreamPtr | OpenMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource)
virtual PBoolean | SendUserInputString (const PString &value)
virtual bool | OnOutgoingSetUp ()
virtual bool | OnOutgoing ()
virtual bool | OnIncoming ()
virtual void | AlertingIncoming ()
virtual void | AcceptIncoming ()
void * | GetUserData () const
| Get user data pointer. More...
void | SetUserData (void *v)
| Set user data pointer. More...
Public Member Functions inherited from OpalConnection
virtual bool | GarbageCollection ()
const StringOptions & | GetStringOptions () const
| Get the string options associated with this connection. More...
void | SetStringOptions (const StringOptions &options, bool overwrite)
| Set the string options associated with this connection. More...
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, bool synchronous=false)
virtual void | OnReleased ()
virtual PString | GetDestinationAddress ()
virtual PBoolean | ForwardCall (const PString &forwardParty)
PSafePtr< OpalConnection > | GetOtherPartyConnection () const
template<class cls >
PSafePtr< cls > | GetOtherPartyConnectionAs () const
virtual OpalMediaFormatList | GetMediaFormats () 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 toT38)
virtual void | OnSwitchedFaxMediaStreams (bool toT38, bool success)
virtual bool | OnSwitchingFaxMediaStreams (bool toT38)
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 PBoolean | OnOpenMediaStream (OpalMediaStream &stream)
virtual void | OnClosedMediaStream (const OpalMediaStream &stream)
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)
virtual PString | GetPrefixName () const
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. More...
__inline bool | IsReleased () const
| Return true if connection is in the established phase. More...
void | SetPhase (Phases phaseToSet)
CallEndReason | GetCallEndReason () const
PString | GetCallEndReasonText () const
virtual void | SetCallEndReason (CallEndReason reason)
void | ClearCall (CallEndReason reason=EndedByLocalUser, PSyncPoint *sync=NULL)
virtual void | ClearCallSynchronous (PSyncPoint *sync, CallEndReason reason=EndedByLocalUser)
unsigned | GetQ931Cause () const
void | SetQ931Cause (unsigned v)
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)
virtual PBoolean | PromptUserInput (PBoolean play)

## Protected Attributes

OpalPCSSEndPoint & | endpoint
PString | soundChannelPlayDevice
PString | soundChannelRecordDevice
unsigned | soundChannelBuffers
unsigned | m_soundChannelBufferTime
Protected Attributes inherited from OpalLocalConnection
OpalLocalEndPoint & | endpoint
void * | m_userData
Protected Attributes inherited from OpalConnection
OpalCall & | ownerCall
OpalEndPoint & | endpoint
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
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 Public Member Functions inherited from OpalConnection
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 }
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)

## Detailed Description

PC Sound System connection.

## Constructor & Destructor Documentation

OpalPCSSConnection::OpalPCSSConnection | ( | OpalCall & | call,
|  | OpalPCSSEndPoint & | endpoint,
|  | const PString & | playDevice,
|  | const PString & | recordDevice,
|  | unsigned | options = `0`,
|  | OpalConnection::StringOptions * | stringOptions = `NULL`
| ) |  |

Create a new endpoint.

Parameters

  call | Owner calll for connection
  endpoint | Owner endpoint for connection
  playDevice | Sound channel play device
  recordDevice | Sound channel record device
  options | Option bit map to be passed to connection
  stringOptions | Options to be passed to connection

OpalPCSSConnection::~OpalPCSSConnection | ( |  | ) |

Destroy endpoint.

## Member Function Documentation

virtual OpalMediaStream* OpalPCSSConnection::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 OpalLocalConnection.

virtual PSoundChannel* OpalPCSSConnection::CreateSoundChannel | ( | const OpalMediaFormat & | mediaFormat,
|  | PBoolean | isSource
| ) |  |

virtual

Create an PSoundChannel based media stream.

Parameters

  mediaFormat | Media format for the connection
  isSource | Direction for channel

virtual bool OpalPCSSConnection::GetAudioMute | ( | bool | source,
|  | bool & | mute
| ) |  |

virtual

Get the mute state for the audio media channel.

Parameters

  source | true for source (microphone), false for sink (speaker)
  mute | Flag for muted audio

Reimplemented from OpalConnection.

virtual unsigned OpalPCSSConnection::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 PBoolean OpalPCSSConnection::GetAudioVolume | ( | PBoolean | source,
|  | unsigned & | percentage
| ) |  |

virtual

Get the volume (gain) for the audio media channel. The volume range is 0 == muted, 100 == LOUDEST.

Parameters

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

Reimplemented from OpalConnection.

unsigned OpalPCSSConnection::GetSoundChannelBufferDepth | ( |  | ) | const

inline

Get default the sound channel buffer depth. Note the largest of the depth in frames and the depth in milliseconds as returned by GetSoundBufferTime() is used.

References soundChannelBuffers.

unsigned OpalPCSSConnection::GetSoundChannelBufferTime | ( |  | ) | const

inline

Get default the sound channel buffer time in milliseconds. Note the largest of the depth in frames and the depth in milliseconds as returned by GetSoundBufferTime() is used.

References m_soundChannelBufferTime.

const PString& OpalPCSSConnection::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.

References soundChannelPlayDevice.

const PString& OpalPCSSConnection::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.

References soundChannelRecordDevice.

virtual bool OpalPCSSConnection::SetAudioMute | ( | bool | source,
|  | bool | mute
| ) |  |

virtual

Set the mute state for the audio media channel.

Parameters

  source | true for source (microphone), false for sink (speaker)
  mute | Flag for muted audio

Reimplemented from OpalConnection.

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

virtual

Set the volume (gain) for the audio media channel. The volume range is 0 == muted, 100 == LOUDEST.

Parameters

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

Reimplemented from OpalConnection.

virtual bool OpalPCSSConnection::TransferConnection | ( | const PString & | remoteParty | ) |

virtual

Initiate the transfer of an existing call (connection) to a new remote party.

If remoteParty is a valid call token, then the remote party is transferred to that party (consultation transfer) and both calls are cleared.

Parameters

  remoteParty | Remote party to transfer the existing call to

Reimplemented from OpalConnection.

## Field Documentation

OpalPCSSEndPoint& OpalPCSSConnection::endpoint

protected

unsigned OpalPCSSConnection::m_soundChannelBufferTime

protected

Referenced by GetSoundChannelBufferTime().

unsigned OpalPCSSConnection::soundChannelBuffers

protected

Referenced by GetSoundChannelBufferDepth().

PString OpalPCSSConnection::soundChannelPlayDevice

protected

Referenced by GetSoundChannelPlayDevice().

PString OpalPCSSConnection::soundChannelRecordDevice

protected

Referenced by GetSoundChannelRecordDevice().

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

- pcss.h