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