diff --git a/Asterisk.2013/Asterisk.NET/Manager/Event/MusicOnHoldEvent.cs b/Asterisk.2013/Asterisk.NET/Manager/Event/MusicOnHoldEvent.cs new file mode 100644 index 0000000..b460ccf --- /dev/null +++ b/Asterisk.2013/Asterisk.NET/Manager/Event/MusicOnHoldEvent.cs @@ -0,0 +1,45 @@ +namespace AsterNET.Manager.Event +{ + /// + /// A MusicOnHoldEvent is triggered when music on hold starts or stops on a channel.
+ /// It is implemented in res/res_musiconhold.c.
+ /// Available since Asterisk 1.6 + ///
+ public class MusicOnHoldEvent : ManagerEvent + { + /// + /// Creates a new . + /// + /// + public MusicOnHoldEvent(ManagerConnection source) : base(source) + { + } + + /// + /// Gets or sets the state. + /// + public string State { get; set; } + + /// + /// Gets or sets the class.
+ /// The class of music being played on the channel. + ///
+ public string Class { get; set; } + + /// + /// Gets or sets the account code. + /// + public string AccountCode { get; set; } + + /// + /// Gets or sets the language. + /// + public string Language { get; set; } + + /// + /// Gets or sets the Linked Id
+ /// UniqueId of the oldest channel associated with this channel. + ///
+ public string LinkedId { get; set; } + } +} diff --git a/Asterisk.2013/Asterisk.NET/Manager/Event/MusicOnHoldStartEvent.cs b/Asterisk.2013/Asterisk.NET/Manager/Event/MusicOnHoldStartEvent.cs new file mode 100644 index 0000000..f54096c --- /dev/null +++ b/Asterisk.2013/Asterisk.NET/Manager/Event/MusicOnHoldStartEvent.cs @@ -0,0 +1,85 @@ +namespace AsterNET.Manager.Event +{ + /// + /// Raised when music on hold has started on a channel.
+ /// See https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+ManagerEvent_MusicOnHoldStart + ///
+ public class MusicOnHoldStartEvent : ManagerEvent + { + /// + /// Creates a new . + /// + /// + public MusicOnHoldStartEvent(ManagerConnection source) : base(source) + { + } + + /// + /// Gets or sets the class.
+ /// The class of music being played on the channel. + ///
+ public string Class { get; set; } + + /// + /// Gets or sets the channel state.
+ /// A numeric code for the channel's current state, related to ChannelStateDesc + ///
+ public string ChannelState { get; set; } + + /// + /// Gets or sets the channel state description. + /// + public string ChannelStateDesc { get; set; } + + /// + /// Gets or sets the Caller*ID number. + /// + public string CallerIDNum { get; set; } + + /// + /// Gets or sets the Caller*ID name. + /// + public string CallerIDName { get; set; } + + /// + /// Gets or sets the connected line number. + /// + public string ConnectedLineNum { get; set; } + + /// + /// Gets or sets the connected line name. + /// + public string ConnectedLineName { get; set; } + + /// + /// Gets or sets the language. + /// + public string Language { get; set; } + + /// + /// Gets or sets the account code. + /// + public string AccountCode { get; set; } + + /// + /// Gets or sets the context. + /// + public string Context { get; set; } + + /// + /// Gets or sets the exten. + /// + public string Exten { get; set; } + + /// + /// Gets or sets the priority. + /// + public string Priority { get; set; } + + /// + /// Gets or sets the Linked Id + /// UniqueId of the oldest channel associated with this channel. + /// + public string LinkedId { get; set; } + } +} diff --git a/Asterisk.2013/Asterisk.NET/Manager/Event/MusicOnHoldStopEvent.cs b/Asterisk.2013/Asterisk.NET/Manager/Event/MusicOnHoldStopEvent.cs new file mode 100644 index 0000000..4789628 --- /dev/null +++ b/Asterisk.2013/Asterisk.NET/Manager/Event/MusicOnHoldStopEvent.cs @@ -0,0 +1,79 @@ +namespace AsterNET.Manager.Event +{ + /// + /// Raised when music on hold has stopped on a channel.
+ /// See https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+ManagerEvent_MusicOnHoldStop + ///
+ public class MusicOnHoldStopEvent : ManagerEvent + { + /// + /// Creates a new . + /// + /// + public MusicOnHoldStopEvent(ManagerConnection source) : base(source) + { + } + + /// + /// Gets or sets the channel state.
+ /// A numeric code for the channel's current state, related to ChannelStateDesc + ///
+ public string ChannelState { get; set; } + + /// + /// Gets or sets the channel state description. + /// + public string ChannelStateDesc { get; set; } + + /// + /// Gets or sets the Caller*ID number. + /// + public string CallerIDNum { get; set; } + + /// + /// Gets or sets the Caller*ID name. + /// + public string CallerIDName { get; set; } + + /// + /// Gets or sets the connected line number. + /// + public string ConnectedLineNum { get; set; } + + /// + /// Gets or sets the connected line name. + /// + public string ConnectedLineName { get; set; } + + /// + /// Gets or sets the language. + /// + public string Language { get; set; } + + /// + /// Gets or sets the account code. + /// + public string AccountCode { get; set; } + + /// + /// Gets or sets the context. + /// + public string Context { get; set; } + + /// + /// Gets or sets the exten. + /// + public string Exten { get; set; } + + /// + /// Gets or sets the priority. + /// + public string Priority { get; set; } + + /// + /// Gets or sets the Linked Id + /// UniqueId of the oldest channel associated with this channel. + /// + public string LinkedId { get; set; } + } +} diff --git a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs index 7edca80..7d09d1b 100644 --- a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs +++ b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs @@ -434,6 +434,24 @@ namespace AsterNET.Manager /// public event EventHandler QueueMemberPause; + /// + /// Raised when music on hold has started/stopped on a channel.
+ /// Available since : Asterisk 1.6. + ///
+ public event EventHandler MusicOnHold; + + /// + /// Raised when music on hold has started on a channel.
+ /// Available since : Asterisk 12. + ///
+ public event EventHandler MusicOnHoldStart; + + /// + /// Raised when music on hold has stopped on a channel.
+ /// Available since : Asterisk 12. + ///
+ public event EventHandler MusicOnHoldStop; + /// /// A ChallengeResponseFailed is triggered when a request's attempt to authenticate has been challenged, and the request failed the authentication challenge. /// @@ -579,6 +597,9 @@ namespace AsterNET.Manager Helper.RegisterEventHandler(registeredEventHandlers, typeof(QueueCallerJoinEvent), arg => fireEvent(QueueCallerJoin, arg)); Helper.RegisterEventHandler(registeredEventHandlers, typeof(QueueCallerLeaveEvent), arg => fireEvent(QueueCallerLeave, arg)); Helper.RegisterEventHandler(registeredEventHandlers, typeof(QueueMemberPauseEvent), arg => fireEvent(QueueMemberPause, arg)); + Helper.RegisterEventHandler(registeredEventHandlers, typeof(MusicOnHoldEvent), arg => fireEvent(MusicOnHold, arg)); + Helper.RegisterEventHandler(registeredEventHandlers, typeof(MusicOnHoldStartEvent), arg => fireEvent(MusicOnHoldStart, arg)); + Helper.RegisterEventHandler(registeredEventHandlers, typeof(MusicOnHoldStopEvent), arg => fireEvent(MusicOnHoldStop, arg)); Helper.RegisterEventHandler(registeredEventHandlers, typeof(ChallengeResponseFailedEvent), arg => fireEvent(ChallengeResponseFailed, arg)); Helper.RegisterEventHandler(registeredEventHandlers, typeof(InvalidAccountIDEvent), arg => fireEvent(InvalidAccountID, arg)); Helper.RegisterEventHandler(registeredEventHandlers, typeof(DeviceStateChangeEvent), arg => fireEvent(DeviceStateChanged, arg)); diff --git a/Asterisk.2013/Documentation/Documentation.shfbproj b/Asterisk.2013/Documentation/Documentation.shfbproj index 513d87e..4bc17dc 100644 --- a/Asterisk.2013/Documentation/Documentation.shfbproj +++ b/Asterisk.2013/Documentation/Documentation.shfbproj @@ -7,7 +7,7 @@ AnyCPU 2.0 186124f7-82fa-4562-8b87-33d53a84e8ba - 1.9.9.0 + 2017.9.26.0 Documentation Documentation @@ -49,16 +49,17 @@ AboveNamespaces -AsterNet -AsterNet FastAGI -AsterNet FastAGI Command -AsterNet FastAGI Mapping Strategies -AsterNet IO -AsterNet Manager -AsterNet Manager Action -AsterNet Manager Event -AsterNet Manager Response -AsterNet Util + AsterNet + AsterNet FastAGI + AsterNet FastAGI Command + AsterNet FastAGI Mapping Strategies + AsterNet IO + AsterNet Manager + AsterNet Manager Action + AsterNet Manager Event + AsterNet Manager Response + AsterNet Util + AsterNET is an open source .NET framework for Asterisk AMI and FastAGI. AsterNET allows you to talk to Asterisk AMI from any .NET application and create FastAGI applications in any .NET language. http://www.xdev.net/projects/asternet/