1600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/*
2600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * This source code has been contributed to the public domain by Mobicents
3600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
4600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * This software is provided by NIST as a service and is expressly
5600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * provided "AS IS."  NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
6600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * AND DATA ACCURACY.  NIST does not warrant or make any representations
9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * regarding the use of the software or the results thereof, including but
10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * not limited to the correctness, accuracy, reliability or usefulness of
11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * the software.
12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Permission to use this software is contingent upon your acceptance
14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * of the terms of this agreement.
15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */
16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.javax.sip;
17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.util.EventObject;
19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.Dialog;
21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang/**
23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * DialogAckTimeoutEvent is delivered to the Listener when the
25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * dialog does not receive or send an ACK.
26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @author jean deruelle
29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @since v2.0
30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang *
31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */
32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic class DialogTimeoutEvent extends EventObject {
33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang	private static final long serialVersionUID = -2514000059989311925L;
34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang	public enum Reason {AckNotReceived, AckNotSent,ReInviteTimeout};
35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang	/**
36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Constructs a DialogTerminatedEvent to indicate a dialog
37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * timeout.
38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param source - the source of TimeoutEvent.
40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param dialog - the dialog that timed out.
41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     public DialogTimeoutEvent(Object source, Dialog dialog, Reason reason) {
43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang         super(source);
44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang         m_dialog = dialog;
45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang         m_reason = reason;
46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * Gets the Dialog associated with the event. This
51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * enables application developers to access the dialog associated to this
52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * event.
53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return the dialog associated with the response event or null if there is no dialog.
55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @since v1.2
56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public Dialog getDialog() {
58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        return m_dialog;
59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
60600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
61600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
62600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * The reason for the Dialog Timeout Event being delivered to the application.
63600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     *
64600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return the reason for the timeout event.
65600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
66600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public Reason getReason() {
67600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    	return m_reason;
68600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
69600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
70600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    // internal variables
71600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    private Dialog m_dialog = null;
72600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    private Reason m_reason = null;
73600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang}
74600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
75