f58dd8cfc2ef21cca4df57aa4f882e275cb46a72
[asterisk/asterisk.git] / include / asterisk / doxyref.h
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 1999 - 2008, 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  * \brief This file generates Doxygen pages from files in the /doc
20  *        directory of the Asterisk source code tree 
21  */
22
23 /* 
24  * The following is for Doxygen Developer's documentation generated
25  * by running "make progdocs" with doxygen installed on your
26  * system.
27  */
28
29 /*! 
30  * \page DevDoc Asterisk Developer's Documentation - Appendices
31  *
32  * \section devpolicy Development and Release Policies
33  * \arg \ref CodeGuide : The must-read document for all developers
34  * \arg \ref CommitMessages : Information on formatting and special tags for commit messages
35  * \arg \ref ReleaseStatus : The current support level for various Asterisk releases
36  * \arg \ref ReleasePolicies : Asterisk Release and Commit Policies
37  * \arg \ref AstCREDITS : A Thank You to contributors (unfortunately out of date)
38  *
39  * \section apisandinterfaces Asterisk APIs and Interfaces
40  * \arg \ref AstAPI
41  * \arg \ref AstAPIChanges
42  * \arg \ref Def_Channel : What's a channel, anyway?
43  * \arg \ref channel_drivers : Existing channel drivers
44  * \arg \ref AstAMI : The Call management socket API
45  * \arg \ref AstARA : A generic data storage and retrieval API for Asterisk
46  * \arg \ref AstDUNDi : A way to find phone services dynamically by using the DUNDi protocol
47  * \arg \ref AJI_intro : The Asterisk Jabber Interface
48  * \arg \ref AstCDR
49  * \arg \ref AstVar
50  * \arg \ref AstVideo
51  * \arg \ref AstENUM : The IETF way to redirect from phone numbers to VoIP calls
52  * \arg \ref AstHTTP
53  * \arg \ref AstSpeech
54  *
55  * \section debugconfig Debugging and Configuration References
56  * \arg \ref AstREADME : General Administrator README file
57  * \arg \ref AstDebug : Hints on debugging
58  * \arg \ref extref 
59  * \arg \ref ConfigFiles
60  * \arg \ref SoundFiles included in the Asterisk distribution
61  *
62  * \section weblinks Web sites
63  * \arg \b Main:  Asterisk Developer's website http://www.asterisk.org/developers/
64  * \arg \b Bugs: The Issue Tracker http://bugs.digium.com
65  * \arg \b Lists: List Server http://lists.digium.com
66  * \arg \b Wiki: The Asterisk Wiki      http://www.voip-info.org
67  * \arg \b Docs: The Asterisk Documentation Project http://www.asteriskdocs.org
68  * \arg \b Digium: The Asterisk Company http://www.digium.com
69  */
70
71 /*!
72  * \page ReleaseStatus Asterisk Release Status
73  *
74  * @AsteriskTrunkWarning
75  *
76  * \section warranty Warranty
77  * The following warranty applies to all open source releases of Asterisk:
78  *
79  * NO WARRANTY
80  *
81  * BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
82  * FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
83  * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
84  * PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
85  * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
86  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
87  * TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
88  * PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
89  * REPAIR OR CORRECTION.
90
91  * IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
92  * WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
93  * REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
94  * INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
95  * OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
96  * TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
97  * YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
98  * PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
99  * POSSIBILITY OF SUCH DAMAGES.
100  *
101  * \section releasestatustypes Release Status Types
102  *
103  * Release management is a essentially an agreement between the development
104  * community and the %user community on what kind of updates can be expected
105  * for Asterisk releases, and what types of changes these updates will contain.
106  * Once these policies are established, the development community works very
107  * hard to adhere to them.  However, the development community does reserve
108  * the right to make exceptions to these rules for special cases as the need
109  * arises.
110  *
111  * Asterisk releases are in various states of maintenance.  The states are
112  * defined here:
113  *
114  * \arg <b>None</b> - This release series is receiving no updates whatsoever.
115  * \arg <b>Security-Only</b> - This release series is receiving updates, but
116  *      only to address security issues.  Security issues found and fixed in
117  *      this release series will be accompanied by a published security advisory
118  *      from the Asterisk project.
119  * \arg <b>Full-Support</b> - This release series is receiving updates for all
120  *      types of bugs.
121  * \arg <b>Full-Development</b> - Changes in this part of Asterisk include bug
122  *      fixes, as well as new %features and architectural improvements.
123  *
124  * \section AsteriskReleases Asterisk Maintenance Levels
125  *
126  * \htmlonly
127  * <table border="1">
128  *  <tr>
129  *   <td><b>Name</b></td>
130  *   <td><b>SVN Branch</b></td>
131  *   <td><b>Status</b></td>
132  *   <td><b>Notes</b></td>
133  *  </tr>
134  *  <tr>
135  *   <td>Asterisk 1.0</td>
136  *   <td>/branches/1.0</td>
137  *   <td>None</td>
138  *  </tr>
139  *  <tr>
140  *   <td>Asterisk 1.2</td>
141  *   <td>/branches/1.2</td>
142  *   <td>Security-Only</td>
143  *  </tr>
144  *  <tr>
145  *   <td>Asterisk 1.4</td>
146  *   <td>/branches/1.4</td>
147  *   <td>Full-Support</td>
148  *  </tr>
149  *  <tr>
150  *   <td>Asterisk 1.6.0</td>
151  *   <td>/branches/1.6.0</td>
152  *   <td>Full-Support</td>
153  *  </tr>
154  *  <tr>
155  *   <td>Asterisk 1.6.1</td>
156  *   <td>/branches/1.6.1</td>
157  *   <td>Full-Support</td>
158  *   <td>Still in beta</td>
159  *  </tr>
160  *  <tr>
161  *   <td>Asterisk trunk</td>
162  *   <td>/trunk</td>
163  *   <td>Full-Development</td>
164  *   <td>No releases are made directly from trunk.</td>
165  *  </tr>
166  * </table>
167  * \endhtmlonly
168  *
169  * For more information on how and when Asterisk releases are made, see the
170  * release policies page:
171  * \arg \ref ReleasePolicies
172  */
173
174 /*!
175  * \page ReleasePolicies Asterisk Release and Commit Policies
176  *
177  * \AsteriskTrunkWarning
178  *
179  * \section releasestatus Asterisk Release Status
180  *
181  * For more information on the current status of each Asterisk release series,
182  * please see the Asterisk Release Status page:
183  *
184  * \arg \ref ReleaseStatus
185  *
186  * <hr/>
187  *
188  * \section commitmonitoring Commit Monitoring
189  *
190  * To monitor commits to Asterisk and related projects, visit 
191  * <a href="http://lists.digium.com/">http://lists.digium.com</a>.  The Digium
192  * mailing list server hosts a %number of mailing lists for commits.
193  *
194  * <hr/>
195  *
196  * \section ast10policy Asterisk 1.0
197  *
198  * \subsection svnbranch SVN Branch
199  *
200  * \arg /branches/1.0
201  *
202  * \subsection ast10releases Release and Commit Policy
203  * No more releases of Asterisk 1.0 will be made for any reason.
204  *
205  * No commits should be made to the Asterisk 1.0 branch.
206  * 
207  * <hr/>
208  *
209  * \section ast12policy Asterisk 1.2
210  *
211  * \subsection svnbranch SVN Branch
212  *
213  * \arg /branches/1.2
214  *
215  * \subsection ast12releases Release and Commit Policy
216  *
217  * There will be no more scheduled releases of Asterisk 1.2.
218  * 
219  * Commits to the Asterisk 1.2 branch should only address security issues or
220  * regressions introduced by previous security fixes.  For a security issue, the
221  * commit should be accompanied by an 
222  * <a href="http://downloads.digium.com/pub/security/">Asterisk Security Advisory</a>
223  * and an immediate release.  When a commit goes in to fix a regression, the previous
224  * security advisory that is related to the change that introduced the bug should get
225  * updated to indicate that there is an updated version of the fix.  A release should
226  * be made immediately for these regression fixes, as well.
227  *
228  * <hr/>
229  *
230  * \section ast14policy Asterisk 1.4
231  *
232  * \subsection svnbranch SVN Branch
233  *
234  * \arg /branches/1.4
235  *
236  * \subsection ast14releases Release and Commit Policy
237  *
238  * Asterisk 1.4 is receiving regular bug fix release updates.  An attempt is made to
239  * make releases of every four to six weeks.  Since this release series is receiving
240  * changes for all types of bugs, the number of changes in a single release can be
241  * significant.  1.4.X releases go through a release candidate testing cycle to help
242  * catch any regressions that may have been introduced.
243  *
244  * Commits to Asterisk 1.4 must be to address bugs only.  No new %features should be
245  * introduced into Asterisk 1.4 to reduce the %number of changes to this established
246  * release series.  The only exceptions to this %rule are for cases where something
247  * that may be considered a feature is needed to address a bug or security issue.
248  *
249  * <hr/>
250  *
251  * \section ast16policy Asterisk 1.6
252  *
253  * \subsection svnbranch SVN Branch
254  *
255  * \arg /branches/1.6.*
256  *
257  * \subsection ast16releases Release and Commit Policy
258  *
259  * Asterisk 1.6 is managed in a different way than previous Asterisk release series.
260  * From a high level, it was inspired by the release model used for Linux 2.6.
261  * The intended time frame for 1.6.X releases is every 2 or 3 months.  Each 1.6.X
262  * release gets its own branch.  The 1.6.X branches are branches off of trunk.
263  * Once the branch is created, it only receives bug fixes.  Each 1.6.X release goes
264  * through a beta and release candidate testing cycle.
265  *
266  * After a 1.6.X release is published, it will be maintained until 1.6.[X + 3] is
267  * released.  While a 1.6.X release branch is still maintained, it will receive only
268  * bug fixes.  Periodic maintenance releases will be made and labeled as 1.6.X.Y.
269  * 1.6.X.Y releases should go through a release candidate test cycle before being
270  * published.
271  *
272  * For now, all previous 1.6 release will be maintained for security issues.  Once
273  * we have more 1.6 releases to deal with, this part of the policy will likely change.
274  * 
275  * For some history on the motivations for Asterisk 1.6 release management, see the
276  * first two sections of this
277  * <a href="http://lists.digium.com/pipermail/asterisk-dev/2007-October/030083.html">mailing list post</a>.
278  *
279  * <hr/>
280  *
281  * \section asttrunk Asterisk Trunk
282  *
283  * \subsection svnbranch SVN Branch
284  *
285  * \arg /trunk
286  *
287  * \subsection asttrunkpolicy Release and Commit Policy
288  *
289  * No releases are ever made directly from Asterisk trunk.
290  *
291  * Asterisk trunk is used as the main development area for upcoming Asterisk 1.6 
292  * releases.  Commits to Asterisk trunk are not limited.  They can be bug fixes,
293  * new %features, and architectural improvements.  However, for larger sets
294  * of changes, developers should work with the Asterisk project leaders to
295  * schedule them for inclusion.  Care is taken not to include too many invasive
296  * sets of changes for each new Asterisk 1.6 release.
297  *
298  * No changes should go into Asterisk trunk that are not ready to go into a
299  * release.  While the upcoming release will go through a beta and release
300  * candidate test cycle, code should not be in trunk until the code has been
301  * tested and reviewed such that there is reasonable belief that the code
302  * is ready to go.
303  *
304  * <hr/>
305  *
306  * \section astteam Asterisk Team Branches
307  *
308  * \subsection svnbranch SVN Branch
309  *
310  * \arg /team/&lt;developername&gt;
311  *
312  * \subsection astteampolicy Release and Commit Policy
313  *
314  * The Asterisk subversion repository has a special directory called "team"
315  * where developers can make their own personal development branches.  This is
316  * where new %features, bug fixes, and architectural improvements are developed
317  * while they are in %progress.
318  *
319  * Just about anything goes as far as commits to this area goes.  However,
320  * developers should keep in mind that anything committed here, as well as
321  * anywhere else on Digium's SVN server, falls under the contributor license
322  * agreement.
323  *
324  * In addition to each developer having their own space for working on projects,
325  * there is also a team/group folder where %group development efforts take place.
326  *
327  * Finally, in each developer folder, there is a folder called "private".  This
328  * is where developers can create branches for working on things that they are
329  * not ready for the whole world to see.
330  */
331
332 /*! 
333  * \page CodeGuide Coding Guidelines
334  * \AsteriskTrunkWarning
335  * \section Coding Guidelines
336  * This file is in the /doc directory in your Asterisk source tree.
337  * Make sure to stay up to date with the latest guidelines.
338  * \verbinclude CODING-GUIDELINES
339  */
340
341 /*!
342  * \page CommitMessages Guidelines for Commit Messages
343  *
344  * \AsteriskTrunkWarning
345  *
346  * <hr/>
347  *
348  * \section CommitMsgFormatting Commit Message Formatting
349  *
350  * The following illustrates the basic outline for commit messages:
351  *
352   \verbatim
353   <One-liner summary of changes>
354  
355   <Verbose description of the changes>
356
357   <Special Tags>
358   \endverbatim
359  *
360  * Some commit history viewers treat the first line of commit messages as the
361  * summary for the commit.  So, an effort should be made to format our commit
362  * messages in that fashion.  The verbose description may contain multiple 
363  * paragraphs, itemized lists, etc. Always end the first sentence (and any
364  * subsequent sentences) with punctuation.
365  *
366  * Commit messages should be wrapped at 80 %columns.
367  *
368  * \note For trivial commits, such as "fix the build", or "fix spelling mistake",
369  *       the verbose description may not be necessary.
370  *
371  * <hr/>
372  *
373  * \section CommitMsgTags Special Tags for Commit Messages
374  *
375  * \subsection MantisTags Mantis (http://bugs.digium.com/)
376  *
377  * To have a commit noted in an issue, use a tag of the form: 
378  * \arg (issue #1234)
379  *
380  * To have a commit automatically close an issue, use a tag of the form:
381  * \arg (closes issue #1234)
382  *
383  * When making a commit for a mantis issue, it is easiest to use the
384  * provided commit %message template functionality.  It will format the
385  * special tags appropriately, and will also include information about who
386  * reported the issue, which patches are being applied, and who did testing.
387  * 
388  * Assuming that you have bug marshal access (and if you have commit access,
389  * it is pretty safe to assume that you do), you will find the commit %message
390  * template section directly below the issue details section and above the
391  * issue relationships section.  You will have to click the '+' next to
392  * "Commit message template" to make the contents of the section visible.
393  *
394  * Here is an example of what the template will generate for you:
395  *
396   \verbatim
397   (closes issue #1234)
398   Reported by: SomeGuy
399   Patches:
400        fix_bug_1234.diff uploaded by SomeDeveloper (license 5678)
401   \endverbatim
402  *
403  * If the patch being committed was written by the person doing the commit,
404  * and is not available to reference as an upload to the issue, there is no
405  * need to include something like "fixed by me", as that will be the default
406  * assumption when a specific patch is not referenced.
407  *
408  * \subsection ReviewBoardTags Review Board (http://reviewboard.digium.com/)
409  *
410  * To have a commit set a review request as submitted, include the full URL
411  * to the review request.  For example:
412  * \arg Review: %http://reviewboard.digium.com/r/95/
413  *
414  * \note The trailing slash in the review URL is required.
415  *
416  * <hr/>
417  *
418  * \section CommitMsgSvnmerge Commit Messages with svnmerge
419  *
420  * When using the svnmerge tool for merging changes between branches, use the
421  * commit %message generated by svnmerge.  The '-f' option to svnmerge allows
422  * you to specify a file for svnmerge to write out a commit %message to.  The
423  * '-F' option to svn commit allows you to specify a file that contains the
424  * commit %message.
425  *
426  * If you are using the expect script wrappers for svnmerge from repotools,
427  * a commit %message is automatically placed in the file '../merge.msg'.
428  *
429  * For more detailed information about working with branches and merging,
430  * see the following page on %asterisk.org:
431  * \arg http://www.asterisk.org/developers/svn-branching-merging
432  */
433
434 /*! 
435  * \page AstAPI Asterisk API
436  * \section Asteriskapi Asterisk API
437  * Some generic documents on the Asterisk architecture
438  *
439  * \arg \ref AstThreadStorage
440  * \arg \ref DataStores
441  * \arg \ref AstExtState
442  *
443  * \subsection model_txt Generic Model
444  * \verbinclude model.txt
445  * \subsection channel_txt Channels
446  * \arg See \ref Def_Channel
447  */
448
449 /*! \page AstAPIChanges Asterisk API Changes
450  *  \section Changes161 Version 1.6.1
451  *  \li ast_install_vm_functions()
452  *  \li vmwi_generate()
453  *  \li ast_channel_datastore_alloc()
454  *  \li ast_channel_datastore_free()
455  *  \li ast_channel_cmpwhentohangup()
456  *  \li ast_channel_setwhentohangup()
457  *  \li ast_settimeout()
458  *  \li ast_datastore_alloc()
459  *  \li ast_datastore_free()
460  *  \li ast_device_state_changed()
461  *  \li ast_device_state_changed_literal()
462  *  \li ast_dnsmgr_get()
463  *  \li ast_dnsmgr_lookup()
464  *  \li ast_dsp_set_digitmode()
465  *  \li ast_get_txt()
466  *  \li ast_event_unsubscribe()
467  *  \li localized_context_find_or_create()
468  *  \li localized_merge_contexts_and_delete()
469  *  \li ast_console_puts_mutable()
470  *  \li ast_rtp_get_quality()
471  *  \li ast_tcptls_client_start()
472  *  \li ast_tcptls_server_start()
473  *  \li ast_tcptls_server_stop()
474  */
475
476 /*! 
477  * \page AstDebug Debugging
478  * \section debug Debugging
479  * \verbinclude backtrace.txt
480  */
481
482 /*!
483  * \page AstSpeech The Generic Speech Recognition API
484  * \section debug The Generic Speech Recognition API
485  * \verbinclude speechrec.txt
486  */
487
488 /*! 
489  * \page DataStores Channel Data Stores
490  * \section debug Channel Data Stores
491  * \verbinclude datastores.txt
492  */
493
494 /*! 
495  * \page AstAMI AMI - The Manager Interface
496  * \section ami AMI - The manager Interface
497  * \arg \link Config_ami Configuration file \endlink
498  * \arg \ref manager.c
499  * \verbinclude manager.txt
500  */
501
502 /*!
503  * \page AstARA ARA - The Asterisk Realtime Interface
504  * \section realtime ARA - a generic API to storage and retrieval
505  * Implemented in \ref config.c 
506  * Implemented in \ref pbx_realtime.c 
507  * \verbinclude realtime.txt
508  * \verbinclude extconfig.txt
509  */
510
511 /*! 
512  * \page AstDUNDi DUNDi
513  *
514  * DUNDi is a peer-to-peer system for locating Internet gateways to telephony 
515  * services. Unlike traditional centralized services (such as the remarkably 
516  * simple and concise ENUM standard), DUNDi is fully-distributed with no 
517  * centralized authority whatsoever.
518  *
519  * DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, 
520  * it publishes routes which are in turn accessed via industry standard 
521  * protocols such as IAX, SIP and H.323. 
522  *
523  * \par References
524  * \arg DUNDi is documented at http://www.dundi.com
525  * \arg Implemented in \ref pbx_dundi.c and \ref dundi-parser.c
526  * \arg Configuration in \link Config_dun dundi.conf \endlink
527  */
528
529 /*! 
530  * \page AstCDR CDR - Call Data Records and billing
531  * \section cdr Call Data Records
532  * \par See also
533  * \arg \ref cdr.c
534  * \arg \ref cdr_drivers
535  * \arg \ref Config_cdr CDR configuration files
536  *
537  * \verbinclude cdrdriver.txt
538  */
539
540 /*! 
541  * \page AstREADME README
542  * \verbinclude README
543  */
544  
545 /*! 
546  * \page AstCREDITS CREDITS
547  * \verbinclude CREDITS
548  */
549
550 /*! 
551  * \page AstVideo Video support in Asterisk
552  * \section sectAstVideo Video support in Asterisk
553  * \verbinclude video.txt
554  */
555
556 /*! 
557  * \page AstVar Globally predefined channel variables
558  * \section globchan Globally predefined channel variables
559  *
560  * More and more of these variables are being replaced by dialplan functions.
561  * Some still exist though and some that does still exist needs to move to
562  * dialplan functions.
563  *
564  * See also
565  * - \ref pbx_retrieve_variable()
566  * - \ref AstChanVar
567  *
568  *  \verbinclude channelvariables.tex
569  */
570
571 /*! 
572  * \page AstChanVar Asterisk Dialplan Variables
573  *      Asterisk Dialplan variables are divided into three groups:
574  *      - Predefined global variables, handled by the PBX core
575  *      - Global variables, that exist for the duration of the pbx execution
576  *      - Channel variables, that exist during a channel
577  *
578  * Global variables are reachable in all channels, all of the time.
579  * Channel variables are only reachable within the channel.
580  *
581  * For more information on the predefined variables, see \ref AstVar
582  * 
583  * Global and Channel variables:
584  * - Names are Case insensitive
585  * - Names that start with a character, but are alphanumeric
586  * - Global variables are defined and reached with the GLOBAL() dialplan function
587  *   and the set application, like
588  *
589  *      exten => 1234,1,set(GLOBAL(myvariable)=tomteluva)
590  *
591  *      - \ref func_global.c
592  *
593  * - Channel variables are defined with the set() dialplan application
594  *
595  *      exten => 1234,1,set(xmasattribute=tomtegröt)
596  *
597  * - Some channels also supports setting channel variables with the \b setvar=
598  *   configuraiton option for a device or line.
599  *
600  * \section AstChanVar_globalvars Global Variables
601  * Global variables can also be set in the [globals] section of extensions.conf. The
602  * setting \b clearglobalvars in extensions.conf [general] section affects whether
603  * or not the global variables defined in \b globals are reset at dialplan reload.
604  * 
605  * There are CLI commands to change and read global variables. This can be handy
606  * to reset counters at midnight from an external script.
607  *
608  * \section AstChanVar_devnotes Developer notes
609  * Variable handling is managed within \ref pbx.c
610  * You need to include pbx.h to reach these functions.
611  *      - \ref pbx_builtin_setvar_helper()
612  *      - \ref pbx_builtin_getvar_helper()
613  *
614  * The variables is a linked list stored in the channel data structure
615  * with the list starting at varshead in struct ast_channel
616  */
617
618 /*! 
619  * \page AstENUM ENUM
620  * \section enumreadme ENUM
621  * \arg Configuration: \ref Config_enum
622  * \arg \ref enum.c
623  * \arg \ref func_enum.c
624  *
625  * \verbinclude enum.txt
626  */
627
628 /*! 
629  * \page ConfigFiles Configuration files
630  * \section config Main configuration files
631  * \arg \link Config_ast asterisk.conf - the main configuration file \endlink
632  * \arg \link Config_ext extensions.conf - The Dial Plan \endlink
633  * \arg \link Config_mod modules.conf - which modules to load and not to load \endlink
634  * \arg \link Config_fea features.conf - call features (transfer, parking, etc) \endlink
635  * \section chanconf Channel configuration files
636  * \arg \link Config_iax IAX2 configuration  \endlink
637  * \arg \link Config_sip SIP configuration  \endlink
638  * \arg \link Config_mgcp MGCP configuration  \endlink
639  * \arg \link Config_rtp RTP configuration  \endlink
640  * \arg \link Config_dahdi DAHDI configuration  \endlink
641  * \arg \link Config_oss OSS (sound card) configuration  \endlink
642  * \arg \link Config_alsa ALSA (sound card) configuration  \endlink
643  * \arg \link Config_agent Agent (proxy channel) configuration  \endlink
644  * \arg \link Config_misdn MISDN Experimental ISDN BRI channel configuration  \endlink
645  * \arg \link Config_h323 H.323 configuration  \endlink
646  * \section appconf Application configuration files
647  * \arg \link Config_mm Meetme (conference bridge) configuration  \endlink
648  * \arg \link Config_qu Queue system configuration  \endlink
649  * \arg \link Config_vm Voicemail configuration  \endlink
650  * \arg \link Config_followme Followme configuration  \endlink
651  * \section cdrconf CDR configuration files
652  * \arg \link Config_cdr CDR configuration  \endlink
653  * \arg \link cdr_custom Custom CDR driver configuration \endlink
654  * \arg \link cdr_ami Manager CDR driver configuration \endlink
655  * \arg \link cdr_odbc ODBC CDR driver configuration \endlink
656  * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink
657  * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink
658  * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink
659  * \section miscconf Miscellenaous configuration files
660  * \arg \link Config_adsi ADSI configuration  \endlink
661  * \arg \link Config_ami AMI - Manager configuration  \endlink
662  * \arg \link Config_ara Realtime configuration  \endlink
663  * \arg \link Config_codec Codec configuration  \endlink
664  * \arg \link Config_dun DUNDi configuration  \endlink
665  * \arg \link Config_enum ENUM configuration  \endlink
666  * \arg \link Config_moh Music on Hold configuration  \endlink
667  * \arg \link Config_vm Voicemail configuration  \endlink
668  * \arg \link res_config_sqlite SQLite Resource driver configuration \endlink
669  */
670
671 /*! 
672  * \page Config_ast Asterisk.conf
673  * \verbinclude asterisk-conf.txt
674  */
675
676 /*! 
677  * \page Config_mod Modules configuration
678  * All res_ resource modules are loaded with globals on, which means
679  * that non-static functions are callable from other modules.
680  *
681  * If you want your non res_* module to export functions to other modules
682  * you have to include it in the [global] section.
683  * \verbinclude modules.conf.sample
684  */
685
686 /*! 
687  * \page Config_fea Call features configuration
688  * \par See also
689  * \arg \ref res_features.c : Call feature implementation
690  * \section featconf features.conf
691  * \verbinclude features.conf.sample
692  */
693
694 /*! 
695  * \page Config_followme Followme: An application for simple follow-me calls
696  * \section followmeconf Followme.conf
697  * - See app_followme.c
698  * \verbinclude followme.conf.sample
699  */
700
701 /*! 
702  * \page Config_ext Extensions.conf - the Dial Plan
703  * \section dialplan Extensions.conf 
704  * \verbinclude extensions.conf.sample
705  */
706
707 /*! 
708  * \page Config_iax IAX2 configuration
709  * IAX2 is implemented in \ref chan_iax2.c
710  * \arg \link Config_iax iax.conf Configuration file example \endlink
711  * \section iaxreadme IAX readme file
712  * \verbinclude iax.txt
713  * \section Config_iax IAX Configuration example
714  * \verbinclude iax.conf.sample
715  * \section iaxjitter IAX Jitterbuffer information
716  * \verbinclude jitterbuffer.txt
717  */
718
719 /*! 
720  * \page Config_iax IAX configuration
721  * \arg Implemented in \ref chan_iax2.c
722  * \section iaxconf iax.conf
723  * \verbinclude iax.conf.sample
724  */
725
726 /*! 
727  * \page Config_sip SIP configuration
728  * Also see \ref Config_rtp RTP configuration
729  * \arg Implemented in \ref chan_sip.c
730  * \section sipconf sip.conf
731  * \verbinclude sip.conf.sample
732  *
733  * \arg \b Back \ref chanconf
734  */
735
736 /*! 
737  * \page Config_mgcp MGCP configuration
738  * Also see \ref Config_rtp RTP configuration
739  * \arg Implemented in \ref chan_mgcp.c
740  * \section mgcpconf mgcp.conf
741  * \verbinclude mgcp.conf.sample
742  */
743
744 /*! 
745  * \page README_misdn MISDN documentation
746  * \arg See \ref Config_misdn
747  * \section mISDN configuration
748  * \verbinclude misdn.txt
749  */
750
751 /*! 
752  * \page Config_misdn MISDN configuration
753  * \arg Implemented in \ref chan_misdn.c
754  * \arg \ref README_misdn
755  * \arg See the mISDN home page: http://www.isdn4linux.de/mISDN/
756  * \section misdnconf misdn.conf
757  * \verbinclude misdn.conf.sample
758  */
759
760 /*! 
761  * \page Config_vm VoiceMail configuration
762  * \section vmconf voicemail.conf
763  * \arg Implemented in \ref app_voicemail.c
764  * \verbinclude voicemail.conf.sample
765  */
766
767 /*! 
768  * \page Config_dahdi DAHDI configuration
769  * \section dahdiconf dahdi.conf
770  * \arg Implemented in \ref chan_dahdi.c
771  * \verbinclude dahdi.conf.sample
772  */
773
774 /*! 
775  * \page Config_h323 H.323 channel driver information
776  * This is the configuration of the H.323 channel driver within the Asterisk
777  * distribution. There's another one, called OH323, in asterisk-addons
778  * \arg Implemented in \ref chan_h323.c
779  * \section h323conf h323.conf
780  * \ref chan_h323.c
781  */
782
783 /*! 
784  * \page Config_oss OSS configuration
785  * \section ossconf oss.conf
786  * \arg Implemented in \ref chan_oss.c
787  * \verbinclude oss.conf.sample
788  */
789
790 /*! 
791  * \page Config_alsa ALSA configuration
792  * \section alsaconf alsa.conf
793  * \arg Implemented in \ref chan_alsa.c
794  * \verbinclude alsa.conf.sample
795  */
796
797 /*! 
798  * \page Config_agent Agent configuration
799  * \section agentconf agents.conf
800  * The agent channel is a proxy channel for queues
801  * \arg Implemented in \ref chan_agent.c
802  * \verbinclude agents.conf.sample
803  */
804
805 /*! 
806  * \page Config_rtp RTP configuration
807  * \arg Implemented in \ref rtp.c
808  * Used in \ref chan_sip.c and \ref chan_mgcp.c (and various H.323 channels)
809  * \section rtpconf rtp.conf
810  * \verbinclude rtp.conf.sample
811  */
812
813 /*! 
814  * \page Config_dun DUNDi Configuration
815  * \arg See also \ref AstDUNDi
816  * \section dundiconf dundi.conf
817  * \verbinclude dundi.conf.sample
818  */
819
820 /*! 
821  * \page Config_enum ENUM Configuration
822  * \section enumconf enum.conf
823  * \arg See also \ref enumreadme
824  * \arg Implemented in \ref func_enum.c and \ref enum.c
825  * \verbinclude enum.conf.sample
826  */
827
828 /*! 
829  * \page cdr_custom Custom CDR Configuration
830  * \par See also 
831  * \arg \ref cdrconf
832  * \arg \ref cdr_custom.c
833  * \verbinclude cdr_custom.conf.sample
834  */
835
836 /*! 
837  * \page cdr_ami Manager CDR driver configuration
838  * \par See also 
839  * \arg \ref cdrconf
840  * \arg \ref AstAMI
841  * \arg \ref cdr_manager.c
842  * \verbinclude cdr_manager.conf.sample
843  */
844
845 /*! 
846  * \page cdr_odbc ODBC CDR driver configuration
847  * \arg See also \ref cdrconf
848  * \arg \ref cdr_odbc.c
849  * \verbinclude cdr_odbc.conf.sample
850  * See also:
851  * \arg http://www.unixodbc.org
852  */
853
854 /*! 
855  * \page cdr_pgsql PostgreSQL CDR driver configuration
856  * \arg See also \ref cdrconf
857  * \arg \ref cdr_pgsql.c
858  * See also:
859  * \arg http://www.postgresql.org
860  * \verbinclude cdr_pgsql.conf.sample
861  */
862
863 /*! 
864  * \page cdr_sqlite SQLite CDR driver configuration
865  * \arg See also \ref cdrconf
866  * \arg \ref cdr_sqlite.c
867  * See also:
868  * \arg http://www.sqlite.org
869  */
870
871 /*! 
872  * \page cdr_tds FreeTDS CDR driver configuration
873  * \arg See also \ref cdrconf
874  * See also:
875  * \arg http://www.freetds.org
876  * \verbinclude cdr_tds.conf.sample
877  */
878
879 /*! 
880  * \page Config_cdr CDR configuration
881  * \par See also
882  * \arg \ref cdr_drivers
883  * \arg \link Config_cdr CDR configuration  \endlink  
884  * \arg \link cdr_custom Custom CDR driver configuration \endlink
885  * \arg \link cdr_ami Manager CDR driver configuration \endlink
886  * \arg \link cdr_odbc ODBC CDR driver configuration \endlink
887  * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink
888  * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink
889  * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink
890  * \verbinclude cdr.conf.sample
891  */
892
893 /*! 
894  * \page Config_moh Music on Hold Configuration
895  * \arg Implemented in \ref res_musiconhold.c
896  * \section mohconf musiconhold.conf
897  * \verbinclude musiconhold.conf.sample
898  */
899
900 /*! 
901  * \page Config_adsi ADSI Configuration
902  * \section adsiconf adsi.conf
903  * \verbinclude adsi.conf.sample
904  */
905
906 /*! 
907  * \page Config_codec CODEC Configuration
908  * \section codecsconf codecs.conf
909  * \verbinclude codecs.conf.sample
910  */
911
912 /*! 
913  * \page Config_ara REALTIME Configuration
914  * \arg See also: \arg \link AstARA \endlink
915  * \section extconf extconfig.conf
916  * \verbinclude extconfig.conf.sample
917  */
918
919 /*! 
920  * \page Config_ami AMI configuration
921  * \arg See also: \arg \link AstAMI \endlink
922  * \section amiconf manager.conf
923  * \verbinclude manager.conf.sample
924  */
925
926 /*! 
927  * \page Config_qu ACD - Queue system configuration
928  * \arg Implemented in \ref app_queue.c
929  * \section quconf queues.conf
930  * \verbinclude queues.conf.sample
931  */
932
933 /*! 
934  * \page Config_mm Meetme - The conference bridge configuration
935  * \arg Implemented in \ref app_meetme.c
936  * \section mmconf meetme.conf
937  * \verbinclude meetme.conf.sample
938  */
939
940 /*! 
941  * \page SoundFiles Sound files
942  * \section SecSound Asterisk Sound files
943  * Asterisk includes a large number of sound files. Many of these
944  * are used by applications and demo scripts within asterisk.
945  *
946  * Additional sound files are available in the asterisk-addons
947  * repository on svn.digium.com
948  */
949
950 /*! 
951  * \addtogroup cdr_drivers Module: CDR Drivers
952  * \section CDR_generic Asterisk CDR Drivers
953  * \brief CDR drivers are loaded dynamically, each loaded CDR driver produce 
954  *        a billing record for each call.
955  * \arg \ref Config_mod "Modules Configuration"
956  * \arg \ref Config_cdr "CDR Configuration"
957  */
958
959
960 /*! 
961  * \addtogroup channel_drivers Module: Asterisk Channel Drivers
962  * \section channel_generic Asterisk Channel Drivers
963  * \brief Channel drivers are loaded dynamically. 
964  * \arg \ref Config_mod "Modules Configuration"
965  */
966
967 /*! 
968  * \addtogroup applications Module: Dial plan applications
969  * \section app_generic Asterisk Dial Plan Applications
970  * \brief Applications support the dialplan. They register dynamically with 
971  *        \see ast_register_application() and unregister with 
972  *        \see ast_unregister_application()
973  * \par See also
974  * \arg \ref functions
975  */
976
977 /*! 
978  * \addtogroup functions Module: Dial plan functions
979  * \section func_generic Asterisk Dial Plan Functions
980  * \brief Functions support the dialplan.  They do not change any property of a channel
981  *        or touch a channel in any way.
982  * \par See also
983  * \arg \ref applications
984  *  
985  */
986
987 /*! 
988  * \addtogroup codecs Module: Codecs
989  * \section codec_generic Asterisk Codec Modules
990  * Codecs are referenced in configuration files by name 
991  * \par See also 
992  * \arg \ref formats 
993  */
994
995 /*! 
996  * \addtogroup formats Module: Media File Formats 
997  * \section codec_generic Asterisk Format drivers
998  * Formats are modules that read or write media files to disk.
999  * \par See also
1000  * \arg \ref codecs 
1001  */
1002
1003 /*! 
1004  * \page AstHTTP AMI over HTTP support
1005  * The http.c file includes support for manager transactions over
1006  * http.
1007  * \section ami AMI - The manager Interface
1008  * \arg \link Config_ami Configuration file \endlink
1009  */
1010
1011 /*! 
1012  * \page res_config_sqlite SQLite Resource driver configuration
1013  * \arg Implemented in \ref res_config_sqlite.c
1014  * \arg Configuration file:
1015  * \verbinclude res_config_sqlite.conf
1016  * \arg SQL tables:
1017  * \verbinclude res_config_sqlite.txt
1018  * \arg See also:
1019  * http://www.sqlite.org
1020  */
1021
1022 /*!
1023  * \page Licensing Asterisk Licensing Information
1024  *
1025  * \section license Asterisk License
1026  * \verbinclude LICENSE
1027  *
1028  * \section otherlicenses Licensing of 3rd Party Code
1029  *
1030  * This section contains a (not yet complete) list of libraries that are used
1031  * by various parts of Asterisk, including related licensing information.
1032  *
1033  * \subsection alsa_lib ALSA Library
1034  * \arg <b>Library</b>: libasound
1035  * \arg <b>Website</b>: http://www.alsa-project.org
1036  * \arg <b>Used by</b>: chan_alsa
1037  * \arg <b>License</b>: LGPL
1038  *
1039  * \subsection openssl_lib OpenSSL
1040  * \arg <b>Library</b>: libcrypto, libssl
1041  * \arg <b>Website</b>: http://www.openssl.org
1042  * \arg <b>Used by</b>: Asterisk core (TLS for manager and HTTP), res_crypto
1043  * \arg <b>License</b>: Apache 2.0
1044  * \arg <b>Note</b>:    An exception has been granted to allow linking of 
1045  *                      OpenSSL with Asterisk.
1046  *
1047  * \subsection curl_lib Curl
1048  * \arg <b>Library</b>: libcurl
1049  * \arg <b>Website</b>: http://curl.haxx.se
1050  * \arg <b>Used by</b>: func_curl, res_config_curl, res_curl
1051  * \arg <b>License</b>: BSD
1052  *
1053  * \subsection portaudio_lib PortAudio
1054  * \arg <b>Library</b>: libportaudio
1055  * \arg <b>Website</b>: http://www.portaudio.com
1056  * \arg <b>Used by</b>: chan_console
1057  * \arg <b>License</b>: BSD
1058  * \arg <b>Note</b>:    Even though PortAudio is licensed under a BSD style
1059  *                      license, PortAudio will make use of some audio interface,
1060  *                      depending on how it was built.  That audio interface may
1061  *                      introduce additional licensing restrictions.  On Linux,
1062  *                      this would most commonly be ALSA: \ref alsa_lib.
1063  *
1064  * \subsection rawlist Raw list of libraries that used by any part of Asterisk
1065  * \li c-client.a (app_voicemail with IMAP support)
1066  * \li libSDL-1.2.so.0
1067  * \li libSaClm.so.2
1068  * \li libSaEvt.so.2
1069  * \li libX11.so.6
1070  * \li libXau.so.6
1071  * \li libXdmcp.so.6
1072  * \li libasound.so.2
1073  * \li libc.so.6
1074  * \li libcom_err.so.2
1075  * \li libcrypt.so.1
1076  * \li libcrypto.so.0.9.8 (chan_h323)
1077  * \li libcurl.so.4
1078  * \li libdirect-1.0.so.0
1079  * \li libdirectfb-1.0.so.0
1080  * \li libdl.so.2
1081  * \li libexpat.so (chan_h323)
1082  * \li libfusion-1.0.so.0
1083  * \li libgcc_s.so (chan_h323)
1084  * \li libgcrypt.so.11 (chan_h323)
1085  * \li libglib-2.0.so.0
1086  * \li libgmime-2.0.so.2
1087  * \li libgmodule-2.0.so.0
1088  * \li libgnutls.so.13 (chan_h323)
1089  * \li libgobject-2.0.so.0
1090  * \li libgpg-error.so.0 (chan_h323)
1091  * \li libgssapi_krb5.so.2
1092  * \li libgthread-2.0.so.0
1093  * \li libidn.so.11
1094  * \li libiksemel.so.3
1095  * \li libisdnnet.so
1096  * \li libjack.so.0
1097  * \li libjpeg.so.62
1098  * \li libk5crypto.so.3
1099  * \li libkeyutils.so.1
1100  * \li libkrb5.so.3
1101  * \li libkrb5support.so.0
1102  * \li liblber-2.4.so.2 (chan_h323)
1103  * \li libldap_r-2.4.so.2 (chan_h323)
1104  * \li libltdl.so.3
1105  * \li liblua5.1.so.0
1106  * \li libm.so.6
1107  * \li libmISDN.so
1108  * \li libnbs.so.1
1109  * \li libncurses.so.5
1110  * \li libnetsnmp.so.15
1111  * \li libnetsnmpagent.so.15
1112  * \li libnetsnmphelpers.so.15
1113  * \li libnetsnmpmibs.so.15
1114  * \li libnsl.so.1
1115  * \li libodbc.so.1
1116  * \li libogg.so.0
1117  * \li libopenh323.so (chan_h323)
1118  * \li libpcre.so.3
1119  * \li libperl.so.5.8
1120  * \li libportaudio.so.2
1121  * \li libpq.so.5
1122  * \li libpri.so.1.4
1123  * \li libpt.so (chan_h323)
1124  * \li libpthread.so.0
1125  * \li libradiusclient-ng.so.2
1126  * \li libresample.so.1.0
1127  * \li libresolv.so.2 (chan_h323)
1128  * \li librt.so.1
1129  * \li libsasl2.so.2 (chan_h323)
1130  * \li libselinux.so.1
1131  * \li libsensors.so.3
1132  * \li libspandsp.so.1
1133  * \li libspeex.so.1
1134  * \li libsqlite.so.0
1135  * \li libsqlite3.so.0
1136  * \li libss7.so.1
1137  * \li libssl.so.0.9.8 (chan_h323)
1138  * \li libstdc++.so (chan_h323, chan_vpb)
1139  * \li libsuppserv.so
1140  * \li libsybdb.so.5
1141  * \li libsysfs.so.2
1142  * \li libtasn1.so.3 (chan_h323)
1143  * \li libtds.so.4
1144  * \li libtiff.so.4
1145  * \li libtonezone.so.1.0
1146  * \li libvorbis.so.0
1147  * \li libvorbisenc.so.2
1148  * \li libvpb.a (chan_vpb)
1149  * \li libwrap.so.0
1150  * \li libxcb-xlib.so.0
1151  * \li libxcb.so.1
1152  * \li libz.so.1 (chan_h323)
1153  * \li linux-vdso.so.1
1154 */