11#define RESIPROCATE_SUBSYSTEM Subsystem::DUM
23 return "NonDialogUsage::Exception";
43std::shared_ptr<UserProfile>
55 if (!response.
exists(h_Contacts) ||
56 response.
header(h_Contacts).size() != 1 ||
64 if (profile->hasUserAgentCapabilities())
66 contact = profile->getUserAgentCapabilities();
68 if (!profile->isAnonymous() && profile->hasPublicGruu())
70 contact.
uri() = profile->getPublicGruu();
72 else if (profile->isAnonymous() && profile->hasTempGruu())
74 contact.
uri() = profile->getTempGruu();
78 if (profile->hasOverrideHostAndPort())
80 contact.
uri() = profile->getOverrideHostAndPort();
95 const Data& instanceId = profile->getInstanceId();
98 contact.
param(p_Instance) = instanceId;
101 if (profile->clientOutboundEnabled())
121 msg->remove(h_Routes);
127 msg->header(h_Routes) = sRoute;
138 : mNonDialogUsage(
usage),
145 mNonDialogUsage.send(mMessage);
150 return strm <<
"NonDialogUsageSendCommand";
154 std::shared_ptr<SipMessage> mMessage;
NonDialogUsageSendCommand(NonDialogUsage &usage, std::shared_ptr< SipMessage > msg)
void executeCommand() override
EncodeStream & encodeBrief(EncodeStream &strm) const override
output a brief description to stream
AppDialogSetHandle getHandle()
The abstract base-class for all exceptions thrown by resip code.
DialogUsageManager & mDum
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
bool empty() const noexcept
Checks whether the Data is empty.
void send(std::shared_ptr< SipMessage > request)
Represents the "name-addr" and the "addr-spec" elements in the RFC 3261 grammar.
const Data & param(const ExtensionParameter ¶m) const
Const accessor for non-natively-supported parameter types.
Exception(const Data &msg, const Data &file, int line)
const char * name() const noexcept override
void applyLocalContact(SipMessage &response, const SipMessage &request) const
NonDialogUsage(DialogUsageManager &dum, DialogSet &dialogSet)
virtual void send(std::shared_ptr< SipMessage > msg)
std::shared_ptr< UserProfile > getUserProfile() const noexcept
virtual void sendCommand(std::shared_ptr< SipMessage > msg)
virtual ~NonDialogUsage()
AppDialogSetHandle getAppDialogSet() const
bool empty() const
return true or false indicating whether the mParsers vector is empty or not
Represents a SIP message.
const RequestLine & header(const RequestLineType &l) const
Returns the RequestLine. This is only valid for request messages.
bool exists(const HeaderBase &headerType) const
Returns true if the given header field is present, false otherwise.
void post(Message *msg)
Posts a Message to this TransactionUser's fifo.
bool isUserRelevant() const
Checks if this URI's scheme has sip:/sips:/tel: user-part semantics, i.e.
bool exists(const Param< Uri > ¶mType) const
const Data & param(const ExtensionParameter ¶m) const
Const accessor for non-natively-supported parameter types.
dcm! – add UnusedChecking(_enum) below;
InserterClass< T > Inserter(const T &t)
Templatized function to construct an instance of InserterClass for a container to be inserted.
RequestLineType h_RequestLine