gov.nist.javax.sip.DialogTimeoutEvent Maven / Gradle / Ivy
/*
* This source code has been contributed to the public domain by Mobicents
*
* This software is provided by NIST as a service and is expressly
* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
* AND DATA ACCURACY. NIST does not warrant or make any representations
* regarding the use of the software or the results thereof, including but
* not limited to the correctness, accuracy, reliability or usefulness of
* the software.
*
* Permission to use this software is contingent upon your acceptance
* of the terms of this agreement.
*/
package gov.nist.javax.sip;
import java.util.EventObject;
import javax.sip.ClientTransaction;
import javax.sip.Dialog;
/**
*
* DialogAckTimeoutEvent is delivered to the Listener when the
* dialog does not receive or send an ACK.
*
*
* @author jean deruelle
* @since v2.0
*
*/
public class DialogTimeoutEvent extends EventObject {
private static final long serialVersionUID = -2514000059989311925L;
public enum Reason {AckNotReceived, AckNotSent,ReInviteTimeout,EarlyStateTimeout,CannotAcquireAckSemaphoreForOk};
/**
* Constructs a DialogTerminatedEvent to indicate a dialog
* timeout.
*
* @param source - the source of TimeoutEvent.
* @param dialog - the dialog that timed out.
*/
public DialogTimeoutEvent(Object source, Dialog dialog, Reason reason) {
super(source);
m_dialog = dialog;
m_reason = reason;
}
/**
* Set the re-INVITE client transaction.
* This method will be used by Implementations (not applications).
*
* @since v1.2
*/
public void setClientTransaction(ClientTransaction clientTransaction) {
this.m_reInviteTransaction = clientTransaction;
}
/**
* Gets the Dialog associated with the event. This
* enables application developers to access the dialog associated to this
* event.
*
* @return the dialog associated with the response event or null if there is no dialog.
* @since v1.2
*/
public Dialog getDialog() {
return m_dialog;
}
/**
* The reason for the Dialog Timeout Event being delivered to the application.
*
* @return the reason for the timeout event.
*/
public Reason getReason() {
return m_reason;
}
/**
* Get the re-INVITE client transaction that
* could not be sent.
*
* @return the re-INVITE client transaction that could not be sent.
*/
public ClientTransaction getClientTransaction() {
return m_reInviteTransaction;
}
// internal variables
private Dialog m_dialog = null;
private Reason m_reason = null;
private ClientTransaction m_reInviteTransaction = null;
}