1#if !defined(PresenceSubscriptionHandler_hxx)
2#define PresenceSubscriptionHandler_hxx
16class SecurityAttributes;
24class PresenceSubscriptionHandler;
32 mDum(
dum), mSubscriptionHandler(handler), mServerSubscriptionHandle(
h), mSendAcceptReject(
sendAcceptReject),
35 mDum(
orig.mDum), mSubscriptionHandler(
orig.mSubscriptionHandler), mServerSubscriptionHandle(
orig.mServerSubscriptionHandle),
36 mSendAcceptReject(
orig.mSendAcceptReject), mUserExists(
orig.mUserExists), mAor(
orig.mAor) {}
53 bool mSendAcceptReject;
58class PresenceServerSubscriptionRegFunctor;
59class PresenceServerSubscriptionFunctor;
60class PresenceServerRegStateChangeCommand;
61class PresenceServerDocStateChangeCommand;
62class PresenceServerCheckDocExpiredCommand;
virtual bool mergeETag(resip::Contents *eTagDest, resip::Contents *eTagSrc, bool isFirst)
bool checkRegistrationStateChanged(const resip::Uri &aor, bool registered, uint64_t regMaxExpires)
void adjustNotifyExpiresTime(resip::SipMessage ¬ify, uint64_t regMaxExpires)
virtual void onError(resip::ServerSubscriptionHandle, const resip::SipMessage &msg)
virtual void onNewSubscription(resip::ServerSubscriptionHandle h, const resip::SipMessage &sub)
bool sendPublishedPresence(resip::ServerSubscriptionHandle h, bool sendAcceptReject)
void notifySubscriptions(const resip::Data &documentKey)
virtual void onDocumentRemoved(bool sync, const resip::Data &eventType, const resip::Data &documentKey, const resip::Data &eTag, uint64_t lastUpdated)
void fabricateSimplePresence(resip::ServerSubscriptionHandle h, bool sendAcceptReject, const resip::Uri &aor, bool online, uint64_t regMaxExpires)
resip::DialogUsageManager & mDum
bool mPresenceUsesRegistrationState
void checkExpired(const resip::Data &documentKey, const resip::Data &eTag, uint64_t lastUpdated)
void continueNotifyPresenceAfterUserExistsCheck(resip::ServerSubscriptionHandle h, bool sendAcceptReject, const resip::Uri &aor, bool userExists)
virtual void onDocumentModified(bool sync, const resip::Data &eventType, const resip::Data &documentKey, const resip::Data &eTag, uint64_t expirationTime, uint64_t lastUpdated, const resip::Contents *contents, const resip::SecurityAttributes *securityAttributes)
resip::InMemorySyncPubDb * mPublicationDb
virtual void onPublished(resip::ServerSubscriptionHandle associated, resip::ServerPublicationHandle publication, const resip::Contents *contents, const resip::SecurityAttributes *attrs)
std::set< resip::Uri > mOnlineAors
virtual void onTerminated(resip::ServerSubscriptionHandle)
void notifyPresenceNoPublication(resip::ServerSubscriptionHandle h, bool sendAcceptReject, const resip::Uri &aor, bool isRegistered, uint64_t regMaxExpires)
bool mPresenceNotifyClosedStateForNonPublishedUsers
void notifyPresence(resip::ServerSubscriptionHandle h, bool sendAcceptReject)
resip::InMemorySyncRegDb * mRegistrationDb
virtual ~PresenceSubscriptionHandler()
resip::Dispatcher * mUserDispatcher
virtual void onRefresh(resip::ServerSubscriptionHandle, const resip::SipMessage &sub)
virtual void onAorModified(const resip::Uri &aor, const resip::ContactList &contacts)
virtual void setUserExists(bool exists)
virtual const resip::Data getUser()
virtual EncodeStream & encode(EncodeStream &ostr) const
output the entire message to stream
PresenceUserExists(resip::DialogUsageManager &dum, PresenceSubscriptionHandler *handler, resip::ServerSubscriptionHandle h, bool sendAcceptReject, const resip::Uri &aor)
virtual PresenceUserExists * clone() const
virtual bool getUserExists()
virtual const resip::Data getDomain()
PresenceUserExists(const PresenceUserExists &orig)
virtual void executeCommand()
virtual EncodeStream & encodeBrief(EncodeStream &ostr) const
output a brief description to stream
Base class for all SIP body types.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
A generic thread-bank class.
Implementation of a persistence manager.
Implementation of a persistence manager.
Represents a SIP message.
Represents the "SIP-URI" and "SIPS-URI" elements in the RFC 3261 grammar.
This Class is used to implement a primitive form of RPC using loose XML formatting.
dcm! – add UnusedChecking(_enum) below;
std::list< ContactInstanceRecord > ContactList
unsigned __int64 uint64_t