|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectgov.nist.javax.sip.stack.MessageChannel
gov.nist.javax.sip.stack.SIPTransaction
gov.nist.javax.sip.stack.SIPServerTransaction
public class SIPServerTransaction
Represents a server transaction. Implements the following state machines.
|INVITE |pass INV to TU INVITE V send 100 if TU won't in 200ms send response+-----------+ +--------| |--------+101-199 from TU | | Proceeding| |send response +------->| |<-------+ | | Transport Err. | | Inform TU | |--------------->+ +-----------+ | 300-699 from TU | |2xx from TU | send response | |send response | | +------------------>+ | | INVITE V Timer G fires | send response+-----------+ send response | +--------| |--------+ | | | Completed | | | +------->| |<-------+ | +-----------+ | | | | ACK | | | - | +------------------>+ | Timer H fires | V or Transport Err.| +-----------+ Inform TU | | | | | Confirmed | | | | | +-----------+ | | | |Timer I fires | |- | | | V | +-----------+ | | | | | Terminated|<---------------+ | | +-----------+ Figure 7: INVITE server transaction Request received |pass to TU V +-----------+ | | | Trying |-------------+ | | | +-----------+ |200-699 from TU | |send response |1xx from TU | |send response | | | Request V 1xx from TU | send response+-----------+send response| +--------| |--------+ | | | Proceeding| | | +------->| |<-------+ | +<--------------| | | |Trnsprt Err +-----------+ | |Inform TU | | | | | | |200-699 from TU | | |send response | | Request V | | send response+-----------+ | | +--------| | | | | | Completed |<------------+ | +------->| | +<--------------| | |Trnsprt Err +-----------+ |Inform TU | | |Timer J fires | |- | | | V | +-----------+ | | | +-------------->| Terminated| | | +-----------+
フィールドの概要 |
---|
クラス gov.nist.javax.sip.stack.SIPTransaction から継承されたフィールド |
---|
CALLING_STATE, COMPLETED_STATE, CONFIRMED_STATE, INITIAL_STATE, PROCEEDING_STATE, TERMINATED_STATE, TRYING_STATE |
メソッドの概要 | |
---|---|
void |
clearPending()
Clear the mark that there is a pending event for this transaction. |
boolean |
equals(java.lang.Object other)
|
SIPResponse |
getLastResponse()
Get the last response. |
java.lang.String |
getProcessingInfo()
Get processing information. |
MessageChannel |
getResponseChannel()
Returns this transaction. |
javax.sip.TransactionState |
getState()
Return the current transaction state according to the RFC 3261 transaction state machine. |
java.lang.String |
getViaHost()
Get the host to assign for an outgoing Request via header. |
int |
getViaPort()
Get the port to assign for the via header of an outgoing message. |
boolean |
hasPending()
Return true if this has a pending request |
boolean |
isMessagePartOfTransaction(SIPMessage messageToTest)
Deterines if the message is a part of this transaction. |
boolean |
isTransactionMapped()
Return true if the transaction is known to stack. |
boolean |
passToListener()
This is a hack to force the listener to process the transaction. |
void |
processPending()
Run any pending responses - gets called at the end of the event loop. |
void |
processRequest(SIPRequest transactionRequest,
MessageChannel sourceChannel)
Process a new request message through this transaction. |
void |
sendMessage(SIPMessage messageToSend)
Send a response message through this transactionand onto the client. |
void |
sendResponse(javax.sip.message.Response response)
Sends specified Response message to a Request which is identified by the specified server transaction identifier. |
void |
setOriginalRequest(SIPRequest originalRequest)
Set the original request. |
void |
setRequestInterface(ServerRequestInterface newRequestOf)
Sets the real RequestInterface this transaction encapsulates. |
void |
setState(javax.sip.TransactionState newState)
Sets a timeout after which the connection is closed (provided the server does not use the connection for outgoing requests in this time period) and calls the superclass to set state. |
クラス gov.nist.javax.sip.stack.MessageChannel から継承されたメソッド |
---|
getHostPort, getKey, getKey, getPeerHostPort, getRawIpSourceAddress, getViaHostPort, logResponse, sendMessage |
クラス java.lang.Object から継承されたメソッド |
---|
getClass, notify, notifyAll, toString, wait, wait, wait |
インタフェース javax.sip.Transaction から継承されたメソッド |
---|
getBranchId, getDialog, getRequest, getRetransmitTimer, setRetransmitTimer |
インタフェース gov.nist.javax.sip.stack.PendingRecord から継承されたメソッド |
---|
isTerminated |
メソッドの詳細 |
---|
public void setRequestInterface(ServerRequestInterface newRequestOf)
newRequestOf
- RequestInterface to send messages to.public java.lang.String getProcessingInfo()
ServerRequestInterface
の記述:
ServerRequestInterface
内の getProcessingInfo
public MessageChannel getResponseChannel()
public boolean isMessagePartOfTransaction(SIPMessage messageToTest)
SIPTransaction
内の isMessagePartOfTransaction
messageToTest
- Message to check if it is part of this transaction.
public boolean isTransactionMapped()
public void processRequest(SIPRequest transactionRequest, MessageChannel sourceChannel)
ServerRequestInterface
内の processRequest
transactionRequest
- Request to process.sourceChannel
- Channel that received this message.public void sendMessage(SIPMessage messageToSend) throws java.io.IOException
SIPTransaction
内の sendMessage
messageToSend
- Response to process and send.
java.io.IOException
public java.lang.String getViaHost()
SIPTransaction
の記述:
SIPTransaction
内の getViaHost
public int getViaPort()
SIPTransaction
の記述:
SIPTransaction
内の getViaPort
public SIPResponse getLastResponse()
SIPTransaction
内の getLastResponse
public void setOriginalRequest(SIPRequest originalRequest)
SIPTransaction
内の setOriginalRequest
originalRequest
- Request being handled.public void sendResponse(javax.sip.message.Response response) throws javax.sip.SipException
SipListener.processRequest(RequestEvent)
.
Note that when a UAS core sends a 2xx response to an INVITE, the server transaction is destroyed, by the underlying JAIN SIP implementation. This means that when the ACK sent by the corresponding UAC arrives at the UAS, there will be no matching server transaction for the ACK, and based on this rule, the ACK is passed to the UAS application core, where it is processed. This ensures that the three way handsake of an INVITE that is managed by the UAS application and not JAIN SIP.
javax.sip.ServerTransaction
内の sendResponse
response
- -
the Response to send to the Request
javax.sip.SipException
- if implementation cannot send response for any other reasonResponse
public javax.sip.TransactionState getState()
javax.sip.Transaction
内の getState
SIPTransaction
内の getState
public void setState(javax.sip.TransactionState newState)
SIPTransaction
内の setState
newState
- New state of this transaction.public boolean passToListener()
public void processPending()
PendingRecord
内の processPending
SIPTransaction
内の processPending
public boolean hasPending()
PendingRecord
の記述:
PendingRecord
内の hasPending
public void clearPending()
SIPTransaction
の記述:
PendingRecord
内の clearPending
public boolean equals(java.lang.Object other)
java.lang.Object
内の equals
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |