Asterisk.org: Developer Documentation (28 Oct 2009)

Wed Oct 28 15:47:53 2009

## 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 AstENUM : The IETF way to redirect from phone numbers to VoIP calls
    00040  *  \arg \ref ConfigFiles
    00041  *  \arg \ref SoundFiles included in the Asterisk distribution
    00042  *  \arg \ref AstCREDITS : A Thank You to contributors
    00043  \n\n
    00044  * \section weblinks Web sites
    00045  * \arg \b Main:  Asterisk Developer's website http://www.asterisk.org/developers/
    00046  * \arg \b Bugs: The Issue tracker http://bugs.digium.com
    00047  * \arg \b Lists: List server http://lists.digium.com
    00048  * \arg \b Wiki: The Asterisk Wiki  http://www.voip-info.org
    00049  * \arg \b Docs: The Asterisk Documentation Project http://www.asteriskdocs.org
    00050  * \arg \b Digium: The Asterisk company http://www.digium.com
    00051  *
    00052  */
    00053
    00054 /*! \page CodeGuide Coding Guidelines
    00055  *  \section Coding Guidelines
    00056  *  This file is in the /doc directory in your Asterisk source tree.
    00057  *  Make sure to stay up to date with the latest guidelines.
    00058  *  \verbinclude CODING-GUIDELINES
    00059  */
    00060
    00061 /*! \page AstAPI Asterisk API
    00062  *  \section Asteriskapi Asterisk API
    00063  *  Some generic documents on the Asterisk architecture
    00064  *  \subsection model_txt Generic Model
    00065  *  \verbinclude model.txt
    00066  *  \subsection channel_txt Channels
    00067  *  \arg See \link Def_Channel
    00068  *  \verbinclude channel.txt
    00069  */
    00070
    00071 /*! \page AstDebug Debugging
    00072  *  \section debug Debugging
    00073  *  \verbinclude README.backtrace
    00074  */
    00075
    00076 /*! \page AstAMI AMI - The Manager Interface
    00077  *  \section ami AMI - The manager Interface
    00078  *  \arg \link Config_ami Configuration file \endlink
    00079  * \arg \ref manager.c
    00080  *  \verbinclude manager.txt
    00081  */
    00082
    00083 /*!  \page AstARA ARA - The Asterisk Realtime Interface
    00084  *  \section realtime ARA - a generic API to storage and retrieval
    00085  *  Implemented in \ref config.c
    00086  *  Implemented in \ref pbx_realtime.c
    00087  *  \verbinclude README.realtime
    00088  *  \verbinclude README.extconfig
    00089  */
    00090
    00091 /*!  \page AstDUNDi DUNDi
    00092 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.
    00093
    00094 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.
    00095
    00096    \par References
    00097    \arg DUNDi is documented at http://www.dundi.com
    00098    \arg Implemented in \ref pbx_dundi.c and \ref dundi-parser.c
    00099    \arg Configuration in \link Config_dun dundi.conf \endlink
    00100  */
    00101
    00102 /*! \page AstCDR CDR - Call Data Records and billing
    00103  * \section cdr Call Data Records
    00104  * \par See also
    00105  * \arg \ref cdr.c
    00106  * \arg \ref cdr_drivers
    00107  * \arg \ref Config_cdr CDR configuration files
    00108  *
    00109  *  \verbinclude README.cdr
    00110  */
    00111
    00112 /*! \page AstREADME README - the general administrator introduction
    00113  *  \verbinclude README
    00114  */
    00115
    00116 /*! \page AstCREDITS CREDITS
    00117  *  \verbinclude CREDITS
    00118  */
    00119
    00120 /*! \page AstVar Global channel variables
    00121  * \section globchan Global Channel Variables
    00122  *  \verbinclude README.variables
    00123  */
    00124
    00125 /*! \page AstENUM ENUM
    00126  * \section enumreadme ENUM
    00127  * \arg Configuration: \ref Config_enum
    00128  * \arg \ref enum.c
    00129  * \arg \ref app_enumlookup.c
    00130  *
    00131  * \verbinclude README.enum
    00132  */
    00133
    00134 /*! \page ConfigFiles Configuration files
    00135  * \section config Main configuration files
    00136  * \arg \link Config_ast asterisk.conf - the main configuration file \endlink
    00137  * \arg \link Config_ext extensions.conf - The Dial Plan \endlink
    00138  * \arg \link Config_mod modules.conf - which modules to load and not to load \endlink
    00139  * \arg \link Config_fea features.conf - call features (transfer, parking, etc) \endlink
    00140  * \section chanconf Channel configuration files
    00141  * \arg \link Config_iax IAX2 configuration  \endlink
    00142  * \arg \link Config_sip SIP configuration  \endlink
    00143  * \arg \link Config_mgcp MGCP configuration  \endlink
    00144  * \arg \link Config_rtp RTP configuration  \endlink
    00145  * \arg \link Config_zap Zaptel configuration  \endlink
    00146  * \arg \link Config_oss OSS (sound card) configuration  \endlink
    00147  * \arg \link Config_alsa ALSA (sound card) configuration  \endlink
    00148  * \arg \link Config_agent Agent (proxy channel) configuration  \endlink
    00149  * \arg \link Config_misdn MISDN Experimental ISDN BRI channel configuration  \endlink
    00150  * \arg \link Config_h323 H.323 configuration  \endlink
    00151  * \section appconf Application configuration files
    00152  * \arg \link Config_mm Meetme (conference bridge) configuration  \endlink
    00153  * \arg \link Config_qu Queue system configuration  \endlink
    00154  * \arg \link Config_vm Voicemail configuration  \endlink
    00155  * \section cdrconf CDR configuration files
    00156  * \arg \link Config_cdr CDR configuration  \endlink
    00157  * \arg \link cdr_custom Custom CDR driver configuration \endlink
    00158  * \arg \link cdr_ami Manager CDR driver configuration \endlink
    00159  * \arg \link cdr_odbc ODBC CDR driver configuration \endlink
    00160  * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink
    00161  * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink
    00162  * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink
    00163  * \section miscconf Miscellenaous configuration files
    00164  * \arg \link Config_adsi ADSI configuration  \endlink
    00165  * \arg \link Config_ami AMI - Manager configuration  \endlink
    00166  * \arg \link Config_ara Realtime configuration  \endlink
    00167  * \arg \link Config_codec Codec configuration  \endlink
    00168  * \arg \link Config_dun DUNDi configuration  \endlink
    00169  * \arg \link Config_enum ENUM configuration  \endlink
    00170  * \arg \link Config_moh Music on Hold configuration  \endlink
    00171  * \arg \link Config_vm Voicemail configuration  \endlink
    00172  */
    00173
    00174 /*! \page Config_ast Asterisk.conf
    00175  * \verbinclude README.asterisk.conf
    00176  */
    00177 /*! \page Config_mod Modules configuration
    00178  * All res_ resource modules are loaded with globals on, which means
    00179  * that non-static functions are callable from other modules.
    00180  *
    00181  * If you want your non res_* module to export functions to other modules
    00182  * you have to include it in the [global] section.
    00183  * \verbinclude modules.conf.sample
    00184  */
    00185
    00186 /*! \page Config_fea Call features configuration
    00187  * \par See also
    00188  * \arg \ref res_features.c : Call feature implementation
    00189  * \section featconf features.conf
    00190  * \verbinclude features.conf.sample
    00191  */
    00192
    00193 /*! \page Config_ext Extensions.conf - the Dial Plan
    00194  * \section dialplan Extensions.conf
    00195  * \verbinclude extensions.conf.sample
    00196  */
    00197
    00198 /*! \page Config_iax IAX2 configuration
    00199  * IAX2 is implemented in \ref chan_iax2.c
    00200  * \arg \link Config_iax iax.conf Configuration file example \endlink
    00201  * \section iaxreadme IAX readme file
    00202  * \verbinclude README.iax
    00203  * \section Config_iax IAX Configuration example
    00204  * \verbinclude iax.conf.sample
    00205  * \section iaxjitter IAX Jitterbuffer information
    00206  * \verbinclude README.jitterbuffer
    00207  */
    00208
    00209 /*! \page Config_iax IAX configuration
    00210  * \arg Implemented in \ref chan_iax2.c
    00211  * \section iaxconf iax.conf
    00212  * \verbinclude iax.conf.sample
    00213  */
    00214
    00215 /*! \page Config_sip SIP configuration
    00216  * Also see \ref Config_rtp RTP configuration
    00217  * \arg Implemented in \ref chan_sip.c
    00218  * \section sipconf sip.conf
    00219  * \verbinclude sip.conf.sample
    00220  *
    00221  * \arg \b Back \ref chanconf
    00222  */
    00223
    00224 /*! \page Config_mgcp MGCP configuration
    00225  * Also see \ref Config_rtp RTP configuration
    00226  * \arg Implemented in \ref chan_mgcp.c
    00227  * \section mgcpconf mgcp.conf
    00228  * \verbinclude mgcp.conf.sample
    00229  */
    00230
    00231 /*! \page Config_misdn MISDN configuration
    00232  * \arg Implemented in \ref chan_misdn.c
    00233  * \section misdnconf misdn.conf
    00234  * \verbinclude misdn.conf.sample
    00235  */
    00236
    00237 /*! \page Config_vm VoiceMail configuration
    00238  * \section vmconf voicemail.conf
    00239  * \arg Implemented in \ref app_voicemail.c
    00240  * \verbinclude voicemail.conf.sample
    00241  */
    00242
    00243 /*! \page Config_zap Zaptel configuration
    00244  * \section zapconf zapata.conf
    00245  * \arg Implemented in \ref chan_zap.c
    00246  * \verbinclude zapata.conf.sample
    00247  */
    00248
    00249 /*! \page Config_h323 H.323 channel driver information
    00250  * This is the configuration of the H.323 channel driver within the Asterisk
    00251  * distribution. There's another one, called OH323, in asterisk-addons
    00252  * \arg Implemented in \ref chan_h323.c
    00253  * \section h323conf h323.conf
    00254  * \ref chan_h323.c
    00255  * \verbinclude README.h323
    00256  */
    00257
    00258 /*! \page Config_oss OSS configuration
    00259  * \section ossconf oss.conf
    00260  * \arg Implemented in \ref chan_oss.c
    00261  * \verbinclude oss.conf.sample
    00262  */
    00263
    00264 /*! \page Config_alsa ALSA configuration
    00265  * \section alsaconf alsa.conf
    00266  * \arg Implemented in \ref chan_alsa.c
    00267  * \verbinclude alsa.conf.sample
    00268  */
    00269
    00270 /*! \page Config_agent Agent configuration
    00271  * \section agentconf agents.conf
    00272  * The agent channel is a proxy channel for queues
    00273  * \arg Implemented in \ref chan_agent.c
    00274  * \verbinclude agents.conf.sample
    00275  */
    00276
    00277 /*! \page Config_rtp RTP configuration
    00278  * \arg Implemented in \ref rtp.c
    00279  * Used in \ref chan_sip.c and \ref chan_mgcp.c (and various H.323 channels)
    00280  * \section rtpconf rtp.conf
    00281  * \verbinclude rtp.conf.sample
    00282  */
    00283
    00284 /*! \page Config_dun DUNDi Configuration
    00285  * \arg See also \ref AstDUNDi
    00286  * \section dundiconf dundi.conf
    00287  * \verbinclude dundi.conf.sample
    00288  */
    00289
    00290 /*! \page Config_enum ENUM Configuration
    00291  * \section enumconf enum.conf
    00292  * \arg See also \ref enumreadme
    00293  * \arg Implemented in \ref app_enumlookup.c and \ref enum.c
    00294  * \verbinclude enum.conf.sample
    00295  */
    00296
    00297 /*! \page cdr_custom Custom CDR Configuration
    00298  * \par See also
    00299  * \arg \ref cdrconf
    00300  * \arg \ref cdr_custom.c
    00301  * \verbinclude cdr_custom.conf.sample
    00302  */
    00303
    00304 /*! \page cdr_ami Manager CDR driver configuration
    00305  * \par See also
    00306  * \arg \ref cdrconf
    00307  * \arg \ref AstAMI
    00308  * \arg \ref cdr_manager.c
    00309  * \verbinclude cdr_manager.conf.sample
    00310  */
    00311
    00312 /*! \page cdr_odbc ODBC CDR driver configuration
    00313  * \arg See also \ref cdrconf
    00314  * \arg \ref cdr_odbc.c
    00315  * \verbinclude cdr_odbc.conf.sample
    00316  * See also:
    00317  * \arg http://www.unixodbc.org
    00318  */
    00319
    00320 /*! \page cdr_pgsql PostgreSQL CDR driver configuration
    00321  * \arg See also \ref cdrconf
    00322  * \arg \ref cdr_pgsql.c
    00323  * See also:
    00324  * \arg http://www.postgresql.org
    00325  * \verbinclude cdr_pgsql.conf.sample
    00326  */
    00327
    00328 /*! \page cdr_sqlite SQLite CDR driver configuration
    00329  * \arg See also \ref cdrconf
    00330  * \arg \ref cdr_sqlite.c
    00331  * See also:
    00332  * \arg http://www.sqlite.org
    00333  */
    00334
    00335 /*! \page cdr_tds FreeTDS CDR driver configuration
    00336  * \arg See also \ref cdrconf
    00337  * See also:
    00338  * \arg http://www.freetds.org
    00339  * \verbinclude cdr_tds.conf.sample
    00340  */
    00341
    00342 /*! \page Config_cdr CDR configuration
    00343  * \par See also
    00344  * \arg \ref cdr_drivers
    00345  * \arg \link Config_cdr CDR configuration  \endlink
    00346  * \arg \link cdr_custom Custom CDR driver configuration \endlink
    00347  * \arg \link cdr_ami Manager CDR driver configuration \endlink
    00348  * \arg \link cdr_odbc ODBC CDR driver configuration \endlink
    00349  * \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink
    00350  * \arg \link cdr_sqlite SQLite CDR driver configuration \endlink
    00351  * \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink
    00352  * \verbinclude cdr.conf.sample
    00353  */
    00354
    00355 /*! \page Config_moh Music on Hold Configuration
    00356  * \arg Implemented in \ref res_musiconhold.c
    00357  * \section mohconf musiconhold.conf
    00358  * \verbinclude musiconhold.conf.sample
    00359  */
    00360
    00361 /*! \page Config_adsi ADSI Configuration
    00362  * \section adsiconf adsi.conf
    00363  * \verbinclude adsi.conf.sample
    00364  */
    00365
    00366 /*! \page Config_codec CODEC Configuration
    00367  * \section codecsconf codecs.conf
    00368  * \verbinclude codecs.conf.sample
    00369  */
    00370
    00371 /*! \page Config_ara REALTIME Configuration
    00372  * \arg See also: \arg \link AstARA \endlink
    00373  * \section extconf extconfig.conf
    00374  * \verbinclude extconfig.conf.sample
    00375  */
    00376
    00377 /*! \page Config_ami AMI configuration
    00378  * \arg See also: \arg \link AstAMI \endlink
    00379  * \section amiconf manager.conf
    00380  * \verbinclude manager.conf.sample
    00381  */
    00382
    00383 /*! \page Config_qu ACD - Queue system configuration
    00384  * \arg Implemented in \ref app_queue.c
    00385  * \section quconf queues.conf
    00386  * \verbinclude queues.conf.sample
    00387  */
    00388
    00389 /*! \page Config_mm Meetme - The conference bridge configuration
    00390  * \arg Implemented in \ref app_meetme.c
    00391  * \section mmconf meetme.conf
    00392  * \verbinclude meetme.conf.sample
    00393  */
    00394
    00395 /*! \page SoundFiles Sound files
    00396  *  \section SecSound Asterisk Sound files
    00397  *  Asterisk includes a large amount of sound files. Many of these
    00398  *  are used by applications and demo scripts within asterisk.
    00399  *
    00400  *  Additional sound files are available in the asterisk-addons
    00401  *  repository on cvs.digium.com
    00402  *
    00403  *  \section SoundList List of included sound files
    00404  *  \verbinclude sounds.txt
    00405  */
    00406
    00407 /*! \addtogroup cdr_drivers Module: CDR Drivers
    00408  *  \section CDR_generic Asterisk CDR Drivers
    00409  *  \brief CDR drivers are loaded dynamically (see \ref Config_mod "Modules Configuration"). Each loaded CDR driver produce a billing record for each call.
    00410  *  \arg \ref Config_cdr "CDR Configuration"
    00411  */
    00412
    00413
    00414 /*! \addtogroup channel_drivers Module: Asterisk Channel Drivers
    00415  *  \section channel_generic Asterisk Channel Drivers
    00416  *  \brief Channel drivers are loaded dynamically (see \ref Config_mod "Modules Configuration").
    00417  */
    00418
    00419 /*! \addtogroup applications Module: Dial plan applications
    00420  *  \section app_generic Asterisk Dial Plan Applications
    00421  *  \brief Applications support the dialplan. They register dynamically with \ref ast_register_application() and unregister with ast_unregister_application()
    00422  * \par See also
    00423  * \arg \ref functions
    00424  *
    00425  */
    00426
    00427 /*! \addtogroup functions Module: Dial plan functions
    00428  *  \section func_generic Asterisk Dial Plan Functions
    00429  *  \brief Functions support the dialplan.  They do not change any property of a channel
    00430  *  or touch a channel in any way.
    00431  * \par See also
    00432  * \arg \ref applications
    00433  *
    00434  */
    00435
    00436 /*! \addtogroup codecs Module: Codecs
    00437  *  \section codec_generic Asterisk Codec Modules
    00438  *  Codecs are referenced in configuration files by name
    00439  *  \par See also
    00440  *  \arg \ref formats
    00441  *
    00442  */
    00443
    00444 /*! \addtogroup formats Module: Media File Formats
    00445  *  \section codec_generic Asterisk Format drivers
    00446  *  Formats are modules that read or write media files to disk.
    00447  *  \par See also
    00448  *  \arg \ref codecs
    00449  */