00001 /* 00002 * Asterisk -- An open source telephony toolkit. 00003 * 00004 * Copyright (C) 1999 - 2005, Digium, Inc. 00005 * 00006 * Mark Spencer <markster@digium.com> 00007 * 00008 * See http://www.asterisk.org for more information about 00009 * the Asterisk project. Please do not directly contact 00010 * any of the maintainers of this project for assistance; 00011 * the project provides a web site, mailing lists and IRC 00012 * channels for your use. 00013 * 00014 * This program is free software, distributed under the terms of 00015 * the GNU General Public License Version 2. See the LICENSE file 00016 * at the top of the source tree. 00017 */ 00018 00019 /* \file This file generates Doxygen pages from files in the /doc 00020 directory of the Asterisk source code tree 00021 */ 00022 00023 /* The following is for Doxygen Developer's documentation generated 00024 * by running "make progdocs" with doxygen installed on your 00025 * system. 00026 */ 00027 /*! \page DevDoc Asterisk Developer's Documentation - appendices 00028 * \arg \ref CodeGuide : The must-read document for all developer's 00029 * \arg \ref AstAPI 00030 * \arg \ref Def_Channel : What's a channel, anyway? 00031 * \arg \ref channel_drivers : Existing channel drivers 00032 * \arg \ref AstDebug : Hints on debugging 00033 * \arg \ref AstAMI : The Call management socket API 00034 * \arg \ref AstARA : A generic data storage and retrieval API for Asterisk 00035 * \arg \ref AstDUNDi : A way to find phone services dynamically by using the DUNDi protocol 00036 * \arg \ref AstCDR 00037 * \arg \ref AstREADME 00038 * \arg \ref AstVar 00039 * \arg \ref AstVideo 00040 * \arg \ref AstENUM : The IETF way to redirect from phone numbers to VoIP calls 00041 * \arg \ref AstHTTP 00042 * \arg \ref AstSpeech 00043 * \arg \ref ConfigFiles 00044 * \arg \ref SoundFiles included in the Asterisk distribution 00045 * \arg \ref AstCREDITS : A Thank You to contributors 00046 \n\n 00047 * \section weblinks Web sites 00048 * \arg \b Main: Asterisk Developer's website http://www.asterisk.org/developers/ 00049 * \arg \b Bugs: The Issue tracker http://bugs.digium.com 00050 * \arg \b Lists: List server http://lists.digium.com 00051 * \arg \b Wiki: The Asterisk Wiki http://www.voip-info.org 00052 * \arg \b Docs: The Asterisk Documentation Project http://www.asteriskdocs.org 00053 * \arg \b Digium: The Asterisk company http://www.digium.com 00054 * 00055 */ 00056 00057 /*! \page CodeGuide Coding Guidelines 00058 * \section Coding Guidelines 00059 * This file is in the /doc directory in your Asterisk source tree. 00060 * Make sure to stay up to date with the latest guidelines. 00061 * \verbinclude CODING-GUIDELINES 00062 */ 00063 00064 /*! \page AstAPI Asterisk API 00065 * \section Asteriskapi Asterisk API 00066 * Some generic documents on the Asterisk architecture 00067 * 00068 * \arg \ref AstThreadStorage 00069 * \arg \ref DataStores 00070 * \arg \ref AstExtState 00071 * 00072 * \subsection model_txt Generic Model 00073 * \verbinclude model.txt 00074 * \subsection channel_txt Channels 00075 * \arg See \ref Def_Channel 00076 */ 00077 00078 /*! \page AstDebug Debugging 00079 * \section debug Debugging 00080 * \verbinclude backtrace.txt 00081 */ 00082 00083 /*! \page AstSpeech The Generic Speech Recognition API 00084 * \section debug The Generic Speech Recognition API 00085 * \verbinclude speechrec.txt 00086 */ 00087 00088 /*! \page DataStores Channel Data Stores 00089 * \section debug Channel Data Stores 00090 * \verbinclude datastores.txt 00091 */ 00092 00093 /*! \page AstAMI AMI - The Manager Interface 00094 * \section ami AMI - The manager Interface 00095 * \arg \link Config_ami Configuration file \endlink 00096 * \arg \ref manager.c 00097 * \verbinclude manager.txt 00098 */ 00099 00100 /*! \page AstARA ARA - The Asterisk Realtime Interface 00101 * \section realtime ARA - a generic API to storage and retrieval 00102 * Implemented in \ref config.c 00103 * Implemented in \ref pbx_realtime.c 00104 * \verbinclude realtime.txt 00105 * \verbinclude extconfig.txt 00106 */ 00107 00108 /*! \page AstDUNDi DUNDi 00109 DUNDi is a peer-to-peer system for locating Internet gateways to telephony services. Unlike traditional centralized services (such as the remarkably simple and concise ENUM standard), DUNDi is fully-distributed with no centralized authority whatsoever. 00110 00111 DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it publishes routes which are in turn accessed via industry standard protocols such as IAX, SIP and H.323. 00112 00113 \par References 00114 \arg DUNDi is documented at http://www.dundi.com 00115 \arg Implemented in \ref pbx_dundi.c and \ref dundi-parser.c 00116 \arg Configuration in \link Config_dun dundi.conf \endlink 00117 */ 00118 00119 /*! \page AstCDR CDR - Call Data Records and billing 00120 * \section cdr Call Data Records 00121 * \par See also 00122 * \arg \ref cdr.c 00123 * \arg \ref cdr_drivers 00124 * \arg \ref Config_cdr CDR configuration files 00125 * 00126 * \verbinclude cdrdriver.txt 00127 */ 00128 00129 /*! \page AstREADME README - the general administrator introduction 00130 * \verbinclude README 00131 */ 00132 00133 /*! \page AstCREDITS CREDITS 00134 * \verbinclude CREDITS 00135 */ 00136 00137 /*! \page AstVideo Video support in Asterisk 00138 * \section sectAstVideo Video support in Asterisk 00139 * \verbinclude video.txt 00140 */ 00141 00142 /*! \page AstVar Globally predefined channel variables 00143 * \section globchan Globally predefined channel variables 00144 * 00145 * More and more of these variables are being replaced by dialplan functions. 00146 * Some still exist though and some that does still exist needs to move to 00147 * dialplan functions. 00148 * 00149 * See also 00150 * - \ref pbx_retrieve_variable() 00151 * - \ref AstChanVar 00152 * 00153 * \verbinclude channelvariables.txt 00154 00155 */ 00156 00157 /*! \page AstChanVar Asterisk Dialplan Variables 00158 * Asterisk Dialplan variables are divided into three groups: 00159 * - Predefined global variables, handled by the PBX core 00160 * - Global variables, that exist for the duration of the pbx execution 00161 * - Channel variables, that exist during a channel 00162 * 00163 * Global variables are reachable in all channels, all of the time. 00164 * Channel variables are only reachable within the channel. 00165 * 00166 * For more information on the predefined variables, see \ref AstVar 00167 * 00168 * Global and Channel variables: 00169 * - Names are Case insensitive 00170 * - Names that start with a character, but are alphanumeric 00171 * - Global variables are defined and reached with the GLOBAL() dialplan function 00172 * and the set application, like 00173 * 00174 * exten => 1234,1,set(GLOBAL(myvariable)=tomteluva) 00175 * 00176 * - \ref func_global.c 00177 * 00178 * - Channel variables are defined with the set() dialplan application 00179 * 00180 * exten => 1234,1,set(xmasattribute=tomtegröt) 00181 * 00182 * - Some channels also supports setting channel variables with the \b setvar= 00183 * configuraiton option for a device or line. 00184 * 00185 * \section AstChanVar_globalvars Global Variables 00186 * Global variables can also be set in the [globals] section of extensions.conf. The 00187 * setting \b clearglobalvars in extensions.conf [general] section affects whether 00188 * or not the global variables defined in \b globals are reset at dialplan reload. 00189 * 00190 * There are CLI commands to change and read global variables. This can be handy 00191 * to reset counters at midnight from an external script. 00192 * 00193 * \section AstChanVar_devnotes Developer notes 00194 * Variable handling is managed within \ref pbx.c 00195 * You need to include pbx.h to reach these functions. 00196 * - \ref pbx_builtin_setvar_helper() 00197 * - \ref pbx_builtin_getvar_helper() 00198 * 00199 * The variables is a linked list stored in the channel data structure 00200 * with the list starting at varshead in struct ast_channel 00201 * 00202 * 00203 */ 00204 00205 /*! \page AstENUM ENUM 00206 * \section enumreadme ENUM 00207 * \arg Configuration: \ref Config_enum 00208 * \arg \ref enum.c 00209 * \arg \ref func_enum.c 00210 * 00211 * \verbinclude enum.txt 00212 */ 00213 00214 /*! \page ConfigFiles Configuration files 00215 * \section config Main configuration files 00216 * \arg \link Config_ast asterisk.conf - the main configuration file \endlink 00217 * \arg \link Config_ext extensions.conf - The Dial Plan \endlink 00218 * \arg \link Config_mod modules.conf - which modules to load and not to load \endlink 00219 * \arg \link Config_fea features.conf - call features (transfer, parking, etc) \endlink 00220 * \section chanconf Channel configuration files 00221 * \arg \link Config_iax IAX2 configuration \endlink 00222 * \arg \link Config_sip SIP configuration \endlink 00223 * \arg \link Config_mgcp MGCP configuration \endlink 00224 * \arg \link Config_rtp RTP configuration \endlink 00225 * \arg \link Config_zap Zaptel configuration \endlink 00226 * \arg \link Config_oss OSS (sound card) configuration \endlink 00227 * \arg \link Config_alsa ALSA (sound card) configuration \endlink 00228 * \arg \link Config_agent Agent (proxy channel) configuration \endlink 00229 * \arg \link Config_misdn MISDN Experimental ISDN BRI channel configuration \endlink 00230 * \arg \link Config_h323 H.323 configuration \endlink 00231 * \section appconf Application configuration files 00232 * \arg \link Config_mm Meetme (conference bridge) configuration \endlink 00233 * \arg \link Config_qu Queue system configuration \endlink 00234 * \arg \link Config_vm Voicemail configuration \endlink 00235 * \arg \link Config_followme Followme configuration \endlink 00236 * \section cdrconf CDR configuration files 00237 * \arg \link Config_cdr CDR configuration \endlink 00238 * \arg \link cdr_custom Custom CDR driver configuration \endlink 00239 * \arg \link cdr_ami Manager CDR driver configuration \endlink 00240 * \arg \link cdr_odbc ODBC CDR driver configuration \endlink 00241 * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink 00242 * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink 00243 * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink 00244 * \section miscconf Miscellenaous configuration files 00245 * \arg \link Config_adsi ADSI configuration \endlink 00246 * \arg \link Config_ami AMI - Manager configuration \endlink 00247 * \arg \link Config_ara Realtime configuration \endlink 00248 * \arg \link Config_codec Codec configuration \endlink 00249 * \arg \link Config_dun DUNDi configuration \endlink 00250 * \arg \link Config_enum ENUM configuration \endlink 00251 * \arg \link Config_moh Music on Hold configuration \endlink 00252 * \arg \link Config_vm Voicemail configuration \endlink 00253 */ 00254 00255 /*! \page Config_ast Asterisk.conf 00256 * \verbinclude asterisk-conf.txt 00257 */ 00258 /*! \page Config_mod Modules configuration 00259 * All res_ resource modules are loaded with globals on, which means 00260 * that non-static functions are callable from other modules. 00261 * 00262 * If you want your non res_* module to export functions to other modules 00263 * you have to include it in the [global] section. 00264 * \verbinclude modules.conf.sample 00265 */ 00266 00267 /*! \page Config_fea Call features configuration 00268 * \par See also 00269 * \arg \ref res_features.c : Call feature implementation 00270 * \section featconf features.conf 00271 * \verbinclude features.conf.sample 00272 */ 00273 00274 /*! \page Config_followme Followme: An application for simple follow-me calls 00275 * \section followmeconf Followme.conf 00276 * - See app_followme.c 00277 * \verbinclude followme.conf.sample 00278 */ 00279 00280 /*! \page Config_ext Extensions.conf - the Dial Plan 00281 * \section dialplan Extensions.conf 00282 * \verbinclude extensions.conf.sample 00283 */ 00284 00285 /*! \page Config_iax IAX2 configuration 00286 * IAX2 is implemented in \ref chan_iax2.c 00287 * \arg \link Config_iax iax.conf Configuration file example \endlink 00288 * \section iaxreadme IAX readme file 00289 * \verbinclude iax.txt 00290 * \section Config_iax IAX Configuration example 00291 * \verbinclude iax.conf.sample 00292 * \section iaxjitter IAX Jitterbuffer information 00293 * \verbinclude jitterbuffer.txt 00294 */ 00295 00296 /*! \page Config_iax IAX configuration 00297 * \arg Implemented in \ref chan_iax2.c 00298 * \section iaxconf iax.conf 00299 * \verbinclude iax.conf.sample 00300 */ 00301 00302 /*! \page Config_sip SIP configuration 00303 * Also see \ref Config_rtp RTP configuration 00304 * \arg Implemented in \ref chan_sip.c 00305 * \section sipconf sip.conf 00306 * \verbinclude sip.conf.sample 00307 * 00308 * \arg \b Back \ref chanconf 00309 */ 00310 00311 /*! \page Config_mgcp MGCP configuration 00312 * Also see \ref Config_rtp RTP configuration 00313 * \arg Implemented in \ref chan_mgcp.c 00314 * \section mgcpconf mgcp.conf 00315 * \verbinclude mgcp.conf.sample 00316 */ 00317 00318 /*! \page README_misdn MISDN documentation 00319 * \arg See \ref Config_misdn 00320 * \section mISDN configuration 00321 * \verbinclude misdn.txt 00322 */ 00323 00324 /*! \page Config_misdn MISDN configuration 00325 * \arg Implemented in \ref chan_misdn.c 00326 * \arg \ref README_misdn 00327 * \arg See the mISDN home page: http://www.isdn4linux.de/mISDN/ 00328 * \section misdnconf misdn.conf 00329 * \verbinclude misdn.conf.sample 00330 */ 00331 00332 /*! \page Config_vm VoiceMail configuration 00333 * \section vmconf voicemail.conf 00334 * \arg Implemented in \ref app_voicemail.c 00335 * \verbinclude voicemail.conf.sample 00336 */ 00337 00338 /*! \page Config_zap Zaptel configuration 00339 * \section zapconf zapata.conf 00340 * \arg Implemented in \ref chan_zap.c 00341 * \verbinclude zapata.conf.sample 00342 */ 00343 00344 /*! \page Config_h323 H.323 channel driver information 00345 * This is the configuration of the H.323 channel driver within the Asterisk 00346 * distribution. There's another one, called OH323, in asterisk-addons 00347 * \arg Implemented in \ref chan_h323.c 00348 * \section h323conf h323.conf 00349 * \ref chan_h323.c 00350 * \verbinclude h323.txt 00351 */ 00352 00353 /*! \page Config_oss OSS configuration 00354 * \section ossconf oss.conf 00355 * \arg Implemented in \ref chan_oss.c 00356 * \verbinclude oss.conf.sample 00357 */ 00358 00359 /*! \page Config_alsa ALSA configuration 00360 * \section alsaconf alsa.conf 00361 * \arg Implemented in \ref chan_alsa.c 00362 * \verbinclude alsa.conf.sample 00363 */ 00364 00365 /*! \page Config_agent Agent configuration 00366 * \section agentconf agents.conf 00367 * The agent channel is a proxy channel for queues 00368 * \arg Implemented in \ref chan_agent.c 00369 * \verbinclude agents.conf.sample 00370 */ 00371 00372 /*! \page Config_rtp RTP configuration 00373 * \arg Implemented in \ref rtp.c 00374 * Used in \ref chan_sip.c and \ref chan_mgcp.c (and various H.323 channels) 00375 * \section rtpconf rtp.conf 00376 * \verbinclude rtp.conf.sample 00377 */ 00378 00379 /*! \page Config_dun DUNDi Configuration 00380 * \arg See also \ref AstDUNDi 00381 * \section dundiconf dundi.conf 00382 * \verbinclude dundi.conf.sample 00383 */ 00384 00385 /*! \page Config_enum ENUM Configuration 00386 * \section enumconf enum.conf 00387 * \arg See also \ref enumreadme 00388 * \arg Implemented in \ref func_enum.c and \ref enum.c 00389 * \verbinclude enum.conf.sample 00390 */ 00391 00392 /*! \page cdr_custom Custom CDR Configuration 00393 * \par See also 00394 * \arg \ref cdrconf 00395 * \arg \ref cdr_custom.c 00396 * \verbinclude cdr_custom.conf.sample 00397 */ 00398 00399 /*! \page cdr_ami Manager CDR driver configuration 00400 * \par See also 00401 * \arg \ref cdrconf 00402 * \arg \ref AstAMI 00403 * \arg \ref cdr_manager.c 00404 * \verbinclude cdr_manager.conf.sample 00405 */ 00406 00407 /*! \page cdr_odbc ODBC CDR driver configuration 00408 * \arg See also \ref cdrconf 00409 * \arg \ref cdr_odbc.c 00410 * \verbinclude cdr_odbc.conf.sample 00411 * See also: 00412 * \arg http://www.unixodbc.org 00413 */ 00414 00415 /*! \page cdr_pgsql PostgreSQL CDR driver configuration 00416 * \arg See also \ref cdrconf 00417 * \arg \ref cdr_pgsql.c 00418 * See also: 00419 * \arg http://www.postgresql.org 00420 * \verbinclude cdr_pgsql.conf.sample 00421 */ 00422 00423 /*! \page cdr_sqlite SQLite CDR driver configuration 00424 * \arg See also \ref cdrconf 00425 * \arg \ref cdr_sqlite.c 00426 * See also: 00427 * \arg http://www.sqlite.org 00428 */ 00429 00430 /*! \page cdr_tds FreeTDS CDR driver configuration 00431 * \arg See also \ref cdrconf 00432 * See also: 00433 * \arg http://www.freetds.org 00434 * \verbinclude cdr_tds.conf.sample 00435 */ 00436 00437 /*! \page Config_cdr CDR configuration 00438 * \par See also 00439 * \arg \ref cdr_drivers 00440 * \arg \link Config_cdr CDR configuration \endlink 00441 * \arg \link cdr_custom Custom CDR driver configuration \endlink 00442 * \arg \link cdr_ami Manager CDR driver configuration \endlink 00443 * \arg \link cdr_odbc ODBC CDR driver configuration \endlink 00444 * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink 00445 * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink 00446 * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink 00447 * \verbinclude cdr.conf.sample 00448 */ 00449 00450 /*! \page Config_moh Music on Hold Configuration 00451 * \arg Implemented in \ref res_musiconhold.c 00452 * \section mohconf musiconhold.conf 00453 * \verbinclude musiconhold.conf.sample 00454 */ 00455 00456 /*! \page Config_adsi ADSI Configuration 00457 * \section adsiconf adsi.conf 00458 * \verbinclude adsi.conf.sample 00459 */ 00460 00461 /*! \page Config_codec CODEC Configuration 00462 * \section codecsconf codecs.conf 00463 * \verbinclude codecs.conf.sample 00464 */ 00465 00466 /*! \page Config_ara REALTIME Configuration 00467 * \arg See also: \arg \link AstARA \endlink 00468 * \section extconf extconfig.conf 00469 * \verbinclude extconfig.conf.sample 00470 */ 00471 00472 /*! \page Config_ami AMI configuration 00473 * \arg See also: \arg \link AstAMI \endlink 00474 * \section amiconf manager.conf 00475 * \verbinclude manager.conf.sample 00476 */ 00477 00478 /*! \page Config_qu ACD - Queue system configuration 00479 * \arg Implemented in \ref app_queue.c 00480 * \section quconf queues.conf 00481 * \verbinclude queues.conf.sample 00482 */ 00483 00484 /*! \page Config_mm Meetme - The conference bridge configuration 00485 * \arg Implemented in \ref app_meetme.c 00486 * \section mmconf meetme.conf 00487 * \verbinclude meetme.conf.sample 00488 */ 00489 00490 /*! \page SoundFiles Sound files 00491 * \section SecSound Asterisk Sound files 00492 * Asterisk includes a large number of sound files. Many of these 00493 * are used by applications and demo scripts within asterisk. 00494 * 00495 * Additional sound files are available in the asterisk-addons 00496 * repository on svn.digium.com 00497 */ 00498 00499 /*! \addtogroup cdr_drivers Module: CDR Drivers 00500 * \section CDR_generic Asterisk CDR Drivers 00501 * \brief CDR drivers are loaded dynamically (see \ref Config_mod "Modules Configuration"). Each loaded CDR driver produce a billing record for each call. 00502 * \arg \ref Config_cdr "CDR Configuration" 00503 */ 00504 00505 00506 /*! \addtogroup channel_drivers Module: Asterisk Channel Drivers 00507 * \section channel_generic Asterisk Channel Drivers 00508 * \brief Channel drivers are loaded dynamically (see \ref Config_mod "Modules Configuration"). 00509 */ 00510 00511 /*! \addtogroup applications Module: Dial plan applications 00512 * \section app_generic Asterisk Dial Plan Applications 00513 * \brief Applications support the dialplan. They register dynamically with \ref ast_register_application() and unregister with ast_unregister_application() 00514 * \par See also 00515 * \arg \ref functions 00516 * 00517 */ 00518 00519 /*! \addtogroup functions Module: Dial plan functions 00520 * \section func_generic Asterisk Dial Plan Functions 00521 * \brief Functions support the dialplan. They do not change any property of a channel 00522 * or touch a channel in any way. 00523 * \par See also 00524 * \arg \ref applications 00525 * 00526 */ 00527 00528 /*! \addtogroup codecs Module: Codecs 00529 * \section codec_generic Asterisk Codec Modules 00530 * Codecs are referenced in configuration files by name 00531 * \par See also 00532 * \arg \ref formats 00533 * 00534 */ 00535 00536 /*! \addtogroup formats Module: Media File Formats 00537 * \section codec_generic Asterisk Format drivers 00538 * Formats are modules that read or write media files to disk. 00539 * \par See also 00540 * \arg \ref codecs 00541 */ 00542 00543 /*! \page AstHTTP AMI over HTTP support 00544 * The http.c file includes support for manager transactions over 00545 * http. 00546 * \section ami AMI - The manager Interface 00547 * \arg \link Config_ami Configuration file \endlink 00548 * \verbinclude ajam.txt 00549 */ 00550