Merge "res_rtp_asterisk.c: Fix rtp source address learning for broken clients"
[asterisk/asterisk.git] / include / asterisk / doxyref.h
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  */