|
NIST SIP Parser and Stack (v1.2) API | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectgov.nist.javax.sip.stack.DialogImpl
Tracks dialogs. A dialog is a peer to peer association of communicating SIP entities. For INVITE transactions, a Dialog is created when a success message is received (i.e. a response that has a To tag). The SIP Protocol stores enough state in the message structure to extract a dialog identifier that can be used to retrieve this structure from the SipStack. Bugs against route set management were reported by Antonis Karydas and Brad Templeton.
| Field Summary | |
static int |
COMPLETED_STATE
|
static int |
CONFIRMED_STATE
|
static int |
EARLY_STATE
|
static int |
TERMINATED_STATE
|
| Method Summary | |
void |
ackReceived(gov.nist.javax.sip.message.SIPRequest sipRequest)
Mark that the dialog has seen an ACK. |
void |
addRoute(gov.nist.javax.sip.message.SIPMessage sipMessage)
Extract the route information from this SIP Message and add the relevant information to the route set. |
void |
addTransaction(SIPTransaction transaction)
Add a transaction record to the dialog. |
Request |
createRequest(String method)
Creates a new Request message based on the dialog creating request. |
void |
delete()
This method will release all resources associated with this dialog that are tracked by the Provider. |
Object |
getApplicationData()
Get ptr to opaque application data. |
CallIdHeader |
getCallId()
Returns the Call-ID for this SipSession. |
String |
getDialogId()
Get the id for this dialog. |
Transaction |
getFirstTransaction()
Get the transaction that created this dialog. |
SIPTransaction |
getLastTransaction()
Get the last transaction from the dialog. |
Address |
getLocalParty()
Get the local Address for this dialog. |
int |
getLocalSequenceNumber()
Get the local sequence number (for cseq assignment of outgoing requests within this dialog). |
String |
getLocalTag()
Get local identifier for the dialog. |
HopImpl |
getNextHop()
Get the next hop to which requests in the dialog will be routed to. |
Address |
getRemoteParty()
Returns the Address identifying the remote party. |
int |
getRemoteSequenceNumber()
Get the remote sequence number (for cseq assignment of outgoing requests within this dialog). |
String |
getRemoteTag()
Get peer identifier identifier for the dialog. |
Address |
getRemoteTarget()
Returns the Address identifying the remote target. |
Iterator |
getRouteSet()
Gets the route set for the dialog. |
DialogState |
getState()
Returns the current state of the dialogue. |
void |
incrementLocalSequenceNumber()
Increment the local CSeq # for the dialog. |
boolean |
isClientDialog()
Return true if this is a client dialog. |
boolean |
isSecure()
Returns true if this Dialog is secure i.e. if the request arrived over TLS, and the Request-URI contained a SIPS URI, the "secure" flag is set to TRUE. |
boolean |
isServer()
Return true if is server. |
void |
printTags()
Debugging print for the dialog. |
void |
resendAck()
Resend the last ack. |
void |
sendAck(Request request)
Sends ACK Request to the remote party of this Dialogue. |
void |
sendRequest(ClientTransaction clientTransactionId)
Sends a Request to the remote party of this dialog. |
void |
setApplicationData(Object applicationData)
Set ptr to app data. |
void |
setDefaultRoute(Route defaultRoute)
Set the default route (the default next hop for the proxy or the proxy address for the user agent). |
void |
setDialogId(String dialogId)
Set the dialog identifier. |
void |
setLocalTag(String mytag)
Set local tag for the transaction. |
void |
setRemoteTag(String hisTag)
Set the remote tag. |
void |
setStack(SIPTransactionStack sipStack)
Set the stack address. |
void |
setState(int state)
Set the state for this dialog. |
void |
setUser(String user)
Set the user name for the default route. |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final int EARLY_STATE
public static final int CONFIRMED_STATE
public static final int COMPLETED_STATE
public static final int TERMINATED_STATE
| Method Detail |
public void setApplicationData(Object applicationData)
setApplicationData in interface DialogapplicationData - the new object containing application specific
data.public Object getApplicationData()
getApplicationData in interface Dialog
public HopImpl getNextHop()
throws SipException
SipExceptionpublic boolean isClientDialog()
public void setState(int state)
state - is the state to set for the dialog.public void printTags()
public void ackReceived(gov.nist.javax.sip.message.SIPRequest sipRequest)
public Transaction getFirstTransaction()
getFirstTransaction in interface Dialogpublic Iterator getRouteSet()
Requests within a dialog MAY contain Record-Route and Contact header fields. However, these requests do not cause the dialog's route set to be modified.
The User Agent Client uses the remote target and route set to build the Request-URI and Route header field of the request.
getRouteSet in interface Dialogpublic void setStack(SIPTransactionStack sipStack)
public void setDefaultRoute(Route defaultRoute)
defaultRoute - is the default route to set.public void setUser(String user)
user - is the user name to set for the default route.public void addRoute(gov.nist.javax.sip.message.SIPMessage sipMessage)
sipMessage - is the SIP message for which we want
to add the route.public void setDialogId(String dialogId)
public boolean isServer()
isServer in interface Dialogpublic String getDialogId()
getDialogId in interface Dialogpublic void addTransaction(SIPTransaction transaction)
transaction - is the transaction to add to the dialog.public void setRemoteTag(String hisTag)
hisTag - is the remote tag to set.public SIPTransaction getLastTransaction()
public void incrementLocalSequenceNumber()
incrementLocalSequenceNumber in interface Dialogpublic int getRemoteSequenceNumber()
getRemoteSequenceNumber in interface Dialogpublic int getLocalSequenceNumber()
getLocalSequenceNumber in interface Dialogpublic String getLocalTag()
getLocalTag in interface Dialogpublic String getRemoteTag()
getRemoteTag in interface Dialogpublic void setLocalTag(String mytag)
mytag - is the tag to use in From headers client
transactions that belong to this dialog and for
generating To tags for Server transaction requests that belong
to this dialog.public void delete()
delete in interface Dialogpublic CallIdHeader getCallId()
getCallId in interface Dialogpublic Address getLocalParty()
getLocalParty in interface Dialogpublic Address getRemoteParty()
This is the value of the From header of recieved responses in this dialogue when acting as an User Agent Server.
getRemoteParty in interface Dialogpublic Address getRemoteTarget()
This is the value of the Contact header of recieved Requests or refresh Requests in this dialogue when acting as an User Agent Server. Bug fix sent in by Steve Crossley.
getRemoteTarget in interface Dialogpublic DialogState getState()
getState in interface DialogDialogStatepublic boolean isSecure()
isSecure in interface Dialogtrue if this dialogue was established using a sips
URI over TLS, and false otherwise.
public void sendAck(Request request)
throws SipException
sendAck in interface Dialogrequest - - the new ACK Request message to send.
SipException - if implementation cannot send the ACK Request for
any other reason
public Request createRequest(String method)
throws SipException
createRequest in interface Dialogmethod - the string value that determines if the request to be
created.
SipException - if the Dialog is not yet established.
public void sendRequest(ClientTransaction clientTransactionId)
throws TransactionDoesNotExistException,
SipException
This methods will set the From and the To tags for the outgoing request and also set the correct sequence number to the outgoing Request and associate the client transaction with this dialog. Note that any tags assigned by the user will be over-written by this method.
The User Agent must not send a BYE on a confirmed INVITE until it has received an ACK for its 2xx response or until the server transaction timeout is received.
When the retransmissionFilter is true,
that is the SipProvider takes care of all retransmissions for the
application, and the SipProvider can not deliver the Request after
multiple retransmits the SipListener will be notified with a
TimeoutEvent when the transaction expires.
sendRequest in interface DialogclientTransactionId - - the new ClientTransaction object identifying
this transaction, this clientTransaction should be requested from
SipProvider.getNewClientTransaction(Request)
TransactionDoesNotExistException - if the serverTransaction does
not correspond to any existing server transaction.
SipException - if implementation cannot send the Request for
any reason.
public void resendAck()
throws SipException
SipException
|
NIST SIP Parser and Stack (v1.2) API | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||