28 #ifndef OPAL_OPAL_CALL_H
29 #define OPAL_OPAL_CALL_H
41 #include <ptlib/safecoll.h>
138 PSyncPoint * sync = NULL
223 virtual OpalConnection::AnswerCallResponse
OnAnswerCall(
225 const PString & caller
299 PSafetyMode mode = PSafeReference
305 template <
class ConnClass>
308 PSafetyMode mode = PSafeReadWrite
311 PSafePtr<ConnClass> connection;
312 for (PSafePtr<OpalConnection> iterConn(
m_connectionsActive, PSafeReference); iterConn != NULL; ++iterConn) {
313 if ((connection = PSafePtrCast<OpalConnection, ConnClass>(iterConn)) != NULL && count-- == 0) {
314 if (!connection.SetSafetyMode(mode))
315 connection.SetNULL();
326 bool Hold(
bool hold =
true);
339 bool fromRemote =
false
375 const PString & address,
420 unsigned sessionID = 0,
423 OpalVideoFormat::ContentRole contentRole = OpalVideoFormat::eNoRole,
425 bool transfer =
false,
426 bool startPaused =
false
453 #endif // OPAL_STATISTICS
465 const PString & value
587 const PFilePath & filename,
603 const PDirectory & outputDir,
604 const PString & fileTemplate,
605 const PString & fileType,
621 const PString & streamId,
628 const PString & streamId
634 const PString & streamId,
642 const PString & streamId,
646 #endif // OPAL_HAS_MIXER
652 #if OPAL_T38_CAPABILITY
653 bool IsSwitchingT38()
const {
return m_T38SwitchState != e_NotSwitchingT38; }
654 bool IsSwitchingToT38()
const {
return m_T38SwitchState == e_SwitchingToT38; }
655 void ResetSwitchingT38() { m_T38SwitchState = e_NotSwitchingT38; }
656 void SetSwitchingT38(
bool to) { m_T38SwitchState = to ? e_SwitchingToT38 : e_SwitchingFromT38; }
661 PSafePtr<OpalConnection> & connection,
695 PDECLARE_ScriptFunctionNotifier(
OpalCall, ScriptClear);
698 #if OPAL_T38_CAPABILITY
715 #endif // OPAL_OPAL_CALL_H
OpalConnection::CallEndReason m_callEndReason
Definition: call.h:684
virtual void OnProceeding(OpalConnection &connection)
virtual bool OnStartRecording(const PString &streamId, const OpalMediaFormat &format)
PString m_partyA
Definition: call.h:670
Definition: manager.h:150
Definition: endpoint.h:65
const PString & GetRemoteName() const
Definition: call.h:565
OpalRecordManager * m_recordManager
Definition: call.h:691
virtual OpalConnection::AnswerCallResponse OnAnswerCall(OpalConnection &connection, const PString &caller)
PTime m_establishedTime
Definition: call.h:678
const PString & GetLocalName() const
Definition: call.h:569
OpalManager & m_manager
Definition: call.h:666
PINDEX GetConnectionCount() const
Definition: call.h:293
const PString & GetPartyB() const
Definition: call.h:512
virtual PBoolean OnSetUp(OpalConnection &connection)
bool Transfer(const PString &address, OpalConnection *connection=NULL)
PTime m_startTime
Definition: call.h:677
virtual void CloseMediaStreams()
const PString & GetToken() const
Definition: call.h:499
std::list< PSyncPoint * > m_endCallSyncPoint
Definition: call.h:686
void SetPartyB(const PString &b)
Definition: call.h:519
bool EnumerateConnections(PSafePtr< OpalConnection > &connection, PSafetyMode mode, const OpalConnection *skipConnection=NULL) const
bool IsNetworkOriginated() const
Definition: call.h:553
bool Hold(bool hold=true)
OpalConnection(OpalCall &call, OpalEndPoint &endpoint, const PString &token, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
PSafePtr< OpalConnection > GetOtherPartyConnection(const OpalConnection &connection) const
PString m_identityB
Definition: call.h:675
P_REMOVE_VIRTUAL_VOID(OnRTPStatistics(const OpalConnection &, const OpalRTPSession &))
virtual void AdjustMediaFormats(bool local, const OpalConnection &connection, OpalMediaFormatList &mediaFormats) const
virtual PBoolean OnConnected(OpalConnection &connection)
const PString & GetIdentityA() const
Definition: call.h:540
bool StartRecording(const PFilePath &filename, const OpalRecordManager::Options &options=false)
const PString & GetIdentityB() const
Definition: call.h:547
PString m_nameA
Definition: call.h:672
Definition: connection.h:530
PSafePtr< OpalConnection > GetConnection(PINDEX idx, PSafetyMode mode=PSafeReference)
Definition: call.h:297
PString GetCallEndReasonText() const
Definition: call.h:118
OpalCall(OpalManager &manager)
virtual bool OpenSourceMediaStreams(OpalConnection &connection, const OpalMediaType &mediaType, unsigned sessionID=0, const OpalMediaFormat &preselectedFormat=OpalMediaFormat(), OpalVideoFormat::ContentRole contentRole=OpalVideoFormat::eNoRole, bool transfer=false, bool startPaused=false)
const PTime & GetEstablishedTime() const
Definition: call.h:577
PString GetCallEndReasonText() const
Definition: connection.h:648
PString m_identityA
Definition: call.h:674
virtual void OnEstablishedCall()
bool Retrieve()
Definition: call.h:332
PBoolean IsEstablished() const
Definition: call.h:94
PString m_nameB
Definition: call.h:673
const PString & GetPartyA() const
Definition: call.h:505
Definition: rtp_session.h:90
const PString & GetNameB() const
Definition: call.h:534
virtual OpalMediaFormatList GetMediaFormats(const OpalConnection &connection)
void PrintOn(ostream &strm) const
bool m_networkOriginated
Definition: call.h:676
bool m_isEstablished
Definition: call.h:679
virtual void OnRecordAudio(const PString &streamId, const RTP_DataFrame &frame)
virtual bool SelectMediaFormats(const OpalMediaType &mediaType, const OpalMediaFormatList &srcFormats, const OpalMediaFormatList &dstFormats, const OpalMediaFormatList &masterFormats, OpalMediaFormat &srcFormat, OpalMediaFormat &dstFormat) const
PCriticalSection m_callEndReasonMutex
Definition: call.h:685
virtual PBoolean OnEstablished(OpalConnection &connection)
const PString & GetRemoteParty() const
Definition: call.h:557
bool GetStatistics(const OpalMediaType &mediaType, bool fromAparty, OpalMediaStatistics &statistics)
Get media statistics of the type, received from the specified party.
void Clear(OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PSyncPoint *sync=NULL)
PString m_token
Definition: call.h:668
Definition: connection.h:462
PString m_partyB
Definition: call.h:671
PSafeArray< OpalConnection > m_connectionsActive
Definition: call.h:688
virtual void OnAlerting(OpalConnection &connection, bool withMedia)
virtual void OnUserInputString(OpalConnection &connection, const PString &value)
bool m_isClearing
Definition: call.h:680
OpalConnection::CallEndReason GetCallEndReason() const
Definition: recording.h:49
Definition: connection.h:415
virtual void OnRecordVideo(const PString &streamId, const RTP_DataFrame &frame)
virtual void OnHold(OpalConnection &connection, bool fromRemote, bool onHold)
const PString & GetNameA() const
Definition: call.h:527
const PTime & GetStartTime() const
Definition: call.h:573
bool IsOnHold(bool fromRemote=false) const
OpalManager & GetManager() const
Definition: call.h:495
virtual void OnUserInputTone(OpalConnection &connection, char tone, int duration)
virtual void OnReleased(OpalConnection &connection)
atomic< bool > m_isCleared
Definition: call.h:682
void SetCallEndReason(OpalConnection::CallEndReason reason)
virtual void OnNewConnection(OpalConnection &connection)
virtual void OnStopRecording(const PString &streamId)
PSafePtr< ConnClass > GetConnectionAs(PINDEX count=0, PSafetyMode mode=PSafeReadWrite)
Definition: call.h:306
const PString & GetLocalParty() const
Definition: call.h:561
Definition: recording.h:84
bool m_handlingHold
Definition: call.h:681