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