Doxygen updates
[asterisk/asterisk.git] / include / asterisk / doxyref.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 This file generates Doxygen pages from files in the /doc
20  directory of the Asterisk source code tree 
21  */
22
23 /* The following is for Doxygen Developer's documentation generated
24  * by running "make progdocs" with doxygen installed on your
25  * system.
26  */
27 /*! \page DevDoc Asterisk Developer's Documentation - appendices
28  *  \arg \ref CodeGuide : The must-read document for all developer's
29  *  \arg \ref AstAPI
30  *  \arg \ref Def_Channel : What's a channel, anyway?
31  *  \arg \ref channel_drivers : Existing channel drivers
32  *  \arg \ref AstDebug : Hints on debugging
33  *  \arg \ref AstAMI : The Call management socket API
34  *  \arg \ref AstARA : A generic data storage and retrieval API for Asterisk
35  *  \arg \ref AstDUNDi : A way to find phone services dynamically by using the DUNDi protocol
36  *  \arg \ref AstCDR
37  *  \arg \ref AstREADME
38  *  \arg \ref AstVar
39  *  \arg \ref AstVideo
40  *  \arg \ref AstENUM : The IETF way to redirect from phone numbers to VoIP calls
41  *  \arg \ref AstHTTP
42  *  \arg \ref AstSpeech
43  *  \arg \ref ConfigFiles
44  *  \arg \ref SoundFiles included in the Asterisk distribution
45  *  \arg \ref AstCREDITS : A Thank You to contributors
46  \n\n
47  * \section weblinks Web sites
48  * \arg \b Main:  Asterisk Developer's website http://www.asterisk.org/developers/
49  * \arg \b Bugs: The Issue tracker http://bugs.digium.com
50  * \arg \b Lists: List server http://lists.digium.com
51  * \arg \b Wiki: The Asterisk Wiki      http://www.voip-info.org
52  * \arg \b Docs: The Asterisk Documentation Project http://www.asteriskdocs.org
53  * \arg \b Digium: The Asterisk company http://www.digium.com
54  *
55  */
56
57 /*! \page CodeGuide Coding Guidelines
58  *  \section Coding Guidelines
59  *  This file is in the /doc directory in your Asterisk source tree.
60  *  Make sure to stay up to date with the latest guidelines.
61  *  \verbinclude CODING-GUIDELINES
62  */
63
64 /*! \page AstAPI Asterisk API
65  *  \section Asteriskapi Asterisk API
66  *  Some generic documents on the Asterisk architecture
67  *
68  *  \arg \ref AstThreadStorage
69  *  \arg \ref DataStores
70  *
71  *  \subsection model_txt Generic Model
72  *  \verbinclude model.txt
73  *  \subsection channel_txt Channels
74  *  \arg See \ref Def_Channel
75  */
76
77 /*! \page AstDebug Debugging
78  *  \section debug Debugging
79  *  \verbinclude backtrace.txt
80  */
81
82 /*! \page AstSpeech The Generic Speech Recognition API
83  *  \section debug The Generic Speech Recognition API
84  *  \verbinclude speechrec.txt
85  */
86
87 /*! \page DataStores Channel Data Stores
88  *  \section debug Channel Data Stores
89  *  \verbinclude datastores.txt
90  */
91
92 /*! \page AstAMI AMI - The Manager Interface
93  *  \section ami AMI - The manager Interface
94  *  \arg \link Config_ami Configuration file \endlink
95  * \arg \ref manager.c
96  *  \verbinclude manager.txt
97  */
98
99 /*!  \page AstARA ARA - The Asterisk Realtime Interface
100  *  \section realtime ARA - a generic API to storage and retrieval
101  *  Implemented in \ref config.c 
102  *  Implemented in \ref pbx_realtime.c 
103  *  \verbinclude realtime.txt
104  *  \verbinclude extconfig.txt
105  */
106
107 /*!  \page AstDUNDi DUNDi
108 DUNDi is a peer-to-peer system for locating Internet gateways to telephony services. Unlike traditional centralized services (such as the remarkably simple and concise ENUM standard), DUNDi is fully-distributed with no centralized authority whatsoever.
109
110 DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it publishes routes which are in turn accessed via industry standard protocols such as IAX, SIP and H.323. 
111
112         \par References
113         \arg DUNDi is documented at http://www.dundi.com
114         \arg Implemented in \ref pbx_dundi.c and \ref dundi-parser.c
115         \arg Configuration in \link Config_dun dundi.conf \endlink
116  */
117
118 /*! \page AstCDR CDR - Call Data Records and billing
119  * \section cdr Call Data Records
120  * \par See also
121  * \arg \ref cdr.c
122  * \arg \ref cdr_drivers
123  * \arg \ref Config_cdr CDR configuration files
124  *
125  * \verbinclude cdrdriver.txt
126  */
127
128 /*! \page AstREADME README - the general administrator introduction
129  *  \verbinclude README
130  */
131  
132 /*! \page AstCREDITS CREDITS
133  *  \verbinclude CREDITS
134  */
135
136 /*! \page AstVideo Video support in Asterisk
137  * \section sectAstVideo Video support in Asterisk
138  *  \verbinclude video.txt
139  */
140
141 /*! \page AstVar Globally predefined channel variables
142  * \section globchan Globally predefined channel variables
143  *
144  * More and more of these variables are being replaced by dialplan functions.
145  * Some still exist though and some that does still exist needs to move to
146  * dialplan functions.
147  *
148  * See also
149  * - \ref pbx_retrieve_variable()
150  * - \ref AstChanVar
151  *
152  *  \verbinclude channelvariables.txt
153
154  */
155
156 /*! \page AstChanVar Asterisk Dialplan Variables
157  *      Asterisk Dialplan variables are divided into three groups:
158  *      - Predefined global variables, handled by the PBX core
159  *      - Global variables, that exist for the duration of the pbx execution
160  *      - Channel variables, that exist during a channel
161  *
162  * Global variables are reachable in all channels, all of the time.
163  * Channel variables are only reachable within the channel.
164  *
165  * For more information on the predefined variables, see \ref AstVar
166  * 
167  * Global and Channel variables:
168  * - Names are Case insensitive
169  * - Names that start with a character, but are alphanumeric
170  * - Global variables are defined and reached with the GLOBAL() dialplan function
171  *   and the set application, like
172  *
173  *      exten => 1234,1,set(GLOBAL(myvariable)=tomteluva)
174  *
175  *      - \ref func_global.c
176  *
177  * - Channel variables are defined with the set() dialplan application
178  *
179  *      exten => 1234,1,set(xmasattribute=tomtegröt)
180  *
181  * - Some channels also supports setting channel variables with the \b setvar=
182  *   configuraiton option for a device or line.
183  *
184  * \section AstChanVar_globalvars Global Variables
185  * Global variables can also be set in the [globals] section of extensions.conf. The
186  * setting \b clearglobalvars in extensions.conf [general] section affects whether
187  * or not the global variables defined in \b globals are reset at dialplan reload.
188  * 
189  * There are CLI commands to change and read global variables. This can be handy
190  * to reset counters at midnight from an external script.
191  *
192  * \section AstChanVar_devnotes Developer notes
193  * Variable handling is managed within \ref pbx.c
194  * You need to include pbx.h to reach these functions.
195  *      - \ref pbx_builtin_setvar_helper()
196  *      - \ref pbx_builtin_getvar_helper()
197  *
198  * The variables is a linked list stored in the channel data structure
199  * with the list starting at varshead in struct ast_channel
200  * 
201  *
202  */
203
204 /*! \page AstENUM ENUM
205  * \section enumreadme ENUM
206  * \arg Configuration: \ref Config_enum
207  * \arg \ref enum.c
208  * \arg \ref func_enum.c
209  *
210  * \verbinclude enum.txt
211  */
212
213 /*! \page ConfigFiles Configuration files
214  * \section config Main configuration files
215  * \arg \link Config_ast asterisk.conf - the main configuration file \endlink
216  * \arg \link Config_ext extensions.conf - The Dial Plan \endlink
217  * \arg \link Config_mod modules.conf - which modules to load and not to load \endlink
218  * \arg \link Config_fea features.conf - call features (transfer, parking, etc) \endlink
219  * \section chanconf Channel configuration files
220  * \arg \link Config_iax IAX2 configuration  \endlink
221  * \arg \link Config_sip SIP configuration  \endlink
222  * \arg \link Config_mgcp MGCP configuration  \endlink
223  * \arg \link Config_rtp RTP configuration  \endlink
224  * \arg \link Config_zap Zaptel configuration  \endlink
225  * \arg \link Config_oss OSS (sound card) configuration  \endlink
226  * \arg \link Config_alsa ALSA (sound card) configuration  \endlink
227  * \arg \link Config_agent Agent (proxy channel) configuration  \endlink
228  * \arg \link Config_misdn MISDN Experimental ISDN BRI channel configuration  \endlink
229  * \arg \link Config_h323 H.323 configuration  \endlink
230  * \section appconf Application configuration files
231  * \arg \link Config_mm Meetme (conference bridge) configuration  \endlink
232  * \arg \link Config_qu Queue system configuration  \endlink
233  * \arg \link Config_vm Voicemail configuration  \endlink
234  * \arg \link Config_followme Followme configuration  \endlink
235  * \section cdrconf CDR configuration files
236  * \arg \link Config_cdr CDR configuration  \endlink
237  * \arg \link cdr_custom Custom CDR driver configuration \endlink
238  * \arg \link cdr_ami Manager CDR driver configuration \endlink
239  * \arg \link cdr_odbc ODBC CDR driver configuration \endlink
240  * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink
241  * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink
242  * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink
243  * \section miscconf Miscellenaous configuration files
244  * \arg \link Config_adsi ADSI configuration  \endlink
245  * \arg \link Config_ami AMI - Manager configuration  \endlink
246  * \arg \link Config_ara Realtime configuration  \endlink
247  * \arg \link Config_codec Codec configuration  \endlink
248  * \arg \link Config_dun DUNDi configuration  \endlink
249  * \arg \link Config_enum ENUM configuration  \endlink
250  * \arg \link Config_moh Music on Hold configuration  \endlink
251  * \arg \link Config_vm Voicemail configuration  \endlink
252  */
253
254 /*! \page Config_ast Asterisk.conf
255  * \verbinclude asterisk-conf.txt
256  */
257 /*! \page Config_mod Modules configuration
258  * All res_ resource modules are loaded with globals on, which means
259  * that non-static functions are callable from other modules.
260  *
261  * If you want your non res_* module to export functions to other modules
262  * you have to include it in the [global] section.
263  * \verbinclude modules.conf.sample
264  */
265
266 /*! \page Config_fea Call features configuration
267  * \par See also
268  * \arg \ref res_features.c : Call feature implementation
269  * \section featconf features.conf
270  * \verbinclude features.conf.sample
271  */
272
273 /*! \page Config_followme Followme: An application for simple follow-me calls
274  * \section followmeconf Followme.conf
275  * - See app_followme.c
276  * \verbinclude followme.conf.sample
277  */
278
279 /*! \page Config_ext Extensions.conf - the Dial Plan
280  * \section dialplan Extensions.conf 
281  * \verbinclude extensions.conf.sample
282  */
283
284 /*! \page Config_iax IAX2 configuration
285  * IAX2 is implemented in \ref chan_iax2.c
286  * \arg \link Config_iax iax.conf Configuration file example \endlink
287  * \section iaxreadme IAX readme file
288  * \verbinclude iax.txt
289  * \section Config_iax IAX Configuration example
290  * \verbinclude iax.conf.sample
291  * \section iaxjitter IAX Jitterbuffer information
292  * \verbinclude jitterbuffer.txt
293  */
294
295 /*! \page Config_iax IAX configuration
296  * \arg Implemented in \ref chan_iax2.c
297  * \section iaxconf iax.conf
298  * \verbinclude iax.conf.sample
299  */
300
301 /*! \page Config_sip SIP configuration
302  * Also see \ref Config_rtp RTP configuration
303  * \arg Implemented in \ref chan_sip.c
304  * \section sipconf sip.conf
305  * \verbinclude sip.conf.sample
306  *
307  * \arg \b Back \ref chanconf
308  */
309
310 /*! \page Config_mgcp MGCP configuration
311  * Also see \ref Config_rtp RTP configuration
312  * \arg Implemented in \ref chan_mgcp.c
313  * \section mgcpconf mgcp.conf
314  * \verbinclude mgcp.conf.sample
315  */
316
317 /*! \page README_misdn MISDN documentation
318  * \arg See \ref Config_misdn
319  * \section mISDN configuration
320  * \verbinclude misdn.txt
321  */
322
323 /*! \page Config_misdn MISDN configuration
324  * \arg Implemented in \ref chan_misdn.c
325  * \arg \ref README_misdn
326  * \arg See the mISDN home page: http://www.isdn4linux.de/mISDN/
327  * \section misdnconf misdn.conf
328  * \verbinclude misdn.conf.sample
329  */
330
331 /*! \page Config_vm VoiceMail configuration
332  * \section vmconf voicemail.conf
333  * \arg Implemented in \ref app_voicemail.c
334  * \verbinclude voicemail.conf.sample
335  */
336
337 /*! \page Config_zap Zaptel configuration
338  * \section zapconf zapata.conf
339  * \arg Implemented in \ref chan_zap.c
340  * \verbinclude zapata.conf.sample
341  */
342
343 /*! \page Config_h323 H.323 channel driver information
344  * This is the configuration of the H.323 channel driver within the Asterisk
345  * distribution. There's another one, called OH323, in asterisk-addons
346  * \arg Implemented in \ref chan_h323.c
347  * \section h323conf h323.conf
348  * \ref chan_h323.c
349  * \verbinclude h323.txt
350  */
351
352 /*! \page Config_oss OSS configuration
353  * \section ossconf oss.conf
354  * \arg Implemented in \ref chan_oss.c
355  * \verbinclude oss.conf.sample
356  */
357
358 /*! \page Config_alsa ALSA configuration
359  * \section alsaconf alsa.conf
360  * \arg Implemented in \ref chan_alsa.c
361  * \verbinclude alsa.conf.sample
362  */
363
364 /*! \page Config_agent Agent configuration
365  * \section agentconf agents.conf
366  * The agent channel is a proxy channel for queues
367  * \arg Implemented in \ref chan_agent.c
368  * \verbinclude agents.conf.sample
369  */
370
371 /*! \page Config_rtp RTP configuration
372  * \arg Implemented in \ref rtp.c
373  * Used in \ref chan_sip.c and \ref chan_mgcp.c (and various H.323 channels)
374  * \section rtpconf rtp.conf
375  * \verbinclude rtp.conf.sample
376  */
377
378 /*! \page Config_dun DUNDi Configuration
379  * \arg See also \ref AstDUNDi
380  * \section dundiconf dundi.conf
381  * \verbinclude dundi.conf.sample
382  */
383
384 /*! \page Config_enum ENUM Configuration
385  * \section enumconf enum.conf
386  * \arg See also \ref enumreadme
387  * \arg Implemented in \ref func_enum.c and \ref enum.c
388  * \verbinclude enum.conf.sample
389  */
390
391 /*! \page cdr_custom Custom CDR Configuration
392  * \par See also 
393  * \arg \ref cdrconf
394  * \arg \ref cdr_custom.c
395  * \verbinclude cdr_custom.conf.sample
396  */
397
398 /*! \page cdr_ami Manager CDR driver configuration
399  * \par See also 
400  * \arg \ref cdrconf
401  * \arg \ref AstAMI
402  * \arg \ref cdr_manager.c
403  * \verbinclude cdr_manager.conf.sample
404  */
405
406 /*! \page cdr_odbc ODBC CDR driver configuration
407  * \arg See also \ref cdrconf
408  * \arg \ref cdr_odbc.c
409  * \verbinclude cdr_odbc.conf.sample
410  * See also:
411  * \arg http://www.unixodbc.org
412  */
413
414 /*! \page cdr_pgsql PostgreSQL CDR driver configuration
415  * \arg See also \ref cdrconf
416  * \arg \ref cdr_pgsql.c
417  * See also:
418  * \arg http://www.postgresql.org
419  * \verbinclude cdr_pgsql.conf.sample
420  */
421
422 /*! \page cdr_sqlite SQLite CDR driver configuration
423  * \arg See also \ref cdrconf
424  * \arg \ref cdr_sqlite.c
425  * See also:
426  * \arg http://www.sqlite.org
427  */
428
429 /*! \page cdr_tds FreeTDS CDR driver configuration
430  * \arg See also \ref cdrconf
431  * See also:
432  * \arg http://www.freetds.org
433  * \verbinclude cdr_tds.conf.sample
434  */
435
436 /*! \page Config_cdr CDR configuration
437  * \par See also
438  * \arg \ref cdr_drivers
439  * \arg \link Config_cdr CDR configuration  \endlink  
440  * \arg \link cdr_custom Custom CDR driver configuration \endlink
441  * \arg \link cdr_ami Manager CDR driver configuration \endlink
442  * \arg \link cdr_odbc ODBC CDR driver configuration \endlink
443  * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink
444  * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink
445  * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink
446  * \verbinclude cdr.conf.sample
447  */
448
449 /*! \page Config_moh Music on Hold Configuration
450  * \arg Implemented in \ref res_musiconhold.c
451  * \section mohconf musiconhold.conf
452  * \verbinclude musiconhold.conf.sample
453  */
454
455 /*! \page Config_adsi ADSI Configuration
456  * \section adsiconf adsi.conf
457  * \verbinclude adsi.conf.sample
458  */
459
460 /*! \page Config_codec CODEC Configuration
461  * \section codecsconf codecs.conf
462  * \verbinclude codecs.conf.sample
463  */
464
465 /*! \page Config_ara REALTIME Configuration
466  * \arg See also: \arg \link AstARA \endlink
467  * \section extconf extconfig.conf
468  * \verbinclude extconfig.conf.sample
469  */
470
471 /*! \page Config_ami AMI configuration
472  * \arg See also: \arg \link AstAMI \endlink
473  * \section amiconf manager.conf
474  * \verbinclude manager.conf.sample
475  */
476
477 /*! \page Config_qu ACD - Queue system configuration
478  * \arg Implemented in \ref app_queue.c
479  * \section quconf queues.conf
480  * \verbinclude queues.conf.sample
481  */
482
483 /*! \page Config_mm Meetme - The conference bridge configuration
484  * \arg Implemented in \ref app_meetme.c
485  * \section mmconf meetme.conf
486  * \verbinclude meetme.conf.sample
487  */
488
489 /*! \page SoundFiles Sound files
490  *  \section SecSound Asterisk Sound files
491  *  Asterisk includes a large number of sound files. Many of these
492  *  are used by applications and demo scripts within asterisk.
493  *
494  *  Additional sound files are available in the asterisk-addons
495  *  repository on svn.digium.com
496  */
497
498 /*! \addtogroup cdr_drivers Module: CDR Drivers
499  *  \section CDR_generic Asterisk CDR Drivers
500  *  \brief CDR drivers are loaded dynamically (see \ref Config_mod "Modules Configuration"). Each loaded CDR driver produce a billing record for each call.
501  *  \arg \ref Config_cdr "CDR Configuration"
502  */
503
504
505 /*! \addtogroup channel_drivers Module: Asterisk Channel Drivers
506  *  \section channel_generic Asterisk Channel Drivers
507  *  \brief Channel drivers are loaded dynamically (see \ref Config_mod "Modules Configuration"). 
508  */
509
510 /*! \addtogroup applications Module: Dial plan applications
511  *  \section app_generic Asterisk Dial Plan Applications
512  *  \brief Applications support the dialplan. They register dynamically with \ref ast_register_application() and unregister with ast_unregister_application()
513  * \par See also
514  * \arg \ref functions
515  *  
516  */
517
518 /*! \addtogroup functions Module: Dial plan functions
519  *  \section func_generic Asterisk Dial Plan Functions
520  *  \brief Functions support the dialplan.  They do not change any property of a channel
521  *  or touch a channel in any way.
522  * \par See also
523  * \arg \ref applications
524  *  
525  */
526
527 /*! \addtogroup codecs Module: Codecs
528  *  \section codec_generic Asterisk Codec Modules
529  *  Codecs are referenced in configuration files by name 
530  *  \par See also 
531  *  \arg \ref formats 
532  *
533  */
534
535 /*! \addtogroup formats Module: Media File Formats 
536  *  \section codec_generic Asterisk Format drivers
537  *  Formats are modules that read or write media files to disk.
538  *  \par See also
539  *  \arg \ref codecs 
540  */
541
542 /*! \page AstHTTP AMI over HTTP support
543  * The http.c file includes support for manager transactions over
544  * http.
545  *  \section ami AMI - The manager Interface
546  *  \arg \link Config_ami Configuration file \endlink
547  *  \verbinclude ajam.txt
548  */
549