sipcon.h
Go to the documentation of this file.
/*
* sipcon.h
*
* Session Initiation Protocol connection.
*
* Open Phone Abstraction Library (OPAL)
* Formally known as the Open H323 project.
*
* Copyright (c) 2001 Equivalence Pty. Ltd.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Open Phone Abstraction Library.
*
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
*
* Contributor(s): ______________________________________.
*
* $Revision: 28445 $
* $Author: rjongbloed $
* $Date: 2012-10-02 20:11:02 -0500 (Tue, 02 Oct 2012) $
*/
#ifndef OPAL_SIP_SIPCON_H
#define OPAL_SIP_SIPCON_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <opal/buildopts.h>
#if OPAL_SIP
#include <opal/buildopts.h>
#include <opal/rtpconn.h>
#include <sip/sippdu.h>
#include <sip/handlers.h>
#if OPAL_VIDEO
#include <opal/pcss.h> // for OpalPCSSConnection
#include <codec/vidcodec.h> // for OpalVideoUpdatePicture command
#endif
#if OPAL_HAS_IM
#include <im/sipim.h>
#include <im/rfc4103.h>
#endif
class OpalCall;
class SIPEndPoint;
#define OPAL_OPT_OFFER_SDP_PTIME "Offer-SDP-PTime"
#define OPAL_OPT_REFER_SUB "Refer-Sub"
#define OPAL_OPT_PRACK_MODE "PRACK-Mode"
#define OPAL_OPT_INITIAL_OFFER "Initial-Offer"
#define OPAL_OPT_SYMMETRIC_HOLD_PRODUCT "Symmetric-Hold-Product"
#define OPAL_OPT_EXTERNAL_SDP "External-SDP"
#define SIP_HEADER_PREFIX "SIP-Header:"
#define SIP_HEADER_REPLACES SIP_HEADER_PREFIX"Replaces"
#define SIP_HEADER_REFERRED_BY SIP_HEADER_PREFIX"Referred-By"
#define SIP_HEADER_CONTACT SIP_HEADER_PREFIX"Contact"
#define OPAL_SIP_REFERRED_CONNECTION "Referred-Connection"
class SIPConnection : public OpalRTPConnection
{
PCLASSINFO(SIPConnection, OpalRTPConnection);
public:
SIPConnection(
OpalCall & call,
SIPEndPoint & endpoint,
const PString & token,
const SIPURL & address,
OpalTransport * transport,
unsigned int options = 0,
OpalConnection::StringOptions * stringOptions = NULL
);
~SIPConnection();
virtual bool IsNetworkConnection() const { return true; }
virtual PString GetPrefixName() const;
virtual PString GetIdentifier() const;
virtual void OnApplyStringOptions();
virtual PBoolean SetUpConnection();
virtual PString GetDestinationAddress();
virtual PString GetCalledPartyURL();
virtual PString GetAlertingType() const;
virtual bool SetAlertingType(const PString & info);
virtual PString GetCallInfo() const;
virtual bool TransferConnection(
const PString & remoteParty
);
virtual bool Hold(
bool fromRemote,
bool placeOnHold
);
virtual bool IsOnHold(
bool fromRemote
);
virtual PBoolean SetAlerting(
const PString & calleeName,
PBoolean withMedia
);
virtual PBoolean SetConnected();
virtual OpalMediaFormatList GetMediaFormats() const;
virtual OpalMediaStreamPtr OpenMediaStream(
const OpalMediaFormat & mediaFormat,
unsigned sessionID,
bool isSource
);
virtual bool CloseMediaStream(
OpalMediaStream & stream
);
virtual void OnPauseMediaStream(
OpalMediaStream & strm,
bool paused
);
virtual void OnReleased();
virtual PBoolean ForwardCall(
const PString & forwardParty
);
virtual SendUserInputModes GetRealSendUserInputMode() const;
virtual PBoolean SendUserInputString(
const PString & value
);
PBoolean SendUserInputTone(char tone, unsigned duration);
virtual void OnRTPStatistics(
const RTP_Session & session
) const;
virtual void OnTransactionFailed(
SIPTransaction & transaction
);
virtual void OnReceivedPDU(SIP_PDU & pdu);
virtual void OnReceivedINVITE(SIP_PDU & pdu);
virtual void OnReceivedReINVITE(SIP_PDU & pdu);
virtual void OnReceivedACK(SIP_PDU & pdu);
virtual void OnReceivedOPTIONS(SIP_PDU & pdu);
virtual void OnReceivedNOTIFY(SIP_PDU & pdu);
virtual void OnAllowedEventNotify(
const PString & eventName
);
virtual void OnReceivedREFER(SIP_PDU & pdu);
virtual void OnReceivedINFO(SIP_PDU & pdu);
virtual void OnReceivedPING(SIP_PDU & pdu);
virtual void OnReceivedPRACK(SIP_PDU & pdu);
virtual void OnReceivedBYE(SIP_PDU & pdu);
virtual void OnReceivedCANCEL(SIP_PDU & pdu);
virtual void OnReceivedResponseToINVITE(
SIPTransaction & transaction,
SIP_PDU & response
);
virtual void OnReceivedResponse(
SIPTransaction & transaction,
SIP_PDU & response
);
virtual void OnReceivedTrying(
SIPTransaction & transaction,
SIP_PDU & response
);
virtual void OnReceivedRinging(SIP_PDU & pdu);
virtual void OnReceivedSessionProgress(SIP_PDU & pdu);
virtual PBoolean OnReceivedAuthenticationRequired(
SIPTransaction & transaction,
SIP_PDU & response
);
virtual void OnReceivedRedirection(SIP_PDU & pdu);
virtual void OnReceivedOK(
SIPTransaction & transaction,
SIP_PDU & response
);
virtual void OnCreatingINVITE(SIPInvite & pdu);
enum TypeOfINVITE {
IsNewINVITE,
IsDuplicateINVITE,
IsReINVITE,
IsLoopedINVITE
};
TypeOfINVITE CheckINVITE(
const SIP_PDU & pdu
) const;
bool SendOPTIONS(
const SIPOptions::Params & params,
SIP_PDU * reply = NULL
);
bool SendINFO(
const SIPInfo::Params & params,
SIP_PDU * reply = NULL
);
OpalTransportAddress GetDefaultSDPConnectAddress(WORD port = 0) const;
OpalTransport & GetTransport() const { return *transport; }
bool SetTransport(const SIPURL & destination);
SIPEndPoint & GetEndPoint() const { return endpoint; }
SIPDialogContext & GetDialog() { return m_dialog; }
const SIPDialogContext & GetDialog() const { return m_dialog; }
SIPAuthentication * GetAuthenticator() const { return m_authentication; }
enum PRACKMode {
e_prackDisabled,
e_prackSupported,
e_prackRequired
};
PRACKMode GetPRACKMode() const { return m_prackMode; }
virtual unsigned GetAllowedMethods() const;
#if OPAL_VIDEO
virtual PBoolean OnMediaControlXML(SIP_PDU & pdu);
#endif
virtual bool OnMediaCommand(
OpalMediaStream & stream,
const OpalMediaCommand & command
);
virtual void OnStartTransaction(SIPTransaction & transaction);
virtual void OnReceivedMESSAGE(SIP_PDU & pdu);
P_REMOVE_VIRTUAL_VOID(OnMessageReceived(const SIPURL & /*from*/, const SIP_PDU & /*pdu*/));
P_REMOVE_VIRTUAL_VOID(OnMessageReceived(const SIP_PDU & /*pdu*/));
#if 0 // OPAL_HAS_IM
virtual bool TransmitExternalIM(
const OpalMediaFormat & format,
RTP_IMFrame & body
);
#endif
PString GetLocalPartyURL() const;
protected:
virtual bool GarbageCollection();
void OnUserInputInlineRFC2833(OpalRFC2833Info & info, INT type);
PDECLARE_NOTIFIER(PTimer, SIPConnection, OnSessionTimeout);
PDECLARE_NOTIFIER(PTimer, SIPConnection, OnInviteResponseRetry);
PDECLARE_NOTIFIER(PTimer, SIPConnection, OnInviteResponseTimeout);
virtual bool OnSendOfferSDP(
OpalRTPSessionManager & rtpSessions,
SDPSessionDescription & sdpOut,
bool offerCurrentOnly
);
virtual bool OnSendOfferSDPSession(
const OpalMediaType & mediaType,
unsigned sessionID,
OpalRTPSessionManager & rtpSessions,
SDPSessionDescription & sdpOut,
bool offerOpenMediaStreamOnly
);
virtual bool OnSendAnswerSDP(
OpalRTPSessionManager & rtpSessions,
SDPSessionDescription & sdpOut
);
virtual bool OnSendAnswerSDPSession(
const SDPSessionDescription & sdpIn,
unsigned sessionIndex,
SDPSessionDescription & sdpOut
);
virtual void OnReceivedAnswerSDP(
SIP_PDU & pdu
);
virtual bool OnReceivedAnswerSDPSession(
SDPSessionDescription & sdp,
unsigned sessionId,
bool & multipleFormats
);
virtual OpalMediaSession * SetUpMediaSession(
const unsigned rtpSessionId,
const OpalMediaType & mediaType,
const SDPMediaDescription & mediaDescription,
OpalTransportAddress & localAddress,
bool & remoteChanged
);
bool SendReINVITE(PTRACE_PARAM(const char * msg));
bool StartPendingReINVITE();
friend class SIPInvite;
static PBoolean WriteINVITE(OpalTransport & transport, void * param);
bool WriteINVITE();
virtual bool SendInviteOK();
virtual PBoolean SendInviteResponse(
SIP_PDU::StatusCodes code,
const SDPSessionDescription * sdp = NULL
);
virtual void AdjustInviteResponse(
SIP_PDU & response
);
void UpdateRemoteAddresses();
void NotifyDialogState(
SIPDialogNotification::States state,
SIPDialogNotification::Events eventType = SIPDialogNotification::NoEvent,
unsigned eventCode = 0
);
// Member variables
SIPEndPoint & endpoint;
OpalTransport * transport;
bool deleteTransport;
unsigned m_allowedMethods;
PStringList m_allowedEvents;
enum HoldState {
eHoldOff,
eRetrieveInProgress,
// Order is important!
eHoldOn,
eHoldInProgress
};
HoldState m_holdToRemote;
bool m_holdFromRemote;
PString m_forwardParty;
SIPURL m_contactAddress;
SIPURL m_ciscoRemotePartyID;
SIP_PDU * originalInvite;
PTime originalInviteTime;
time_t m_sdpSessionId;
unsigned m_sdpVersion; // Really a sequence number
bool m_needReINVITE;
bool m_handlingINVITE;
bool m_resolveMultipleFormatReINVITE;
bool m_symmetricOpenStream;
SIPDialogContext m_dialog;
OpalGloballyUniqueID m_dialogNotifyId;
int m_appearanceCode;
PString m_alertInfo;
SIPAuthentication * m_authentication;
unsigned m_authenticateErrors;
PTimer sessionTimer;
std::map<SIP_PDU::Methods, unsigned> m_lastRxCSeq;
PRACKMode m_prackMode;
bool m_prackEnabled;
unsigned m_prackSequenceNumber;
queue<SIP_PDU> m_responsePackets;
PTimer m_responseFailTimer;
PTimer m_responseRetryTimer;
unsigned m_responseRetryCount;
bool m_referInProgress;
PSafeList<SIPTransaction> forkedInvitations; // Not for re-INVITE
PSafeList<SIPTransaction> pendingInvitations; // For re-INVITE
PSafeList<SIPTransaction> m_pendingTransactions;
#if OPAL_FAX
bool m_switchedToT38;
#endif
enum {
ReleaseWithBYE,
ReleaseWithCANCEL,
ReleaseWithResponse,
ReleaseWithNothing,
} releaseMethod;
OpalMediaFormatList m_remoteFormatList;
OpalMediaFormatList m_answerFormatList;
bool SetRemoteMediaFormats(SDPSessionDescription * sdp);
std::map<std::string, SIP_PDU *> m_responses;
#if OPAL_HAS_IM
PSafePtr<OpalSIPIMContext> m_imContext;
#endif
enum {
UserInputMethodUnknown,
ReceivedRFC2833,
ReceivedINFO
} m_receivedUserInputMethod;
private:
P_REMOVE_VIRTUAL_VOID(OnCreatingINVITE(SIP_PDU&));
P_REMOVE_VIRTUAL_VOID(OnReceivedTrying(SIP_PDU &));
friend class SIPTransaction;
friend class SIP_RTP_Session;
};
class SIP_RTP_Session : public RTP_UserData
{
PCLASSINFO(SIP_RTP_Session, RTP_UserData);
SIP_RTP_Session(
SIPConnection & connection
);
virtual void OnTxStatistics(
const RTP_Session & session
) const;
virtual void OnRxStatistics(
const RTP_Session & session
) const;
#if OPAL_VIDEO
virtual void OnRxIntraFrameRequest(
const RTP_Session & session
) const;
virtual void OnTxIntraFrameRequest(
const RTP_Session & session
) const;
#endif
virtual void SessionFailing(RTP_Session & /*session*/);
protected:
SIPConnection & connection;
};
#endif // OPAL_SIP
#endif // OPAL_SIP_SIPCON_H
// End of File ///////////////////////////////////////////////////////////////
vidcodec.h
SIPConnection::OnReceivedACK
virtual void OnReceivedACK(SIP_PDU &pdu)
SIPConnection::SendOPTIONS
bool SendOPTIONS(const SIPOptions::Params &params, SIP_PDU *reply=NULL)
SIPURL
Definition: sippdu.h:70
SIP_RTP_Session::connection
SIPConnection & connection
Definition: sipcon.h:845
SIPConnection::IsReINVITE
Definition: sipcon.h:529
OpalRTPConnection
Definition: rtpconn.h:247
SIPConnection::m_sdpSessionId
time_t m_sdpSessionId
Definition: sipcon.h:722
SIPConnection::GetAllowedMethods
virtual unsigned GetAllowedMethods() const
SIPConnection::PRACKMode
PRACKMode
Mode for reliable provisional responses.
Definition: sipcon.h:570
SIPConnection::m_alertInfo
PString m_alertInfo
Definition: sipcon.h:731
SIPConnection::eRetrieveInProgress
Definition: sipcon.h:708
RTP_Session
Definition: rtp.h:502
SIPTransaction
Definition: sippdu.h:854
SIPConnection::OnReceivedRinging
virtual void OnReceivedRinging(SIP_PDU &pdu)
SIPConnection::OnReceivedSessionProgress
virtual void OnReceivedSessionProgress(SIP_PDU &pdu)
handlers.h
SIPConnection::eHoldOff
Definition: sipcon.h:707
SIPConnection::OnReceivedCANCEL
virtual void OnReceivedCANCEL(SIP_PDU &pdu)
RTP_IMFrame
Definition: im.h:382
OpalMediaCommand
Definition: mediacmd.h:43
SIPConnection::m_responses
std::map< std::string, SIP_PDU * > m_responses
Definition: sipcon.h:766
SIPConnection::IsNewINVITE
Definition: sipcon.h:527
SIPConnection::OnReceivedNOTIFY
virtual void OnReceivedNOTIFY(SIP_PDU &pdu)
SIPConnection::m_prackEnabled
bool m_prackEnabled
Definition: sipcon.h:739
buildopts.h
SIPConnection::CheckINVITE
TypeOfINVITE CheckINVITE(const SIP_PDU &pdu) const
Indicate if this is a duplicate or multi-path INVITE.
SIPConnection::releaseMethod
enum SIPConnection::@39 releaseMethod
SIPConnection::m_lastRxCSeq
std::map< SIP_PDU::Methods, unsigned > m_lastRxCSeq
Definition: sipcon.h:736
SIPConnection::OnSendOfferSDP
virtual bool OnSendOfferSDP(OpalRTPSessionManager &rtpSessions, SDPSessionDescription &sdpOut, bool offerCurrentOnly)
SIPConnection::SendINFO
bool SendINFO(const SIPInfo::Params &params, SIP_PDU *reply=NULL)
OpalMediaSession
Definition: rtpconn.h:72
SIPConnection::OnReceivedResponse
virtual void OnReceivedResponse(SIPTransaction &transaction, SIP_PDU &response)
SIPConnection
Definition: sipcon.h:126
SIPConnection::m_authenticateErrors
unsigned m_authenticateErrors
Definition: sipcon.h:733
SIPConnection::m_holdToRemote
HoldState m_holdToRemote
Definition: sipcon.h:714
OpalTransport
Definition: transports.h:703
OpalRTPSessionManager
Definition: rtpconn.h:159
OpalMediaStreamPtr
PSafePtr< OpalMediaStream > OpalMediaStreamPtr
Definition: mediastrm.h:442
SIPConnection::SetAlerting
virtual PBoolean SetAlerting(const PString &calleeName, PBoolean withMedia)
SIPEndPoint
Definition: sipep.h:86
SIPConnection::OnReceivedBYE
virtual void OnReceivedBYE(SIP_PDU &pdu)
SIPConnection::NotifyDialogState
void NotifyDialogState(SIPDialogNotification::States state, SIPDialogNotification::Events eventType=SIPDialogNotification::NoEvent, unsigned eventCode=0)
SIPConnection::OnApplyStringOptions
virtual void OnApplyStringOptions()
Call back for connection to act on changed string options.
SIPConnection::m_needReINVITE
bool m_needReINVITE
Definition: sipcon.h:724
OpalMediaType
Definition: mediatype.h:57
SIPConnection::GetCalledPartyURL
virtual PString GetCalledPartyURL()
SIPConnection::SetAlertingType
virtual bool SetAlertingType(const PString &info)
SIP_PDU::StatusCodes
StatusCodes
Definition: sippdu.h:518
SIP_PDU
Definition: sippdu.h:496
SIPConnection::SIPConnection
SIPConnection(OpalCall &call, SIPEndPoint &endpoint, const PString &token, const SIPURL &address, OpalTransport *transport, unsigned int options=0, OpalConnection::StringOptions *stringOptions=NULL)
SIPConnection::~SIPConnection
~SIPConnection()
SIPConnection::GetPRACKMode
PRACKMode GetPRACKMode() const
Definition: sipcon.h:585
SIPConnection::OnMediaCommand
virtual bool OnMediaCommand(OpalMediaStream &stream, const OpalMediaCommand &command)
SIPConnection::OnReceivedOPTIONS
virtual void OnReceivedOPTIONS(SIP_PDU &pdu)
SIPConnection::GetPrefixName
virtual PString GetPrefixName() const
SIPConnection::P_REMOVE_VIRTUAL_VOID
P_REMOVE_VIRTUAL_VOID(OnMessageReceived(const SIPURL &, const SIP_PDU &))
SIPConnection::GetDefaultSDPConnectAddress
OpalTransportAddress GetDefaultSDPConnectAddress(WORD port=0) const
SIPConnection::GetTransport
OpalTransport & GetTransport() const
Definition: sipcon.h:561
SIPConnection::deleteTransport
bool deleteTransport
Definition: sipcon.h:702
SIPConnection::OnReceivedMESSAGE
virtual void OnReceivedMESSAGE(SIP_PDU &pdu)
SIPConnection::eHoldOn
Definition: sipcon.h:711
SIPConnection::m_responsePackets
queue< SIP_PDU > m_responsePackets
Definition: sipcon.h:741
SIPConnection::OnPauseMediaStream
virtual void OnPauseMediaStream(OpalMediaStream &strm, bool paused)
SIPConnection::TypeOfINVITE
TypeOfINVITE
Definition: sipcon.h:526
SIPConnection::m_appearanceCode
int m_appearanceCode
Definition: sipcon.h:730
SIPConnection::IsNetworkConnection
virtual bool IsNetworkConnection() const
Definition: sipcon.h:160
SIPConnection::GetEndPoint
SIPEndPoint & GetEndPoint() const
Definition: sipcon.h:564
SIPDialogNotification::States
States
Definition: handlers.h:499
SIPConnection::OnReceivedOK
virtual void OnReceivedOK(SIPTransaction &transaction, SIP_PDU &response)
SIPConnection::OnReceivedINFO
virtual void OnReceivedINFO(SIP_PDU &pdu)
SIPConnection::AdjustInviteResponse
virtual void AdjustInviteResponse(SIP_PDU &response)
SIPConnection::pendingInvitations
PSafeList< SIPTransaction > pendingInvitations
Definition: sipcon.h:748
SIPConnection::m_imContext
PSafePtr< OpalSIPIMContext > m_imContext
Definition: sipcon.h:769
OpalRFC2833Info
Definition: rfc2833.h:65
SIPConnection::m_allowedMethods
unsigned m_allowedMethods
Definition: sipcon.h:703
rfc4103.h
SIPConnection::OnSendAnswerSDPSession
virtual bool OnSendAnswerSDPSession(const SDPSessionDescription &sdpIn, unsigned sessionIndex, SDPSessionDescription &sdpOut)
SIPConnection::IsLoopedINVITE
Definition: sipcon.h:530
OpalMediaFormatList
Definition: mediafmt.h:72
SIPInvite
Definition: sippdu.h:973
OpalConnection::SendUserInputModes
SendUserInputModes
Definition: connection.h:1311
SIPConnection::OnReceivedPING
virtual void OnReceivedPING(SIP_PDU &pdu)
OpalConnection::StringOptions
Definition: connection.h:462
SIPConnection::OnReceivedReINVITE
virtual void OnReceivedReINVITE(SIP_PDU &pdu)
SIPConnection::IsDuplicateINVITE
Definition: sipcon.h:528
SIPOptions::Params
Definition: sippdu.h:1358
SIPConnection::ForwardCall
virtual PBoolean ForwardCall(const PString &forwardParty)
SIPConnection::m_prackSequenceNumber
unsigned m_prackSequenceNumber
Definition: sipcon.h:740
SIPConnection::TransferConnection
virtual bool TransferConnection(const PString &remoteParty)
SIPConnection::SetRemoteMediaFormats
bool SetRemoteMediaFormats(SDPSessionDescription *sdp)
SIPConnection::GetCallInfo
virtual PString GetCallInfo() const
SIPConnection::e_prackRequired
Definition: sipcon.h:578
SIPConnection::GetDialog
SIPDialogContext & GetDialog()
Definition: sipcon.h:565
SIPConnection::GetLocalPartyURL
PString GetLocalPartyURL() const
SIPConnection::m_responseRetryCount
unsigned m_responseRetryCount
Definition: sipcon.h:744
SIPConnection::GetAlertingType
virtual PString GetAlertingType() const
SIPConnection::ReceivedINFO
Definition: sipcon.h:775
SIPConnection::OpenMediaStream
virtual OpalMediaStreamPtr OpenMediaStream(const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource)
SIPConnection::GetIdentifier
virtual PString GetIdentifier() const
OpalMediaFormat
Definition: mediafmt.h:724
SIPConnection::m_ciscoRemotePartyID
SIPURL m_ciscoRemotePartyID
Definition: sipcon.h:718
SIPConnection::e_prackDisabled
Definition: sipcon.h:571
SDPMediaDescription
Definition: sdp.h:119
SIPConnection::GetAuthenticator
SIPAuthentication * GetAuthenticator() const
Definition: sipcon.h:567
SIPConnection::SendInviteResponse
virtual PBoolean SendInviteResponse(SIP_PDU::StatusCodes code, const SDPSessionDescription *sdp=NULL)
SIPConnection::OnReceivedPRACK
virtual void OnReceivedPRACK(SIP_PDU &pdu)
SIPConnection::originalInviteTime
PTime originalInviteTime
Definition: sipcon.h:721
OpalCall
Definition: call.h:65
SDPSessionDescription
Definition: sdp.h:300
SIPConnection::UpdateRemoteAddresses
void UpdateRemoteAddresses()
SIPConnection::OnReceivedResponseToINVITE
virtual void OnReceivedResponseToINVITE(SIPTransaction &transaction, SIP_PDU &response)
SIPConnection::OnStartTransaction
virtual void OnStartTransaction(SIPTransaction &transaction)
SIPConnection::m_authentication
SIPAuthentication * m_authentication
Definition: sipcon.h:732
SIPConnection::StartPendingReINVITE
bool StartPendingReINVITE()
SIPConnection::SendReINVITE
bool SendReINVITE(PTRACE_PARAM(const char *msg))
SIPConnection::IsOnHold
virtual bool IsOnHold(bool fromRemote)
SIPConnection::ReceivedRFC2833
Definition: sipcon.h:774
SIPConnection::GetMediaFormats
virtual OpalMediaFormatList GetMediaFormats() const
SIPDialogContext
Definition: sippdu.h:734
SIPAuthentication
PHTTPClientAuthentication SIPAuthentication
Definition: sippdu.h:471
SIPConnection::SetUpConnection
virtual PBoolean SetUpConnection()
SIPConnection::CloseMediaStream
virtual bool CloseMediaStream(OpalMediaStream &stream)
SIPConnection::m_responseRetryTimer
PTimer m_responseRetryTimer
Definition: sipcon.h:743
SIPConnection::m_referInProgress
bool m_referInProgress
Definition: sipcon.h:746
SIPConnection::m_prackMode
PRACKMode m_prackMode
Definition: sipcon.h:738
SIPConnection::forkedInvitations
PSafeList< SIPTransaction > forkedInvitations
Definition: sipcon.h:747
SIPConnection::SetUpMediaSession
virtual OpalMediaSession * SetUpMediaSession(const unsigned rtpSessionId, const OpalMediaType &mediaType, const SDPMediaDescription &mediaDescription, OpalTransportAddress &localAddress, bool &remoteChanged)
SIPConnection::SendUserInputTone
PBoolean SendUserInputTone(char tone, unsigned duration)
SIPConnection::m_contactAddress
SIPURL m_contactAddress
Definition: sipcon.h:717
SIPConnection::GetDestinationAddress
virtual PString GetDestinationAddress()
SIPConnection::m_resolveMultipleFormatReINVITE
bool m_resolveMultipleFormatReINVITE
Definition: sipcon.h:726
SIPConnection::OnReceivedAnswerSDPSession
virtual bool OnReceivedAnswerSDPSession(SDPSessionDescription &sdp, unsigned sessionId, bool &multipleFormats)
SIPConnection::originalInvite
SIP_PDU * originalInvite
Definition: sipcon.h:720
SIPConnection::OnCreatingINVITE
virtual void OnCreatingINVITE(SIPInvite &pdu)
SIPConnection::m_sdpVersion
unsigned m_sdpVersion
Definition: sipcon.h:723
SIPConnection::m_responseFailTimer
PTimer m_responseFailTimer
Definition: sipcon.h:742
sipim.h
SIPConnection::OnReceivedINVITE
virtual void OnReceivedINVITE(SIP_PDU &pdu)
SIPConnection::OnAllowedEventNotify
virtual void OnAllowedEventNotify(const PString &eventName)
SIPConnection::GetDialog
const SIPDialogContext & GetDialog() const
Definition: sipcon.h:566
SIPConnection::m_remoteFormatList
OpalMediaFormatList m_remoteFormatList
Definition: sipcon.h:762
RTP_UserData
Definition: rtp.h:444
SIPConnection::OnSendOfferSDPSession
virtual bool OnSendOfferSDPSession(const OpalMediaType &mediaType, unsigned sessionID, OpalRTPSessionManager &rtpSessions, SDPSessionDescription &sdpOut, bool offerOpenMediaStreamOnly)
SIPConnection::SendInviteOK
virtual bool SendInviteOK()
SIPConnection::eHoldInProgress
Definition: sipcon.h:712
SIP_RTP_Session
Definition: sipcon.h:789
SIPConnection::m_holdFromRemote
bool m_holdFromRemote
Definition: sipcon.h:715
sippdu.h
pcss.h
SIPConnection::m_forwardParty
PString m_forwardParty
Definition: sipcon.h:716
SIPConnection::transport
OpalTransport * transport
Definition: sipcon.h:701
SIPConnection::m_dialog
SIPDialogContext m_dialog
Definition: sipcon.h:728
SIPConnection::SendUserInputString
virtual PBoolean SendUserInputString(const PString &value)
SIPConnection::Hold
virtual bool Hold(bool fromRemote, bool placeOnHold)
OpalMediaStream
Definition: mediastrm.h:111
SIPConnection::UserInputMethodUnknown
Definition: sipcon.h:773
SIPConnection::SetTransport
bool SetTransport(const SIPURL &destination)
SIPConnection::e_prackSupported
Definition: sipcon.h:575
SIPConnection::OnReceivedTrying
virtual void OnReceivedTrying(SIPTransaction &transaction, SIP_PDU &response)
SIPConnection::ReleaseWithCANCEL
Definition: sipcon.h:757
SIPConnection::OnMediaControlXML
virtual PBoolean OnMediaControlXML(SIP_PDU &pdu)
SIPConnection::ReleaseWithResponse
Definition: sipcon.h:758
SIPConnection::PDECLARE_NOTIFIER
PDECLARE_NOTIFIER(PTimer, SIPConnection, OnSessionTimeout)
SIPConnection::OnReleased
virtual void OnReleased()
SIPConnection::ReleaseWithNothing
Definition: sipcon.h:759
SIPConnection::sessionTimer
PTimer sessionTimer
Definition: sipcon.h:734
SIPConnection::m_allowedEvents
PStringList m_allowedEvents
Definition: sipcon.h:704
SIPConnection::HoldState
HoldState
Definition: sipcon.h:706
SIPConnection::m_switchedToT38
bool m_switchedToT38
Definition: sipcon.h:752
SIPConnection::ReleaseWithBYE
Definition: sipcon.h:756
OpalGloballyUniqueID
#define OpalGloballyUniqueID
Definition: guid.h:42
OpalTransportAddress
Definition: transports.h:149
SIPConnection::m_symmetricOpenStream
bool m_symmetricOpenStream
Definition: sipcon.h:727
rtpconn.h
SIPConnection::OnReceivedREFER
virtual void OnReceivedREFER(SIP_PDU &pdu)
SIPConnection::m_dialogNotifyId
OpalGloballyUniqueID m_dialogNotifyId
Definition: sipcon.h:729
SIPConnection::m_answerFormatList
OpalMediaFormatList m_answerFormatList
Definition: sipcon.h:763
SIPDialogNotification::NoEvent
Definition: handlers.h:515
SIPConnection::m_pendingTransactions
PSafeList< SIPTransaction > m_pendingTransactions
Definition: sipcon.h:749
SIPConnection::OnReceivedPDU
virtual void OnReceivedPDU(SIP_PDU &pdu)
SIPConnection::OnRTPStatistics
virtual void OnRTPStatistics(const RTP_Session &session) const
SIPConnection::OnReceivedAuthenticationRequired
virtual PBoolean OnReceivedAuthenticationRequired(SIPTransaction &transaction, SIP_PDU &response)
SIPConnection::OnReceivedRedirection
virtual void OnReceivedRedirection(SIP_PDU &pdu)
SIPConnection::GetRealSendUserInputMode
virtual SendUserInputModes GetRealSendUserInputMode() const
SIPInfo::Params
Definition: sippdu.h:1397
SIPConnection::GarbageCollection
virtual bool GarbageCollection()
SIPConnection::m_receivedUserInputMethod
enum SIPConnection::@40 m_receivedUserInputMethod
SIPConnection::m_handlingINVITE
bool m_handlingINVITE
Definition: sipcon.h:725
SIPConnection::endpoint
SIPEndPoint & endpoint
Definition: sipcon.h:700
SIPConnection::OnSendAnswerSDP
virtual bool OnSendAnswerSDP(OpalRTPSessionManager &rtpSessions, SDPSessionDescription &sdpOut)
SIPConnection::OnTransactionFailed
virtual void OnTransactionFailed(SIPTransaction &transaction)
SIPConnection::SetConnected
virtual PBoolean SetConnected()
SIPConnection::WriteINVITE
bool WriteINVITE()
SIPConnection::OnReceivedAnswerSDP
virtual void OnReceivedAnswerSDP(SIP_PDU &pdu)
SIPConnection::OnUserInputInlineRFC2833
void OnUserInputInlineRFC2833(OpalRFC2833Info &info, INT type)
SIPDialogNotification::Events
Events
Definition: handlers.h:514