1/*
2 * This source code has been contributed to the public domain by Mobicents
3 *
4 * This software is provided by NIST as a service and is expressly
5 * provided "AS IS."  NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
6 * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
7 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
8 * AND DATA ACCURACY.  NIST does not warrant or make any representations
9 * regarding the use of the software or the results thereof, including but
10 * not limited to the correctness, accuracy, reliability or usefulness of
11 * the software.
12 *
13 * Permission to use this software is contingent upon your acceptance
14 * of the terms of this agreement.
15 */
16package gov.nist.javax.sip;
17
18import javax.sip.Dialog;
19import javax.sip.SipListener;
20
21/**
22 * This interface extends the {@link SipListener} interface and adds the following events to it :
23 * <ul>
24 * <li>{@link DialogTimeoutEvent}- these are timeout notifications emitted as events by the
25 * SipProvider. Timeout events represent timers expiring in the underlying SipProvider dialog
26 * state machine. These timeout's events notify the application that a dialog has timed out.</li>
27 * </ul>
28 *
29 * @author jean.deruelle@gmail.com
30 *
31 */
32public interface SipListenerExt extends SipListener {
33
34    /**
35     * Processes an expiration Timeout of an underlying {@link Dialog} handled by this
36     * SipListener. This Event notifies the application that a dialog Timer expired in the
37     * Dialog's state machine. Such a condition can occur when the application fails to send an
38     * ACK after receiving an OK response or if an ACK is not received after an OK is sent. The
39     * DialogTimeoutEvent encapsulates the specific timeout type and the dialog identifier. The
40     * type of Timeout can by determined by:
41     * <code>timeoutType = timeoutEvent.getTimeout().getValue();</code>
42     *
43     * Applications implementing this method should take care of sending the BYE or terminating
44     * the dialog to avoid any dialog leaks.
45     *
46     * @param timeoutEvent - the timeoutEvent received indicating the dialog timed out.
47     */
48    public void processDialogTimeout(DialogTimeoutEvent timeoutEvent);
49}
50