|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
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 内の getProcessingInfopublic MessageChannel getResponseChannel()
public boolean isMessagePartOfTransaction(SIPMessage messageToTest)
SIPTransaction 内の isMessagePartOfTransactionmessageToTest - Message to check if it is part of this transaction.
public boolean isTransactionMapped()
public void processRequest(SIPRequest transactionRequest,
MessageChannel sourceChannel)
ServerRequestInterface 内の processRequesttransactionRequest - Request to process.sourceChannel - Channel that received this message.
public void sendMessage(SIPMessage messageToSend)
throws java.io.IOException
SIPTransaction 内の sendMessagemessageToSend - Response to process and send.
java.io.IOExceptionpublic java.lang.String getViaHost()
SIPTransaction の記述:
SIPTransaction 内の getViaHostpublic int getViaPort()
SIPTransaction の記述:
SIPTransaction 内の getViaPortpublic SIPResponse getLastResponse()
SIPTransaction 内の getLastResponsepublic void setOriginalRequest(SIPRequest originalRequest)
SIPTransaction 内の setOriginalRequestoriginalRequest - 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 内の sendResponseresponse - -
the Response to send to the Request
javax.sip.SipException - if implementation cannot send response for any other reasonResponsepublic javax.sip.TransactionState getState()
javax.sip.Transaction 内の getStateSIPTransaction 内の getStatepublic void setState(javax.sip.TransactionState newState)
SIPTransaction 内の setStatenewState - New state of this transaction.public boolean passToListener()
public void processPending()
PendingRecord 内の processPendingSIPTransaction 内の processPendingpublic boolean hasPending()
PendingRecord の記述:
PendingRecord 内の hasPendingpublic void clearPending()
SIPTransaction の記述:
PendingRecord 内の clearPendingpublic boolean equals(java.lang.Object other)
java.lang.Object 内の equals
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||