diff --git a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs index 8c42d95..acea622 100644 --- a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs +++ b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs @@ -719,9 +719,10 @@ namespace AsterNET.Manager private void internalEventHandler(object sender, ManagerEvent e) { int eventHash = e.GetType().Name.GetHashCode(); - if (registeredEventHandlers.ContainsKey(eventHash)) + int userEventHash = typeof(UserEvent).Name.GetHashCode(); + if (registeredEventHandlers.TryGetValue(eventHash, out var currentEvent) + || (registeredEventHandlers.TryGetValue(userEventHash, out currentEvent) && typeof(UserEvent).IsAssignableFrom(e.GetType()))) { - var currentEvent = registeredEventHandlers[eventHash]; if (currentEvent(e)) { return;