namespace AsterNET.Manager.Event
{
///
/// A QueueMemberEvent is triggered in response to a QueueStatusAction and contains information about a member of a queue.
/// It is implemented in apps/app_queue.c
///
///
public class QueueMemberEvent : ResponseEvent
{
private string queue;
private string location;
private string memberName;
private string membership;
private int penalty;
private int callsTaken;
private long lastCall;
private int status;
private bool paused;
private string name;
private bool incall;
///
/// Get/Set the name of the queue member.
///
public string Name
{
get { return this.name; }
set { this.name = value; }
}
///
/// Get/Set the name of the queue member.
///
public string MemberName
{
get { return this.memberName; }
set { this.memberName = value; }
}
///
/// Get/Set the name of the queue.
///
public string Queue
{
get { return queue; }
set { this.queue = value; }
}
///
/// Get/Set the name of the member's interface.
/// E.g. the channel name or agent group.
///
public string Location
{
get { return location; }
set { this.location = value; }
}
///
/// Get/Set value if this member has been dynamically added by the QueueAdd command
/// (in the dialplan or via the Manager API) or if this member is has been
/// statically defined in queues.conf.
/// "dynamic" if the added member is a dynamic queue member, "static" if the added member is a static queue member.
///
public string Membership
{
get { return membership; }
set { this.membership = value; }
}
///
/// Get/Set the penalty for the added member. When calls are distributed members with higher penalties are considered last.
///
public int Penalty
{
get { return this.penalty; }
set { this.penalty = value; }
}
///
/// Get/Set the number of calls answered by the member.
///
public int CallsTaken
{
get { return this.callsTaken; }
set { this.callsTaken = value; }
}
///
/// Get/Set the time (in seconds since 01/01/1970) the last successful call answered by the added member was hungup.
///
public long LastCall
{
get { return this.lastCall; }
set { this.lastCall = value; }
}
///
/// Get/Set the status of this queue member.
/// Available since Asterisk 1.2
/// Valid status codes are:
///
/// - AST_DEVICE_UNKNOWN (0)
/// - Queue member is available
/// - AST_DEVICE_NOT_INUSE (1)
/// - ?
/// - AST_DEVICE_INUSE (2)
/// - ?
/// - AST_DEVICE_BUSY (3)
/// - ?
/// - AST_DEVICE_INVALID (4)
/// - ?
/// - AST_DEVICE_UNAVAILABLE (5)
/// - ?
///
///
public int Status
{
get { return this.status; }
set { this.status = value; }
}
///
/// Is this queue member paused (not accepting calls)?
/// Available since Asterisk 1.2.
/// true if this member has been paused,
/// false if not
///
public bool Paused
{
get { return this.paused; }
set { this.paused = value; }
}
///
/// Is this queue member in call??
/// Available since Asterisk 12.
/// true if this member is in call,
/// false if not
///
public bool InCall
{
get { return this.incall; }
set { this.incall = value; }
}
public QueueMemberEvent(ManagerConnection source)
: base(source)
{
}
}
}