reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
RemoteIMPagerParticipant.hxx
Go to the documentation of this file.
1#if !defined(RemoteIMPagerParticipant_hxx)
2#define RemoteIMPagerParticipant_hxx
3
4#include <map>
5
8#include "Participant.hxx"
9
11
12#include <memory>
13
14namespace resip
15{
16class DialogUsageManager;
17class SipMessage;
18class Contents;
19}
20
21namespace recon
22{
23
33{
34public:
37 const resip::NameAddr& destination, std::shared_ptr<ConversationProfile> conversationProfile = nullptr);
38
40
41
42 virtual int getConnectionPortOnBridge() override { return -1; } // Is not involved in audio mixing bridge
43 virtual bool hasInput() override { return false; } // Is not involved in audio mixing bridge
44 virtual bool hasOutput() override { return false; } // Is not involved in audio mixing bridge
45 virtual void applyBridgeMixWeights() override {} // Is not involved in audio mixing bridge
46 virtual void applyBridgeMixWeights(Conversation* removedConversation) override {} // Is not involved in audio mixing bridge
47
48 virtual void destroyParticipant() override;
49 virtual void sendInstantMessage(std::unique_ptr<resip::Contents> contents) override;
50 virtual void accept();
51 virtual void reject(unsigned int rejectCode);
52
53 virtual bool doesMessageMatch(resip::SipMessage message);
54
55
56protected:
57 friend class ConversationManager;
58
59 // ClientPagerMessageHandler ///////////////////////////////////////////////////
61 virtual void onFailure(resip::ClientPagerMessageHandle, const resip::SipMessage& status, std::unique_ptr<resip::Contents> contents);
62
63 // ServerPagerMessageHandler ///////////////////////////////////////////////////
65
66private:
67 void relayInstantMessageToConversations(const resip::SipMessage& msg);
68
70 resip::ServerPagerMessageHandle mServerPagerMessageHandle;
71 resip::ClientPagerMessageHandle mClientPagerMessageHandle;
72 resip::NameAddr mRemoteUri;
73 resip::Data mRemoteAorNoPort; // stored around for faster matching
74 resip::Data mLocalAorNoPort; // stored around for faster matching
75 resip::Data mRemoteDisplayName;
76 resip::SipMessage mInitialIncomingMessage;
77 std::shared_ptr<ConversationProfile> mConversationProfile;
78 int mNumOutstandingSends;
79 bool mDelayedDestroyPending;
80};
81
82}
83
84#endif
85
86
87/* ====================================================================
88
89 Copyright (c) 2021, SIP Spectrum, Inc http://www.sipspectrum.com
90 All rights reserved.
91
92 Redistribution and use in source and binary forms, with or without
93 modification, are permitted provided that the following conditions are
94 met:
95
96 1. Redistributions of source code must retain the above copyright
97 notice, this list of conditions and the following disclaimer.
98
99 2. Redistributions in binary form must reproduce the above copyright
100 notice, this list of conditions and the following disclaimer in the
101 documentation and/or other materials provided with the distribution.
102
103 3. Neither the name of Plantronics nor the names of its contributors
104 may be used to endorse or promote products derived from this
105 software without specific prior written permission.
106
107 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
108 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
109 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
110 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
111 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
112 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
113 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
114 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
115 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
116 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
117 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
118
119 ==================================================================== */
This class is one of two main classes of concern to an application using the UserAgent library.
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 represent an Instant Message remote participant.
virtual void reject(unsigned int rejectCode)
virtual void sendInstantMessage(std::unique_ptr< resip::Contents > contents) override
virtual void onMessageArrived(resip::ServerPagerMessageHandle, const resip::SipMessage &message)
virtual void applyBridgeMixWeights(Conversation *removedConversation) override
virtual void onSuccess(resip::ClientPagerMessageHandle, const resip::SipMessage &status)
virtual bool doesMessageMatch(resip::SipMessage message)
virtual void onFailure(resip::ClientPagerMessageHandle, const resip::SipMessage &status, std::unique_ptr< resip::Contents > contents)
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Definition Data.hxx:90
Represents the "name-addr" and the "addr-spec" elements in the RFC 3261 grammar.
Definition NameAddr.hxx:19
Represents a SIP message.
unsigned int ParticipantHandle
dcm! – add UnusedChecking(_enum) below;
void list()
Definition userAdmin.cxx:66