OPAL  Version 3.18.8
sipcon.h
Go to the documentation of this file.
1 /*
2  * sipcon.h
3  *
4  * Session Initiation Protocol connection.
5  *
6  * Open Phone Abstraction Library (OPAL)
7  * Formally known as the Open H323 project.
8  *
9  * Copyright (c) 2001 Equivalence Pty. Ltd.
10  *
11  * The contents of this file are subject to the Mozilla Public License
12  * Version 1.0 (the "License"); you may not use this file except in
13  * compliance with the License. You may obtain a copy of the License at
14  * http://www.mozilla.org/MPL/
15  *
16  * Software distributed under the License is distributed on an "AS IS"
17  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
18  * the License for the specific language governing rights and limitations
19  * under the License.
20  *
21  * The Original Code is Open Phone Abstraction Library.
22  *
23  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
24  *
25  * Contributor(s): ______________________________________.
26  */
27 
28 #ifndef OPAL_SIP_SIPCON_H
29 #define OPAL_SIP_SIPCON_H
30 
31 #ifdef P_USE_PRAGMA
32 #pragma interface
33 #endif
34 
35 #include <opal_config.h>
36 
37 #if OPAL_SIP
38 
39 #include <rtp/rtpconn.h>
40 #include <sip/sippdu.h>
41 #include <sip/handlers.h>
42 #include <sdp/sdpep.h>
43 
44 
45 class OpalSIPIMContext;
46 
47 
52 #define OPAL_OPT_FORWARD_REFER "Forward-Refer"
53 
57 #define OPAL_OPT_REFER_SUB "Refer-Sub"
58 
62 #define OPAL_OPT_NO_REFER_SUB "No-Refer-Sub"
63 
69 #define OPAL_OPT_PRACK_MODE "PRACK-Mode"
70 
74 #define OPAL_OPT_INITIAL_OFFER "Initial-Offer"
75 
86 #define OPAL_OPT_ALLOW_EARLY_REPLACE "Allow-Early-Replace"
87 
98 #define OPAL_OPT_EXTERNAL_SDP "External-SDP"
99 
107 #define OPAL_OPT_UNSECURE_SRTP "Unsecure-SRTP"
108 
115 #define OPAL_OPT_ENABLE_DTLS "Enable-DTLS"
116 
117 
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"
122 
123 #define OPAL_SIP_REFERRED_CONNECTION "Referred-Connection"
124 
125 
127 
131 class SIPConnection : public OpalSDPConnection, public SIPTransactionOwner
132 {
133  PCLASSINFO(SIPConnection, OpalSDPConnection);
134  public:
135 
138  struct Init {
139  Init(OpalCall & call, SIPEndPoint & endpoint)
140  : m_call(call)
141  , m_endpoint(endpoint)
142  , m_userData(NULL)
143  , m_invite(NULL)
144  , m_options(0)
145  , m_stringOptions(NULL)
146  { }
147 
150  PString m_token;
152  void * m_userData;
154  unsigned m_options;
156  };
157 
161  const Init & init
162  );
163 
166  ~SIPConnection();
168 
173  virtual PString GetPrefixName() const;
174 
177  virtual PString GetIdentifier() const;
178 
180  virtual void OnApplyStringOptions();
181 
188  virtual PBoolean SetUpConnection();
189 
193 
199  virtual PString GetRemoteIdentity() const;
200 
207  virtual PString GetDestinationAddress();
208 
216  virtual PString GetCalledPartyURL();
217 
220  virtual PMultiPartList GetExtraCallInfo() const { return m_multiPartMIME; }
221 
224  virtual PString GetLocalPartyURL() const;
225 
239  virtual PString GetAlertingType() const;
240 
254  virtual bool SetAlertingType(const PString & info);
255 
263  virtual PString GetCallInfo() const;
264 
273  virtual PString GetSupportedFeatures() const;
274 
295  virtual bool TransferConnection(
296  const PString & remoteParty
297  );
298 
309  virtual PBoolean SetAlerting(
310  const PString & calleeName,
311  PBoolean withMedia
312  );
313 
318  virtual PBoolean SetConnected();
319 
322  virtual OpalMediaFormatList GetMediaFormats() const;
323 
327  virtual bool RequireSymmetricMediaStreams() const;
328 
329 #if OPAL_T38_CAPABILITY
330 
332  virtual bool SwitchFaxMediaStreams(
333  bool toT38
334  );
335 #endif
336 
339  virtual OpalMediaCryptoSuite::KeyExchangeModes GetMediaCryptoKeyExchangeModes() const;
340 
344  const OpalMediaFormat & mediaFormat,
345  unsigned sessionID,
346  PBoolean isSource
347  );
348 
352  const OpalMediaFormat & mediaFormat,
353  unsigned sessionID,
354  bool isSource
355  );
356 
361  virtual void OnClosedMediaStream(
362  const OpalMediaStream & stream
363  );
364 
374  virtual bool GetMediaTransportAddresses(
375  OpalConnection & otherConnection,
376  unsigned sessionId,
377  const OpalMediaType & mediaType,
378  OpalTransportAddressArray & transports
379  ) const;
380 
389  virtual void OnPatchMediaStream(
390  PBoolean isSource,
391  OpalMediaPatch & patch
392  );
393 
396  virtual void OnPauseMediaStream(
397  OpalMediaStream & strm,
398  bool paused
399  );
400 
418  virtual void OnReleased();
419 
429  virtual PBoolean ForwardCall(
430  const PString & forwardParty
431  );
432 
438  virtual SendUserInputModes GetRealSendUserInputMode() const;
439 
446  virtual PBoolean SendUserInputString(
447  const PString & value
448  );
449 
466  PBoolean SendUserInputTone(char tone, unsigned duration);
468 
473  virtual void OnTransactionFailed(
474  SIPTransaction & transaction
475  );
476 
479  virtual void OnReceivedPDU(SIP_PDU & pdu);
480 
483  virtual void OnReceivedINVITE(SIP_PDU & pdu);
484 
487  virtual void OnReceivedReINVITE(SIP_PDU & pdu);
488 
491  virtual void OnReceivedACK(SIP_PDU & pdu);
492 
495  virtual void OnReceivedOPTIONS(SIP_PDU & pdu);
496 
499  virtual void OnReceivedNOTIFY(SIP_PDU & pdu);
500 
504  virtual void OnAllowedEventNotify(
505  const PString & eventName
506  );
507 
510  virtual void OnReceivedREFER(SIP_PDU & pdu);
511 
514  virtual void OnReceivedINFO(SIP_PDU & pdu);
515 
518  virtual void OnReceivedPING(SIP_PDU & pdu);
519 
522  virtual void OnReceivedPRACK(SIP_PDU & pdu);
523 
526  virtual void OnReceivedBYE(SIP_PDU & pdu);
527 
530  virtual void OnReceivedCANCEL(SIP_PDU & pdu);
531 
536  virtual bool OnReceivedResponseToINVITE(
537  SIPTransaction & transaction,
538  SIP_PDU & response
539  );
540 
543  virtual void OnReceivedResponse(
544  SIPTransaction & transaction,
545  SIP_PDU & response
546  );
547 
550  virtual void OnReceivedTrying(
551  SIPTransaction & transaction,
552  SIP_PDU & response
553  );
554 
557  virtual void OnReceivedRinging(SIPTransaction & transaction, SIP_PDU & pdu);
558 
561  virtual void OnReceivedSessionProgress(SIPTransaction & transaction, SIP_PDU & pdu);
562 
566  virtual PBoolean OnReceivedAuthenticationRequired(
567  SIPTransaction & transaction,
568  SIP_PDU & response
569  );
570 
573  virtual void OnReceivedRedirection(SIP_PDU & pdu);
574 
578  virtual void OnReceivedOK(
579  SIPTransaction & transaction,
580  SIP_PDU & response
581  );
582 
585  virtual void OnCreatingINVITE(SIPInvite & pdu);
586 
592  };
593 
596  const SIP_PDU & pdu
597  ) const;
598 
604  bool SendOPTIONS(
605  const SIPOptions::Params & params,
606  SIP_PDU * reply = NULL
607  );
608 
614  bool SendINFO(
615  const SIPInfo::Params & params,
616  SIP_PDU * reply = NULL
617  );
618 
621  virtual bool OnReceivedInfoPackage(
622  const PString & package,
623  const PMultiPartList & content
624  );
626 
628 
629  SIPEndPoint & GetEndPoint() const { return m_sipEndpoint; }
631 
633  enum PRACKMode {
645  };
648  PRACKMode GetPRACKMode() const { return m_prackMode; }
649 
652  virtual unsigned GetAllowedMethods() const;
653 
656  bool DoesRemoteAllowMethod(SIP_PDU::Methods method) const { return (m_allowedMethods&(1<<method)) != 0; }
657 
658 #if OPAL_VIDEO
659 
664  virtual PBoolean OnMediaControlXML(SIP_PDU & pdu);
665 #endif
666 
672  virtual bool OnMediaCommand(
673  OpalMediaStream & stream,
674  const OpalMediaCommand & command
675  );
676 
677  // Overrides from SIPTransactionOwner
678  virtual PString GetAuthID() const;
679 
680 
681  virtual void OnStartTransaction(SIPTransaction & transaction);
682  virtual void OnReceivedMESSAGE(SIP_PDU & pdu);
683  virtual void OnReceivedSUBSCRIBE(SIP_PDU & pdu);
684 
685  virtual PString GetMediaInterface();
687 
688 
689  protected:
690  virtual bool GarbageCollection();
691  void OnSessionTimeout();
692  void OnInviteResponseRetry();
694  void OnInviteCollision();
695  void OnDelayedRefer();
696  virtual bool AllowMusicOnHold() const;
697  virtual bool OnHoldStateChanged(bool placeOnHold);
698  virtual void OnMediaStreamOpenFailed(bool rx);
699 
701  SIPTransaction & transaction,
702  SIP_PDU & response
703  );
704  bool InternalSetConnected(bool transfer);
705  virtual bool OnSendAnswer(
706  SIP_PDU::StatusCodes response,
707  bool transfer
708  );
709  virtual bool OnReceivedAnswer(
710  SIP_PDU & response,
711  SIPTransaction * transaction
712  );
713 
714  bool SendReINVITE(PTRACE_PARAM(const char * msg, ) int operation = 0);
715  bool StartPendingReINVITE();
716 
717  friend class SIPInvite;
719 
720  virtual bool SendDelayedACK(bool force);
721  void OnDelayedAckTimeout();
722 
723  virtual PBoolean SendInviteResponse(
725  const SDPSessionDescription * sdp = NULL
726  );
727  virtual void AdjustInviteResponse(
728  SIP_PDU & response
729  );
730 
731  void UpdateRemoteAddresses();
732 
733  void NotifyDialogState(
734  SIPDialogNotification::States state,
735  SIPDialogNotification::Events eventType = SIPDialogNotification::NoEvent,
736  unsigned eventCode = 0
737  );
738 
739  virtual bool InviteConferenceParticipant(const PString & conf, const PString & dest);
740  PSafePtr<SIPConnection> GetB2BUA();
741 
742 
744 
745  // Member variables
747  PStringSet m_allowedEvents;
748 
749  PString m_forwardParty;
755  PMultiPartList m_multiPartMIME;
756 
760  PTimeInterval m_delayedAckTimeout1;
761  PTimeInterval m_delayedAckTimeout2;
769  PString m_alertInfo;
770 #if OPAL_VIDEO
772 #endif
777  std::queue<SIP_PDU> m_responsePackets;
785 
786  PSafeArray<SIPTransaction> m_forkedInvitations; // Not for re-INVITE
787  PSafeArray<SIPTransaction> m_pendingInvitations; // For re-INVITE
788 
789  enum {
794  } m_releaseMethod;
795 
796  enum {
802  bool ConsultationTransfer(SIPConnection & referee, SIPRefer::ReferSubMode referSubMode, bool useIdentity);
803 
805 
806  std::map<std::string, SIP_PDU *> m_responses;
807 
808 #if OPAL_HAS_SIPIM
809  PSafePtr<OpalSIPIMContext> m_imContext;
810 #endif
811 
812  enum {
818 
819 
820  private:
821  P_REMOVE_VIRTUAL_VOID(OnCreatingINVITE(SIP_PDU&));
822  P_REMOVE_VIRTUAL_VOID(OnReceivedTrying(SIP_PDU &));
823  P_REMOVE_VIRTUAL_VOID(OnMessageReceived(const SIPURL & /*from*/, const SIP_PDU & /*pdu*/));
824  P_REMOVE_VIRTUAL_VOID(OnMessageReceived(const SIP_PDU & /*pdu*/));
825  P_REMOVE_VIRTUAL(bool,OnReceivedInfoPackage(const PString&,const PString&),false);
826 
827 
828  friend class SIPTransaction;
829  friend class SIP_RTP_Session;
830 };
831 
832 
833 #endif // OPAL_SIP
834 
835 #endif // OPAL_SIP_SIPCON_H
836 
837 
838 // End of File ///////////////////////////////////////////////////////////////
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 &params, SIP_PDU *reply=NULL)
Definition: sippdu.h:71
Definition: sipcon.h:590
bool DoesRemoteAllowMethod(SIP_PDU::Methods method) const
Definition: sipcon.h:656
Definition: sipcon.h:815
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: sipim.h:61
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)
Definition: mediacmd.h:43
std::map< std::string, SIP_PDU * > m_responses
Definition: sipcon.h:806
Definition: sipcon.h:588
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 &params, SIP_PDU *reply=NULL)
virtual void OnReceivedResponse(SIPTransaction &transaction, SIP_PDU &response)
void OnInviteResponseRetry()
Definition: sipcon.h:131
NotifyState
Definition: rfc2833.h:112
virtual PString GetAuthID() const
virtual void OnReceivedSUBSCRIBE(SIP_PDU &pdu)
PSafePtr< OpalMediaStream > OpalMediaStreamPtr
Definition: mediastrm.h:493
virtual PBoolean SetAlerting(const PString &calleeName, PBoolean withMedia)
Definition: sipep.h:52
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
Definition: mediatype.h:66
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)
Definition: sippdu.h:522
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
Definition: sipcon.h:797
virtual PString GetPrefixName() const
void OnUserInputInlineRFC2833(OpalRFC2833Info &info, OpalRFC2833Proto::NotifyState state)
void OnSessionTimeout()
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
Definition: sippdu.h:972
void OnInviteCollision()
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
Definition: rfc2833.h:61
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: sipcon.h:591
Definition: mediafmt.h:112
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: sipcon.h:589
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
Definition: sipcon.h:641
Definition: patch.h:56
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
Definition: mediafmt.h:806
SIPURL m_ciscoRemotePartyID
Definition: sipcon.h:754
Definition: sipcon.h:634
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)
Definition: call.h:62
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
void OnDelayedRefer()
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
Definition: sipcon.h:799
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)
Definition: sipcon.h:814
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
Definition: sipcon.h:138
Definition: sipcon.h:798
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)
Definition: mediastrm.h:110
Definition: sipcon.h:638
virtual void OnReceivedTrying(SIPTransaction &transaction, SIP_PDU &response)
Definition: sipcon.h:791
SIPAuthentication * m_authentication
Definition: sippdu.h:1017
virtual PBoolean OnMediaControlXML(SIP_PDU &pdu)
Definition: sipcon.h:792
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
Definition: sipcon.h:793
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)
Definition: sipcon.h:790
#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