28 #ifndef OPAL_SIP_SIPCON_H
29 #define OPAL_SIP_SIPCON_H
52 #define OPAL_OPT_FORWARD_REFER "Forward-Refer"
57 #define OPAL_OPT_REFER_SUB "Refer-Sub"
62 #define OPAL_OPT_NO_REFER_SUB "No-Refer-Sub"
69 #define OPAL_OPT_PRACK_MODE "PRACK-Mode"
74 #define OPAL_OPT_INITIAL_OFFER "Initial-Offer"
86 #define OPAL_OPT_ALLOW_EARLY_REPLACE "Allow-Early-Replace"
98 #define OPAL_OPT_EXTERNAL_SDP "External-SDP"
107 #define OPAL_OPT_UNSECURE_SRTP "Unsecure-SRTP"
115 #define OPAL_OPT_ENABLE_DTLS "Enable-DTLS"
118 #define SIP_HEADER_PREFIX "SIP-Header:"
119 #define SIP_HEADER_REPLACES SIP_HEADER_PREFIX"Replaces"
120 #define SIP_HEADER_REFERRED_BY SIP_HEADER_PREFIX"Referred-By"
121 #define SIP_HEADER_CONTACT SIP_HEADER_PREFIX"Contact"
123 #define OPAL_SIP_REFERRED_CONNECTION "Referred-Connection"
296 const PString & remoteParty
310 const PString & calleeName,
329 #if OPAL_T38_CAPABILITY
332 virtual bool SwitchFaxMediaStreams(
430 const PString & forwardParty
447 const PString & value
505 const PString & eventName
622 const PString & package,
623 const PMultiPartList & content
714 bool SendReINVITE(PTRACE_PARAM(
const char * msg, )
int operation = 0);
725 const SDPSessionDescription * sdp = NULL
734 SIPDialogNotification::States state,
735 SIPDialogNotification::Events eventType = SIPDialogNotification::NoEvent,
736 unsigned eventCode = 0
823 P_REMOVE_VIRTUAL_VOID(OnMessageReceived(
const SIPURL & ,
const SIP_PDU & ));
824 P_REMOVE_VIRTUAL_VOID(OnMessageReceived(
const SIP_PDU & ));
835 #endif // OPAL_SIP_SIPCON_H
virtual void OnClosedMediaStream(const OpalMediaStream &stream)
bool InternalSetConnected(bool transfer)
PoolTimer m_responseRetryTimer
Definition: sipcon.h:779
SIPURL m_address
Destination address for outgoing call.
Definition: sipcon.h:151
virtual void OnReceivedACK(SIP_PDU &pdu)
bool SendOPTIONS(const SIPOptions::Params ¶ms, SIP_PDU *reply=NULL)
bool DoesRemoteAllowMethod(SIP_PDU::Methods method) const
Definition: sipcon.h:656
virtual unsigned GetAllowedMethods() const
PRACKMode
Mode for reliable provisional responses.
Definition: sipcon.h:633
PString m_alertInfo
Definition: sipcon.h:769
unsigned m_options
Connection options.
Definition: sipcon.h:154
virtual void OnPatchMediaStream(PBoolean isSource, OpalMediaPatch &patch)
Definition: sippdu.h:1056
PoolTimer m_delayedAckTimer
Definition: sipcon.h:759
enum SIPConnection::@39 m_releaseMethod
virtual void OnReceivedSessionProgress(SIPTransaction &transaction, SIP_PDU &pdu)
SIPEndPoint & m_sipEndpoint
Definition: sippdu.h:1014
virtual PMultiPartList GetExtraCallInfo() const
Definition: sipcon.h:220
virtual bool AllowMusicOnHold() const
virtual bool OnHoldStateChanged(bool placeOnHold)
virtual void OnReceivedCANCEL(SIP_PDU &pdu)
std::map< std::string, SIP_PDU * > m_responses
Definition: sipcon.h:806
virtual void OnReceivedNOTIFY(SIP_PDU &pdu)
bool m_prackEnabled
Definition: sipcon.h:775
TypeOfINVITE CheckINVITE(const SIP_PDU &pdu) const
Indicate if this is a duplicate or multi-path INVITE.
SIPURL m_sentReferTo
Definition: sipcon.h:784
bool SendINFO(const SIPInfo::Params ¶ms, SIP_PDU *reply=NULL)
virtual void OnReceivedResponse(SIPTransaction &transaction, SIP_PDU &response)
void OnInviteResponseRetry()
NotifyState
Definition: rfc2833.h:112
virtual PString GetAuthID() const
virtual void OnReceivedSUBSCRIBE(SIP_PDU &pdu)
virtual PBoolean SetAlerting(const PString &calleeName, PBoolean withMedia)
virtual PString GetSupportedFeatures() const
virtual void OnReceivedBYE(SIP_PDU &pdu)
void NotifyDialogState(SIPDialogNotification::States state, SIPDialogNotification::Events eventType=SIPDialogNotification::NoEvent, unsigned eventCode=0)
virtual void OnApplyStringOptions()
Call back for connection to act on changed string options.
bool m_needReINVITE
Definition: sipcon.h:763
virtual PString GetCalledPartyURL()
virtual bool SetAlertingType(const PString &info)
StatusCodes
Definition: sippdu.h:544
virtual bool OnSendAnswer(SIP_PDU::StatusCodes response, bool transfer)
virtual OpalMediaStream * CreateMediaStream(const OpalMediaFormat &mediaFormat, unsigned sessionID, PBoolean isSource)
PRACKMode GetPRACKMode() const
Definition: sipcon.h:648
virtual bool OnMediaCommand(OpalMediaStream &stream, const OpalMediaCommand &command)
virtual bool InviteConferenceParticipant(const PString &conf, const PString &dest)
virtual void OnReceivedOPTIONS(SIP_PDU &pdu)
SIP_PDU * m_delayedAckInviteResponse
Definition: sipcon.h:758
virtual PString GetPrefixName() const
void OnUserInputInlineRFC2833(OpalRFC2833Info &info, OpalRFC2833Proto::NotifyState state)
virtual void OnReceivedRinging(SIPTransaction &transaction, SIP_PDU &pdu)
void OnInviteResponseTimeout()
PSafeArray< SIPTransaction > m_pendingInvitations
Definition: sipcon.h:787
PDECLARE_WriteConnectCallback(SIPConnection, WriteINVITE)
OpalTransportAddress GetDefaultSDPConnectAddress(WORD port=0) const
SIPURL m_remoteIdentity
Definition: sipcon.h:752
virtual void OnReceivedMESSAGE(SIP_PDU &pdu)
virtual bool OnReceivedResponseToINVITE(SIPTransaction &transaction, SIP_PDU &response)
virtual void OnPauseMediaStream(OpalMediaStream &strm, bool paused)
TypeOfINVITE
Definition: sipcon.h:587
int m_appearanceCode
Definition: sipcon.h:768
SIPEndPoint & GetEndPoint() const
Definition: sipcon.h:629
virtual void OnReceivedOK(SIPTransaction &transaction, SIP_PDU &response)
virtual void OnReceivedINFO(SIP_PDU &pdu)
virtual void AdjustInviteResponse(SIP_PDU &response)
virtual bool RequireSymmetricMediaStreams() const
PSafePtr< OpalSIPIMContext > m_imContext
Definition: sipcon.h:809
unsigned m_allowedMethods
Definition: sipcon.h:746
OpalConnection::StringOptions * m_stringOptions
complex string options
Definition: sipcon.h:155
PTimeInterval m_delayedAckTimeout2
Definition: sipcon.h:761
int SetRemoteMediaFormatsFromPDU(SIP_PDU &pdu)
Definition: sippdu.h:1175
virtual OpalTransportAddress GetRemoteMediaAddress()
virtual void OnReceivedPING(SIP_PDU &pdu)
std::queue< SIP_PDU > m_responsePackets
Definition: sipcon.h:777
ReferSubMode
Definition: sippdu.h:1503
Definition: connection.h:530
virtual void OnReceivedReINVITE(SIP_PDU &pdu)
OpalTransportAddress m_remoteAddress
Definition: sipcon.h:750
Definition: sippdu.h:1593
virtual PBoolean ForwardCall(const PString &forwardParty)
unsigned m_prackSequenceNumber
Definition: sipcon.h:776
virtual bool TransferConnection(const PString &remoteParty)
virtual PString GetCallInfo() const
unsigned m_responseRetryCount
Definition: sipcon.h:780
virtual PString GetAlertingType() const
virtual bool OnReceivedAnswer(SIP_PDU &response, SIPTransaction *transaction)
void * m_userData
User data.
Definition: sipcon.h:152
virtual OpalMediaStreamPtr OpenMediaStream(const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource)
Init(OpalCall &call, SIPEndPoint &endpoint)
Definition: sipcon.h:139
virtual PString GetIdentifier() const
SIPURL m_ciscoRemotePartyID
Definition: sipcon.h:754
virtual PString GetLocalPartyURL() const
SIPAuthentication * GetAuthenticator() const
Definition: sipcon.h:630
virtual PBoolean SendInviteResponse(SIP_PDU::StatusCodes code, const SDPSessionDescription *sdp=NULL)
virtual void OnReceivedPRACK(SIP_PDU &pdu)
void UpdateRemoteAddresses()
PoolTimer m_inviteCollisionTimer
Definition: sipcon.h:781
PSafePtr< SIPConnection > GetB2BUA()
virtual bool OnReceivedInfoPackage(const PString &package, const PMultiPartList &content)
virtual void OnStartTransaction(SIPTransaction &transaction)
PSafeArray< SIPTransaction > m_forkedInvitations
Definition: sipcon.h:786
virtual bool GetMediaTransportAddresses(OpalConnection &otherConnection, unsigned sessionId, const OpalMediaType &mediaType, OpalTransportAddressArray &transports) const
bool SendReINVITE(PTRACE_PARAM(const char *msg,) int operation=0)
bool StartPendingReINVITE()
enum SIPConnection::@41 m_receivedUserInputMethod
virtual OpalMediaFormatList GetMediaFormats() const
PHTTPClientAuthentication SIPAuthentication
Definition: sippdu.h:497
virtual PBoolean SetUpConnection()
PRACKMode m_prackMode
Definition: sipcon.h:774
bool m_canDoVideoFastUpdateINFO
Definition: sipcon.h:771
SIP_PDU * m_lastReceivedINVITE
Definition: sipcon.h:757
virtual OpalMediaCryptoSuite::KeyExchangeModes GetMediaCryptoKeyExchangeModes() const
PBoolean SendUserInputTone(char tone, unsigned duration)
SIPURL m_contactAddress
Definition: sipcon.h:753
virtual PString GetDestinationAddress()
PTimeInterval m_delayedAckTimeout1
Definition: sipcon.h:760
bool m_resolveMultipleFormatReINVITE
Definition: sipcon.h:765
PoolTimer m_sessionTimer
Definition: sipcon.h:773
virtual void OnCreatingINVITE(SIPInvite &pdu)
virtual void OnMediaStreamOpenFailed(bool rx)
PMultiPartList m_multiPartMIME
Definition: sipcon.h:755
SIPURL m_delayedReferTo
Definition: sipcon.h:783
virtual void OnReceivedINVITE(SIP_PDU &pdu)
virtual void OnAllowedEventNotify(const PString &eventName)
friend class SIP_RTP_Session
Definition: sipcon.h:829
SIPURL m_assertedIdentity
Definition: sipcon.h:751
void OnReceivedAlertingResponse(SIPTransaction &transaction, SIP_PDU &response)
PoolTimer m_responseFailTimer
Definition: sipcon.h:778
SIPPoolTimer< SIPConnection > PoolTimer
Definition: sipcon.h:743
SIP_PDU * m_invite
Invite packet.
Definition: sipcon.h:153
PString m_forwardParty
Definition: sipcon.h:749
PStringSet m_allowedEvents
Definition: sipcon.h:747
virtual PBoolean SendUserInputString(const PString &value)
virtual void OnReceivedTrying(SIPTransaction &transaction, SIP_PDU &response)
SIPAuthentication * m_authentication
Definition: sippdu.h:1017
virtual PBoolean OnMediaControlXML(SIP_PDU &pdu)
Methods
Definition: sippdu.h:526
Definition: connection.h:415
SIPConnection(const Init &init)
void OnDelayedAckTimeout()
virtual void OnReleased()
PString m_token
Token to identify the connection.
Definition: sipcon.h:150
enum SIPConnection::@40 m_referOfRemoteState
OpalCall & m_call
Owner call for connection.
Definition: sipcon.h:148
virtual PString GetMediaInterface()
virtual bool SendDelayedACK(bool force)
bool ConsultationTransfer(SIPConnection &referee, SIPRefer::ReferSubMode referSubMode, bool useIdentity)
#define OpalGloballyUniqueID
Definition: guid.h:38
Definition: transports.h:151
Definition: transports.h:326
bool m_symmetricOpenStream
Definition: sipcon.h:766
virtual void OnReceivedREFER(SIP_PDU &pdu)
OpalGloballyUniqueID m_dialogNotifyId
Definition: sipcon.h:767
virtual void OnReceivedPDU(SIP_PDU &pdu)
PoolTimer m_delayedReferTimer
Definition: sipcon.h:782
virtual PBoolean OnReceivedAuthenticationRequired(SIPTransaction &transaction, SIP_PDU &response)
virtual void OnReceivedRedirection(SIP_PDU &pdu)
virtual SendUserInputModes GetRealSendUserInputMode() const
Definition: sippdu.h:1629
virtual bool GarbageCollection()
PString m_consultationTransferToken
Definition: sipcon.h:801
virtual PString GetRemoteIdentity() const
bool m_handlingINVITE
Definition: sipcon.h:764
SIPEndPoint & m_endpoint
SIP endpoint that controls the connection.
Definition: sipcon.h:149
virtual void OnTransactionFailed(SIPTransaction &transaction)
virtual OpalTransportAddress GetRemoteAddress() const
Definition: sipcon.h:192
virtual PBoolean SetConnected()
SIP_PDU * m_delayedAckPDU
Definition: sipcon.h:762