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