86d524092549484b5fb34a995a1863c13708a336
[asterisk/asterisk.git] / include / asterisk / options.h
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 1999 - 2005, Digium, Inc.
5  *
6  * Mark Spencer <markster@digium.com>
7  *
8  * See http://www.asterisk.org for more information about
9  * the Asterisk project. Please do not directly contact
10  * any of the maintainers of this project for assistance;
11  * the project provides a web site, mailing lists and IRC
12  * channels for your use.
13  *
14  * This program is free software, distributed under the terms of
15  * the GNU General Public License Version 2. See the LICENSE file
16  * at the top of the source tree.
17  */
18
19 /*! \file
20  * \brief Options provided by main asterisk program
21  */
22
23 #ifndef _ASTERISK_OPTIONS_H
24 #define _ASTERISK_OPTIONS_H
25
26 #if defined(__cplusplus) || defined(c_plusplus)
27 extern "C" {
28 #endif
29
30 #define AST_CACHE_DIR_LEN       512
31 #define AST_FILENAME_MAX        80
32
33 /*! \ingroup main_options */
34 enum ast_option_flags {
35         /*! Allow \#exec in config files */
36         AST_OPT_FLAG_EXEC_INCLUDES = (1 << 0),
37         /*! Do not fork() */
38         AST_OPT_FLAG_NO_FORK = (1 << 1),
39         /*! Keep quiet */
40         AST_OPT_FLAG_QUIET = (1 << 2),
41         /*! Console mode */
42         AST_OPT_FLAG_CONSOLE = (1 << 3),
43         /*! Run in realtime Linux priority */
44         AST_OPT_FLAG_HIGH_PRIORITY = (1 << 4),
45         /*! Initialize keys for RSA authentication */
46         AST_OPT_FLAG_INIT_KEYS = (1 << 5),
47         /*! Remote console */
48         AST_OPT_FLAG_REMOTE = (1 << 6),
49         /*! Execute an asterisk CLI command upon startup */
50         AST_OPT_FLAG_EXEC = (1 << 7),
51         /*! Don't use termcap colors */
52         AST_OPT_FLAG_NO_COLOR = (1 << 8),
53         /*! Are we fully started yet? */
54         AST_OPT_FLAG_FULLY_BOOTED = (1 << 9),
55         /*! Trascode via signed linear */
56         AST_OPT_FLAG_TRANSCODE_VIA_SLIN = (1 << 10),
57         /*! Enable priority jumping in applications */
58         AST_OPT_FLAG_PRIORITY_JUMPING = (1 << 11),
59         /*! Dump core on a seg fault */
60         AST_OPT_FLAG_DUMP_CORE = (1 << 12),
61         /*! Cache sound files */
62         AST_OPT_FLAG_CACHE_RECORD_FILES = (1 << 13),
63         /*! Display timestamp in log messages */
64         AST_OPT_FLAG_TIMESTAMP = (1 << 14),
65         /*! Override config */
66         AST_OPT_FLAG_OVERRIDE_CONFIG = (1 << 15),
67         /*! Reconnect */
68         AST_OPT_FLAG_RECONNECT = (1 << 16),
69         /*! Transmit Silence during Record() */
70         AST_OPT_FLAG_TRANSMIT_SILENCE = (1 << 17),
71         /*! Suppress some warnings */
72         AST_OPT_FLAG_DONT_WARN = (1 << 18),
73         /*! End CDRs before the 'h' extension */
74         AST_OPT_END_CDR_BEFORE_H_EXTEN = (1 << 19),
75         /*! Use Zaptel Timing for generators if available */
76         AST_OPT_FLAG_INTERNAL_TIMING = (1 << 20)
77 };
78
79 /*! These are the options that set by default when Asterisk starts */
80 #define AST_DEFAULT_OPTIONS AST_OPT_FLAG_TRANSCODE_VIA_SLIN
81
82 #define ast_opt_exec_includes           ast_test_flag(&ast_options, AST_OPT_FLAG_EXEC_INCLUDES)
83 #define ast_opt_no_fork                 ast_test_flag(&ast_options, AST_OPT_FLAG_NO_FORK)
84 #define ast_opt_quiet                   ast_test_flag(&ast_options, AST_OPT_FLAG_QUIET)
85 #define ast_opt_console                 ast_test_flag(&ast_options, AST_OPT_FLAG_CONSOLE)
86 #define ast_opt_high_priority           ast_test_flag(&ast_options, AST_OPT_FLAG_HIGH_PRIORITY)
87 #define ast_opt_init_keys               ast_test_flag(&ast_options, AST_OPT_FLAG_INIT_KEYS)
88 #define ast_opt_remote                  ast_test_flag(&ast_options, AST_OPT_FLAG_REMOTE)
89 #define ast_opt_exec                    ast_test_flag(&ast_options, AST_OPT_FLAG_EXEC)
90 #define ast_opt_no_color                ast_test_flag(&ast_options, AST_OPT_FLAG_NO_COLOR)
91 #define ast_fully_booted                ast_test_flag(&ast_options, AST_OPT_FLAG_FULLY_BOOTED)
92 #define ast_opt_transcode_via_slin      ast_test_flag(&ast_options, AST_OPT_FLAG_TRANSCODE_VIA_SLIN)
93 #define ast_opt_priority_jumping        ast_test_flag(&ast_options, AST_OPT_FLAG_PRIORITY_JUMPING)
94 #define ast_opt_dump_core               ast_test_flag(&ast_options, AST_OPT_FLAG_DUMP_CORE)
95 #define ast_opt_cache_record_files      ast_test_flag(&ast_options, AST_OPT_FLAG_CACHE_RECORD_FILES)
96 #define ast_opt_timestamp               ast_test_flag(&ast_options, AST_OPT_FLAG_TIMESTAMP)
97 #define ast_opt_override_config         ast_test_flag(&ast_options, AST_OPT_FLAG_OVERRIDE_CONFIG)
98 #define ast_opt_reconnect               ast_test_flag(&ast_options, AST_OPT_FLAG_RECONNECT)
99 #define ast_opt_transmit_silence        ast_test_flag(&ast_options, AST_OPT_FLAG_TRANSMIT_SILENCE)
100 #define ast_opt_dont_warn               ast_test_flag(&ast_options, AST_OPT_FLAG_DONT_WARN)
101 #define ast_opt_end_cdr_before_h_exten  ast_test_flag(&ast_options, AST_OPT_END_CDR_BEFORE_H_EXTEN)
102 #define ast_opt_internal_timing         ast_test_flag(&ast_options, AST_OPT_FLAG_INTERNAL_TIMING)
103
104 extern struct ast_flags ast_options;
105
106 extern int option_verbose;
107 extern int option_debug;                /*!< Debugging */
108 extern int option_maxcalls;             /*!< Maximum number of simultaneous channels */
109 extern double option_maxload;
110 extern char defaultlanguage[];
111
112 extern time_t ast_startuptime;
113 extern time_t ast_lastreloadtime;
114 extern int ast_mainpid;
115
116 extern char record_cache_dir[AST_CACHE_DIR_LEN];
117 extern char debug_filename[AST_FILENAME_MAX];
118
119 #if defined(__cplusplus) || defined(c_plusplus)
120 }
121 #endif
122
123 #endif /* _ASTERISK_OPTIONS_H */