1#if !defined(RESIP_REQUEST_CONTEXT_HXX)
2#define RESIP_REQUEST_CONTEXT_HXX
20class TransactionTerminated;
38 virtual void process(std::unique_ptr<resip::SipMessage>
sip);
39 virtual void process(std::unique_ptr<resip::ApplicationMessage>
app);
109 typedef std::vector<ProcessorChain::Chain::iterator>
virtual void handleSelfAimedStrayAck(resip::SipMessage *sip)
resip::Data mDigestIdentity
resip::Tuple mTopRouteFlowTuple
resip::SipMessage & getOriginalRequest()
Returns the SipMessage associated with the server transaction.
resip::SipMessage * mAck200ToRetransmit
ChainIteratorStack mChainIteratorStack
resip::KeyValueStore mKeyValueStore
void doPostResponseProcessing(resip::SipMessage *msg)
bool mTopRouteFlowTupleSet
ProcessorChain & mRequestProcessorChain
bool processResponseNonInviteTransaction(resip::SipMessage *msg)
void postTimedMessage(std::unique_ptr< resip::ApplicationMessage > msg, int seconds)
virtual void removeTopRouteIfSelf()
Pops the topmost route if it's us.
void setSessionEstablishedEventSent()
virtual void process(resip::TransactionTerminated &msg)
virtual bool handleMissingResponseVias(resip::SipMessage *response)
void setDigestIdentity(const resip::Data &)
const resip::Data & getDigestRealm()
resip::Message * getCurrentEvent()
Returns the event that we are currently working on.
std::unique_ptr< ResponseContext > mResponseContext
void doPostRequestProcessing(resip::SipMessage *msg, bool original)
void processRequestAckTransaction(resip::SipMessage *msg, bool original)
resip::Message * mCurrentEvent
virtual void cancelClientTransaction(const resip::Data &tid, const resip::Tokens *reasons=0)
virtual void fixStrictRouterDamage()
virtual ~RequestContext()
resip::NameAddr mTopRoute
ResponseContext & getResponseContext()
ProcessorChain & mTargetProcessorChain
bool mHaveSentFinalResponse
std::vector< ProcessorChain::Chain::iterator > ChainIteratorStack
Stack of iterators used to keep track of where we are in the request processor chain(s) for async pro...
virtual void send(resip::SipMessage &msg)
void processResponseAckTransaction(resip::SipMessage *msg)
resip::SipMessage * mOriginalRequest
virtual void forwardAck200(const resip::SipMessage &ack)
resip::Tuple & getTopRouteFlowTuple()
void setSessionCreatedEventSent()
bool processResponseInviteTransaction(resip::SipMessage *msg)
bool processRequestNonInviteTransaction(resip::SipMessage *msg, bool original)
bool mSessionCreatedEventSent
const resip::Data & getDigestIdentity() const
void sendResponse(resip::SipMessage &response)
bool isTopRouteFlowTupleSet()
resip::NameAddr & getTopRoute()
bool processRequestInviteTransaction(resip::SipMessage *msg, bool original)
ProcessorChain & mResponseProcessorChain
resip::KeyValueStore & getKeyValueStore()
resip::Data getTransactionId() const
friend EncodeStream & operator<<(EncodeStream &strm, const repro::RequestContext &rc)
bool mSessionEstablishedEventSent
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
The base-class used for message-passing.
Represents the "name-addr" and the "addr-spec" elements in the RFC 3261 grammar.
Represents a SIP message.
Represents a network address.
This Class is used to implement a primitive form of RPC using loose XML formatting.
EncodeStream & operator<<(EncodeStream &os, const repro::Processor &rp)
dcm! – add UnusedChecking(_enum) below;
Replaces STL streams for general encoding purposes.