12 #ifndef _SipTransaction_h_ 13 #define _SipTransaction_h_ 21 #include <os/OsDefs.h> 22 #include <os/OsSocket.h> 23 #include <os/OsMsgQ.h> 26 #include <utl/UtlSList.h> 95 UtlBoolean isOutgoing = TRUE,
96 UtlBoolean userAgentTransaction = TRUE);
113 UtlString& branchId);
154 void toString(UtlString& dumpString,
155 UtlBoolean dumpMessagesAlso);
159 UtlBoolean dumpMessagesAlso);
165 UtlBoolean dumpMessagesAlso);
173 UtlString& stateString);
176 UtlString& relationshipString);
179 UtlBoolean isOutgoing,
241 UtlBoolean
isMethod(
const char* methodToMatch)
const;
245 UtlBoolean isOutgoing)
const;
288 UtlBoolean childSaysShouldDispatch,
312 UtlBoolean isOutGoing,
329 UtlBoolean doResend(
SipMessage& resendMessage,
337 UtlString& toAddress,
339 OsSocket::IpProtocolSocketType& toProtocol,
342 void prepareRequestForSend(
SipMessage& request,
344 UtlBoolean& addressRequiresDnsSrvLookup,
345 UtlString& toAddress,
347 OsSocket::IpProtocolSocketType& toProtocol);
354 UtlString mRequestUri;
357 UtlString mRequestMethod;
359 UtlBoolean mIsServerTransaction;
360 UtlBoolean mIsUaTransaction;
363 UtlString mSendToAddress;
365 OsSocket::IpProtocolSocketType mSendToProtocol;
375 UtlSList mChildTransactions;
376 long mTransactionCreateTime;
377 long mTransactionStartTime;
381 UtlBoolean mDispatchedFinalResponse;
382 UtlBoolean mProvisionalSdp;
387 UtlBoolean mIsCanceled;
388 UtlBoolean mIsRecursing;
389 UtlBoolean mIsDnsSrvChild;
393 UtlString mBusyTaskName;
394 UtlSList* mWaitingList;
404 #endif // _SipTransaction_h_ UtlBoolean findBestResponse(SipMessage &bestResponse)
Definition: SipTransaction.cpp:3083
UtlBoolean isEarlyDialogWithMedia()
Definition: SipTransaction.cpp:4867
long getTimeStamp() const
Definition: SipTransaction.cpp:4682
SipMessage * getLastFinalResponse()
Definition: SipTransaction.cpp:4748
Transaction and Transport manager for SIP stack.
Definition: SipUserAgent.h:157
enum messageRelationship addResponse(SipMessage *&response, UtlBoolean isOutGoing, enum messageRelationship relationship=MESSAGE_UNKNOWN)
Definition: SipTransaction.cpp:299
virtual ~SipTransaction()
param: userAgentTransaction - user agent (vs proxy) client or
Definition: SipTransaction.cpp:155
Same Call-Id, to, from, cseq but different TX.
Definition: SipTransaction.h:80
void handleResendEvent(const SipMessage &outgoingMessage, SipUserAgent &userAgent, enum messageRelationship relationship, SipTransactionList &transactionList, int &nextTimeout, SipMessage *&delayedDispatchedMessage, SIPX_TRANSPORT_DATA *pTransport)
Definition: SipTransaction.cpp:1294
UtlBoolean isMethod(const char *methodToMatch) const
Definition: SipTransaction.cpp:4926
ACK recieved for 300-699 response classes.
Definition: SipTransaction.h:71
void signalNextAvailable()
Definition: SipTransaction.cpp:4456
An ACK assocated with this TX (but considered a different TX)
Definition: SipTransaction.h:88
static int smTransactionNum
Definition: SipTransaction.h:55
void getNewBranchId(SipMessage &request, UtlString &branchId)
Definition: SipTransaction.cpp:253
Final response received.
Definition: SipTransaction.h:70
The first final response to this TX.
Definition: SipTransaction.h:83
void setTransport(SIPX_TRANSPORT_DATA *pTransport)
Definition: SipTransaction.h:268
UtlBoolean isChildEarlyDialogWithMedia()
Definition: SipTransaction.cpp:4903
UtlBoolean handleChildIncoming(SipMessage &incomingMessage, SipUserAgent &userAgent, enum messageRelationship relationship, SipTransactionList &transactionList, UtlBoolean childSaysShouldDispatch, SipMessage *&delayedDispatchedMessage, SIPX_TRANSPORT_DATA *pTransport)
Definition: SipTransaction.cpp:1706
The request to this TX.
Definition: SipTransaction.h:81
void getCallId(UtlString &callId) const
Definition: SipTransaction.cpp:4667
UtlBoolean isServerTransaction() const
Definition: SipTransaction.cpp:4825
void cancel(SipUserAgent &userAgent, SipTransactionList &transactionList)
Definition: SipTransaction.cpp:4025
Specialization of HttpMessage to contain and manipulate SIP messages.
Definition: SipMessage.h:343
enum transactionStates getState() const
Definition: SipTransaction.cpp:4672
SipTransaction correlates requests and responses.
Definition: SipTransaction.h:51
static void getStateString(enum transactionStates state, UtlString &stateString)
Definition: SipTransaction.cpp:4530
But not part of this TX or related branches.
Definition: SipTransaction.h:79
void notifyWhenAvailable(OsEvent *availableEvent)
Definition: SipTransaction.cpp:4431
Definition: SipTransaction.h:72
messageRelationship
The relationship of a message to a transaction.
Definition: SipTransaction.h:76
transactionStates
Definition: SipTransaction.h:65
Relationship not yet determined, or error.
Definition: SipTransaction.h:77
void stopTimers()
Definition: SipTransaction.cpp:3997
UtlBoolean recurseChildren(SipUserAgent &userAgent, SipTransactionList &transactionList)
Definition: SipTransaction.cpp:2815
static void buildHash(const SipMessage &message, UtlBoolean isOutgoing, UtlString &hash)
Definition: SipTransaction.cpp:4633
void dumpChildren(UtlString &dumpstring, UtlBoolean dumpMessagesAlso)
Definition: SipTransaction.cpp:4160
A duplicate message for this TX.
Definition: SipTransaction.h:89
UtlBoolean isUriChild(Url &uri)
Definition: SipTransaction.cpp:5303
UtlBoolean isChildSerial()
Definition: SipTransaction.cpp:4840
static UtlString smBranchIdBase
Definition: SipTransaction.h:56
void markAvailable()
Definition: SipTransaction.cpp:4791
void doMarkBusy(int markValue)
Definition: SipTransaction.cpp:4774
UtlBoolean recurseDnsSrvChildren(SipUserAgent &userAgent, SipTransactionList &transactionList, SIPX_TRANSPORT_DATA *pTransport)
Definition: SipTransaction.cpp:2521
void cancelChildren(SipUserAgent &userAgent, SipTransactionList &transactionList)
Definition: SipTransaction.cpp:4089
A cancel for this TX.
Definition: SipTransaction.h:85
SipTransaction * getTopMostParent() const
Definition: SipTransaction.cpp:4651
Provisional response received.
Definition: SipTransaction.h:69
UtlBoolean startSequentialSearch(SipUserAgent &userAgent, SipTransactionList &transactionList, SIPX_TRANSPORT_DATA *pTransport)
returns: TRUE/FALSE as to whether the message should be dispatched to applications ...
Definition: SipTransaction.cpp:2380
SipMessage * getLastProvisionalResponse()
Definition: SipTransaction.cpp:4743
void handleChildTimeoutEvent(SipTransaction &child, const SipMessage &outgoingMessage, SipUserAgent &userAgent, enum messageRelationship relationship, SipTransactionList &transactionList, int &nextTimeout, SipMessage *&delayedDispatchedMessage, SIPX_TRANSPORT_DATA *pTransport)
Definition: SipTransaction.cpp:2205
A different final response for this TX.
Definition: SipTransaction.h:84
long getStartTime() const
UtlBoolean isBusy()
Definition: SipTransaction.cpp:5298
No messages sent (usually client)
Definition: SipTransaction.h:67
void handleExpiresEvent(const SipMessage &outgoingMessage, SipUserAgent &userAgent, enum messageRelationship relationship, SipTransactionList &transactionList, int &nextTimeout, SipMessage *&delayedDispatchedMessage, SIPX_TRANSPORT_DATA *pTransport)
Definition: SipTransaction.cpp:1571
void startTimers()
Definition: SipTransaction.cpp:4008
void linkChild(SipTransaction &child)
Definition: SipTransaction.cpp:4102
UtlBoolean isDnsSrvChild() const
Inquiry as to whether this transaction is a recursed DNS SRV child.
Definition: SipTransaction.cpp:4830
Request sent.
Definition: SipTransaction.h:68
Structure to describe a server found for a SIP domain.
Definition: SipSrvLookup.h:213
A with different Call-Id, To or From.
Definition: SipTransaction.h:78
Definition: sipXtapiInternal.h:288
void dumpTransactionTree(UtlString &dumpstring, UtlBoolean dumpMessagesAlso)
Definition: SipTransaction.cpp:4147
void removeTimer(OsTimer *timer)
Definition: SipTransaction.cpp:3936
void toString(UtlString &dumpString, UtlBoolean dumpMessagesAlso)
Definition: SipTransaction.cpp:4181
void deleteTimers()
Definition: SipTransaction.cpp:3965
Definition: SipTransaction.h:86
not yet set
Definition: SipTransaction.h:66
UtlBoolean handleOutgoing(SipMessage &outgoingMessage, SipUserAgent &userAgent, SipTransactionList &transactionList, enum messageRelationship relationship, SIPX_TRANSPORT_DATA *pTransport=NULL)
Definition: SipTransaction.cpp:426
UtlBoolean isUriRecursed(Url &uri)
Definition: SipTransaction.cpp:5323
UtlBoolean isUaTransaction() const
Definition: SipTransaction.cpp:4835
URL parser and constructor.
Definition: Url.h:90
A provision response to this TX.
Definition: SipTransaction.h:82
SipMessage * getRequest()
Definition: SipTransaction.cpp:4738
enum messageRelationship whatRelation(const SipMessage &message, UtlBoolean isOutgoing) const
Definition: SipTransaction.cpp:4932
SipTransaction(SipMessage *request=NULL, UtlBoolean isOutgoing=TRUE, UtlBoolean userAgentTransaction=TRUE)
Definition: SipTransaction.cpp:52
void touchBelow(int newDate)
Definition: SipTransaction.cpp:4719
An ACK for this non-2xx TX.
Definition: SipTransaction.h:87
UtlBoolean isUriRecursedChildren(UtlString &uriString)
Definition: SipTransaction.cpp:5333
Definition: SipTransactionList.h:36
void touch()
Definition: SipTransaction.cpp:4687
static void getRelationshipString(enum messageRelationship relationship, UtlString &relationshipString)
Definition: SipTransaction.cpp:4571
void signalAllAvailable()
Definition: SipTransaction.cpp:4490
UtlBoolean handleIncoming(SipMessage &incomingMessage, SipUserAgent &userAgent, enum messageRelationship relationship, SipTransactionList &transactionList, SipMessage *&delayedDispatchedMessage, SIPX_TRANSPORT_DATA *pTransport)
Definition: SipTransaction.cpp:3458
void markBusy()
Definition: SipTransaction.cpp:4753