00001 /* 00002 * Asterisk -- An open source telephony toolkit. 00003 * 00004 * Copyright (C) 1999 - 2008, Digium, Inc. 00005 * 00006 * See http://www.asterisk.org for more information about 00007 * the Asterisk project. Please do not directly contact 00008 * any of the maintainers of this project for assistance; 00009 * the project provides a web site, mailing lists and IRC 00010 * channels for your use. 00011 * 00012 * This program is free software, distributed under the terms of 00013 * the GNU General Public License Version 2. See the LICENSE file 00014 * at the top of the source tree. 00015 */ 00016 00017 /*! 00018 * \file 00019 * \brief This file generates Doxygen pages from files in the /doc 00020 * directory of the Asterisk source code tree 00021 */ 00022 00023 /* 00024 * The following is for Doxygen Developer's documentation generated 00025 * by running "make progdocs" with doxygen installed on your 00026 * system. 00027 */ 00028 00029 /*! 00030 * \page DevDoc Asterisk Developer's Documentation - Appendices 00031 * 00032 * \section devpolicy Development and Release Policies 00033 * \arg \ref CodeGuide : The must-read document for all developers 00034 * \arg \ref CommitMessages : Information on formatting and special tags for commit messages 00035 * \arg \ref ReleaseStatus : The current support level for various Asterisk releases 00036 * \arg \ref ReleasePolicies : Asterisk Release and Commit Policies 00037 * \arg \ref AstCREDITS : A Thank You to contributors (unfortunately out of date) 00038 * 00039 * \section apisandinterfaces Asterisk APIs and Interfaces 00040 * \arg \ref AstAPI 00041 * \arg \ref AstAPIChanges 00042 * \arg \ref Def_Channel : What's a channel, anyway? 00043 * \arg \ref channel_drivers : Existing channel drivers 00044 * \arg \ref AstAMI : The Call management socket API 00045 * \arg \ref AstARA : A generic data storage and retrieval API for Asterisk 00046 * \arg \ref AstDUNDi : A way to find phone services dynamically by using the DUNDi protocol 00047 * \arg \ref AJI_intro : The Asterisk Jabber Interface 00048 * \arg \ref AstCDR 00049 * \arg \ref AstVar 00050 * \arg \ref AstVideo 00051 * \arg \ref AstENUM : The IETF way to redirect from phone numbers to VoIP calls 00052 * \arg \ref AstHTTP 00053 * \arg \ref AstSpeech 00054 * 00055 * \section debugconfig Debugging and Configuration References 00056 * \arg \ref AstREADME : General Administrator README file 00057 * \arg \ref AstDebug : Hints on debugging 00058 * \arg \ref extref 00059 * \arg \ref ConfigFiles 00060 * \arg \ref SoundFiles included in the Asterisk distribution 00061 * 00062 * \section weblinks Web sites 00063 * \arg \b Main: Asterisk Developer's website http://www.asterisk.org/developers/ 00064 * \arg \b Bugs: The Issue Tracker http://bugs.digium.com 00065 * \arg \b Lists: List Server http://lists.digium.com 00066 * \arg \b Wiki: The Asterisk Wiki http://www.voip-info.org 00067 * \arg \b Docs: The Asterisk Documentation Project http://www.asteriskdocs.org 00068 * \arg \b Digium: The Asterisk Company http://www.digium.com 00069 */ 00070 00071 /*! 00072 * \page ReleaseStatus Asterisk Release Status 00073 * 00074 * @AsteriskTrunkWarning 00075 * 00076 * \section warranty Warranty 00077 * The following warranty applies to all open source releases of Asterisk: 00078 * 00079 * NO WARRANTY 00080 * 00081 * BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 00082 * FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 00083 * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 00084 * PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 00085 * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00086 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 00087 * TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 00088 * PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 00089 * REPAIR OR CORRECTION. 00090 00091 * IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 00092 * WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 00093 * REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 00094 * INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 00095 * OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 00096 * TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 00097 * YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 00098 * PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 00099 * POSSIBILITY OF SUCH DAMAGES. 00100 * 00101 * \section releasestatustypes Release Status Types 00102 * 00103 * Release management is a essentially an agreement between the development 00104 * community and the %user community on what kind of updates can be expected 00105 * for Asterisk releases, and what types of changes these updates will contain. 00106 * Once these policies are established, the development community works very 00107 * hard to adhere to them. However, the development community does reserve 00108 * the right to make exceptions to these rules for special cases as the need 00109 * arises. 00110 * 00111 * Asterisk releases are in various states of maintenance. The states are 00112 * defined here: 00113 * 00114 * \arg <b>None</b> - This release series is receiving no updates whatsoever. 00115 * \arg <b>Security-Only</b> - This release series is receiving updates, but 00116 * only to address security issues. Security issues found and fixed in 00117 * this release series will be accompanied by a published security advisory 00118 * from the Asterisk project. 00119 * \arg <b>Full-Support</b> - This release series is receiving updates for all 00120 * types of bugs. 00121 * \arg <b>Full-Development</b> - Changes in this part of Asterisk include bug 00122 * fixes, as well as new %features and architectural improvements. 00123 * 00124 * \section AsteriskReleases Asterisk Maintenance Levels 00125 * 00126 * \htmlonly 00127 * <table border="1"> 00128 * <tr> 00129 * <td><b>Name</b></td> 00130 * <td><b>SVN Branch</b></td> 00131 * <td><b>Status</b></td> 00132 * <td><b>Notes</b></td> 00133 * </tr> 00134 * <tr> 00135 * <td>Asterisk 1.0</td> 00136 * <td>/branches/1.0</td> 00137 * <td>None</td> 00138 * </tr> 00139 * <tr> 00140 * <td>Asterisk 1.2</td> 00141 * <td>/branches/1.2</td> 00142 * <td>Security-Only</td> 00143 * </tr> 00144 * <tr> 00145 * <td>Asterisk 1.4</td> 00146 * <td>/branches/1.4</td> 00147 * <td>Full-Support</td> 00148 * </tr> 00149 * <tr> 00150 * <td>Asterisk 1.6.0</td> 00151 * <td>/branches/1.6.0</td> 00152 * <td>Full-Support</td> 00153 * </tr> 00154 * <tr> 00155 * <td>Asterisk 1.6.1</td> 00156 * <td>/branches/1.6.1</td> 00157 * <td>Full-Support</td> 00158 * <td>Still in beta</td> 00159 * </tr> 00160 * <tr> 00161 * <td>Asterisk trunk</td> 00162 * <td>/trunk</td> 00163 * <td>Full-Development</td> 00164 * <td>No releases are made directly from trunk.</td> 00165 * </tr> 00166 * </table> 00167 * \endhtmlonly 00168 * 00169 * For more information on how and when Asterisk releases are made, see the 00170 * release policies page: 00171 * \arg \ref ReleasePolicies 00172 */ 00173 00174 /*! 00175 * \page ReleasePolicies Asterisk Release and Commit Policies 00176 * 00177 * \AsteriskTrunkWarning 00178 * 00179 * \section releasestatus Asterisk Release Status 00180 * 00181 * For more information on the current status of each Asterisk release series, 00182 * please see the Asterisk Release Status page: 00183 * 00184 * \arg \ref ReleaseStatus 00185 * 00186 * <hr/> 00187 * 00188 * \section commitmonitoring Commit Monitoring 00189 * 00190 * To monitor commits to Asterisk and related projects, visit 00191 * <a href="http://lists.digium.com/">http://lists.digium.com</a>. The Digium 00192 * mailing list server hosts a %number of mailing lists for commits. 00193 * 00194 * <hr/> 00195 * 00196 * \section ast10policy Asterisk 1.0 00197 * 00198 * \subsection svnbranch SVN Branch 00199 * 00200 * \arg /branches/1.0 00201 * 00202 * \subsection ast10releases Release and Commit Policy 00203 * No more releases of Asterisk 1.0 will be made for any reason. 00204 * 00205 * No commits should be made to the Asterisk 1.0 branch. 00206 * 00207 * <hr/> 00208 * 00209 * \section ast12policy Asterisk 1.2 00210 * 00211 * \subsection svnbranch SVN Branch 00212 * 00213 * \arg /branches/1.2 00214 * 00215 * \subsection ast12releases Release and Commit Policy 00216 * 00217 * There will be no more scheduled releases of Asterisk 1.2. 00218 * 00219 * Commits to the Asterisk 1.2 branch should only address security issues or 00220 * regressions introduced by previous security fixes. For a security issue, the 00221 * commit should be accompanied by an 00222 * <a href="http://downloads.digium.com/pub/security/">Asterisk Security Advisory</a> 00223 * and an immediate release. When a commit goes in to fix a regression, the previous 00224 * security advisory that is related to the change that introduced the bug should get 00225 * updated to indicate that there is an updated version of the fix. A release should 00226 * be made immediately for these regression fixes, as well. 00227 * 00228 * <hr/> 00229 * 00230 * \section ast14policy Asterisk 1.4 00231 * 00232 * \subsection svnbranch SVN Branch 00233 * 00234 * \arg /branches/1.4 00235 * 00236 * \subsection ast14releases Release and Commit Policy 00237 * 00238 * Asterisk 1.4 is receiving regular bug fix release updates. An attempt is made to 00239 * make releases of every four to six weeks. Since this release series is receiving 00240 * changes for all types of bugs, the number of changes in a single release can be 00241 * significant. 1.4.X releases go through a release candidate testing cycle to help 00242 * catch any regressions that may have been introduced. 00243 * 00244 * Commits to Asterisk 1.4 must be to address bugs only. No new %features should be 00245 * introduced into Asterisk 1.4 to reduce the %number of changes to this established 00246 * release series. The only exceptions to this %rule are for cases where something 00247 * that may be considered a feature is needed to address a bug or security issue. 00248 * 00249 * <hr/> 00250 * 00251 * \section ast16policy Asterisk 1.6 00252 * 00253 * \subsection svnbranch SVN Branch 00254 * 00255 * \arg /branches/1.6.* 00256 * 00257 * \subsection ast16releases Release and Commit Policy 00258 * 00259 * Asterisk 1.6 is managed in a different way than previous Asterisk release series. 00260 * From a high level, it was inspired by the release model used for Linux 2.6. 00261 * The intended time frame for 1.6.X releases is every 2 or 3 months. Each 1.6.X 00262 * release gets its own branch. The 1.6.X branches are branches off of trunk. 00263 * Once the branch is created, it only receives bug fixes. Each 1.6.X release goes 00264 * through a beta and release candidate testing cycle. 00265 * 00266 * After a 1.6.X release is published, it will be maintained until 1.6.[X + 3] is 00267 * released. While a 1.6.X release branch is still maintained, it will receive only 00268 * bug fixes. Periodic maintenance releases will be made and labeled as 1.6.X.Y. 00269 * 1.6.X.Y releases should go through a release candidate test cycle before being 00270 * published. 00271 * 00272 * For now, all previous 1.6 release will be maintained for security issues. Once 00273 * we have more 1.6 releases to deal with, this part of the policy will likely change. 00274 * 00275 * For some history on the motivations for Asterisk 1.6 release management, see the 00276 * first two sections of this 00277 * <a href="http://lists.digium.com/pipermail/asterisk-dev/2007-October/030083.html">mailing list post</a>. 00278 * 00279 * <hr/> 00280 * 00281 * \section asttrunk Asterisk Trunk 00282 * 00283 * \subsection svnbranch SVN Branch 00284 * 00285 * \arg /trunk 00286 * 00287 * \subsection asttrunkpolicy Release and Commit Policy 00288 * 00289 * No releases are ever made directly from Asterisk trunk. 00290 * 00291 * Asterisk trunk is used as the main development area for upcoming Asterisk 1.6 00292 * releases. Commits to Asterisk trunk are not limited. They can be bug fixes, 00293 * new %features, and architectural improvements. However, for larger sets 00294 * of changes, developers should work with the Asterisk project leaders to 00295 * schedule them for inclusion. Care is taken not to include too many invasive 00296 * sets of changes for each new Asterisk 1.6 release. 00297 * 00298 * No changes should go into Asterisk trunk that are not ready to go into a 00299 * release. While the upcoming release will go through a beta and release 00300 * candidate test cycle, code should not be in trunk until the code has been 00301 * tested and reviewed such that there is reasonable belief that the code 00302 * is ready to go. 00303 * 00304 * <hr/> 00305 * 00306 * \section astteam Asterisk Team Branches 00307 * 00308 * \subsection svnbranch SVN Branch 00309 * 00310 * \arg /team/<developername> 00311 * 00312 * \subsection astteampolicy Release and Commit Policy 00313 * 00314 * The Asterisk subversion repository has a special directory called "team" 00315 * where developers can make their own personal development branches. This is 00316 * where new %features, bug fixes, and architectural improvements are developed 00317 * while they are in %progress. 00318 * 00319 * Just about anything goes as far as commits to this area goes. However, 00320 * developers should keep in mind that anything committed here, as well as 00321 * anywhere else on Digium's SVN server, falls under the contributor license 00322 * agreement. 00323 * 00324 * In addition to each developer having their own space for working on projects, 00325 * there is also a team/group folder where %group development efforts take place. 00326 * 00327 * Finally, in each developer folder, there is a folder called "private". This 00328 * is where developers can create branches for working on things that they are 00329 * not ready for the whole world to see. 00330 */ 00331 00332 /*! 00333 * \page CodeGuide Coding Guidelines 00334 * \AsteriskTrunkWarning 00335 * \section Coding Guidelines 00336 * This file is in the /doc directory in your Asterisk source tree. 00337 * Make sure to stay up to date with the latest guidelines. 00338 * \verbinclude CODING-GUIDELINES 00339 */ 00340 00341 /*! 00342 * \page CommitMessages Guidelines for Commit Messages 00343 * 00344 * \AsteriskTrunkWarning 00345 * 00346 * <hr/> 00347 * 00348 * \section CommitMsgFormatting Commit Message Formatting 00349 * 00350 * The following illustrates the basic outline for commit messages: 00351 * 00352 \verbatim 00353 <One-liner summary of changes> 00354 00355 <Verbose description of the changes> 00356 00357 <Special Tags> 00358 \endverbatim 00359 * 00360 * Some commit history viewers treat the first line of commit messages as the 00361 * summary for the commit. So, an effort should be made to format our commit 00362 * messages in that fashion. The verbose description may contain multiple 00363 * paragraphs, itemized lists, etc. 00364 * 00365 * Commit messages should be wrapped at 80 %columns. 00366 * 00367 * \note For trivial commits, such as "fix the build", or "fix spelling mistake", 00368 * the verbose description may not be necessary. 00369 * 00370 * <hr/> 00371 * 00372 * \section CommitMsgTags Special Tags for Commit Messages 00373 * 00374 * \subsection MantisTags Mantis (http://bugs.digium.com/) 00375 * 00376 * To have a commit noted in an issue, use a tag of the form: 00377 * \arg (issue #1234) 00378 * 00379 * To have a commit automatically close an issue, use a tag of the form: 00380 * \arg (closes issue #1234) 00381 * 00382 * When making a commit for a mantis issue, it is easiest to use the 00383 * provided commit %message template functionality. It will format the 00384 * special tags appropriately, and will also include information about who 00385 * reported the issue, which patches are being applied, and who did testing. 00386 * 00387 * Assuming that you have bug marshal access (and if you have commit access, 00388 * it is pretty safe to assume that you do), you will find the commit %message 00389 * template section directly below the issue details section and above the 00390 * issue relationships section. You will have to click the '+' next to 00391 * "Commit message template" to make the contents of the section visible. 00392 * 00393 * Here is an example of what the template will generate for you: 00394 * 00395 \verbatim 00396 (closes issue #1234) 00397 Reported by: SomeGuy 00398 Patches: 00399 fix_bug_1234.diff uploaded by SomeDeveloper (license 5678) 00400 \endverbatim 00401 * 00402 * If the patch being committed was written by the person doing the commit, 00403 * and is not available to reference as an upload to the issue, there is no 00404 * need to include something like "fixed by me", as that will be the default 00405 * assumption when a specific patch is not referenced. 00406 * 00407 * \subsection ReviewBoardTags Review Board (http://reviewboard.digium.com/) 00408 * 00409 * To have a commit set a review request as submitted, include the full URL 00410 * to the review request. For example: 00411 * \arg Review: %http://reviewboard.digium.com/r/95/ 00412 * 00413 * \note The trailing slash in the review URL is required. 00414 * 00415 * <hr/> 00416 * 00417 * \section CommitMsgSvnmerge Commit Messages with svnmerge 00418 * 00419 * When using the svnmerge tool for merging changes between branches, use the 00420 * commit %message generated by svnmerge. The '-f' option to svnmerge allows 00421 * you to specify a file for svnmerge to write out a commit %message to. The 00422 * '-F' option to svn commit allows you to specify a file that contains the 00423 * commit %message. 00424 * 00425 * If you are using the expect script wrappers for svnmerge from repotools, 00426 * a commit %message is automatically placed in the file '../merge.msg'. 00427 * 00428 * For more detailed information about working with branches and merging, 00429 * see the following page on %asterisk.org: 00430 * \arg http://www.asterisk.org/developers/svn-branching-merging 00431 */ 00432 00433 /*! 00434 * \page AstAPI Asterisk API 00435 * \section Asteriskapi Asterisk API 00436 * Some generic documents on the Asterisk architecture 00437 * 00438 * \arg \ref AstThreadStorage 00439 * \arg \ref DataStores 00440 * \arg \ref AstExtState 00441 * 00442 * \subsection model_txt Generic Model 00443 * \verbinclude model.txt 00444 * \subsection channel_txt Channels 00445 * \arg See \ref Def_Channel 00446 */ 00447 00448 /*! \page AstAPIChanges Asterisk API Changes 00449 * \section Changes161 Version 1.6.1 00450 * \li ast_install_vm_functions() 00451 * \li vmwi_generate() 00452 * \li ast_channel_datastore_alloc() 00453 * \li ast_channel_datastore_free() 00454 * \li ast_channel_cmpwhentohangup() 00455 * \li ast_channel_setwhentohangup() 00456 * \li ast_settimeout() 00457 * \li ast_datastore_alloc() 00458 * \li ast_datastore_free() 00459 * \li ast_device_state_changed() 00460 * \li ast_device_state_changed_literal() 00461 * \li ast_dnsmgr_get() 00462 * \li ast_dnsmgr_lookup() 00463 * \li ast_dsp_set_digitmode() 00464 * \li ast_get_txt() 00465 * \li ast_event_unsubscribe() 00466 * \li localized_context_find_or_create() 00467 * \li localized_merge_contexts_and_delete() 00468 * \li ast_console_puts_mutable() 00469 * \li ast_rtp_get_quality() 00470 * \li ast_tcptls_client_start() 00471 * \li ast_tcptls_server_start() 00472 * \li ast_tcptls_server_stop() 00473 */ 00474 00475 /*! 00476 * \page AstDebug Debugging 00477 * \section debug Debugging 00478 * \verbinclude backtrace.txt 00479 */ 00480 00481 /*! 00482 * \page AstSpeech The Generic Speech Recognition API 00483 * \section debug The Generic Speech Recognition API 00484 * \verbinclude speechrec.txt 00485 */ 00486 00487 /*! 00488 * \page DataStores Channel Data Stores 00489 * \section debug Channel Data Stores 00490 * \verbinclude datastores.txt 00491 */ 00492 00493 /*! 00494 * \page AstAMI AMI - The Manager Interface 00495 * \section ami AMI - The manager Interface 00496 * \arg \link Config_ami Configuration file \endlink 00497 * \arg \ref manager.c 00498 * \verbinclude manager.txt 00499 */ 00500 00501 /*! 00502 * \page AstARA ARA - The Asterisk Realtime Interface 00503 * \section realtime ARA - a generic API to storage and retrieval 00504 * Implemented in \ref config.c 00505 * Implemented in \ref pbx_realtime.c 00506 * \verbinclude realtime.txt 00507 * \verbinclude extconfig.txt 00508 */ 00509 00510 /*! 00511 * \page AstDUNDi DUNDi 00512 * 00513 * DUNDi is a peer-to-peer system for locating Internet gateways to telephony 00514 * services. Unlike traditional centralized services (such as the remarkably 00515 * simple and concise ENUM standard), DUNDi is fully-distributed with no 00516 * centralized authority whatsoever. 00517 * 00518 * DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, 00519 * it publishes routes which are in turn accessed via industry standard 00520 * protocols such as IAX, SIP and H.323. 00521 * 00522 * \par References 00523 * \arg DUNDi is documented at http://www.dundi.com 00524 * \arg Implemented in \ref pbx_dundi.c and \ref dundi-parser.c 00525 * \arg Configuration in \link Config_dun dundi.conf \endlink 00526 */ 00527 00528 /*! 00529 * \page AstCDR CDR - Call Data Records and billing 00530 * \section cdr Call Data Records 00531 * \par See also 00532 * \arg \ref cdr.c 00533 * \arg \ref cdr_drivers 00534 * \arg \ref Config_cdr CDR configuration files 00535 * 00536 * \verbinclude cdrdriver.txt 00537 */ 00538 00539 /*! 00540 * \page AstREADME README 00541 * \verbinclude README 00542 */ 00543 00544 /*! 00545 * \page AstCREDITS CREDITS 00546 * \verbinclude CREDITS 00547 */ 00548 00549 /*! 00550 * \page AstVideo Video support in Asterisk 00551 * \section sectAstVideo Video support in Asterisk 00552 * \verbinclude video.txt 00553 */ 00554 00555 /*! 00556 * \page AstVar Globally predefined channel variables 00557 * \section globchan Globally predefined channel variables 00558 * 00559 * More and more of these variables are being replaced by dialplan functions. 00560 * Some still exist though and some that does still exist needs to move to 00561 * dialplan functions. 00562 * 00563 * See also 00564 * - \ref pbx_retrieve_variable() 00565 * - \ref AstChanVar 00566 * 00567 * \verbinclude channelvariables.tex 00568 */ 00569 00570 /*! 00571 * \page AstChanVar Asterisk Dialplan Variables 00572 * Asterisk Dialplan variables are divided into three groups: 00573 * - Predefined global variables, handled by the PBX core 00574 * - Global variables, that exist for the duration of the pbx execution 00575 * - Channel variables, that exist during a channel 00576 * 00577 * Global variables are reachable in all channels, all of the time. 00578 * Channel variables are only reachable within the channel. 00579 * 00580 * For more information on the predefined variables, see \ref AstVar 00581 * 00582 * Global and Channel variables: 00583 * - Names are Case insensitive 00584 * - Names that start with a character, but are alphanumeric 00585 * - Global variables are defined and reached with the GLOBAL() dialplan function 00586 * and the set application, like 00587 * 00588 * exten => 1234,1,set(GLOBAL(myvariable)=tomteluva) 00589 * 00590 * - \ref func_global.c 00591 * 00592 * - Channel variables are defined with the set() dialplan application 00593 * 00594 * exten => 1234,1,set(xmasattribute=tomtegröt) 00595 * 00596 * - Some channels also supports setting channel variables with the \b setvar= 00597 * configuraiton option for a device or line. 00598 * 00599 * \section AstChanVar_globalvars Global Variables 00600 * Global variables can also be set in the [globals] section of extensions.conf. The 00601 * setting \b clearglobalvars in extensions.conf [general] section affects whether 00602 * or not the global variables defined in \b globals are reset at dialplan reload. 00603 * 00604 * There are CLI commands to change and read global variables. This can be handy 00605 * to reset counters at midnight from an external script. 00606 * 00607 * \section AstChanVar_devnotes Developer notes 00608 * Variable handling is managed within \ref pbx.c 00609 * You need to include pbx.h to reach these functions. 00610 * - \ref pbx_builtin_setvar_helper() 00611 * - \ref pbx_builtin_getvar_helper() 00612 * 00613 * The variables is a linked list stored in the channel data structure 00614 * with the list starting at varshead in struct ast_channel 00615 */ 00616 00617 /*! 00618 * \page AstENUM ENUM 00619 * \section enumreadme ENUM 00620 * \arg Configuration: \ref Config_enum 00621 * \arg \ref enum.c 00622 * \arg \ref func_enum.c 00623 * 00624 * \verbinclude enum.txt 00625 */ 00626 00627 /*! 00628 * \page ConfigFiles Configuration files 00629 * \section config Main configuration files 00630 * \arg \link Config_ast asterisk.conf - the main configuration file \endlink 00631 * \arg \link Config_ext extensions.conf - The Dial Plan \endlink 00632 * \arg \link Config_mod modules.conf - which modules to load and not to load \endlink 00633 * \arg \link Config_fea features.conf - call features (transfer, parking, etc) \endlink 00634 * \section chanconf Channel configuration files 00635 * \arg \link Config_iax IAX2 configuration \endlink 00636 * \arg \link Config_sip SIP configuration \endlink 00637 * \arg \link Config_mgcp MGCP configuration \endlink 00638 * \arg \link Config_rtp RTP configuration \endlink 00639 * \arg \link Config_dahdi DAHDI configuration \endlink 00640 * \arg \link Config_oss OSS (sound card) configuration \endlink 00641 * \arg \link Config_alsa ALSA (sound card) configuration \endlink 00642 * \arg \link Config_agent Agent (proxy channel) configuration \endlink 00643 * \arg \link Config_misdn MISDN Experimental ISDN BRI channel configuration \endlink 00644 * \arg \link Config_h323 H.323 configuration \endlink 00645 * \section appconf Application configuration files 00646 * \arg \link Config_mm Meetme (conference bridge) configuration \endlink 00647 * \arg \link Config_qu Queue system configuration \endlink 00648 * \arg \link Config_vm Voicemail configuration \endlink 00649 * \arg \link Config_followme Followme configuration \endlink 00650 * \section cdrconf CDR configuration files 00651 * \arg \link Config_cdr CDR configuration \endlink 00652 * \arg \link cdr_custom Custom CDR driver configuration \endlink 00653 * \arg \link cdr_ami Manager CDR driver configuration \endlink 00654 * \arg \link cdr_odbc ODBC CDR driver configuration \endlink 00655 * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink 00656 * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink 00657 * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink 00658 * \section miscconf Miscellenaous configuration files 00659 * \arg \link Config_adsi ADSI configuration \endlink 00660 * \arg \link Config_ami AMI - Manager configuration \endlink 00661 * \arg \link Config_ara Realtime configuration \endlink 00662 * \arg \link Config_codec Codec configuration \endlink 00663 * \arg \link Config_dun DUNDi configuration \endlink 00664 * \arg \link Config_enum ENUM configuration \endlink 00665 * \arg \link Config_moh Music on Hold configuration \endlink 00666 * \arg \link Config_vm Voicemail configuration \endlink 00667 * \arg \link res_config_sqlite SQLite Resource driver configuration \endlink 00668 */ 00669 00670 /*! 00671 * \page Config_ast Asterisk.conf 00672 * \verbinclude asterisk-conf.txt 00673 */ 00674 00675 /*! 00676 * \page Config_mod Modules configuration 00677 * All res_ resource modules are loaded with globals on, which means 00678 * that non-static functions are callable from other modules. 00679 * 00680 * If you want your non res_* module to export functions to other modules 00681 * you have to include it in the [global] section. 00682 * \verbinclude modules.conf.sample 00683 */ 00684 00685 /*! 00686 * \page Config_fea Call features configuration 00687 * \par See also 00688 * \arg \ref res_features.c : Call feature implementation 00689 * \section featconf features.conf 00690 * \verbinclude features.conf.sample 00691 */ 00692 00693 /*! 00694 * \page Config_followme Followme: An application for simple follow-me calls 00695 * \section followmeconf Followme.conf 00696 * - See app_followme.c 00697 * \verbinclude followme.conf.sample 00698 */ 00699 00700 /*! 00701 * \page Config_ext Extensions.conf - the Dial Plan 00702 * \section dialplan Extensions.conf 00703 * \verbinclude extensions.conf.sample 00704 */ 00705 00706 /*! 00707 * \page Config_iax IAX2 configuration 00708 * IAX2 is implemented in \ref chan_iax2.c 00709 * \arg \link Config_iax iax.conf Configuration file example \endlink 00710 * \section iaxreadme IAX readme file 00711 * \verbinclude iax.txt 00712 * \section Config_iax IAX Configuration example 00713 * \verbinclude iax.conf.sample 00714 * \section iaxjitter IAX Jitterbuffer information 00715 * \verbinclude jitterbuffer.txt 00716 */ 00717 00718 /*! 00719 * \page Config_iax IAX configuration 00720 * \arg Implemented in \ref chan_iax2.c 00721 * \section iaxconf iax.conf 00722 * \verbinclude iax.conf.sample 00723 */ 00724 00725 /*! 00726 * \page Config_sip SIP configuration 00727 * Also see \ref Config_rtp RTP configuration 00728 * \arg Implemented in \ref chan_sip.c 00729 * \section sipconf sip.conf 00730 * \verbinclude sip.conf.sample 00731 * 00732 * \arg \b Back \ref chanconf 00733 */ 00734 00735 /*! 00736 * \page Config_mgcp MGCP configuration 00737 * Also see \ref Config_rtp RTP configuration 00738 * \arg Implemented in \ref chan_mgcp.c 00739 * \section mgcpconf mgcp.conf 00740 * \verbinclude mgcp.conf.sample 00741 */ 00742 00743 /*! 00744 * \page README_misdn MISDN documentation 00745 * \arg See \ref Config_misdn 00746 * \section mISDN configuration 00747 * \verbinclude misdn.txt 00748 */ 00749 00750 /*! 00751 * \page Config_misdn MISDN configuration 00752 * \arg Implemented in \ref chan_misdn.c 00753 * \arg \ref README_misdn 00754 * \arg See the mISDN home page: http://www.isdn4linux.de/mISDN/ 00755 * \section misdnconf misdn.conf 00756 * \verbinclude misdn.conf.sample 00757 */ 00758 00759 /*! 00760 * \page Config_vm VoiceMail configuration 00761 * \section vmconf voicemail.conf 00762 * \arg Implemented in \ref app_voicemail.c 00763 * \verbinclude voicemail.conf.sample 00764 */ 00765 00766 /*! 00767 * \page Config_dahdi DAHDI configuration 00768 * \section dahdiconf dahdi.conf 00769 * \arg Implemented in \ref chan_dahdi.c 00770 * \verbinclude dahdi.conf.sample 00771 */ 00772 00773 /*! 00774 * \page Config_h323 H.323 channel driver information 00775 * This is the configuration of the H.323 channel driver within the Asterisk 00776 * distribution. There's another one, called OH323, in asterisk-addons 00777 * \arg Implemented in \ref chan_h323.c 00778 * \section h323conf h323.conf 00779 * \ref chan_h323.c 00780 */ 00781 00782 /*! 00783 * \page Config_oss OSS configuration 00784 * \section ossconf oss.conf 00785 * \arg Implemented in \ref chan_oss.c 00786 * \verbinclude oss.conf.sample 00787 */ 00788 00789 /*! 00790 * \page Config_alsa ALSA configuration 00791 * \section alsaconf alsa.conf 00792 * \arg Implemented in \ref chan_alsa.c 00793 * \verbinclude alsa.conf.sample 00794 */ 00795 00796 /*! 00797 * \page Config_agent Agent configuration 00798 * \section agentconf agents.conf 00799 * The agent channel is a proxy channel for queues 00800 * \arg Implemented in \ref chan_agent.c 00801 * \verbinclude agents.conf.sample 00802 */ 00803 00804 /*! 00805 * \page Config_rtp RTP configuration 00806 * \arg Implemented in \ref rtp.c 00807 * Used in \ref chan_sip.c and \ref chan_mgcp.c (and various H.323 channels) 00808 * \section rtpconf rtp.conf 00809 * \verbinclude rtp.conf.sample 00810 */ 00811 00812 /*! 00813 * \page Config_dun DUNDi Configuration 00814 * \arg See also \ref AstDUNDi 00815 * \section dundiconf dundi.conf 00816 * \verbinclude dundi.conf.sample 00817 */ 00818 00819 /*! 00820 * \page Config_enum ENUM Configuration 00821 * \section enumconf enum.conf 00822 * \arg See also \ref enumreadme 00823 * \arg Implemented in \ref func_enum.c and \ref enum.c 00824 * \verbinclude enum.conf.sample 00825 */ 00826 00827 /*! 00828 * \page cdr_custom Custom CDR Configuration 00829 * \par See also 00830 * \arg \ref cdrconf 00831 * \arg \ref cdr_custom.c 00832 * \verbinclude cdr_custom.conf.sample 00833 */ 00834 00835 /*! 00836 * \page cdr_ami Manager CDR driver configuration 00837 * \par See also 00838 * \arg \ref cdrconf 00839 * \arg \ref AstAMI 00840 * \arg \ref cdr_manager.c 00841 * \verbinclude cdr_manager.conf.sample 00842 */ 00843 00844 /*! 00845 * \page cdr_odbc ODBC CDR driver configuration 00846 * \arg See also \ref cdrconf 00847 * \arg \ref cdr_odbc.c 00848 * \verbinclude cdr_odbc.conf.sample 00849 * See also: 00850 * \arg http://www.unixodbc.org 00851 */ 00852 00853 /*! 00854 * \page cdr_pgsql PostgreSQL CDR driver configuration 00855 * \arg See also \ref cdrconf 00856 * \arg \ref cdr_pgsql.c 00857 * See also: 00858 * \arg http://www.postgresql.org 00859 * \verbinclude cdr_pgsql.conf.sample 00860 */ 00861 00862 /*! 00863 * \page cdr_sqlite SQLite CDR driver configuration 00864 * \arg See also \ref cdrconf 00865 * \arg \ref cdr_sqlite.c 00866 * See also: 00867 * \arg http://www.sqlite.org 00868 */ 00869 00870 /*! 00871 * \page cdr_tds FreeTDS CDR driver configuration 00872 * \arg See also \ref cdrconf 00873 * See also: 00874 * \arg http://www.freetds.org 00875 * \verbinclude cdr_tds.conf.sample 00876 */ 00877 00878 /*! 00879 * \page Config_cdr CDR configuration 00880 * \par See also 00881 * \arg \ref cdr_drivers 00882 * \arg \link Config_cdr CDR configuration \endlink 00883 * \arg \link cdr_custom Custom CDR driver configuration \endlink 00884 * \arg \link cdr_ami Manager CDR driver configuration \endlink 00885 * \arg \link cdr_odbc ODBC CDR driver configuration \endlink 00886 * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink 00887 * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink 00888 * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink 00889 * \verbinclude cdr.conf.sample 00890 */ 00891 00892 /*! 00893 * \page Config_moh Music on Hold Configuration 00894 * \arg Implemented in \ref res_musiconhold.c 00895 * \section mohconf musiconhold.conf 00896 * \verbinclude musiconhold.conf.sample 00897 */ 00898 00899 /*! 00900 * \page Config_adsi ADSI Configuration 00901 * \section adsiconf adsi.conf 00902 * \verbinclude adsi.conf.sample 00903 */ 00904 00905 /*! 00906 * \page Config_codec CODEC Configuration 00907 * \section codecsconf codecs.conf 00908 * \verbinclude codecs.conf.sample 00909 */ 00910 00911 /*! 00912 * \page Config_ara REALTIME Configuration 00913 * \arg See also: \arg \link AstARA \endlink 00914 * \section extconf extconfig.conf 00915 * \verbinclude extconfig.conf.sample 00916 */ 00917 00918 /*! 00919 * \page Config_ami AMI configuration 00920 * \arg See also: \arg \link AstAMI \endlink 00921 * \section amiconf manager.conf 00922 * \verbinclude manager.conf.sample 00923 */ 00924 00925 /*! 00926 * \page Config_qu ACD - Queue system configuration 00927 * \arg Implemented in \ref app_queue.c 00928 * \section quconf queues.conf 00929 * \verbinclude queues.conf.sample 00930 */ 00931 00932 /*! 00933 * \page Config_mm Meetme - The conference bridge configuration 00934 * \arg Implemented in \ref app_meetme.c 00935 * \section mmconf meetme.conf 00936 * \verbinclude meetme.conf.sample 00937 */ 00938 00939 /*! 00940 * \page SoundFiles Sound files 00941 * \section SecSound Asterisk Sound files 00942 * Asterisk includes a large number of sound files. Many of these 00943 * are used by applications and demo scripts within asterisk. 00944 * 00945 * Additional sound files are available in the asterisk-addons 00946 * repository on svn.digium.com 00947 */ 00948 00949 /*! 00950 * \addtogroup cdr_drivers Module: CDR Drivers 00951 * \section CDR_generic Asterisk CDR Drivers 00952 * \brief CDR drivers are loaded dynamically, each loaded CDR driver produce 00953 * a billing record for each call. 00954 * \arg \ref Config_mod "Modules Configuration" 00955 * \arg \ref Config_cdr "CDR Configuration" 00956 */ 00957 00958 00959 /*! 00960 * \addtogroup channel_drivers Module: Asterisk Channel Drivers 00961 * \section channel_generic Asterisk Channel Drivers 00962 * \brief Channel drivers are loaded dynamically. 00963 * \arg \ref Config_mod "Modules Configuration" 00964 */ 00965 00966 /*! 00967 * \addtogroup applications Module: Dial plan applications 00968 * \section app_generic Asterisk Dial Plan Applications 00969 * \brief Applications support the dialplan. They register dynamically with 00970 * \see ast_register_application() and unregister with 00971 * \see ast_unregister_application() 00972 * \par See also 00973 * \arg \ref functions 00974 */ 00975 00976 /*! 00977 * \addtogroup functions Module: Dial plan functions 00978 * \section func_generic Asterisk Dial Plan Functions 00979 * \brief Functions support the dialplan. They do not change any property of a channel 00980 * or touch a channel in any way. 00981 * \par See also 00982 * \arg \ref applications 00983 * 00984 */ 00985 00986 /*! 00987 * \addtogroup codecs Module: Codecs 00988 * \section codec_generic Asterisk Codec Modules 00989 * Codecs are referenced in configuration files by name 00990 * \par See also 00991 * \arg \ref formats 00992 */ 00993 00994 /*! 00995 * \addtogroup formats Module: Media File Formats 00996 * \section codec_generic Asterisk Format drivers 00997 * Formats are modules that read or write media files to disk. 00998 * \par See also 00999 * \arg \ref codecs 01000 */ 01001 01002 /*! 01003 * \page AstHTTP AMI over HTTP support 01004 * The http.c file includes support for manager transactions over 01005 * http. 01006 * \section ami AMI - The manager Interface 01007 * \arg \link Config_ami Configuration file \endlink 01008 */ 01009 01010 /*! 01011 * \page res_config_sqlite SQLite Resource driver configuration 01012 * \arg Implemented in \ref res_config_sqlite.c 01013 * \arg Configuration file: 01014 * \verbinclude res_config_sqlite.conf 01015 * \arg SQL tables: 01016 * \verbinclude res_config_sqlite.txt 01017 * \arg See also: 01018 * http://www.sqlite.org 01019 */ 01020 01021 /*! 01022 * \page Licensing Asterisk Licensing Information 01023 * 01024 * \section license Asterisk License 01025 * \verbinclude LICENSE 01026 * 01027 * \section otherlicenses Licensing of 3rd Party Code 01028 * 01029 * This section contains a (not yet complete) list of libraries that are used 01030 * by various parts of Asterisk, including related licensing information. 01031 * 01032 * \subsection alsa_lib ALSA Library 01033 * \arg <b>Library</b>: libasound 01034 * \arg <b>Website</b>: http://www.alsa-project.org 01035 * \arg <b>Used by</b>: chan_alsa 01036 * \arg <b>License</b>: LGPL 01037 * 01038 * \subsection openssl_lib OpenSSL 01039 * \arg <b>Library</b>: libcrypto, libssl 01040 * \arg <b>Website</b>: http://www.openssl.org 01041 * \arg <b>Used by</b>: Asterisk core (TLS for manager and HTTP), res_crypto 01042 * \arg <b>License</b>: Apache 2.0 01043 * \arg <b>Note</b>: An exception has been granted to allow linking of 01044 * OpenSSL with Asterisk. 01045 * 01046 * \subsection curl_lib Curl 01047 * \arg <b>Library</b>: libcurl 01048 * \arg <b>Website</b>: http://curl.haxx.se 01049 * \arg <b>Used by</b>: func_curl, res_config_curl, res_curl 01050 * \arg <b>License</b>: BSD 01051 * 01052 * \subsection portaudio_lib PortAudio 01053 * \arg <b>Library</b>: libportaudio 01054 * \arg <b>Website</b>: http://www.portaudio.com 01055 * \arg <b>Used by</b>: chan_console 01056 * \arg <b>License</b>: BSD 01057 * \arg <b>Note</b>: Even though PortAudio is licensed under a BSD style 01058 * license, PortAudio will make use of some audio interface, 01059 * depending on how it was built. That audio interface may 01060 * introduce additional licensing restrictions. On Linux, 01061 * this would most commonly be ALSA: \ref alsa_lib. 01062 * 01063 * \subsection rawlist Raw list of libraries that used by any part of Asterisk 01064 * \li c-client.a (app_voicemail with IMAP support) 01065 * \li libSDL-1.2.so.0 01066 * \li libSaClm.so.2 01067 * \li libSaEvt.so.2 01068 * \li libX11.so.6 01069 * \li libXau.so.6 01070 * \li libXdmcp.so.6 01071 * \li libasound.so.2 01072 * \li libc.so.6 01073 * \li libcom_err.so.2 01074 * \li libcrypt.so.1 01075 * \li libcrypto.so.0.9.8 (chan_h323) 01076 * \li libcurl.so.4 01077 * \li libdirect-1.0.so.0 01078 * \li libdirectfb-1.0.so.0 01079 * \li libdl.so.2 01080 * \li libexpat.so (chan_h323) 01081 * \li libfusion-1.0.so.0 01082 * \li libgcc_s.so (chan_h323) 01083 * \li libgcrypt.so.11 (chan_h323) 01084 * \li libglib-2.0.so.0 01085 * \li libgmime-2.0.so.2 01086 * \li libgmodule-2.0.so.0 01087 * \li libgnutls.so.13 (chan_h323) 01088 * \li libgobject-2.0.so.0 01089 * \li libgpg-error.so.0 (chan_h323) 01090 * \li libgssapi_krb5.so.2 01091 * \li libgthread-2.0.so.0 01092 * \li libidn.so.11 01093 * \li libiksemel.so.3 01094 * \li libisdnnet.so 01095 * \li libjack.so.0 01096 * \li libjpeg.so.62 01097 * \li libk5crypto.so.3 01098 * \li libkeyutils.so.1 01099 * \li libkrb5.so.3 01100 * \li libkrb5support.so.0 01101 * \li liblber-2.4.so.2 (chan_h323) 01102 * \li libldap_r-2.4.so.2 (chan_h323) 01103 * \li libltdl.so.3 01104 * \li liblua5.1.so.0 01105 * \li libm.so.6 01106 * \li libmISDN.so 01107 * \li libnbs.so.1 01108 * \li libncurses.so.5 01109 * \li libnetsnmp.so.15 01110 * \li libnetsnmpagent.so.15 01111 * \li libnetsnmphelpers.so.15 01112 * \li libnetsnmpmibs.so.15 01113 * \li libnsl.so.1 01114 * \li libodbc.so.1 01115 * \li libogg.so.0 01116 * \li libopenh323.so (chan_h323) 01117 * \li libpcre.so.3 01118 * \li libperl.so.5.8 01119 * \li libportaudio.so.2 01120 * \li libpq.so.5 01121 * \li libpri.so.1.4 01122 * \li libpt.so (chan_h323) 01123 * \li libpthread.so.0 01124 * \li libradiusclient-ng.so.2 01125 * \li libresample.so.1.0 01126 * \li libresolv.so.2 (chan_h323) 01127 * \li librt.so.1 01128 * \li libsasl2.so.2 (chan_h323) 01129 * \li libselinux.so.1 01130 * \li libsensors.so.3 01131 * \li libspandsp.so.1 01132 * \li libspeex.so.1 01133 * \li libsqlite.so.0 01134 * \li libsqlite3.so.0 01135 * \li libss7.so.1 01136 * \li libssl.so.0.9.8 (chan_h323) 01137 * \li libstdc++.so (chan_h323, chan_vpb) 01138 * \li libsuppserv.so 01139 * \li libsybdb.so.5 01140 * \li libsysfs.so.2 01141 * \li libtasn1.so.3 (chan_h323) 01142 * \li libtds.so.4 01143 * \li libtiff.so.4 01144 * \li libtonezone.so.1.0 01145 * \li libvorbis.so.0 01146 * \li libvorbisenc.so.2 01147 * \li libvpb.a (chan_vpb) 01148 * \li libwrap.so.0 01149 * \li libxcb-xlib.so.0 01150 * \li libxcb.so.1 01151 * \li libz.so.1 (chan_h323) 01152 * \li linux-vdso.so.1 01153 */