OPAL
Version 3.18.8
|
#include <opalmixer.h>
Public Member Functions | |
Construction | |
OpalMixerConnection (PSafePtr< OpalMixerNode > node, OpalCall &call, OpalMixerEndPoint &endpoint, void *userData, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL) | |
~OpalMixerConnection () | |
Overrides from OpalConnection | |
virtual void | OnReleased () |
virtual OpalMediaFormatList | GetMediaFormats () const |
virtual OpalMediaStream * | CreateMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, PBoolean isSource) |
virtual void | OnStartMediaPatch (OpalMediaPatch &patch) |
virtual void | OnApplyStringOptions () |
Call back for connection to act on changed string options. More... | |
virtual PBoolean | SendUserInputString (const PString &value) |
virtual PBoolean | SendUserInputTone (char tone, unsigned duration=0) |
virtual bool | GetConferenceState (OpalConferenceState *state) const |
Operations | |
void | SetListenOnly (bool listenOnly) |
bool | GetListenOnly () const |
PSafePtr< OpalMixerNode > | GetNode () const |
![]() | |
OpalLocalConnection (OpalCall &call, OpalLocalEndPoint &endpoint, void *userData, unsigned options, OpalConnection::StringOptions *stringOptions, char tokenPrefix= 'L') | |
~OpalLocalConnection () | |
virtual PBoolean | OnIncomingConnection (unsigned int options, OpalConnection::StringOptions *stringOptions) |
virtual PBoolean | IsNetworkConnection () const |
virtual PBoolean | SetUpConnection () |
virtual PBoolean | SetAlerting (const PString &calleeName, PBoolean withMedia) |
virtual PBoolean | SetConnected () |
virtual bool | HoldRemote (bool placeOnHold) |
virtual void | OnClosedMediaStream (const OpalMediaStream &stream) |
virtual bool | OnOutgoingSetUp () |
virtual bool | OnOutgoing () |
virtual bool | OnIncoming () |
virtual void | AlertingIncoming (bool withMedia=false) |
virtual void | AcceptIncoming () |
virtual bool | OnReadMediaFrame (const OpalMediaStream &mediaStream, RTP_DataFrame &frame) |
virtual bool | OnWriteMediaFrame (const OpalMediaStream &mediaStream, RTP_DataFrame &frame) |
virtual bool | OnReadMediaData (OpalMediaStream &mediaStream, void *data, PINDEX size, PINDEX &length) |
virtual bool | OnWriteMediaData (const OpalMediaStream &mediaStream, const void *data, PINDEX length, PINDEX &written) |
virtual OpalLocalEndPoint::Synchronicity | GetSynchronicity (const OpalMediaFormat &mediaFormat, bool isSource) const |
virtual bool | CreateVideoInputDevice (const OpalMediaFormat &mediaFormat, PVideoInputDevice *&device, bool &autoDelete) |
virtual bool | CreateVideoOutputDevice (const OpalMediaFormat &mediaFormat, bool preview, PVideoOutputDevice *&device, bool &autoDelete) |
virtual bool | ChangeVideoInputDevice (const PVideoDevice::OpenArgs &device, unsigned sessionID=0) |
virtual bool | ChangeVideoOutputDevice (const PVideoDevice::OpenArgs &device, unsigned sessionID=0, bool preview=false) |
bool | FarEndCameraControl (PVideoControlInfo::Types what, int direction=0, const PTimeInterval &duration=0) |
void | SetFarEndCameraCapabilityChangedNotifier (const PNotifier ¬ifier) |
Set a callback for when the far end camera control capabilities change. More... | |
void | SetFarEndCameraActionNotifier (const PNotifier ¬ifier) |
Set a callback for when a far end camera control action comes from remote. More... | |
void * | GetUserData () const |
Get user data pointer. More... | |
void | SetUserData (void *v) |
Set user data pointer. More... | |
![]() | |
P_DECLARE_TRACED_ENUM_EX (CallEndReasonCodes, NumCallEndReasons, EndedByLocalUser, 0, 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, EndedByMediaFailed, EndedByCallCompletedElsewhere, EndedByCertificateAuthority, EndedByIllegalAddress, EndedByCustomCode) | |
P_DECLARE_TRACED_ENUM (AnswerCallResponse, AnswerCallNow, AnswerCallDenied, AnswerCallPending, AnswerCallDeferred, AnswerCallAlertWithMedia, AnswerCallDeferredWithMedia, AnswerCallProgress, AnswerCallNowAndReleaseCurrent) | |
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 () |
PDECLARE_NOTIFIER (RTP_DataFrame, OpalConnection, OnRecordAudio) | |
void | InternalOnRecordAudio (PString key, PAutoPtr< RTP_DataFrame > frame) |
PDECLARE_NOTIFIER (RTP_DataFrame, OpalConnection, OnRecordVideo) | |
void | InternalOnRecordVideo (PString key, PAutoPtr< RTP_DataFrame > frame) |
virtual void | OnStartRecording (OpalMediaPatch *patch) |
virtual void | OnStopRecording (OpalMediaPatch *patch) |
bool | InternalOnConnected () |
bool | InternalOnEstablished () |
void | InternalSetAsOriginating () |
bool | InternalRelease (CallEndReason reason) |
void | InternalOnReleased () |
void | InternalExecuteMediaCommand (OpalMediaCommand *command) |
void | InternalCreatedMediaTransport (const OpalMediaTransportPtr &transport) |
OpalConnection (OpalCall &call, OpalEndPoint &endpoint, const PString &token, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL) | |
~OpalConnection () | |
void | PrintOn (ostream &strm) const |
virtual PBoolean | OnSetUpConnection () |
virtual void | OnProceeding () |
virtual void | OnAlerting (bool withMedia) |
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 PString | GetDestinationAddress () |
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 PStringArray | GetMediaCryptoSuites () const |
virtual unsigned | GetNextSessionID (const OpalMediaType &mediaType, bool isSource) |
virtual bool | RequireSymmetricMediaStreams () const |
virtual OpalMediaType::AutoStartMode | GetAutoStart (const OpalMediaType &mediaType) const |
virtual void | AutoStartMediaStreams (bool transfer=false) |
virtual OpalMediaStreamPtr | OpenMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource) |
bool | CloseMediaStream (unsigned sessionId, bool source) |
bool | CloseMediaStream (OpalMediaStreamPtr 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 |
bool | GetStatistics (const OpalMediaType &mediaType, bool source, OpalMediaStatistics &statistics) const |
Get media statistics of the type, and of the specifed direction. More... | |
virtual PBoolean | OnOpenMediaStream (OpalMediaStream &stream) |
virtual void | OnFailedMediaStream (bool fromRemote, const PString &reason) |
virtual void | OnPatchMediaStream (PBoolean isSource, OpalMediaPatch &patch) |
virtual void | OnStopMediaPatch (OpalMediaPatch &patch) |
virtual bool | OnMediaFailed (unsigned sessionId) |
bool | AllMediaFailed () const |
virtual bool | OnMediaCommand (OpalMediaStream &stream, const OpalMediaCommand &command) |
virtual bool | ExecuteMediaCommand (const OpalMediaCommand &command, bool aync=false) const |
virtual bool | GetMediaTransportAddresses (OpalConnection &otherConnection, unsigned sessionId, const OpalMediaType &mediaType, OpalTransportAddressArray &transports) const |
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) |
OpalBandwidth | GetBandwidthAvailable (OpalBandwidth::Direction dir) const |
virtual bool | SetBandwidthAvailable (OpalBandwidth::Direction dir, OpalBandwidth availableBandwidth) |
virtual bool | SetBandwidthAllocated (OpalBandwidth::Direction dir, OpalBandwidth newBandwidth) |
virtual OpalBandwidth | GetBandwidthUsed (OpalBandwidth::Direction dir) const |
virtual bool | SetBandwidthUsed (OpalBandwidth::Direction dir, OpalBandwidth releasedBandwidth, OpalBandwidth requiredBandwidth) |
P_DECLARE_TRACED_ENUM (SendUserInputModes, SendUserInputAsQ931, SendUserInputAsString, SendUserInputAsTone, SendUserInputAsRFC2833, SendUserInputAsInlineRFC2833=SendUserInputAsRFC2833, SendUserInputInBand, SendUserInputAsProtocolDefault) | |
virtual void | SetSendUserInputMode (SendUserInputModes mode) |
virtual SendUserInputModes | GetSendUserInputMode () const |
virtual SendUserInputModes | GetRealSendUserInputMode () const |
virtual void | OnUserInputString (const PString &value) |
void | OnUserInputStringCallback (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="YX#\r\n", unsigned lastDigitTimeout=4, unsigned firstDigitTimeout=30) |
virtual PBoolean | PromptUserInput (PBoolean play) |
virtual bool | RequestPresentationRole (bool release) |
virtual bool | OnChangedPresentationRole (const PString &newChairURI, bool request) |
virtual bool | HasPresentationRole () const |
virtual bool | GarbageCollection () |
OpalEndPoint & | GetEndPoint () const |
OpalCall & | GetCall () const |
const PString & | GetToken () const |
virtual void | SetToken (const PString &newToken) |
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 |
virtual OpalTransportAddress | GetRemoteAddress () const |
virtual PString | GetRemotePartyURL () const |
virtual PString | GetRemoteIdentity () const |
P_DEPRECATED PString | GetRemotePartyAddress () const |
P_DEPRECATED const PString | GetRemotePartyCallbackURL () const |
PCaselessString | GetRemoteApplication () const |
const OpalProductInfo & | GetRemoteProductInfo () const |
void | SetRemoteProductInfo (const OpalProductInfo &info) |
const PString & | GetRedirectingParty () const |
void | SetRedirectingParty (const PString &party) |
const PString & | GetCalledPartyName () const |
void | SetCalledPartyName (const PString &name) |
const PString & | GetCalledPartyNumber () const |
virtual PString | GetCalledPartyURL () |
virtual PMultiPartList | GetExtraCallInfo () const |
void | CopyPartyNames (const OpalConnection &other) |
virtual PString | GetAlertingType () const |
virtual bool | SetAlertingType (const PString &info) |
virtual PString | GetCallInfo () const |
virtual PString | GetSupportedFeatures () const |
unsigned | GetMinAudioJitterDelay () const |
unsigned | GetMaxAudioJitterDelay () const |
void | SetAudioJitterDelay (unsigned minDelay, unsigned maxDelay) |
OpalSilenceDetector * | GetSilenceDetector () const |
virtual PString | GetIdentifier () const |
virtual PINDEX | GetMaxRtpPayloadSize () const |
P_DECLARE_STREAMABLE_ENUM (Phases, UninitialisedPhase, SetUpPhase, ProceedingPhase, AlertingPhase, ConnectedPhase, EstablishedPhase, ForwardingPhase, ReleasingPhase, ReleasedPhase) | |
__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 | TransferConnection (const PString &remoteParty) |
virtual bool | IsOnHold (bool fromRemote) const |
virtual void | OnHold (bool fromRemote, bool onHold) |
Mixer connection.
OpalMixerConnection::OpalMixerConnection | ( | PSafePtr< OpalMixerNode > | node, |
OpalCall & | call, | ||
OpalMixerEndPoint & | endpoint, | ||
void * | userData, | ||
unsigned | options = 0 , |
||
OpalConnection::StringOptions * | stringOptions = NULL |
||
) |
Create a new connection.
node | Node the connection is in |
call | Owner calll for connection |
endpoint | Owner endpoint for connection |
userData | Arbitrary data to pass to connection |
options | Option bit map to be passed to connection |
stringOptions | Options to be passed to connection |
OpalMixerConnection::~OpalMixerConnection | ( | ) |
Destroy connection.
|
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.
mediaFormat | Media format for stream |
sessionID | Session number for stream |
isSource | Is a source stream |
Reimplemented from OpalLocalConnection.
|
virtual |
Get Conference state information. This obtains the state information about a conference this connection is directly a part of. If the connection type does not embody a conference then false is returned.
The state
parameter, if non-NULL, is illed with the state of the conference. When NULL, this just indicates that the connection is part of a conference with the return value.
Default behaviour is to return false which indicates this connection is not part of a conference.
state | Optional conference state information |
Reimplemented from OpalConnection.
|
inline |
Get flag for this connection is in listen only mode.
References m_listenOnly.
|
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 calls GetMediaFormats() on the endpoint.
Reimplemented from OpalConnection.
|
inline |
Get the node that this connection is being mxied in.
References m_node.
|
virtual |
Call back for connection to act on changed string options.
Reimplemented from OpalLocalConnection.
|
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 the OpalEndPoint function of the same name.
Reimplemented from OpalConnection.
|
virtual |
Call back when media stream patch thread starts.
patch | Patch being started |
Reimplemented from OpalConnection.
|
virtual |
Send a user input indication to the remote endpoint. This is for sending arbitrary strings as user indications.
The default behaviour is to call SendUserInputTone() for each character in the string.
value | String value of indication |
Reimplemented from OpalLocalConnection.
|
virtual |
Send a user input indication to the remote endpoint. This sends DTMF emulation user input. If something more sophisticated than the simple tones that can be sent using the SendUserInput() function.
A duration of zero indicates that no duration is to be indicated. A non-zero logical channel indicates that the tone is to be syncronised with the logical channel at the rtpTimestamp value specified.
The tone parameter must be one of "0123456789#*ABCD!" where '!' indicates a hook flash. If tone is a ' ' character then a signalUpdate PDU is sent that updates the last tone indication sent. See the H.245 specifcation for more details on this.
The default behaviour sends the tone using RFC2833.
tone | DTMF tone code |
duration | Duration of tone in milliseconds |
Reimplemented from OpalConnection.
void OpalMixerConnection::SetListenOnly | ( | bool | listenOnly | ) |
Set this connection to listen only mode.
listenOnly | New listen only state. |
|
protected |
|
protected |
Referenced by GetListenOnly().
|
protected |
Referenced by GetNode().