Asterisk - The Open Source Telephony Project  18.5.0
doxyref.h
Go to the documentation of this file.
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 1999 - 2012, Digium, Inc.
5  *
6  * See http://www.asterisk.org for more information about
7  * the Asterisk project. Please do not directly contact
8  * any of the maintainers of this project for assistance;
9  * the project provides a web site, mailing lists and IRC
10  * channels for your use.
11  *
12  * This program is free software, distributed under the terms of
13  * the GNU General Public License Version 2. See the LICENSE file
14  * at the top of the source tree.
15  */
16 
17 /*!
18  * \file
19  *
20  * This is the main header file used for generating miscellaneous documentation
21  * using Doxygen. This also utilizes the documentation in
22  * include/asterisk/doxygen/ header files.
23  */
24 
25 /*
26  * The following is for Doxygen Developer's documentation generated
27  * by running "make progdocs" with doxygen installed on your
28  * system.
29  */
30 
31 /*!
32  * \page DevDoc Asterisk Developer's Documentation - Appendices
33  *
34  * \section devpolicy Development and Release Policies
35  * \arg \ref CodeGuide : The must-read document for all developers
36  * \arg \ref AstCREDITS : A Thank You to contributors (unfortunately out of date)
37  *
38  * \section apisandinterfaces Asterisk APIs and Interfaces
39  * \arg \ref AstAPI
40  * \arg \ref AstAPIChanges
41  * \arg \ref Def_Channel : What's a channel, anyway?
42  * \arg \ref channel_drivers : Existing channel drivers
43  * \arg \ref AstAMI : The Call management socket API
44  * \arg \ref AstARA : A generic data storage and retrieval API for Asterisk
45  * \arg \ref AstDUNDi : A way to find phone services dynamically by using the DUNDi protocol
46  * \arg \ref AJI_intro : The Asterisk Jabber Interface
47  * \arg \ref AstCDR
48  * \arg \ref AstVar
49  * \arg \ref AstVideo
50  * \arg \ref AstENUM : The IETF way to redirect from phone numbers to VoIP calls
51  * \arg \ref AstHTTP
52  * \arg \ref AstSpeech
53  *
54  * \section debugconfig Debugging and Configuration References
55  * \arg \ref AstDebug : Hints on debugging
56  * \arg \ref extref
57  * \arg \ref ConfigFiles
58  * \arg \ref SoundFiles included in the Asterisk distribution
59  *
60  * \section weblinks Web sites
61  * \arg \b Main: Asterisk Developer's website https://www.asterisk.org/developers/
62  * \arg \b Bugs: The Issue Tracker https://issues.asterisk.org
63  * \arg \b Lists: List Server http://lists.digium.com
64  * \arg \b Wiki: The Asterisk Wiki https://wiki.asterisk..org
65  * \arg \b Docs: The Asterisk Documentation Project http://www.asteriskdocs.org
66  * \arg \b Digium: The Asterisk Company https://www.digium.com
67  */
68 
69 /*!
70  * \page CodeGuide Coding Guidelines
71  * \AsteriskTrunkWarning
72  * \section Coding Guidelines
73  * This file is in the /doc directory in your Asterisk source tree.
74  * Make sure to stay up to date with the latest guidelines.
75  * \verbinclude CODING-GUIDELINES
76  */
77 
78 /*!
79  * \page AstAPI Asterisk API
80  * \section Asteriskapi Asterisk API
81  * Some generic documents on the Asterisk architecture
82  *
83  * \arg \ref AstThreadStorage
84  * \arg \ref DataStores
85  * \arg \ref AstExtState
86  * \arg \ref AstDataRetrieval
87  *
88  * \subsection channel_txt Channels
89  * \arg See \ref Def_Channel
90  */
91 
92 /*!
93  * \page AstAPIChanges Asterisk API Changes
94  *
95  * \section Changes161 Version 1.6.1
96  * \li vmwi_generate()
97  * \li ast_channel_datastore_alloc()
98  * \li ast_channel_datastore_free()
99  * \li ast_channel_cmpwhentohangup()
100  * \li ast_channel_setwhentohangup()
101  * \li ast_settimeout()
102  * \li ast_datastore_alloc()
103  * \li ast_datastore_free()
104  * \li ast_device_state_changed()
105  * \li ast_device_state_changed_literal()
106  * \li ast_dnsmgr_get()
107  * \li ast_dnsmgr_lookup()
108  * \li ast_dsp_set_digitmode()
109  * \li ast_get_txt()
110  * \li ast_event_unsubscribe()
111  * \li localized_context_find_or_create()
112  * \li localized_merge_contexts_and_delete()
113  * \li ast_console_puts_mutable()
114  * \li ast_rtp_get_quality()
115  * \li ast_tcptls_client_start()
116  * \li ast_tcptls_server_start()
117  * \li ast_tcptls_server_stop()
118  *
119  * \section Changes162 Version 1.6.2
120  *
121  * \section Changes18 Version 1.8
122  * \li ast_channel_alloc()
123  */
124 
125 /*!
126  * \page AstAMI AMI - The Manager Interface
127  * \section ami AMI - The manager Interface
128  * \arg \link Config_ami Configuration file \endlink
129  * \arg \ref manager.c
130  * \todo include missing manager txt
131  */
132 
133 /*!
134  * \page AstARA ARA - The Asterisk Realtime Interface
135  * \section realtime ARA - a generic API to storage and retrieval
136  * Implemented in \ref config.c
137  * Implemented in \ref pbx_realtime.c
138  * \todo include missing realtime txt
139  * \todo include missing extconfig txt
140  */
141 
142 /*!
143  * \page AstDUNDi DUNDi
144  *
145  * DUNDi is a peer-to-peer system for locating Internet gateways to telephony
146  * services. Unlike traditional centralized services (such as the remarkably
147  * simple and concise ENUM standard), DUNDi is fully-distributed with no
148  * centralized authority whatsoever.
149  *
150  * DUNDi is not itself a Voice-over IP signaling or media protocol. Instead,
151  * it publishes routes which are in turn accessed via industry standard
152  * protocols such as IAX, SIP and H.323.
153  *
154  * \par References
155  * \arg DUNDi is documented at http://www.dundi.com
156  * \arg Implemented in \ref pbx_dundi.c and \ref dundi-parser.c
157  * \arg Configuration in \ref dundi.conf
158  */
159 
160 /*!
161  * \page AstCDR CDR - Call Data Records and billing
162  * \section cdr Call Data Records
163  * \par See also
164  * \arg \ref cdr.c
165  * \arg \ref cdr_drivers
166  * \arg \ref Config_cdr CDR configuration files
167  *
168  * \todo include missing cdrdriver txt
169  */
170 
171 /*!
172  * \page AstCREDITS CREDITS
173  * \verbinclude CREDITS
174  */
175 
176 /*!
177  * \page AstVideo Video support in Asterisk
178  * \section sectAstVideo Video support in Asterisk
179  * \todo include missing video txt
180  */
181 
182 /*!
183  * \page AstVar Globally predefined channel variables
184  * \section globchan Globally predefined channel variables
185  *
186  * More and more of these variables are being replaced by dialplan functions.
187  * Some still exist though and some that does still exist needs to move to
188  * dialplan functions.
189  *
190  * See also
191  * - \ref pbx_retrieve_variable()
192  * - \ref AstChanVar
193  *
194  */
195 
196 /*!
197  * \page AstChanVar Asterisk Dialplan Variables
198  * Asterisk Dialplan variables are divided into three groups:
199  * - Predefined global variables, handled by the PBX core
200  * - Global variables, that exist for the duration of the pbx execution
201  * - Channel variables, that exist during a channel
202  *
203  * Global variables are reachable in all channels, all of the time.
204  * Channel variables are only reachable within the channel.
205  *
206  * For more information on the predefined variables, see \ref AstVar
207  *
208  * Global and Channel variables:
209  * - Names are Case insensitive
210  * - Names that start with a character, but are alphanumeric
211  * - Global variables are defined and reached with the GLOBAL() dialplan function
212  * and the set application, like
213  *
214  * exten => 1234,1,set(GLOBAL(myvariable)=tomteluva)
215  *
216  * - \ref func_global.c
217  *
218  * - Channel variables are defined with the set() dialplan application
219  *
220  * exten => 1234,1,set(xmasattribute=tomtegröt)
221  *
222  * - Some channels also supports setting channel variables with the \b setvar=
223  * configuraiton option for a device or line.
224  *
225  * \section AstChanVar_globalvars Global Variables
226  * Global variables can also be set in the [globals] section of extensions.conf. The
227  * setting \b clearglobalvars in extensions.conf [general] section affects whether
228  * or not the global variables defined in \b globals are reset at dialplan reload.
229  *
230  * There are CLI commands to change and read global variables. This can be handy
231  * to reset counters at midnight from an external script.
232  *
233  * \section AstChanVar_devnotes Developer notes
234  * Variable handling is managed within \ref pbx.c
235  * You need to include pbx.h to reach these functions.
236  * - \ref pbx_builtin_setvar_helper()
237  * - \ref pbx_builtin_getvar_helper()
238  *
239  * The variables is a linked list stored in the channel data structure
240  * with the list starting at varshead in struct ast_channel
241  */
242 
243 /*!
244  * \page Config_mod Modules configuration
245  * All res_ resource modules are loaded with globals on, which means
246  * that non-static functions are callable from other modules.
247  *
248  * If you want your non res_* module to export functions to other modules
249  * you have to include it in the [global] section.
250  */
251 
252 /*!
253  * \page Config_ext Extensions.conf - the Dial Plan
254  * \section dialplan Extensions.conf
255  * \verbinclude extensions.conf.sample
256  */
257 
258 /*!
259  * \page Config_rtp RTP configuration
260  * \arg Implemented in \ref rtp.c
261  * Used in \ref chan_sip.c and \ref chan_mgcp.c (and various H.323 channels)
262  * \section rtpconf rtp.conf
263  * \verbinclude rtp.conf.sample
264  */
265 
266 /*!
267  * \page Config_codec CODEC Configuration
268  * \section codecsconf codecs.conf
269  * \verbinclude codecs.conf.sample
270  */
271 
272 /*!
273  * \page Config_ara REALTIME Configuration
274  * \arg See also: \arg \link AstARA \endlink
275  * \section extconf extconfig.conf
276  * \verbinclude extconfig.conf.sample
277  */
278 
279 /*!
280  * \page Config_ami AMI configuration
281  * \arg See also: \arg \link AstAMI \endlink
282  * \section amiconf manager.conf
283  * \verbinclude manager.conf.sample
284  */
285 
286 /*!
287  * \page SoundFiles Sound files
288  * \section SecSound Asterisk Sound files
289  * Asterisk includes a large number of sound files. Many of these
290  * are used by applications and demo scripts within asterisk.
291  *
292  * Additional sound files are available in the asterisk-addons
293  * repository on svn.digium.com
294  */
295 
296 /*!
297  * \page AstHTTP AMI over HTTP support
298  * The http.c file includes support for manager transactions over
299  * http.
300  * \section ami AMI - The manager Interface
301  * \arg \link Config_ami Configuration file \endlink
302  */
303 
304 /*
305  * Doxygen Groups
306  */
307 
308 /*! \addtogroup configuration_file Configuration Files
309  */
310 
311 /*!
312  * \addtogroup cdr_drivers Module: CDR Drivers
313  * \section CDR_generic Asterisk CDR Drivers
314  * \brief CDR drivers are loaded dynamically, each loaded CDR driver produce
315  * a billing record for each call.
316  * \arg \ref Config_mod "Modules Configuration"
317  * \arg \ref Config_cdr "CDR Configuration"
318  */
319 
320 /*!
321  * \addtogroup channel_drivers Module: Asterisk Channel Drivers
322  * \section channel_generic Asterisk Channel Drivers
323  * \brief Channel drivers are loaded dynamically.
324  * \arg \ref Config_mod "Modules Configuration"
325  */
326 
327 /*!
328  * \addtogroup applications Dial plan applications
329  * \section app_generic Asterisk Dial Plan Applications
330  * \brief Applications support the dialplan. They register dynamically with
331  * \see ast_register_application() and unregister with
332  * \see ast_unregister_application()
333  * \par See also
334  * \arg \ref functions
335  */
336 
337 /*!
338  * \addtogroup functions Module: Dial plan functions
339  * \section func_generic Asterisk Dial Plan Functions
340  * \brief Functions support the dialplan. They do not change any property of a channel
341  * or touch a channel in any way.
342  * \par See also
343  * \arg \ref applications
344  *
345  */
346 
347 /*!
348  * \addtogroup codecs Module: Codecs
349  * \section codec_generic Asterisk Codec Modules
350  * Codecs are referenced in configuration files by name
351  * \par See also
352  * \arg \ref formats
353  */
354 
355 /*!
356  * \addtogroup formats Module: Media File Formats
357  * \section codec_generic Asterisk Format drivers
358  * Formats are modules that read or write media files to disk.
359  * \par See also
360  * \arg \ref codecs
361  */
362 
363 /*!
364  * \addtogroup rtp_engines Module: RTP Engines
365  * \section rtp_engine_blah Asterisk RTP Engines
366  */