<refentry>
 <refentryinfo>
  <date>2011-02-08</date>
 </refentryinfo>
 <refmeta>
  <refentrytitle>
   <application>asterisk</application>
  </refentrytitle>
  <manvolnum>8</manvolnum>
  <refmiscinfo>asterisk 10</refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>
   <application>asterisk</application>
  </refname>
  <refpurpose>
   All-purpose telephony server.
  </refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>asterisk</command>
   <arg><option>-BcdfFghiImnpqRtTvVW</option></arg>
   <arg><option>-C </option><replaceable class="parameter">file</replaceable></arg>
   <arg><option>-e </option><replaceable class="parameter">memory</replaceable></arg>
   <arg><option>-G </option><replaceable class="parameter">group</replaceable></arg>
   <arg><option>-L </option><replaceable class="parameter">loadaverage</replaceable></arg>
   <arg><option>-M </option><replaceable class="parameter">value</replaceable></arg>
   <arg><option>-U </option><replaceable class="parameter">user</replaceable></arg>
   <arg><option>-s </option><replaceable class="parameter">socket-file</replaceable></arg>
  </cmdsynopsis>
  <cmdsynopsis>
   <command>asterisk -r</command>
   <arg><option>-v</option></arg>
   <arg><option>-d</option></arg>
   <arg><option>-x </option><replaceable class="parameter">command</replaceable></arg>
  </cmdsynopsis>
  <cmdsynopsis>
   <command>asterisk -R</command>
   <arg><option>-v</option></arg>
   <arg><option>-d</option></arg>
   <arg><option>-x </option><replaceable class="parameter">command</replaceable></arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <refsect1info>
   <date>2011-02-08</date>
  </refsect1info>
  <title>DESCRIPTION</title>
  <para>
   <command>asterisk</command> is a full-featured telephony server which
   provides Private Branch eXchange (PBX), Interactive Voice Response (IVR),
   Automated Call Distribution (ACD), Voice over IP (VoIP) gatewaying, 
   Conferencing, and a plethora of other telephony applications to a broad
   range of telephony devices including packet voice (SIP, IAX2, MGCP, Skinny,
   H.323, Unistim) devices (both endpoints and proxies), as well as traditional TDM
   hardware including T1, E1, ISDN PRI, GR-303, RBS, Loopstart, Groundstart,
   ISDN BRI and many more.
  </para>
  <para>
   At start, Asterisk reads the /etc/asterisk/asterisk.conf main configuration
   file and locates the rest of the configuration files from the configuration
   in that file. The -C option specifies an alternate main configuration file.
   Virtually all aspects of the operation of asterisk's configuration files
   can be found in the sample configuration files.  The format for those files
   is generally beyond the scope of this man page.
  </para>
  <para>
   When running with <command>-c</command>, <command>-r</command> or <command>-R</command>
   options, Asterisk supplies a powerful command line, including command
   completion, which may be used to monitors its status, perform a variety
   of administrative actions and even explore the applications that are
   currently loaded into the system.
  </para>
  <para>
   Asterisk is a trademark of Digium, Inc.
  </para>
 </refsect1>
 <refsect1>
  <title>OPTIONS</title>
  <para>
   Running Asterisk starts the asterisk daemon (optionally running it
   in the foreground). However running it with <option>-r</option> or
   <option>-R</option> connects to an existing Asterisk instance through
   a remote console.
  </para>
  <variablelist>
   <varlistentry>
    <term>-B</term>
    <listitem>
     <para>
      Force the background of the terminal to be black, in order for
      terminal colors to show up properly. Equivalent to
      <option>forceblackbackground = yes</option> in
      <filename>asterisk.conf</filename>. See also
      <option>-n</option> and <option>-W</option>.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-C <replaceable class="parameter">file</replaceable></term>
    <listitem>
     <para>
      Use <filename>file</filename> as master configuration file
      instead of the default, /etc/asterisk/asterisk.conf
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-c</term>
    <listitem>
     <para>
      Provide a control console on the calling terminal. The
      console is similar to the remote console provided by
      <option>-r</option>. Specifying this option implies 
      <command>-f</command> and will cause asterisk to no longer 
      fork or detach from the controlling terminal. Equivalent 
      to <option>console = yes</option> in <filename>asterisk.conf</filename>.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-d</term>
    <listitem>
     <para>
      Enable extra debugging statements. This parameter may be used several
      times, and each increases the debug level.  Equivalent to <option>debug = <replaceable>num</replaceable></option>
      in <filename>asterisk.conf</filename> to explicitly set the initian debug
      level to <replaceable>num</replaceable>. When given at startup, this
      option also implies <option>-f</option> (no forking). However when
      connecting to an existing Asterisk instance (<option>-r</option> or
      <option>-R</option>), it may only increase the debug level.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-e <replaceable class="parameter">memory</replaceable></term>
    <listitem>
     <para>
      Limit the generation of new channels when the amount of free memory 
      has decreased to under <replaceable>memory</replaceable> megabytes.
      Equivalent to <option>minmemfree = <replaceable>memory</replaceable></option> in
      <filename>asterisk.conf</filename>.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-f</term>
    <listitem>
     <para>
      Do not fork or detach from controlling terminal.  Overrides any
      preceding specification of <command>-F</command> on the command line.
      Equivalent to <option>nofork = yes</option> in <filename>asterisk.conf</filename>.
      See also <option>-c</option>.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-F</term>
    <listitem>
     <para>
      Always fork and detach from controlling terminal.  Overrides any
      preceding specification of <command>-f</command> on the command line.
      May also be used to prevent <option>-d</option> and <option>-v</option> to imply
      no forking. Equivalent to <option>alwaysfork = yes</option> in <filename>asterisk.conf</filename>.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-g</term>
    <listitem>
     <para>
      Remove resource limit on core size, thus forcing Asterisk to dump
      core in the unlikely event of a segmentation fault or abort signal.
      <command>NOTE:</command> in some cases this may be incompatible
      with the <command>-U</command> or <command>-G</command> flags.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-G <replaceable class="parameter">group</replaceable></term>
    <listitem>
     <para>
      Run as group <replaceable>group</replaceable> instead of the
      calling group.  <command>NOTE:</command> this requires substantial work
      to be sure that Asterisk's environment has permission to write
      the files required for its operation, including logs, its comm
      socket, the asterisk database, etc.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-h</term>
    <listitem>
     <para>
      Provide brief summary of command line arguments and terminate.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-i</term>
    <listitem>
     <para>
      Prompt user to intialize any encrypted private keys for IAX2
      secure authentication during startup.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-I</term>
    <listitem>
     <para>
      Enable internal timing if DAHDI timing is available.
      The default behaviour is that outbound packets are phase locked
      to inbound packets. Enabling this switch causes them to be
      locked to the internal DAHDI timer instead.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-L <replaceable class="parameter">loadaverage</replaceable></term>
    <listitem>
     <para>
      Limits the maximum load average before rejecting new calls.  This can
      be useful to prevent a system from being brought down by terminating
      too many simultaneous calls.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-m</term>
    <listitem>
     <para>
      Temporarily mutes output to the console and logs.  To return to normal,
      use <command>logger mute</command>.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-M <replaceable class="parameter">value</replaceable></term>
    <listitem>
     <para>
      Limits the maximum number of calls to the specified value.  This can
      be useful to prevent a system from being brought down by terminating
      too many simultaneous calls.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-n</term>
    <listitem>
     <para>
      Disable ANSI colors even on terminals capable of displaying them.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-p</term>
    <listitem>
     <para>
      If supported by the operating system (and executing as root),
      attempt to run with realtime priority for increased performance and
      responsiveness within the Asterisk process, at the expense of other
      programs running on the same machine.
     </para>
     <para>
      Note: <command>astcanary</command> will run concurrently with
      <command>asterisk</command>. If <command>astcanary</command> stops
      running or is killed, <command>asterisk</command> will slow down to
      normal process priority, to avoid locking up the machine.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-q</term>
    <listitem>
     <para>
      Reduce default console output when running in conjunction with
      console mode (<command>-c</command>).
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-r</term>
    <listitem>
     <para>
      Instead of running a new Asterisk process, attempt to connect
      to a running Asterisk process and provide a console interface
      for controlling it.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-R</term>
    <listitem>
     <para>
      Much like <command>-r</command>.  Instead of running a new Asterisk process, attempt to connect
      to a running Asterisk process and provide a console interface
      for controlling it. Additionally, if connection to the Asterisk 
      process is lost, attempt to reconnect for as long as 30 seconds.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-s <replaceable class="parameter">socket file name</replaceable></term>
    <listitem>
     <para>
      In combination with <command>-r</command>, connect directly to a specified
      Asterisk server socket.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-t</term>
    <listitem>
     <para>
      When recording files, write them first into a temporary holding directory, 
      then move them into the final location when done.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-T</term>
    <listitem>
     <para>
      Add timestamp to all non-command related output going to the console
      when running with verbose and/or logging to the console.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-U <replaceable class="parameter">user</replaceable></term>
    <listitem>
     <para>
      Run as user <replaceable>user</replaceable> instead of the
      calling user.  <command>NOTE:</command> this requires substantial work
      to be sure that Asterisk's environment has permission to write
      the files required for its operation, including logs, its comm
      socket, the asterisk database, etc.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-v</term>
    <listitem>
     <para>
      Increase the level of verboseness on the console.  The more times
      <command>-v</command> is specified, the more verbose the output is.
      Specifying this option implies <command>-f</command> and will cause
      asterisk to no longer fork or detach from the controlling terminal.
      This option may also be used in conjunction with <command>-r</command>
      and <command>-R</command>.
     </para>
     <para>
      Note: This always sets the verbose level in the asterisk process,
      even if it is running in the background. This will affect the size
      of your log files.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-V</term>
    <listitem>
     <para>
      Display version information and exit immediately.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-W</term>
    <listitem>
     <para>
      Display colored terminal text as if the background were white
      or otherwise light in color.  Normally, terminal text is displayed
      as if the background were black or otherwise dark in color.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-x <replaceable class="parameter">command</replaceable></term>
    <listitem>
     <para>
      Connect to a running Asterisk process and execute a command on
      a command line, passing any output through to standard out and
      then terminating when the command execution completes.  Implies
      <command>-r</command> when <command>-R</command> is not explicitly
      supplied.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term>-X</term>
    <listitem>
     <para>
      Enables executing of includes via <command>#exec</command> directive.
      This can be useful if You want to do <command>#exec</command> inside
      <filename>asterisk.conf</filename>
     </para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>EXAMPLES</title>
  <para>
   <command>asterisk</command> - Begin Asterisk as a daemon
  </para>
  <para>
   <command>asterisk -vvvgc</command> - Run on controlling terminal
  </para>
  <para>
   <command>asterisk -rx "core show channels"</command> - Display channels on running server
  </para>
 </refsect1>
 <refsect1>
  <title>BUGS</title>
  <para>
  Bug reports and feature requests may be filed at https://issues.asterisk.org
  </para>
 </refsect1>
 <refsect1>
  <title>SEE ALSO</title>
  <para>
   http://www.asterisk.org - The Asterisk Home Page
  </para>
  <para>
   http://www.asteriskdocs.org - The Asterisk Documentation Project
  </para>
  <para>
   http://wiki.asterisk.org - The Asterisk Wiki
  </para>
  <para>
   http://www.digium.com/ - Asterisk is sponsored by Digium
  </para>
 </refsect1>
 <refsect1>
  <title>AUTHOR</title>
  <para>
   <author>
    <firstname>Mark Spencer &lt;markster@digium.com&gt;</firstname> 
   </author>
  </para>
  <para>
   <author>
    <firstname>Countless other contributors, see CREDITS with distribution for more information.</firstname> 
   </author>
  </para>
 </refsect1>
</refentry>
