View Javadoc

1   /*
2    * Copyright  2004-2005 Stefan Reuter
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   *
16   */
17  package net.sf.asterisk.fastagi.command;
18  
19  /***
20   * Hangs up the specified channel. If no channel name is given, hangs up the
21   * current channel.
22   * 
23   * @author srt
24   * @version $Id: HangupCommand.java,v 1.2 2005/03/08 16:48:34 srt Exp $
25   */
26  public class HangupCommand extends AGICommand
27  {
28      /***
29       * Serial version identifier.
30       */
31      private static final long serialVersionUID = 3904959746380281145L;
32  
33      /***
34       * The name of the channel to hangup or <code>null</code> for the current
35       * channel.
36       */
37      private String channel;
38  
39      /***
40       * Creates a new HangupCommand that hangs up the current channel.
41       */
42      public HangupCommand()
43      {
44          this.channel = null;
45      }
46  
47      /***
48       * Creates a new HangupCommand that hangs up the given channel.
49       * 
50       * @param channel the name of the channel to hangup.
51       */
52      public HangupCommand(String channel)
53      {
54          this.channel = channel;
55      }
56  
57      /***
58       * Returns the name of the channel to hangup.
59       * 
60       * @return the name of the channel to hangup or <code>null</code> for the
61       *         current channel.
62       */
63      public String getChannel()
64      {
65          return channel;
66      }
67  
68      /***
69       * Sets the name of the channel to hangup.
70       * 
71       * @param channel the name of the channel to hangup or <code>null</code>
72       *            for the current channel.
73       */
74      public void setChannel(String channel)
75      {
76          this.channel = channel;
77      }
78  
79      public String buildCommand()
80      {
81          return "HANGUP"
82                  + (channel == null ? "" : " " + escapeAndQuote(channel));
83      }
84  }