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