using System;
namespace AsterNET.Manager.Action
{
///
/// The AbsoluteTimeoutAction sets the absolute maximum amount of time permitted for a call on a given channel.
/// Note that the timeout is set from the current time forward, not counting the number of seconds the call has already been up.
/// When setting a new timeout all previous absolute timeouts are cancelled.
/// When the timeout is reached the call is returned to the T extension so that
/// you can playback an explanatory note to the calling party (the called party will not hear that).
/// This action corresponds the the AbsoluteTimeout command used in the dialplan.
///
public class AbsoluteTimeoutAction : ManagerAction
{
private string channel;
private int timeout;
#region AbsoluteTimeoutAction()
///
/// Creates a new empty AbsoluteTimeoutAction.
///
public AbsoluteTimeoutAction()
{
}
#endregion
#region AbsoluteTimeoutAction(channel, timeout)
///
/// Creates a new AbsoluteTimeoutAction with the given channel and timeout.
///
/// the name of the channel
/// the timeout in seconds or 0 to cancel the AbsoluteTimeout
public AbsoluteTimeoutAction(string channel, int timeout)
{
this.channel = channel;
this.timeout = timeout;
}
#endregion
#region Action
///
/// Get the name of this action, i.e. "AbsoluteTimeout".
///
override public string Action
{
get { return "AbsoluteTimeout"; }
}
#endregion
#region Channel
///
/// Get/Set the name of the channel.
public string Channel
{
get { return channel; }
set { this.channel = value; }
}
#endregion
#region Timeout
///
/// Get/Set the timeout (in seconds) to set.
///
public int Timeout
{
get { return timeout; }
set { this.timeout = value; }
}
#endregion
}
}