1#if !defined(RemoteParticipant_hxx)
2#define RemoteParticipant_hxx
24class DialogUsageManager;
57 typedef std::function<
void(
bool sdpOk, std::unique_ptr<resip::SdpContents>
sdp)>
144 std::shared_ptr<resip::SdpContents>
getLocalSdp() {
return mLocalSdp; };
146 std::shared_ptr<resip::SdpContents>
getRemoteSdp() {
return mRemoteSdp; };
196 State getState() {
return mState; };
201 void stateTransition(State
state);
218 } PendingRequestType;
222 PendingRequest() : mType(
None) {}
223 PendingRequestType mType;
226 unsigned int mRedirectCode;
229 PendingRequest mPendingRequest;
230 std::unique_ptr<resip::SdpContents> mPendingOffer;
232 std::shared_ptr<resip::SdpContents> mLocalSdp;
233 std::shared_ptr<resip::SdpContents> mRemoteSdp;
235 std::shared_ptr<resip::SdpContents> mLocalSdpGathering;
237 std::chrono::time_point<std::chrono::steady_clock> mLastRemoteKeyframeRequest = std::chrono::steady_clock::now();
238 std::chrono::duration<double> mKeyframeRequestInterval = std::chrono::milliseconds(1000);
240 unsigned int mCurrentIntervalIndex = 0;
241 const std::vector<int> mKeyframeIntervals;
This class is one of two main classes of concern to an application using the UserAgent library.
@ RedirectSuccessOnConnected
This class extends the resip UserProfile to include Conversation Manager specific settings.
This class is used to manage membership of participants.
This class represents base functionality for a participant that supports IMs.
This is the base class for a RemoteParticipant, LocalParticipant and a MediaResourceParticipant.
This class is used by Invite DialogSets.
This class represent a remote participant.
virtual void onConnectedConfirmed(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual void onNewSession(resip::ClientInviteSessionHandle h, resip::InviteSession::OfferAnswerType oat, const resip::SipMessage &msg)
virtual void notifyTerminating()
virtual void onFailure(resip::ClientInviteSessionHandle h, const resip::SipMessage &msg)
virtual void processReferNotify(resip::ClientSubscriptionHandle h, const resip::SipMessage ¬ify)
virtual void onUpdateExtension(resip::ClientSubscriptionHandle, const resip::SipMessage ¬ify, bool outOfOrder)
void setProposedSdp(const resip::SdpContents &sdp)
void setRemoteSdp(const resip::SdpContents &sdp, bool answer=false)
virtual void onRedirected(resip::ClientInviteSessionHandle, const resip::SipMessage &msg)
virtual void destroyConversations()
virtual void requestKeyframeFromPeerTimeout(bool reset)
virtual void redirectToParticipant(resip::InviteSessionHandle &destParticipantInviteSessionHandle, ConversationManager::RedirectSuccessCondition successCondition=ConversationManager::RedirectSuccessOnConnected)
virtual void checkHoldCondition()
virtual int onRequestRetry(resip::ClientSubscriptionHandle h, int retryMinimum, const resip::SipMessage ¬ify)
virtual void onRemoteSdpChanged(resip::InviteSessionHandle, const resip::SipMessage &msg, const resip::SdpContents &sdp)
virtual std::chrono::duration< double > getKeyframeRequestInterval() const
virtual void onRefer(resip::InviteSessionHandle, resip::ServerSubscriptionHandle, const resip::SipMessage &msg)
virtual void onLocalIceCandidate(const resip::Data &candidate, unsigned int lineIndex, const resip::Data &mid)
virtual void redirect(resip::NameAddr &destination, unsigned int redirectCode=302, ConversationManager::RedirectSuccessCondition successCondition=ConversationManager::RedirectSuccessOnConnected)
virtual void rejectPendingOODRefer(unsigned int statusCode)
virtual void onMessageFailure(resip::InviteSessionHandle, const resip::SipMessage &msg)
std::shared_ptr< resip::SdpContents > getLocalSdpGathering()
virtual void onOfferRequestRejected(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual void onUpdatePending(resip::ClientSubscriptionHandle h, const resip::SipMessage ¬ify, bool outOfOrder)
virtual bool onMediaControlEvent(resip::MediaControlContents::MediaControl &mediaControl)
virtual void initiateRemoteCall(const resip::NameAddr &destination)
virtual bool mediaStackPortAvailable()=0
virtual void setPendingOODReferInfo(resip::ServerOutOfDialogReqHandle ood, const resip::SipMessage &referMsg)
virtual void onOffer(resip::InviteSessionHandle handle, const resip::SipMessage &msg, const resip::SdpContents &offer)
virtual void onInfo(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual void setLocalHold(bool hold)
virtual void onReferRejected(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual void onInfoSuccess(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual void onReferNoSub(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual bool isRemoteHold()
virtual void enableTrickleIce()
std::function< void(bool sdpOk, std::unique_ptr< resip::SdpContents > sdp)> CallbackSdpReady
void addExtraHeader(const std::shared_ptr< resip::SipMessage > &invitemsg, const resip::Data &headerName, const resip::Data &headerValue)
virtual void sendInstantMessage(std::unique_ptr< resip::Contents > contents) override
virtual void onUpdateActive(resip::ClientSubscriptionHandle h, const resip::SipMessage ¬ify, bool outOfOrder)
virtual void onNewSubscription(resip::ClientSubscriptionHandle h, const resip::SipMessage ¬ify)
void setLocalSdp(const resip::SdpContents &sdp)
virtual void onConnected(resip::ClientInviteSessionHandle h, const resip::SipMessage &msg)
virtual ~RemoteParticipant()
void setLocalSdpGathering(const resip::SdpContents &sdp)
virtual void onOfferRequired(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual void addToConversation(Conversation *conversation, unsigned int inputGain=100, unsigned int outputGain=100) override
std::shared_ptr< resip::SdpContents > getLocalSdp()
virtual void onProvisional(resip::ClientInviteSessionHandle, const resip::SipMessage &msg)
virtual void notifyIncomingParticipant(const resip::SipMessage &msg, bool autoAnswer, ConversationProfile &conversationProfile)
virtual void onForkDestroyed(resip::ClientInviteSessionHandle)
virtual void info(const resip::Contents &contents)
virtual void onMessage(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual void onStaleCallTimeout(resip::ClientInviteSessionHandle)
virtual void acceptPendingOODRefer()
virtual void onAnswer(resip::InviteSessionHandle, const resip::SipMessage &msg, const resip::SdpContents &)
virtual void removeFromConversation(Conversation *conversation) override
virtual void conversationsConfirm()
std::shared_ptr< resip::SdpContents > getRemoteSdp()
virtual void buildSdpOffer(bool holdSdp, CallbackSdpReady sdpReady, bool preferExistingSdp=false)=0
virtual bool onTrickleIce(resip::TrickleIceContents &trickleIce)
virtual void destroyParticipant() override
virtual void onReferAccepted(resip::InviteSessionHandle, resip::ClientSubscriptionHandle, const resip::SipMessage &msg)
virtual void doReferNoSub(const resip::SipMessage &msg)
virtual void adjustRTPStreams(bool sendingOffer=false)=0
virtual bool holdPreferExistingSdp()
virtual void reject(unsigned int rejectCode)
virtual void onEarlyMedia(resip::ClientInviteSessionHandle, const resip::SipMessage &, const resip::SdpContents &)
virtual void onMessageSuccess(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual void requestKeyframeFromPeer()
virtual resip::InviteSessionHandle & getInviteSessionHandle()
virtual void alert(bool earlyFlag)
void setRemoteHold(bool remoteHold)
virtual void onInfoFailure(resip::InviteSessionHandle, const resip::SipMessage &msg)
virtual void onOfferRejected(resip::InviteSessionHandle, const resip::SipMessage *msg)
virtual void onTerminated(resip::InviteSessionHandle h, resip::InviteSessionHandler::TerminatedReason reason, const resip::SipMessage *msg)
virtual void redirectPendingOODRefer(resip::NameAddr &destination)
virtual void requestKeyframe()=0
RemoteParticipantDialogSet & getDialogSet()
Base class for all SIP body types.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
TerminatedReason
called when an dialog enters the terminated state - this can happen after getting a BYE,...
Represents the "name-addr" and the "addr-spec" elements in the RFC 3261 grammar.
Provides an interface to process and generate SDP bodies (MIME content-type application/sdp).
Represents a SIP message.
unsigned int ParticipantHandle
dcm! – add UnusedChecking(_enum) below;
Handle< AppDialog > AppDialogHandle