|
NIST SIP Parser and Stack (v1.2) API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A server transaction is used by a SipProvider to handle incoming Request messages to fire Request events to the SipListener on a specific server transaction and by a User Agent Server application to send Response messages via the SipProvider to a User Agent Client application.
A new server transaction is generated in the following ways:
SipProvider.getNewServerTransaction(Request)
for INVITE Requests.
A server transaction of the transaction layer is represented by a finite state machine that is constructed to process a particular request under the covers of a stateful SipProvider. The transaction layer handles application-layer retransmissions, matching of responses to requests, and application-layer timeouts.
The server transaction must be unique within the underlying implementation. A common way to create this value is to compute a cryptographic hash of the To tag, From tag, Call-ID header field, the Request-URI of the request received (before translation), the topmost Via header, and the sequence number from the CSeq header field, in addition to any Proxy-Require and Proxy-Authorization header fields that may be present. The algorithm used to compute the hash is implementation-dependent.
For the detailed server transaction state machines refer to Chapter 17 of RFC 3261, the allowable transitions are summarized below:
Invite Transaction:
Proceeding --> Completed --> Confirmed --> Terminated
Non-Invite Transaction:
Trying --> Proceeding --> Completed --> Terminated
Methods inherited from interface javax.sip.Transaction |
getBranchId, getDialog, getRequest, getRetransmitTimer, getState, setRetransmitTimer |
|
NIST SIP Parser and Stack (v1.2) API | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |