OPAL  Version 3.10.10
OpalPCSSConnection Class Reference

#include <pcss.h>

Inheritance diagram for OpalPCSSConnection:
OpalLocalConnection OpalConnection

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 OpalMediaStreamCreateMediaStream (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.
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.
void SetUserData (void *v)
 Set user data pointer.
- Public Member Functions inherited from OpalConnection
virtual bool GarbageCollection ()
const StringOptionsGetStringOptions () 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 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< OpalConnectionGetOtherPartyConnection () 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)
OpalEndPointGetEndPoint () const
OpalCallGetCall () 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 OpalProductInfoGetProductInfo () 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 OpalProductInfoGetRemoteProductInfo () 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)
OpalSilenceDetectorGetSilenceDetector () const
virtual PString GetIdentifier () const
virtual PINDEX GetMaxRtpPayloadSize () const
virtual OpalTransportGetTransport () 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, 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

OpalPCSSEndPointendpoint
PString soundChannelPlayDevice
PString soundChannelRecordDevice
unsigned soundChannelBuffers
unsigned m_soundChannelBufferTime
- Protected Attributes inherited from OpalLocalConnection
OpalLocalEndPointendpoint
void * m_userData
- Protected Attributes inherited from OpalConnection
OpalCallownerCall
OpalEndPointendpoint
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
OpalSilenceDetectorsilenceDetector
OpalMediaFormat m_filterMediaFormat
OpalMediaFormatList m_localMediaFormats
MediaAddressesDict mediaTransportAddresses
PSafeList< OpalMediaStreammediaStreams
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
callOwner calll for connection
endpointOwner endpoint for connection
playDeviceSound channel play device
recordDeviceSound channel record device
optionsOption bit map to be passed to connection
stringOptionsOptions 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
mediaFormatMedia format for stream
sessionIDSession number for stream
isSourceIs a source stream

Reimplemented from OpalLocalConnection.

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

Create an PSoundChannel based media stream.

Parameters
mediaFormatMedia format for the connection
isSourceDirection for channel
virtual bool OpalPCSSConnection::GetAudioMute ( bool  source,
bool &  mute 
)
virtual

Get the mute state for the audio media channel.

Parameters
sourcetrue for source (microphone), false for sink (speaker)
muteFlag 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
sourcetrue 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
sourcetrue for source (microphone), false for sink (speaker)
percentageGain, 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
sourcetrue for source (microphone), false for sink (speaker)
muteFlag 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
sourcetrue for source (microphone), false for sink (speaker)
percentageGain, 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
remotePartyRemote party to transfer the existing call to

Reimplemented from OpalConnection.

Field Documentation

OpalPCSSEndPoint& OpalPCSSConnection::endpoint
protected
unsigned OpalPCSSConnection::m_soundChannelBufferTime
protected
unsigned OpalPCSSConnection::soundChannelBuffers
protected
PString OpalPCSSConnection::soundChannelPlayDevice
protected
PString OpalPCSSConnection::soundChannelRecordDevice
protected

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