Mon Mar 19 11:30:28 2012

Asterisk developer's documentation


options.h

Go to the documentation of this file.
00001 /*
00002  * Asterisk -- An open source telephony toolkit.
00003  *
00004  * Copyright (C) 1999 - 2005, Digium, Inc.
00005  *
00006  * Mark Spencer <markster@digium.com>
00007  *
00008  * See http://www.asterisk.org for more information about
00009  * the Asterisk project. Please do not directly contact
00010  * any of the maintainers of this project for assistance;
00011  * the project provides a web site, mailing lists and IRC
00012  * channels for your use.
00013  *
00014  * This program is free software, distributed under the terms of
00015  * the GNU General Public License Version 2. See the LICENSE file
00016  * at the top of the source tree.
00017  */
00018 
00019 /*! \file
00020  * \brief Options provided by main asterisk program
00021  */
00022 
00023 #ifndef _ASTERISK_OPTIONS_H
00024 #define _ASTERISK_OPTIONS_H
00025 
00026 #include "asterisk/autoconfig.h"
00027 
00028 #if defined(__cplusplus) || defined(c_plusplus)
00029 extern "C" {
00030 #endif
00031 
00032 #define AST_CACHE_DIR_LEN  512
00033 #define AST_FILENAME_MAX   80
00034 #define AST_CHANNEL_NAME    80  /*!< Max length of an ast_channel name */
00035 
00036 
00037 /*! \ingroup main_options */
00038 enum ast_option_flags {
00039    /*! Allow \#exec in config files */
00040    AST_OPT_FLAG_EXEC_INCLUDES = (1 << 0),
00041    /*! Do not fork() */
00042    AST_OPT_FLAG_NO_FORK = (1 << 1),
00043    /*! Keep quiet */
00044    AST_OPT_FLAG_QUIET = (1 << 2),
00045    /*! Console mode */
00046    AST_OPT_FLAG_CONSOLE = (1 << 3),
00047    /*! Run in realtime Linux priority */
00048    AST_OPT_FLAG_HIGH_PRIORITY = (1 << 4),
00049    /*! Initialize keys for RSA authentication */
00050    AST_OPT_FLAG_INIT_KEYS = (1 << 5),
00051    /*! Remote console */
00052    AST_OPT_FLAG_REMOTE = (1 << 6),
00053    /*! Execute an asterisk CLI command upon startup */
00054    AST_OPT_FLAG_EXEC = (1 << 7),
00055    /*! Don't use termcap colors */
00056    AST_OPT_FLAG_NO_COLOR = (1 << 8),
00057    /*! Are we fully started yet? */
00058    AST_OPT_FLAG_FULLY_BOOTED = (1 << 9),
00059    /*! Trascode via signed linear */
00060    AST_OPT_FLAG_TRANSCODE_VIA_SLIN = (1 << 10),
00061    /*! Dump core on a seg fault */
00062    AST_OPT_FLAG_DUMP_CORE = (1 << 12),
00063    /*! Cache sound files */
00064    AST_OPT_FLAG_CACHE_RECORD_FILES = (1 << 13),
00065    /*! Display timestamp in CLI verbose output */
00066    AST_OPT_FLAG_TIMESTAMP = (1 << 14),
00067    /*! Override config */
00068    AST_OPT_FLAG_OVERRIDE_CONFIG = (1 << 15),
00069    /*! Reconnect */
00070    AST_OPT_FLAG_RECONNECT = (1 << 16),
00071    /*! Transmit Silence during Record() and DTMF Generation */
00072    AST_OPT_FLAG_TRANSMIT_SILENCE = (1 << 17),
00073    /*! Suppress some warnings */
00074    AST_OPT_FLAG_DONT_WARN = (1 << 18),
00075    /*! End CDRs before the 'h' extension */
00076    AST_OPT_FLAG_END_CDR_BEFORE_H_EXTEN = (1 << 19),
00077    /*! Use DAHDI Timing for generators if available */
00078    AST_OPT_FLAG_INTERNAL_TIMING = (1 << 20),
00079    /*! Always fork, even if verbose or debug settings are non-zero */
00080    AST_OPT_FLAG_ALWAYS_FORK = (1 << 21),
00081    /*! Disable log/verbose output to remote consoles */
00082    AST_OPT_FLAG_MUTE = (1 << 22),
00083    /*! There is a per-module debug setting */
00084    AST_OPT_FLAG_DEBUG_MODULE = (1 << 23),
00085    /*! There is a per-module verbose setting */
00086    AST_OPT_FLAG_VERBOSE_MODULE = (1 << 24),
00087    /*! Terminal colors should be adjusted for a light-colored background */
00088    AST_OPT_FLAG_LIGHT_BACKGROUND = (1 << 25),
00089    /*! Count Initiated seconds in CDR's */
00090    AST_OPT_FLAG_INITIATED_SECONDS = (1 << 26),
00091    /*! Force black background */
00092    AST_OPT_FLAG_FORCE_BLACK_BACKGROUND = (1 << 27),
00093    /*! Hide remote console connect messages on console */
00094    AST_OPT_FLAG_HIDE_CONSOLE_CONNECT = (1 << 28),
00095    /*! Protect the configuration file path with a lock */
00096    AST_OPT_FLAG_LOCK_CONFIG_DIR = (1 << 29),
00097    /*! Generic PLC */
00098    AST_OPT_FLAG_GENERIC_PLC = (1 << 30),
00099 };
00100 
00101 /*! These are the options that set by default when Asterisk starts */
00102 #if (defined(HAVE_DAHDI_VERSION) && HAVE_DAHDI_VERSION >= 230)
00103 #define AST_DEFAULT_OPTIONS AST_OPT_FLAG_TRANSCODE_VIA_SLIN | AST_OPT_FLAG_INTERNAL_TIMING
00104 #else
00105 #define AST_DEFAULT_OPTIONS AST_OPT_FLAG_TRANSCODE_VIA_SLIN
00106 #endif
00107 
00108 #define ast_opt_exec_includes    ast_test_flag(&ast_options, AST_OPT_FLAG_EXEC_INCLUDES)
00109 #define ast_opt_no_fork       ast_test_flag(&ast_options, AST_OPT_FLAG_NO_FORK)
00110 #define ast_opt_quiet         ast_test_flag(&ast_options, AST_OPT_FLAG_QUIET)
00111 #define ast_opt_console       ast_test_flag(&ast_options, AST_OPT_FLAG_CONSOLE)
00112 #define ast_opt_high_priority    ast_test_flag(&ast_options, AST_OPT_FLAG_HIGH_PRIORITY)
00113 #define ast_opt_init_keys     ast_test_flag(&ast_options, AST_OPT_FLAG_INIT_KEYS)
00114 #define ast_opt_remote        ast_test_flag(&ast_options, AST_OPT_FLAG_REMOTE)
00115 #define ast_opt_exec       ast_test_flag(&ast_options, AST_OPT_FLAG_EXEC)
00116 #define ast_opt_no_color      ast_test_flag(&ast_options, AST_OPT_FLAG_NO_COLOR)
00117 #define ast_fully_booted      ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)
00118 #define ast_opt_transcode_via_slin  ast_test_flag(&ast_options, AST_OPT_FLAG_TRANSCODE_VIA_SLIN)
00119 #define ast_opt_dump_core     ast_test_flag(&ast_options, AST_OPT_FLAG_DUMP_CORE)
00120 #define ast_opt_cache_record_files  ast_test_flag(&ast_options, AST_OPT_FLAG_CACHE_RECORD_FILES)
00121 #define ast_opt_timestamp     ast_test_flag(&ast_options, AST_OPT_FLAG_TIMESTAMP)
00122 #define ast_opt_override_config     ast_test_flag(&ast_options, AST_OPT_FLAG_OVERRIDE_CONFIG)
00123 #define ast_opt_reconnect     ast_test_flag(&ast_options, AST_OPT_FLAG_RECONNECT)
00124 #define ast_opt_transmit_silence ast_test_flag(&ast_options, AST_OPT_FLAG_TRANSMIT_SILENCE)
00125 #define ast_opt_dont_warn     ast_test_flag(&ast_options, AST_OPT_FLAG_DONT_WARN)
00126 #define ast_opt_end_cdr_before_h_exten ast_test_flag(&ast_options, AST_OPT_FLAG_END_CDR_BEFORE_H_EXTEN)
00127 #define ast_opt_internal_timing     ast_test_flag(&ast_options, AST_OPT_FLAG_INTERNAL_TIMING)
00128 #define ast_opt_always_fork      ast_test_flag(&ast_options, AST_OPT_FLAG_ALWAYS_FORK)
00129 #define ast_opt_mute       ast_test_flag(&ast_options, AST_OPT_FLAG_MUTE)
00130 #define ast_opt_dbg_module    ast_test_flag(&ast_options, AST_OPT_FLAG_DEBUG_MODULE)
00131 #define ast_opt_verb_module      ast_test_flag(&ast_options, AST_OPT_FLAG_VERBOSE_MODULE)
00132 #define ast_opt_light_background ast_test_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND)
00133 #define ast_opt_force_black_background ast_test_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND)
00134 #define ast_opt_hide_connect     ast_test_flag(&ast_options, AST_OPT_FLAG_HIDE_CONSOLE_CONNECT)
00135 #define ast_opt_lock_confdir     ast_test_flag(&ast_options, AST_OPT_FLAG_LOCK_CONFIG_DIR)
00136 #define ast_opt_generic_plc         ast_test_flag(&ast_options, AST_OPT_FLAG_GENERIC_PLC)
00137 
00138 extern struct ast_flags ast_options;
00139 
00140 enum ast_compat_flags {
00141    AST_COMPAT_DELIM_PBX_REALTIME = (1 << 0),
00142    AST_COMPAT_DELIM_RES_AGI = (1 << 1),
00143    AST_COMPAT_APP_SET = (1 << 2),
00144 };
00145 
00146 #define  ast_compat_pbx_realtime ast_test_flag(&ast_compat, AST_COMPAT_DELIM_PBX_REALTIME)
00147 #define ast_compat_res_agi ast_test_flag(&ast_compat, AST_COMPAT_DELIM_RES_AGI)
00148 #define  ast_compat_app_set   ast_test_flag(&ast_compat, AST_COMPAT_APP_SET)
00149 
00150 extern struct ast_flags ast_compat;
00151 
00152 extern int option_verbose;
00153 extern int option_maxfiles;      /*!< Max number of open file handles (files, sockets) */
00154 extern int option_debug;      /*!< Debugging */
00155 extern int option_maxcalls;      /*!< Maximum number of simultaneous channels */
00156 extern double option_maxload;
00157 #if defined(HAVE_SYSINFO)
00158 extern long option_minmemfree;      /*!< Minimum amount of free system memory - stop accepting calls if free memory falls below this watermark */
00159 #endif
00160 extern char defaultlanguage[];
00161 
00162 extern struct timeval ast_startuptime;
00163 extern struct timeval ast_lastreloadtime;
00164 extern pid_t ast_mainpid;
00165 
00166 extern char record_cache_dir[AST_CACHE_DIR_LEN];
00167 extern char dahdi_chan_name[AST_CHANNEL_NAME];
00168 extern int dahdi_chan_name_len;
00169 
00170 extern int ast_language_is_prefix;
00171 
00172 #if defined(__cplusplus) || defined(c_plusplus)
00173 }
00174 #endif
00175 
00176 #endif /* _ASTERISK_OPTIONS_H */

Generated on Mon Mar 19 11:30:28 2012 for Asterisk - The Open Source Telephony Project by  doxygen 1.4.7