10#define RESIPROCATE_SUBSYSTEM Subsystem::DUM
22 if (code < 300 || code == 380 || code == 305)
26 else if (code >= 300 && code < 400)
34 DebugLog( <<
"RedirectManager::handle: new TargetSet: " <<
id);
76 if (msg.
exists(h_Contacts))
78 for (NameAddrs::const_iterator it = msg.
header(h_Contacts).begin(); it != msg.
header(h_Contacts).end(); it++)
82 DebugLog( <<
"RedirectManager::TargetSet::addTargets:target: " << *it);
96 while(!mTargetQueue.empty())
100 request.
mergeUri(mTargetQueue.top().uri());
112 DebugLog(<<
"RedirectManager::TargetSet::makeNextRequest: " << request);
113 request.
header(h_CSeq).sequence()++;
120 DebugLog(<<
"RedirectManager::TargetSet::makeNextRequest: error generating request");
137 return lhs.
param(p_q) < 1000;
#define resip_assert(x)
This file needs to work for both C and C++ code.
AppDialogSetHandle getHandle()
The abstract base-class for all exceptions thrown by resip code.
size_type find(const Data &match, size_type start=0) const
Finds a specified sequence of bytes in this Data.
RedirectHandler * getRedirectHandler() const noexcept
Represents the "name-addr" and the "addr-spec" elements in the RFC 3261 grammar.
bool exists(const Param< NameAddr > ¶mType) const
const Data & param(const ExtensionParameter ¶m) const
Const accessor for non-natively-supported parameter types.
virtual bool onTryingNextTarget(AppDialogSetHandle, const SipMessage &request)=0
virtual void onRedirectReceived(AppDialogSetHandle, const SipMessage &response)=0
virtual bool operator()(const NameAddr &lhs, const NameAddr &rhs) const
bool makeNextRequest(SipMessage &request)
void addTargets(const SipMessage &msg)
EncounteredTargetSet mTargetSet
void removeDialogSet(DialogSetId id)
virtual bool handle(DialogSet &dSet, SipMessage &origRequest, const SipMessage &response)
void setOrdering(const Ordering &order)
RedirectedRequestMap mRedirectedRequestMap
Represents a SIP message.
bool isRequest() const
Returns true if message is a request, false otherwise.
SipMessage & mergeUri(const Uri &source)
const RequestLine & header(const RequestLineType &l) const
Returns the RequestLine. This is only valid for request messages.
bool isResponse() const
Returns true if message is a response, false otherwise.
bool exists(const HeaderBase &headerType) const
Returns true if the given header field is present, false otherwise.
dcm! – add UnusedChecking(_enum) below;
StatusLineType h_StatusLine
RequestLineType h_RequestLine