Fri Aug 24 02:22:15 2007

Asterisk developer's documentation


doxyref.h

Go to the documentation of this file.
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 

Generated on Fri Aug 24 02:22:15 2007 for Asterisk - the Open Source PBX by  doxygen 1.5.1