diff --git a/Asterisk.2013/Asterisk.NET/AsterNET.csproj b/Asterisk.2013/Asterisk.NET/AsterNET.csproj
index 7301a75..1a101cb 100644
--- a/Asterisk.2013/Asterisk.NET/AsterNET.csproj
+++ b/Asterisk.2013/Asterisk.NET/AsterNET.csproj
@@ -323,6 +323,11 @@
+
+
+
+
+
@@ -399,4 +404,4 @@
-
\ No newline at end of file
+
diff --git a/Asterisk.2013/Asterisk.NET/Manager/Event/ChallengeResponseFailedEvent.cs b/Asterisk.2013/Asterisk.NET/Manager/Event/ChallengeResponseFailedEvent.cs
new file mode 100644
index 0000000..170b5cb
--- /dev/null
+++ b/Asterisk.2013/Asterisk.NET/Manager/Event/ChallengeResponseFailedEvent.cs
@@ -0,0 +1,16 @@
+namespace AsterNET.Manager.Event
+{
+
+ ///
+ /// Raised when a request's attempt to authenticate has been challenged, and the request failed the authentication challenge.
+ ///
+ public class ChallengeResponseFailedEvent : ManagerEvent
+{
+ public ChallengeResponseFailedEvent(ManagerConnection source)
+ : base(source)
+ {
+ }
+
+ public string Status { get; set; }
+ }
+}
diff --git a/Asterisk.2013/Asterisk.NET/Manager/Event/ChallengeSentEvent.cs b/Asterisk.2013/Asterisk.NET/Manager/Event/ChallengeSentEvent.cs
new file mode 100644
index 0000000..df155dc
--- /dev/null
+++ b/Asterisk.2013/Asterisk.NET/Manager/Event/ChallengeSentEvent.cs
@@ -0,0 +1,16 @@
+namespace AsterNET.Manager.Event
+{
+
+ ///
+ /// Raised when an Asterisk service sends an authentication challenge to a request..
+ ///
+ public class ChallengeSentEvent : ManagerEvent
+ {
+ public ChallengeSentEvent(ManagerConnection source)
+ : base(source)
+ {
+ }
+
+ public string Status { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Asterisk.2013/Asterisk.NET/Manager/Event/DeviceStateChangeEvent.cs b/Asterisk.2013/Asterisk.NET/Manager/Event/DeviceStateChangeEvent.cs
new file mode 100644
index 0000000..415b3e1
--- /dev/null
+++ b/Asterisk.2013/Asterisk.NET/Manager/Event/DeviceStateChangeEvent.cs
@@ -0,0 +1,17 @@
+namespace AsterNET.Manager.Event
+{
+
+ ///
+ /// Raised when a device state changes.
+ /// This differs from the ExtensionStatus event because this event is raised for all device state changes, not only for changes that affect dialplan hints.
+ ///
+ public class DeviceStateChangeEvent : ManagerEvent
+ {
+ public DeviceStateChangeEvent(ManagerConnection source)
+ : base(source)
+ {
+ }
+
+ public string Status { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Asterisk.2013/Asterisk.NET/Manager/Event/InvalidAccountIDEvent.cs b/Asterisk.2013/Asterisk.NET/Manager/Event/InvalidAccountIDEvent.cs
new file mode 100644
index 0000000..44154dc
--- /dev/null
+++ b/Asterisk.2013/Asterisk.NET/Manager/Event/InvalidAccountIDEvent.cs
@@ -0,0 +1,16 @@
+namespace AsterNET.Manager.Event
+{
+
+ ///
+ /// Raised when a request fails an authentication check due to an invalid account ID.
+ ///
+ public class InvalidAccountIDEvent : ManagerEvent
+ {
+ public InvalidAccountIDEvent(ManagerConnection source)
+ : base(source)
+ {
+ }
+
+ public string Status { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Asterisk.2013/Asterisk.NET/Manager/Event/SuccessfulAuthEvent.cs b/Asterisk.2013/Asterisk.NET/Manager/Event/SuccessfulAuthEvent.cs
new file mode 100644
index 0000000..c87a9e0
--- /dev/null
+++ b/Asterisk.2013/Asterisk.NET/Manager/Event/SuccessfulAuthEvent.cs
@@ -0,0 +1,16 @@
+namespace AsterNET.Manager.Event
+{
+
+ ///
+ /// Raised when a request successfully authenticates with a service..
+ ///
+ public class SuccessfulAuthEvent : ManagerEvent
+ {
+ public SuccessfulAuthEvent(ManagerConnection source)
+ : base(source)
+ {
+ }
+
+ public string Status { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs
index cd594b1..daf82bb 100644
--- a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs
+++ b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs
@@ -47,6 +47,7 @@ namespace AsterNET.Manager
public delegate void MeetMeJoinEventHandler(object sender, Event.MeetmeJoinEvent e);
public delegate void MeetMeLeaveEventHandler(object sender, Event.MeetmeLeaveEvent e);
public delegate void MeetMeTalkingEventHandler(object sender, Event.MeetmeTalkingEvent e);
+
public delegate void MessageWaitingEventHandler(object sender, Event.MessageWaitingEvent e);
public delegate void NewCallerIdEventHandler(object sender, Event.NewCallerIdEvent e);
public delegate void NewChannelEventHandler(object sender, Event.NewChannelEvent e);
@@ -100,7 +101,11 @@ namespace AsterNET.Manager
public delegate void QueueCallerJoinEventHandler(object sender, Event.QueueCallerJoinEvent e);
public delegate void QueueCallerLeaveEventHandler(object sender, Event.QueueCallerLeaveEvent e);
public delegate void QueueMemberPauseEventHandler(object sender, Event.QueueMemberPauseEvent e);
-
+ public delegate void ChallengeResponseFailedEventHandler(object sender, Event.ChallengeResponseFailedEvent e);
+ public delegate void InvalidAccountIDEventHandler(object sender, Event.InvalidAccountIDEvent e);
+ public delegate void DeviceStateChangedEventHandler(object sender, Event.DeviceStateChangeEvent e);
+ public delegate void ChallengeSentEventHandler(object sender, Event.ChallengeSentEvent e);
+ public delegate void SuccessfulAuthEventHandler(object sender, Event.SuccessfulAuthEvent e);
#endregion
@@ -518,6 +523,31 @@ namespace AsterNET.Manager
/// Available since : Asterisk 12.
///
public event QueueMemberPauseEventHandler QueueMemberPause;
+
+ ///
+ /// A ChallengeResponseFailed is triggered when a request's attempt to authenticate has been challenged, and the request failed the authentication challenge.
+ ///
+ public event ChallengeResponseFailedEventHandler ChallengeResponseFailed;
+
+ ///
+ /// A InvalidAccountID is triggered when a request fails an authentication check due to an invalid account ID.
+ ///
+ public event InvalidAccountIDEventHandler InvalidAccountID;
+
+ ///
+ /// A DeviceStateChanged is triggered when a device state changes.
+ ///
+ public event DeviceStateChangedEventHandler DeviceStateChanged;
+
+ ///
+ /// A ChallengeSent is triggered when an Asterisk service sends an authentication challenge to a request..
+ ///
+ public event ChallengeSentEventHandler ChallengeSent;
+
+ ///
+ /// A SuccessfulAuth is triggered when a request successfully authenticates with a service.
+ ///
+ public event SuccessfulAuthEventHandler SuccessfulAuth;
#endregion
@@ -633,6 +663,12 @@ namespace AsterNET.Manager
Helper.RegisterEventHandler(registeredEventHandlers, 95, typeof(QueueCallerJoinEvent));
Helper.RegisterEventHandler(registeredEventHandlers, 96, typeof(QueueCallerLeaveEvent));
Helper.RegisterEventHandler(registeredEventHandlers, 97, typeof(QueueMemberPauseEvent));
+
+ Helper.RegisterEventHandler(registeredEventHandlers, 98, typeof(ChallengeResponseFailedEvent));
+ Helper.RegisterEventHandler(registeredEventHandlers, 99, typeof(InvalidAccountIDEvent));
+ Helper.RegisterEventHandler(registeredEventHandlers, 100, typeof(DeviceStateChangeEvent));
+ Helper.RegisterEventHandler(registeredEventHandlers, 101, typeof(ChallengeSentEvent));
+ Helper.RegisterEventHandler(registeredEventHandlers, 102, typeof(SuccessfulAuthEvent));
#endregion
@@ -1281,6 +1317,41 @@ namespace AsterNET.Manager
QueueMemberPause(this, (QueueMemberPauseEvent)e);
}
break;
+ case 98:
+ if (ChallengeResponseFailed != null)
+ {
+ ChallengeResponseFailed(this, (ChallengeResponseFailedEvent)e);
+ return;
+ }
+ break;
+ case 99:
+ if (InvalidAccountID != null)
+ {
+ InvalidAccountID(this, (InvalidAccountIDEvent)e);
+ return;
+ }
+ break;
+ case 100:
+ if (DeviceStateChanged != null)
+ {
+ DeviceStateChanged(this, (DeviceStateChangeEvent)e);
+ return;
+ }
+ break;
+ case 101:
+ if (ChallengeSent != null)
+ {
+ ChallengeSent(this, (ChallengeSentEvent)e);
+ return;
+ }
+ break;
+ case 102:
+ if (SuccessfulAuth != null)
+ {
+ SuccessfulAuth(this, (SuccessfulAuthEvent)e);
+ return;
+ }
+ break;
default:
if (UnhandledEvent != null)
UnhandledEvent(this, e);
@@ -2540,4 +2611,4 @@ namespace AsterNET.Manager
}
#endregion
}
-}
\ No newline at end of file
+}