reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
ServerPagerMessage.cxx
Go to the documentation of this file.
8#include "rutil/Logger.hxx"
10
11#include <utility>
12
13using namespace resip;
14
15#define RESIPROCATE_SUBSYSTEM Subsystem::DUM
16
22
24 DialogSet& dialogSet,
25 const SipMessage& req) :
26 NonDialogUsage(dum, dialogSet),
27 mRequest(req),
28 mResponse(std::make_shared<SipMessage>())
29{
30}
31
33{
34 mDialogSet.mServerPagerMessage = nullptr;
35}
36
37
38void
40{
41 delete this;
42}
43
45{
46public:
48 : mServerPagerMessageHandle(serverPagerMessageHandle)
49 {
50
51 }
52
53 void executeCommand() override
54 {
55 if(mServerPagerMessageHandle.isValid())
56 {
57 mServerPagerMessageHandle->end();
58 }
59 }
60
61 EncodeStream& encodeBrief(EncodeStream& strm) const override
62 {
63 return strm << "ServerPagerMessageEndCommand";
64 }
65private:
66 ServerPagerMessageHandle mServerPagerMessageHandle;
67};
68
73
74void
76{
78 ServerPagerMessageHandler* handler = mDum.mServerPagerMessageHandler;
79
80 //?dcm? check in DialogUsageManager
81 if (!handler)
82 {
83 mDum.makeResponse(*mResponse, msg, 405);
84 mDum.send(mResponse);
85 delete this;
86 return;
87 }
88 handler->onMessageArrived(getHandle(), msg);
89}
90
91void
95
96void
97ServerPagerMessage::send(std::shared_ptr<SipMessage> response)
98{
99 resip_assert(response->isResponse());
100 mDum.send(response);
101 delete this;
102}
103
104std::shared_ptr<SipMessage>
106{
108 mDum.makeResponse(*mResponse, mRequest, statusCode);
109 mResponse->remove(h_Contacts);
110 return mResponse;
111}
112
114{
115public:
116 ServerPagerMessageAcceptCommand(const ServerPagerMessageHandle& serverPagerMessageHandle, int statusCode)
117 : mServerPagerMessageHandle(serverPagerMessageHandle),
118 mStatusCode(statusCode)
119 {
120 }
121
122 void executeCommand() override
123 {
124 if(mServerPagerMessageHandle.isValid())
125 {
126 mServerPagerMessageHandle->send(mServerPagerMessageHandle->accept(mStatusCode));
127 }
128 }
129
130 EncodeStream& encodeBrief(EncodeStream& strm) const override
131 {
132 return strm << "ServerPagerMessageAcceptCommand";
133 }
134private:
135 ServerPagerMessageHandle mServerPagerMessageHandle;
136 int mStatusCode;
137};
138
139void
144
145std::shared_ptr<SipMessage>
147{
149 mDum.makeResponse(*mResponse, mRequest, statusCode);
150 return mResponse;
151}
152
154{
155public:
156 ServerPagerMessageRejectCommand(const ServerPagerMessageHandle& serverPagerMessageHandle, int statusCode)
157 : mServerPagerMessageHandle(serverPagerMessageHandle),
158 mStatusCode(statusCode)
159 {
160 }
161
162 void executeCommand() override
163 {
164 if(mServerPagerMessageHandle.isValid())
165 {
166 mServerPagerMessageHandle->send(mServerPagerMessageHandle->reject(mStatusCode));
167 }
168 }
169
170 EncodeStream& encodeBrief(EncodeStream& strm) const override
171 {
172 return strm << "ServerPagerMessageRejectCommand";
173 }
174private:
175 ServerPagerMessageHandle mServerPagerMessageHandle;
176 int mStatusCode;
177};
178
179void
184
186ServerPagerMessage::dump(EncodeStream& strm) const
187{
188 strm << "ServerPagerMessage ";
189 mRequest.encodeBrief(strm);
190 return strm;
191}
192
193
194/* ====================================================================
195 * The Vovida Software License, Version 1.0
196 *
197 * Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
198 *
199 * Redistribution and use in source and binary forms, with or without
200 * modification, are permitted provided that the following conditions
201 * are met:
202 *
203 * 1. Redistributions of source code must retain the above copyright
204 * notice, this list of conditions and the following disclaimer.
205 *
206 * 2. Redistributions in binary form must reproduce the above copyright
207 * notice, this list of conditions and the following disclaimer in
208 * the documentation and/or other materials provided with the
209
210 * distribution.
211 *
212 * 3. The names "VOCAL", "Vovida Open Communication Application Library",
213 * and "Vovida Open Communication Application Library (VOCAL)" must
214 * not be used to endorse or promote products derived from this
215 * software without prior written permission. For written
216 * permission, please contact vocal@vovida.org.
217 *
218 * 4. Products derived from this software may not be called "VOCAL", nor
219 * may "VOCAL" appear in their name, without prior written
220 * permission of Vovida Networks, Inc.
221 *
222 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
223 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
224 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
225 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
226 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
227 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
228 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
229 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
230 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
231 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
232 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
233 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
234 * DAMAGE.
235 *
236 * ====================================================================
237 *
238 * This software consists of voluntary contributions made by Vovida
239 * Networks, Inc. and many individuals on behalf of Vovida Networks,
240 * Inc. For more information on Vovida Networks, Inc., please see
241 * <http://www.vovida.org/>.
242 *
243 */
#define resip_assert(x)
This file needs to work for both C and C++ code.
EncodeStream & encodeBrief(EncodeStream &strm) const override
output a brief description to stream
ServerPagerMessageAcceptCommand(const ServerPagerMessageHandle &serverPagerMessageHandle, int statusCode)
ServerPagerMessageEndCommand(const ServerPagerMessageHandle &serverPagerMessageHandle)
EncodeStream & encodeBrief(EncodeStream &strm) const override
output a brief description to stream
ServerPagerMessageRejectCommand(const ServerPagerMessageHandle &serverPagerMessageHandle, int statusCode)
EncodeStream & encodeBrief(EncodeStream &strm) const override
output a brief description to stream
BaseUsageHandle getBaseHandle() const
Definition BaseUsage.cxx:36
DialogUsageManager & mDum
Definition BaseUsage.hxx:43
void send(std::shared_ptr< SipMessage > request)
virtual void onMessageArrived(ServerPagerMessageHandle, const SipMessage &message)=0
Handle< ServerPagerMessage > ServerPagerMessageHandle
void send(std::shared_ptr< SipMessage > msg) override
ServerPagerMessageHandle getHandle()
void rejectCommand(int statusCode)
void dispatch(const SipMessage &msg) override
EncodeStream & dump(EncodeStream &strm) const override
std::shared_ptr< SipMessage > reject(int statusCode)
void acceptCommand(int statusCode=200)
Provide asynchronous method access by using command.
std::shared_ptr< SipMessage > accept(int statusCode=200)
ServerPagerMessage(const ServerPagerMessage &)=delete
Represents a SIP message.
bool isRequest() const
Returns true if message is a request, false otherwise.
virtual EncodeStream & encodeBrief(EncodeStream &str) const
output a brief description to stream
void post(Message *msg)
Posts a Message to this TransactionUser's fifo.
dcm! – add UnusedChecking(_enum) below;
#define EncodeStream