org.asteriskjava.manager.action.MuteAudioAction Maven / Gradle / Ivy
Show all versions of asterisk-java Show documentation
/*
* Copyright 2004-2006 Stefan Reuter
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.asteriskjava.manager.action;
/**
* Action: MuteAudio Synopsis: Mute an audio stream Privilege: system,all
* Description: Mute an incoming or outbound audio stream in a channel.
* Variables: Channel: The channel you want to mute. Direction: in | out
* |all The stream you want to mute. State: on | off Whether to turn mute on or
* off. ActionID: Optional action ID for this AMI transaction.
*
* It is defined in res/res_mutestream.c
.
*
* Available since Asterisk 1.8
*
* @author sbs
* @version $Id: MuteAction.java 938 2007-12-31 03:23:38Z srt $
* @since 1.0.0
*/
public class MuteAudioAction extends AbstractManagerAction
{
/**
* Serializable version identifier.
*/
private static final long serialVersionUID = 0L;
private String channel;
/** The audio direct (relative to the pbx) which is to be muted. */
public enum Direction
{
IN("in"), OUT("out"), ALL("all");
String value;
Direction(String value)
{
this.value = value;
}
public String toString()
{
return this.value;
}
}
private Direction direction;
/** Controls whether to mute (on) or unmute (off) the call **/
public enum State
{
MUTE("on"), UNMUTE("off"); //$NON-NLS-1$//$NON-NLS-2$
String value;
State(String value)
{
this.value = value;
}
public String toString()
{
return this.value;
}
}
private State state;
/**
* Creates a new empty MuteAction.
*/
public MuteAudioAction()
{
}
/**
* Creates a new MuteAction that Mutes or Unmutes the two given channel.
*
* @param channel
* the name of the channel to Mute.
*
* @param direction
* the audio direction which is to be muted/unmuted
*
* @param state controls whether we are muting or unmuting the channel.
*/
public MuteAudioAction(String channel, Direction direction, State state)
{
this.channel = channel;
this.direction = direction;
this.state = state;
}
/**
* Returns the name of this action, i.e. "MuteAudio".
*/
@Override
public String getAction()
{
return "MuteAudio"; //$NON-NLS-1$
}
/**
* Returns the name of the channel to monitor.
*/
public String getChannel()
{
return this.channel;
}
/**
* Returns the audio direction which is to be muted/unmuted.
*/
public Direction getDirection()
{
return this.direction;
}
/**
* Returns the state controls whether we are muting or unmuting the channel.
*/
public State getState()
{
return this.state;
}
/**
* Sets the name of the channel to monitor.
* This property is mandatory.
*/
public void setChannel(String channel) {
this.channel = channel;
}
/**
* Sets the audio direction which is to be muted/unmuted.
* This property is mandatory.
*/
public void setDirection(Direction direction) {
this.direction = direction;
}
/**
* Sets the state controls whether we are muting or unmuting the channel.
* This property is mandatory.
*/
public void setState(State state) {
this.state = state;
}
}