namespace AsterNET.Manager.Action { /// <summary> /// The QueueAddAction adds a new member to a queue.<br /> /// It is implemented in apps/app_queue.c /// </summary> public class QueueAddAction : ManagerAction { /// <summary> /// Creates a new empty QueueAddAction. /// </summary> public QueueAddAction() { } /// <summary> /// Creates a new QueueAddAction that adds a new member on the given interface to the given queue. /// </summary> /// <param name="queue">the name of the queue the new member will be added to</param> /// <param name="iface">Sets the interface to add. To add a specific channel just use the channel name, e.g. "SIP/1234".</param> public QueueAddAction(string queue, string iface) { this.Queue = queue; this.Interface = iface; } /// <summary> /// Creates a new QueueAddAction that adds a new member on the given interface to the given queue. /// </summary> /// <param name="queue">the name of the queue the new member will be added to</param> /// <param name="iface">Sets the interface to add. To add a specific channel just use the channel name, e.g. "SIP/1234".</param> /// <param name="memberName">the name of the the new member will be added to</param> public QueueAddAction(string queue, string iface, string memberName) { this.Queue = queue; this.Interface = iface; this.MemberName = memberName; } /// <summary> /// Creates a new QueueAddAction that adds a new member on the given /// interface to the given queue with the given penalty. /// </summary> /// <param name="queue">the name of the queue the new member will be added to</param> /// <param name="iface">Sets the interface to add. To add a specific channel just use the channel name, e.g. "SIP/1234".</param> /// <param name="memberName">the name of the the new member will be added to</param> /// <param name="penalty"> /// the penalty for this member.<br /> /// The penalty must be a positive integer or 0 for no penalty. When calls are /// distributed members with higher penalties are considered last. /// </param> public QueueAddAction(string queue, string iface, string memberName, int penalty) { this.Queue = queue; this.Interface = iface; this.MemberName = memberName; this.Penalty = penalty; } /// <summary> /// Get the name of this action, i.e. "QueueAdd". /// </summary> public override string Action { get { return "QueueAdd"; } } /// <summary> /// Get/Set the name of the queue the new member will be added to.<br /> /// This property is mandatory. /// </summary> public string Queue { get; set; } /// <summary> /// Get/Set the interface to add. To add a specific channel just use the channel name, e.g. "SIP/1234".<br /> /// This property is mandatory. /// </summary> public string Interface { get; set; } /// <summary> /// Get/Set the member to add. /// </summary> public string MemberName { get; set; } /// <summary> /// Get/Set the penalty for this member.<br /> /// The penalty must be a positive integer or 0 for no penalty. If it is not set 0 is assumed.<br /> /// When calls are distributed members with higher penalties are considered last. /// </summary> public int Penalty { get; set; } /// <summary> /// Get/Set if the queue member should be paused when added.<br /> /// true if the queue member should be paused when added. /// </summary> public bool Paused { get; set; } /// <summary> /// Get/Set an alternate interface to be used to determine the state of the member. /// Available since Asterisk 12. /// </summary> public string StateInterface { get; set; } } }