OPAL  Version 3.18.8
handlers.h
Go to the documentation of this file.
1 /*
2  * handlers.h
3  *
4  * Session Initiation Protocol non-connection protocol handlers.
5  *
6  * Open Phone Abstraction Library (OPAL)
7  *
8  * Copyright (c) 2000 Equivalence Pty. Ltd.
9  *
10  * The contents of this file are subject to the Mozilla Public License
11  * Version 1.0 (the "License"); you may not use this file except in
12  * compliance with the License. You may obtain a copy of the License at
13  * http://www.mozilla.org/MPL/
14  *
15  * Software distributed under the License is distributed on an "AS IS"
16  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17  * the License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * The Original Code is Open Phone Abstraction Library.
21  *
22  * The Initial Developer of the Original Code is Damien Sandras.
23  *
24  * Contributor(s): ______________________________________.
25  */
26 
27 #ifndef OPAL_SIP_HANDLERS_H
28 #define OPAL_SIP_HANDLERS_H
29 
30 #ifdef P_USE_PRAGMA
31 #pragma interface
32 #endif
33 
34 #ifndef _PTLIB_H
35 #include <ptlib.h>
36 #endif
37 
38 #include <opal_config.h>
39 
40 #if OPAL_SIP
41 
42 #include <opal/pres_ent.h>
43 #include <sip/sippdu.h>
44 
45 
46 /* Class to handle SIP REGISTER, SUBSCRIBE, MESSAGE, and renew
47  * the 'bindings' before they expire.
48  */
49 class SIPHandler : public PSafeObject, public SIPTransactionOwner
50 {
51  PCLASSINFO(SIPHandler, PSafeObject);
52 
53 protected:
54  SIPHandler(
55  SIP_PDU::Methods method,
56  SIPEndPoint & ep,
57  const SIPParameters & params,
58  const PString & callID = SIPTransaction::GenerateCallID()
59  );
60 
61 public:
62  ~SIPHandler();
63 
64  // Overrides from SIPTransactionOwner
65  virtual PString GetAuthID() const { return m_username; }
66  virtual PString GetPassword() const { return m_password; }
67 
68  enum State {
69  Subscribed, // The registration is active
70  Subscribing, // The registration is in process
71  Unavailable, // The registration is offline and still being attempted
72  Refreshing, // The registration is being refreshed
73  Restoring, // The registration is trying to be restored after being offline
74  Unsubscribing, // The unregistration is in process
75  Unsubscribed, // The registrating is inactive
77  };
78 
79  void SetState (SIPHandler::State s);
80 
81  inline SIPHandler::State GetState() const
82  { return m_state; }
83 
84  const PString & GetCallID() const
85  { return m_callID; }
86 
87  virtual const SIPURL & GetAddressOfRecord() const
88  { return m_addressOfRecord; }
89 
90  virtual PBoolean OnReceivedNOTIFY(SIP_PDU & response);
91 
92  virtual void SetExpire(int e);
93 
94  virtual int GetExpire() const
95  { return m_currentExpireTime; }
96 
97  virtual void SetBody(const PString & /*body*/) { }
98 
99  virtual bool IsDuplicateCSeq(unsigned ) { return false; }
100 
101  virtual SIPTransaction * CreateTransaction(OpalTransport &) { return NULL; }
102 
103  SIP_PDU::Methods GetMethod() const { return m_method; }
105 
106  virtual void OnReceivedResponse(SIPTransaction & transaction, SIP_PDU & response);
107  virtual void OnReceivedIntervalTooBrief(SIPTransaction & transaction, SIP_PDU & response);
108  virtual void OnReceivedTemporarilyUnavailable(SIPTransaction & transaction, SIP_PDU & response);
109  virtual void OnReceivedForbidden(SIPTransaction & transaction, SIP_PDU & response);
110  virtual void OnReceivedAuthenticationRequired(SIPTransaction & transaction, SIP_PDU & response);
111  virtual void OnReceivedOK(SIPTransaction & transaction, SIP_PDU & response);
112  virtual void OnTransactionFailed(SIPTransaction & transaction);
113 
114 // virtual void OnFailed(const SIP_PDU & response);
115  virtual void OnFailed(SIP_PDU::StatusCodes);
116  virtual void SendStatus(SIP_PDU::StatusCodes code, State state);
117 
118  bool ActivateState(SIPHandler::State state, bool resetInterface = false);
119  virtual bool SendNotify(const PObject * /*body*/) { return false; }
120 
122 
123  const OpalProductInfo & GetProductInfo() const { return m_productInfo; }
124 
125  const PString & GetRealm() const { return m_realm; }
126 
127  virtual bool ShutDown();
128 
129 protected:
130  virtual PBoolean SendRequest(SIPHandler::State state);
131  void RetryLater(unsigned after);
132  void OnExpireTimeout();
133  PDECLARE_WriteConnectCallback(SIPHandler, WriteTransaction);
134 
135  const PString m_callID;
136 
137  PString m_username;
138  PString m_password;
139  PString m_realm;
140 
144 
145  unsigned m_lastCseq;
151  std::queue<State> m_stateQueue;
156 
157  // Keep a copy of the keys used for easy removal on destruction
158  typedef std::map<PString, PSafePtr<SIPHandler> > IndexMap;
159  std::pair<IndexMap::iterator, bool> m_byAorAndPackage;
160  std::pair<IndexMap::iterator, bool> m_byAuthIdAndRealm;
161  std::pair<IndexMap::iterator, bool> m_byAorUserAndRealm;
162 
163  friend class SIPHandlers;
164 };
165 
166 #if PTRACING
167 ostream & operator<<(ostream & strm, SIPHandler::State state);
168 #endif
169 
170 
172 {
173  PCLASSINFO(SIPRegisterHandler, SIPHandler);
174 
175 public:
177  SIPEndPoint & ep,
178  const SIPRegister::Params & params
179  );
180 
182  virtual void OnReceivedOK(SIPTransaction & transaction, SIP_PDU & response);
183 
184  void UpdateParameters(const SIPRegister::Params & params);
185 
186  const SIPRegister::Params & GetParams() const { return m_parameters; }
187 
188  const SIPURLList & GetContacts() const { return m_contactAddresses; }
189  const SIPURLList & GetServiceRoute() const { return m_serviceRoute; }
190 
191 protected:
192  virtual PBoolean SendRequest(SIPHandler::State state);
193  virtual void SendStatus(SIP_PDU::StatusCodes code, State state);
194  PString CreateRegisterContact(const OpalTransportAddress & address, int q);
195 
202 };
203 
204 
206 {
207  PCLASSINFO(SIPSubscribeHandler, SIPHandler);
208 public:
211 
213  virtual void OnReceivedOK(SIPTransaction & transaction, SIP_PDU & response);
214  virtual PBoolean OnReceivedNOTIFY(SIP_PDU & response);
215  virtual void OnFailed(SIP_PDU::StatusCodes);
217  { return m_parameters.m_eventPackage; }
218 
219  void UpdateParameters(const SIPSubscribe::Params & params);
220 
221  const SIPSubscribe::Params & GetParams() const { return m_parameters; }
222 
223 protected:
224  virtual void WriteTransaction(OpalTransport & transport, bool & succeeded);
225  virtual void SendStatus(SIP_PDU::StatusCodes code, State state);
226  bool DispatchNOTIFY(SIP_PDU & request, SIP_PDU & response);
227 
231 };
232 
233 
235 {
236  PCLASSINFO(SIPNotifyHandler, SIPHandler);
237 public:
239  SIPEndPoint & ep,
240  const SIPEventPackage & eventPackage,
241  const SIPDialogContext & dialog
242  );
244 
247  { return m_eventPackage; }
248 
249  virtual void SetBody(const PString & body) { m_body = body; }
250 
251  virtual bool SendNotify(const PObject * body);
252 
253  enum Reasons {
260  };
261 
262 protected:
263  virtual PBoolean SendRequest(SIPHandler::State state);
264  virtual void WriteTransaction(OpalTransport & transport, bool & succeeded);
265 
269  PString m_body;
270 };
271 
272 
274 {
275  PCLASSINFO(SIPPublishHandler, SIPHandler);
276 
277 public:
279  const SIPSubscribe::Params & params,
280  const PString & body);
281 
282  virtual void SetBody(const PString & body) { m_body = body; }
283 
285  virtual void OnReceivedOK(SIPTransaction & transaction, SIP_PDU & response);
287 
288 protected:
290  PString m_body;
291  PString m_sipETag;
292 };
293 
294 
296 {
297  PCLASSINFO(SIPMessageHandler, SIPHandler);
298 public:
299  SIPMessageHandler(SIPEndPoint & ep, const SIPMessage::Params & params);
300 
302  virtual void OnFailed(SIP_PDU::StatusCodes);
303  virtual void OnReceivedOK(SIPTransaction & transaction, SIP_PDU & response);
304 
305  void UpdateParameters(const SIPMessage::Params & params);
306 
307 protected:
310 };
311 
312 
314 {
315  PCLASSINFO(SIPPingHandler, SIPHandler);
316 public:
317  SIPPingHandler(SIPEndPoint & ep, const PURL & to);
319 };
320 
321 
325 class SIPHandlers : public PSafeDictionary<PString, SIPHandler>
326 {
327  public:
330  void Append(SIPHandler * handler);
331 
336  void Remove(SIPHandler * handler);
337 
340  void Update(SIPHandler * handler);
341 
345  unsigned GetCount(SIP_PDU::Methods meth, const PString & eventPackage = PString::Empty()) const;
346 
350  PStringList GetAddresses(bool includeOffline, SIP_PDU::Methods meth, const PString & eventPackage = PString::Empty()) const;
351 
355  PSafePtr<SIPHandler> FindSIPHandlerByCallID(const PString & callID, PSafetyMode m);
356 
360  PSafePtr<SIPHandler> FindSIPHandlerByAuthRealm(const PString & authRealm, PSafetyMode m);
361 
365  PSafePtr<SIPHandler> FindSIPHandlerByAuthRealm(const PString & authRealm, const PString & userName, PSafetyMode m);
366 
374  PSafePtr<SIPHandler> FindSIPHandlerByUrl(const PString & url, SIP_PDU::Methods meth, PSafetyMode m);
375  PSafePtr<SIPHandler> FindSIPHandlerByUrl(const PString & url, SIP_PDU::Methods meth, const PString & eventPackage, PSafetyMode m);
376 
382  PSafePtr <SIPHandler> FindSIPHandlerByDomain(const PString & name, SIP_PDU::Methods meth, PSafetyMode m);
383 
384  protected:
385  void RemoveIndexes(SIPHandler * handler);
386 
388  PSafePtr<SIPHandler> FindBy(IndexMap & by, const PString & key, PSafetyMode m);
389 
393 };
394 
395 
396 #if OPAL_SIP_PRESENCE
397 
400 class SIPPresenceInfo : public OpalPresenceInfo
401 {
402  PCLASSINFO_WITH_CLONE(SIPPresenceInfo, OpalPresenceInfo)
403 
404 public:
405  // presence agent
406  PString m_presenceAgent;
407  PString m_personId;
408 
409  PString AsXML() const;
410 
411  static bool ParseNotify(
413  list<SIPPresenceInfo> & info
414  );
415  static bool ParseXML(
416  const PXML & xml,
417  list<SIPPresenceInfo> & info
418  );
419 
420  void PrintOn(ostream & strm) const;
421  friend ostream & operator<<(ostream & strm, const SIPPresenceInfo & info) { info.PrintOn(strm); return strm; }
422 
423  // Constructor
424  SIPPresenceInfo(
425  State state = Unchanged
426  ) : OpalPresenceInfo(state) { }
427  SIPPresenceInfo(
428  SIP_PDU::StatusCodes status,
429  bool subscribing
430  );
431  SIPPresenceInfo(
432  const OpalPresenceInfo & info
433  ) : OpalPresenceInfo(info) { }
434 };
435 #endif // OPAL_SIP_PRESENCE
436 
437 
440 struct SIPDialogNotification : public PObject
441 {
443 
444  P_DECLARE_ENUM(States,
445  Terminated,
446  Trying,
447  Proceeding,
448  Early,
449  Confirmed
450  );
451  static PString GetStateName(States state);
452  PString GetStateName() const { return GetStateName(m_state); }
453 
454  P_DECLARE_ENUM_EX(Events, NumEvents,
455  NoEvent, -1,
456  Cancelled,
457  Rejected,
458  Replaced,
459  LocalBye,
460  RemoteBye,
461  Error,
462  Timeout
463  );
464  static PString GetEventName(Events state);
465  PString GetEventName() const { return GetEventName(m_eventType); }
466 
467  enum Rendering {
471  };
472 
473  PString m_entity;
474  PString m_dialogId;
475  PString m_callId;
477  States m_state;
478  Events m_eventType;
479  unsigned m_eventCode;
480  struct Participant {
482  PString m_URI;
483  PString m_dialogTag;
484  PString m_identity;
485  PString m_display;
487  bool m_byeless;
489  } m_local, m_remote;
490 
491  SIPDialogNotification(const PString & entity = PString::Empty());
492 
493  void PrintOn(ostream & strm) const;
494 };
495 
496 
499 class SIPRegNotification : public PObject
500 {
501  PCLASSINFO(SIPRegNotification, PObject)
502 public:
503  P_DECLARE_ENUM(States,
504  Initial,
505  Active,
506  Terminated
507  );
508  static PString GetStateName(States state);
509  PString GetStateName() const { return GetStateName(m_state); }
510  static States GetStateFromName(const PCaselessString & str);
511 
513  const SIPURL & aor = SIPURL(),
514  States state = Initial
515  );
516 
518  States m_state;
519  std::list<SIPURL> m_contacts;
520 
521  void PrintOn(ostream & strm) const;
522 };
523 
524 
525 #endif // OPAL_SIP
526 
527 #endif // OPAL_SIP_HANDLERS_H
SIPHandler::State GetState() const
Definition: handlers.h:81
const SIP_PDU::Methods m_method
Definition: handlers.h:141
SIPURL m_aor
Definition: handlers.h:517
virtual void WriteTransaction(OpalTransport &transport, bool &succeeded)
Definition: sippdu.h:1328
Definition: sippdu.h:71
virtual const SIPURL & GetAddressOfRecord() const
Definition: handlers.h:87
PSafePtr< SIPHandler > FindSIPHandlerByUrl(const PString &url, SIP_PDU::Methods meth, PSafetyMode m)
virtual void SetBody(const PString &body)
Definition: handlers.h:282
virtual SIPEventPackage GetEventPackage() const
Definition: handlers.h:286
virtual void OnTransactionFailed(SIPTransaction &transaction)
unsigned m_lastCseq
Definition: handlers.h:145
SIPRegNotification(const SIPURL &aor=SIPURL(), States state=Initial)
Definition: handlers.h:480
virtual void OnReceivedForbidden(SIPTransaction &transaction, SIP_PDU &response)
Rendering
Definition: handlers.h:467
P_DECLARE_ENUM_EX(Events, NumEvents, NoEvent,-1, Cancelled, Rejected, Replaced, LocalBye, RemoteBye, Error, Timeout)
virtual bool IsDuplicateCSeq(unsigned)
Definition: handlers.h:99
Definition: handlers.h:440
SIPDialogNotification(const PString &entity=PString::Empty())
PString CreateRegisterContact(const OpalTransportAddress &address, int q)
Definition: sippdu.h:1056
virtual SIPSubscribe::EventPackage GetEventPackage() const
Definition: handlers.h:104
PString m_sipETag
Definition: handlers.h:291
Definition: sippdu.h:296
Definition: sippdu.h:1548
Definition: handlers.h:254
virtual void SetBody(const PString &)
Definition: handlers.h:97
virtual PBoolean SendRequest(SIPHandler::State state)
SIPPoolTimer< SIPHandler > m_expireTimer
Definition: handlers.h:153
Definition: handlers.h:295
const PString & GetRealm() const
Definition: handlers.h:125
const PString m_callID
Definition: handlers.h:135
SIPSubscribeHandler(SIPEndPoint &ep, const SIPSubscribe::Params &params)
PString m_display
Definition: handlers.h:485
bool m_initiator
Definition: handlers.h:476
SIPRegister::Params m_parameters
Definition: handlers.h:196
virtual void SendStatus(SIP_PDU::StatusCodes code, State state)
unsigned m_eventCode
Definition: handlers.h:479
Definition: transports.h:788
Definition: sippdu.h:1388
PString m_body
Definition: handlers.h:269
Definition: sipep.h:52
virtual SIPTransaction * CreateTransaction(OpalTransport &)
PSafePtr< SIPHandler > FindSIPHandlerByCallID(const PString &callID, PSafetyMode m)
PString GetEventName() const
Definition: handlers.h:465
PString m_username
Definition: handlers.h:137
const SIPSubscribe::Params & GetParams() const
Definition: handlers.h:221
Definition: handlers.h:70
Definition: handlers.h:325
std::pair< IndexMap::iterator, bool > m_byAuthIdAndRealm
Definition: handlers.h:160
PString m_password
Definition: handlers.h:138
Definition: handlers.h:470
States m_state
Definition: handlers.h:518
Rendering m_rendering
Definition: handlers.h:488
std::map< PString, PSafePtr< SIPHandler > > IndexMap
Definition: handlers.h:158
PString m_identity
Definition: handlers.h:484
virtual void OnReceivedResponse(SIPTransaction &transaction, SIP_PDU &response)
StatusCodes
Definition: sippdu.h:544
const SIPURLList & GetContacts() const
Definition: handlers.h:188
Definition: sippdu.h:522
Definition: handlers.h:234
std::pair< IndexMap::iterator, bool > m_byAorUserAndRealm
Definition: handlers.h:161
SIPRegisterHandler(SIPEndPoint &ep, const SIPRegister::Params &params)
State m_state
Definition: handlers.h:150
Definition: handlers.h:255
State
Definition: handlers.h:68
void Append(SIPHandler *handler)
virtual PBoolean SendRequest(SIPHandler::State state)
void UpdateParameters(const SIPRegister::Params &params)
PString m_realm
Definition: handlers.h:139
Events m_eventType
Definition: handlers.h:478
virtual SIPEventPackage GetEventPackage() const
Definition: handlers.h:246
static States GetStateFromName(const PCaselessString &str)
bool m_byeless
Definition: handlers.h:487
Definition: sippdu.h:972
const PString & GetCallID() const
Definition: handlers.h:84
virtual int GetExpire() const
Definition: handlers.h:94
virtual PBoolean OnReceivedNOTIFY(SIP_PDU &response)
int m_appearance
Definition: handlers.h:486
virtual PString GetPassword() const
Definition: handlers.h:66
int m_currentExpireTime
Definition: handlers.h:147
P_DECLARE_ENUM(States, Initial, Active, Terminated)
PString m_dialogId
Definition: handlers.h:474
IndexMap m_byAorAndPackage
Definition: handlers.h:390
bool ActivateState(SIPHandler::State state, bool resetInterface=false)
std::list< SIPURL > m_contacts
Definition: handlers.h:519
struct SIPDialogNotification::Participant m_remote
Definition: handlers.h:468
SIP_PDU::StatusCodes m_lastResponseStatus
Definition: handlers.h:146
Definition: handlers.h:73
static PString GenerateCallID()
virtual void OnReceivedOK(SIPTransaction &transaction, SIP_PDU &response)
PString m_entity
Definition: handlers.h:473
Definition: handlers.h:75
virtual void OnReceivedIntervalTooBrief(SIPTransaction &transaction, SIP_PDU &response)
virtual void WriteTransaction(OpalTransport &transport, bool &succeeded)
P_DECLARE_ENUM(States, Terminated, Trying, Proceeding, Early, Confirmed)
PSafePtr< SIPHandler > FindSIPHandlerByAuthRealm(const PString &authRealm, PSafetyMode m)
SIPMessage::Params m_parameters
Definition: handlers.h:308
SIPPublishHandler(SIPEndPoint &ep, const SIPSubscribe::Params &params, const PString &body)
Definition: handlers.h:49
Definition: handlers.h:76
virtual void OnReceivedOK(SIPTransaction &transaction, SIP_PDU &response)
Definition: sippdu.h:838
PCLASSINFO(SIPDialogNotification, PObject)
void PrintOn(ostream &strm) const
Definition: handlers.h:74
SIPURLList m_serviceRoute
Definition: handlers.h:199
void PrintOn(ostream &strm) const
PString GetStateName() const
Definition: handlers.h:452
Definition: sippdu.h:761
Definition: handlers.h:259
PSafePtr< SIPHandler > FindSIPHandlerByDomain(const PString &name, SIP_PDU::Methods meth, PSafetyMode m)
std::queue< State > m_stateQueue
Definition: handlers.h:151
Definition: handlers.h:72
Definition: sippdu.h:1438
virtual void OnReceivedOK(SIPTransaction &transaction, SIP_PDU &response)
virtual void OnReceivedAuthenticationRequired(SIPTransaction &transaction, SIP_PDU &response)
virtual void SetBody(const PString &body)
Definition: handlers.h:249
const SIPURL m_addressOfRecord
Definition: handlers.h:142
Definition: handlers.h:71
OpalProductInfo m_productInfo
Definition: handlers.h:154
bool m_unconfirmed
Definition: handlers.h:229
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
Definition: handlers.h:69
Definition: handlers.h:256
SIPEventPackageHandler * m_packageHandler
Definition: handlers.h:268
void RetryLater(unsigned after)
Reasons
Definition: handlers.h:253
virtual SIPTransaction * CreateTransaction(OpalTransport &)
virtual SIPTransaction * CreateTransaction(OpalTransport &)
virtual bool SendNotify(const PObject *body)
int m_offlineExpireTime
Definition: handlers.h:149
unsigned m_sequenceNumber
Definition: handlers.h:197
OpalTransportAddress m_externalAddress
Definition: handlers.h:200
IndexMap m_byAorUserAndRealm
Definition: handlers.h:392
PSafePtr< SIPHandler > FindBy(IndexMap &by, const PString &key, PSafetyMode m)
void UpdateParameters(const SIPSubscribe::Params &params)
struct SIPDialogNotification::Participant m_local
const SIPURLList & GetServiceRoute() const
Definition: handlers.h:189
Definition: handlers.h:273
bool m_retryForbidden
Definition: handlers.h:155
SIPNotifyHandler(SIPEndPoint &ep, const SIPEventPackage &eventPackage, const SIPDialogContext &dialog)
virtual bool SendNotify(const PObject *)
Definition: handlers.h:119
void SetState(SIPHandler::State s)
Definition: handlers.h:205
virtual void OnReceivedTemporarilyUnavailable(SIPTransaction &transaction, SIP_PDU &response)
Registrar parameters.
Definition: sippdu.h:1260
Definition: handlers.h:313
void Update(SIPHandler *handler)
int m_originalExpireTime
Definition: handlers.h:148
const OpalProductInfo & GetProductInfo() const
Definition: handlers.h:123
SIPMessageHandler(SIPEndPoint &ep, const SIPMessage::Params &params)
void RemoveIndexes(SIPHandler *handler)
SIPEventPackageHandler * m_packageHandler
Definition: handlers.h:230
Participant()
Definition: handlers.h:481
virtual void SendStatus(SIP_PDU::StatusCodes code, State state)
PString GetStateName() const
Definition: handlers.h:509
bool m_messageSent
Definition: handlers.h:309
void OnExpireTimeout()
Definition: sippdu.h:244
const SIPRegister::Params & GetParams() const
Definition: handlers.h:186
virtual SIPTransaction * CreateTransaction(OpalTransport &)
virtual SIPTransaction * CreateTransaction(OpalTransport &)
Definition: handlers.h:101
IndexMap m_byAuthIdAndRealm
Definition: handlers.h:391
SIPSubscribe::Params m_parameters
Definition: handlers.h:289
SIPSubscribe::Params m_parameters
Definition: handlers.h:228
virtual SIPTransaction * CreateTransaction(OpalTransport &)
Methods
Definition: sippdu.h:526
PString m_callId
Definition: handlers.h:475
SIPMIMEInfo m_mime
Definition: handlers.h:143
std::pair< IndexMap::iterator, bool > m_byAorAndPackage
Definition: handlers.h:159
Reasons m_reason
Definition: handlers.h:267
Definition: handlers.h:171
PDECLARE_WriteConnectCallback(SIPHandler, WriteTransaction)
SIP_PDU::Methods GetMethod() const
Definition: handlers.h:103
PStringList GetAddresses(bool includeOffline, SIP_PDU::Methods meth, const PString &eventPackage=PString::Empty()) const
virtual void SetExpire(int e)
virtual void OnFailed(SIP_PDU::StatusCodes)
Definition: handlers.h:257
bool DispatchNOTIFY(SIP_PDU &request, SIP_PDU &response)
void Remove(SIPHandler *handler)
SIPPingHandler(SIPEndPoint &ep, const PURL &to)
SIPHandler(SIP_PDU::Methods method, SIPEndPoint &ep, const SIPParameters &params, const PString &callID=SIPTransaction::GenerateCallID())
PString m_URI
Definition: handlers.h:482
Definition: sippdu.h:1360
Definition: transports.h:151
virtual PBoolean SendRequest(SIPHandler::State state)
EventPackage m_eventPackage
Definition: sippdu.h:1407
Definition: handlers.h:499
SIPHandler::IndexMap IndexMap
Definition: handlers.h:387
virtual void OnFailed(SIP_PDU::StatusCodes)
virtual PBoolean OnReceivedNOTIFY(SIP_PDU &response)
SIPURLList m_contactAddresses
Definition: handlers.h:198
void UpdateParameters(const SIPMessage::Params &params)
uint32_t m_rfc5626_reg_id
Definition: handlers.h:201
unsigned GetCount(SIP_PDU::Methods meth, const PString &eventPackage=PString::Empty()) const
virtual bool ShutDown()
virtual void OnReceivedOK(SIPTransaction &transaction, SIP_PDU &response)
virtual void SendStatus(SIP_PDU::StatusCodes code, State state)
Definition: connection.h:358
virtual PString GetAuthID() const
Definition: handlers.h:65
virtual SIPTransaction * CreateTransaction(OpalTransport &)
PString m_body
Definition: handlers.h:290
PString m_dialogTag
Definition: handlers.h:483
SIP_PDU::StatusCodes GetLastResponseStatus() const
Definition: handlers.h:121
virtual SIPEventPackage GetEventPackage() const
Definition: handlers.h:216
virtual void OnReceivedOK(SIPTransaction &transaction, SIP_PDU &response)
virtual void OnFailed(SIP_PDU::StatusCodes)
Definition: handlers.h:258
States m_state
Definition: handlers.h:477
bool m_receivedResponse
Definition: handlers.h:152
SIPEventPackage m_eventPackage
Definition: handlers.h:266