aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-06 15:09:47 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-06 15:09:47 +0000
commitd3ddc001a22ebbbea8ff3601fe8698edff8e7f05 (patch)
treec8881054a6bb8d0179b2d87d3a1e5a7badad305c
parent07d34af56d8086e3984209b306dbe03fffa1ff4a (diff)
issue #5605
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6979 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xChangeLog1
-rwxr-xr-xapps/app_adsiprog.c1
-rwxr-xr-xapps/app_alarmreceiver.c2
-rwxr-xr-xapps/app_authenticate.c1
-rwxr-xr-xapps/app_cdr.c1
-rwxr-xr-xapps/app_chanisavail.c39
-rwxr-xr-xapps/app_chanspy.c1
-rwxr-xr-xapps/app_controlplayback.c1
-rwxr-xr-xapps/app_curl.c1
-rwxr-xr-xapps/app_cut.c1
-rwxr-xr-xapps/app_datetime.c1
-rwxr-xr-xapps/app_db.c1
-rwxr-xr-xapps/app_dial.c1
-rwxr-xr-xapps/app_dictate.c1
-rwxr-xr-xapps/app_directed_pickup.c1
-rwxr-xr-xapps/app_directory.c1
-rwxr-xr-xapps/app_disa.c4
-rwxr-xr-xapps/app_dumpchan.c1
-rwxr-xr-xapps/app_echo.c1
-rwxr-xr-xapps/app_enumlookup.c1
-rwxr-xr-xapps/app_eval.c2
-rwxr-xr-xapps/app_exec.c2
-rwxr-xr-xapps/app_externalivr.c1
-rwxr-xr-xapps/app_festival.c1
-rwxr-xr-xapps/app_flash.c1
-rwxr-xr-xapps/app_forkcdr.c1
-rwxr-xr-xapps/app_getcpeid.c3
-rwxr-xr-xapps/app_groupcount.c1
-rwxr-xr-xapps/app_hasnewvoicemail.c1
-rwxr-xr-xapps/app_ices.c1
-rwxr-xr-xapps/app_image.c1
-rwxr-xr-xapps/app_intercom.c1
-rwxr-xr-xapps/app_ivrdemo.c1
-rwxr-xr-xapps/app_lookupblacklist.c2
-rwxr-xr-xapps/app_lookupcidname.c1
-rwxr-xr-xapps/app_macro.c1
-rwxr-xr-xapps/app_math.c1
-rwxr-xr-xapps/app_md5.c1
-rwxr-xr-xapps/app_meetme.c1
-rwxr-xr-xapps/app_milliwatt.c1
-rwxr-xr-xapps/app_mixmonitor.c1
-rwxr-xr-xapps/app_mp3.c1
-rwxr-xr-xapps/app_nbscat.c1
-rwxr-xr-xapps/app_osplookup.c1
-rwxr-xr-xapps/app_page.c1
-rwxr-xr-xapps/app_parkandannounce.c1
-rwxr-xr-xapps/app_playback.c1
-rwxr-xr-xapps/app_privacy.c4
-rwxr-xr-xapps/app_queue.c153
-rwxr-xr-xapps/app_random.c1
-rwxr-xr-xapps/app_read.c1
-rwxr-xr-xapps/app_readfile.c1
-rwxr-xr-xapps/app_realtime.c1
-rwxr-xr-xapps/app_record.c1
-rwxr-xr-xapps/app_sayunixtime.c1
-rwxr-xr-xapps/app_senddtmf.c1
-rwxr-xr-xapps/app_sendtext.c3
-rwxr-xr-xapps/app_setcallerid.c1
-rwxr-xr-xapps/app_setcdruserfield.c1
-rwxr-xr-xapps/app_setcidname.c1
-rwxr-xr-xapps/app_setcidnum.c1
-rwxr-xr-xapps/app_setrdnis.c1
-rwxr-xr-xapps/app_settransfercapability.c1
-rwxr-xr-xapps/app_skel.c2
-rwxr-xr-xapps/app_sms.c1
-rwxr-xr-xapps/app_softhangup.c1
-rwxr-xr-xapps/app_sql_postgres.c1
-rwxr-xr-xapps/app_striplsd.c1
-rwxr-xr-xapps/app_substring.c1
-rwxr-xr-xapps/app_system.c1
-rwxr-xr-xapps/app_talkdetect.c1
-rwxr-xr-xapps/app_test.c1
-rwxr-xr-xapps/app_transfer.c3
-rwxr-xr-xapps/app_txtcidname.c1
-rwxr-xr-xapps/app_url.c1
-rwxr-xr-xapps/app_userevent.c1
-rwxr-xr-xapps/app_verbose.c1
-rwxr-xr-xapps/app_voicemail.c100
-rwxr-xr-xapps/app_waitforring.c1
-rwxr-xr-xapps/app_waitforsilence.c7
-rwxr-xr-xapps/app_while.c1
-rwxr-xr-xapps/app_zapateller.c1
-rwxr-xr-xapps/app_zapbarge.c1
-rwxr-xr-xapps/app_zapras.c1
-rwxr-xr-xapps/app_zapscan.c1
-rwxr-xr-xcdr/cdr_csv.c1
-rwxr-xr-xcdr/cdr_custom.c1
-rwxr-xr-xcdr/cdr_manager.c1
-rwxr-xr-xcdr/cdr_odbc.c1
-rwxr-xr-xcdr/cdr_pgsql.c1
-rwxr-xr-xcdr/cdr_sqlite.c1
-rwxr-xr-xcdr/cdr_tds.c1
-rwxr-xr-xchannels/chan_agent.c8
-rwxr-xr-xchannels/chan_alsa.c5
-rwxr-xr-xchannels/chan_features.c1
-rwxr-xr-xchannels/chan_h323.c4
-rwxr-xr-xchannels/chan_iax2.c7
-rwxr-xr-xchannels/chan_local.c1
-rwxr-xr-xchannels/chan_mgcp.c4
-rwxr-xr-xchannels/chan_misdn.c57
-rwxr-xr-xchannels/chan_misdn_config.c25
-rwxr-xr-xchannels/chan_modem.c1
-rwxr-xr-xchannels/chan_modem_aopen.c1
-rwxr-xr-xchannels/chan_modem_bestdata.c1
-rwxr-xr-xchannels/chan_modem_i4l.c1
-rwxr-xr-xchannels/chan_nbs.c5
-rwxr-xr-xchannels/chan_oss.c4
-rwxr-xr-xchannels/chan_oss_old.c1
-rwxr-xr-xchannels/chan_phone.c1
-rwxr-xr-xchannels/chan_skinny.c2
-rwxr-xr-xchannels/chan_vpb.c1
-rwxr-xr-xchannels/chan_zap.c258
-rwxr-xr-xcodecs/codec_a_mu.c1
-rwxr-xr-xcodecs/codec_adpcm.c1
-rwxr-xr-xcodecs/codec_alaw.c1
-rwxr-xr-xcodecs/codec_g723_1.c1
-rwxr-xr-xcodecs/codec_g726.c1
-rwxr-xr-xcodecs/codec_gsm.c1
-rwxr-xr-xcodecs/codec_ilbc.c1
-rwxr-xr-xcodecs/codec_lpc10.c1
-rwxr-xr-xcodecs/codec_speex.c1
-rwxr-xr-xcodecs/codec_ulaw.c1
-rwxr-xr-xformats/format_au.c8
-rwxr-xr-xformats/format_g723.c7
-rwxr-xr-xformats/format_g726.c6
-rwxr-xr-xformats/format_g729.c6
-rwxr-xr-xformats/format_gsm.c3
-rwxr-xr-xformats/format_h263.c3
-rwxr-xr-xformats/format_ilbc.c3
-rwxr-xr-xformats/format_jpeg.c2
-rwxr-xr-xformats/format_ogg_vorbis.c3
-rwxr-xr-xformats/format_pcm.c2
-rwxr-xr-xformats/format_pcm_alaw.c3
-rwxr-xr-xformats/format_sln.c3
-rwxr-xr-xformats/format_vox.c2
-rwxr-xr-xformats/format_wav.c4
-rwxr-xr-xformats/format_wav_gsm.c5
-rwxr-xr-xinclude/asterisk/app.h95
-rwxr-xr-xinclude/asterisk/callerid.h91
-rwxr-xr-xinclude/asterisk/channel.h269
-rwxr-xr-xinclude/asterisk/doxyref.h150
-rwxr-xr-xinclude/asterisk/frame.h157
-rwxr-xr-xinclude/asterisk/fskmodem.h47
-rwxr-xr-xpbx/pbx_dundi.c7
-rwxr-xr-xstdtime/localtime.c172
-rwxr-xr-xstdtime/test.c3
-rwxr-xr-xstdtime/tzfile.h25
147 files changed, 1166 insertions, 712 deletions
diff --git a/ChangeLog b/ChangeLog
index b46e589eb..3ebb971ac 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
* channels/chan_iax2.c: Use an enum to define iax peer/user flags as well as the pvt structure state. Use the ast_flags macros for checking or setting the state.
* sounds.txt: Add missing words from the description of the vm-opts prompt
* apps/app_externalivr.c: Add a space that fixes building on older versions of gcc
+ * many files: Add doxygen updates to categorize modules into groups. Convert a lot of comments over to doxygen style. Add some text giving a basic overview of channels.
2005-11-05 Kevin P. Fleming <kpfleming@digium.com>
diff --git a/apps/app_adsiprog.c b/apps/app_adsiprog.c
index d3e525460..21eed0991 100755
--- a/apps/app_adsiprog.c
+++ b/apps/app_adsiprog.c
@@ -19,6 +19,7 @@
/*! \file
* \brief Program Asterisk ADSI Scripts into phone
*
+ * \ingroup applications
*/
#include <sys/types.h>
diff --git a/apps/app_alarmreceiver.c b/apps/app_alarmreceiver.c
index 0d00d1d34..51419c806 100755
--- a/apps/app_alarmreceiver.c
+++ b/apps/app_alarmreceiver.c
@@ -18,6 +18,7 @@
/*! \file
* \brief Central Station Alarm receiver for Ademco Contact ID
+ * \author Steve Rodgers <hwstar@rodgers.sdcoxmail.com>
*
* *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING ***
*
@@ -25,6 +26,7 @@
*
* *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING ***
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_authenticate.c b/apps/app_authenticate.c
index 42309b2db..244f5b4ad 100755
--- a/apps/app_authenticate.c
+++ b/apps/app_authenticate.c
@@ -19,6 +19,7 @@
/*! \file
* \brief Execute arbitrary authenticate commands
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_cdr.c b/apps/app_cdr.c
index d8e8ecb58..4f87898d1 100755
--- a/apps/app_cdr.c
+++ b/apps/app_cdr.c
@@ -19,6 +19,7 @@
/*! \file
* \brief Applications connected with CDR engine
*
+ * \ingroup applications
*/
#include <sys/types.h>
diff --git a/apps/app_chanisavail.c b/apps/app_chanisavail.c
index 0f51481a9..be18f1a43 100755
--- a/apps/app_chanisavail.c
+++ b/apps/app_chanisavail.c
@@ -1,25 +1,26 @@
/*
- * Asterisk -- An open source telephony toolkit.
- *
- * Copyright (C) 1999 - 2005, Digium, Inc.
- *
- * Mark Spencer <markster@digium.com>
- * James Golovich <james@gnuinter.net>
- *
- * See http://www.asterisk.org for more information about
- * the Asterisk project. Please do not directly contact
- * any of the maintainers of this project for assistance;
- * the project provides a web site, mailing lists and IRC
- * channels for your use.
- *
- * This program is free software, distributed under the terms of
- * the GNU General Public License Version 2. See the LICENSE file
- * at the top of the source tree.
- */
+* Asterisk -- An open source telephony toolkit.
+*
+* Copyright (C) 1999 - 2005, Digium, Inc.
+*
+* Mark Spencer <markster@digium.com>
+* James Golovich <james@gnuinter.net>
+*
+* See http://www.asterisk.org for more information about
+* the Asterisk project. Please do not directly contact
+* any of the maintainers of this project for assistance;
+* the project provides a web site, mailing lists and IRC
+* channels for your use.
+*
+* This program is free software, distributed under the terms of
+* the GNU General Public License Version 2. See the LICENSE file
+* at the top of the source tree.
+*/
/*! \file
- * \brief Check if Channel is Available
- *
+* \brief Check if Channel is Available
+*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c
index d9dbd7cba..07b8d8d60 100755
--- a/apps/app_chanspy.c
+++ b/apps/app_chanspy.c
@@ -19,6 +19,7 @@
/*! \file
* \brief ChanSpy: Listen in on any channel.
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_controlplayback.c b/apps/app_controlplayback.c
index 5fabc51f4..41e060642 100755
--- a/apps/app_controlplayback.c
+++ b/apps/app_controlplayback.c
@@ -19,6 +19,7 @@
/*! \file
* \brief Trivial application to control playback of a sound file
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_curl.c b/apps/app_curl.c
index aa7f73731..7b2a962af 100755
--- a/apps/app_curl.c
+++ b/apps/app_curl.c
@@ -20,6 +20,7 @@
/*! \file
* \brief Curl - App to load a URL
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_cut.c b/apps/app_cut.c
index ab41d3437..7d210df28 100755
--- a/apps/app_cut.c
+++ b/apps/app_cut.c
@@ -18,6 +18,7 @@
/*! \file
* \brief Cut application
*
+ * \ingroup applications
*/
#include <stdio.h>
diff --git a/apps/app_datetime.c b/apps/app_datetime.c
index 7bae2fcbc..c384e3c88 100755
--- a/apps/app_datetime.c
+++ b/apps/app_datetime.c
@@ -19,6 +19,7 @@
/*! \file
* \brief Time of day - Report the time of day
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_db.c b/apps/app_db.c
index 0cc0344d5..cf62e378a 100755
--- a/apps/app_db.c
+++ b/apps/app_db.c
@@ -22,6 +22,7 @@
*
* \brief Database access functions
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_dial.c b/apps/app_dial.c
index 5b6192835..f0e399ec9 100755
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -20,6 +20,7 @@
*
* \brief dial() & retrydial() - Trivial application to dial a channel and send an URL on answer
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_dictate.c b/apps/app_dictate.c
index 71c7fb863..0feee10b8 100755
--- a/apps/app_dictate.c
+++ b/apps/app_dictate.c
@@ -22,6 +22,7 @@
*
* \brief Virtual Dictation Machine Application For Asterisk
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_directed_pickup.c b/apps/app_directed_pickup.c
index 84f350746..400ee0728 100755
--- a/apps/app_directed_pickup.c
+++ b/apps/app_directed_pickup.c
@@ -20,6 +20,7 @@
*
* \brief Directed Call Pickup Support
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_directory.c b/apps/app_directory.c
index 8c54d74cc..75b724e6c 100755
--- a/apps/app_directory.c
+++ b/apps/app_directory.c
@@ -20,6 +20,7 @@
*
* \brief Provide a directory of extensions
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_disa.c b/apps/app_disa.c
index 842b8aaf0..5038e907a 100755
--- a/apps/app_disa.c
+++ b/apps/app_disa.c
@@ -3,7 +3,6 @@
*
* Copyright (C) 1999 - 2005, Digium, Inc.
*
- * Jim Dixon <jim@lambdatel.com>
*
* Made only slightly more sane by Mark Spencer <markster@digium.com>
*
@@ -21,7 +20,10 @@
/*! \file
*
* \brief DISA -- Direct Inward System Access Application
+ *
+ * \author Jim Dixon <jim@lambdatel.com>
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_dumpchan.c b/apps/app_dumpchan.c
index 2375f2261..3bdce81f7 100755
--- a/apps/app_dumpchan.c
+++ b/apps/app_dumpchan.c
@@ -22,6 +22,7 @@
*
* \brief Application to dump channel variables
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_echo.c b/apps/app_echo.c
index baf957780..2674d717b 100755
--- a/apps/app_echo.c
+++ b/apps/app_echo.c
@@ -20,6 +20,7 @@
*
* \brief Echo application -- play back what you hear to evaluate latency
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_enumlookup.c b/apps/app_enumlookup.c
index 0c3fca6de..41536b32f 100755
--- a/apps/app_enumlookup.c
+++ b/apps/app_enumlookup.c
@@ -20,6 +20,7 @@
*
* \brief Enumlookup - lookup entry in ENUM
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_eval.c b/apps/app_eval.c
index 3d6ab38d3..13ab0ddbc 100755
--- a/apps/app_eval.c
+++ b/apps/app_eval.c
@@ -19,6 +19,8 @@
* \brief Eval application
*
* \author Tilghman Lesher <app_eval__v001@the-tilghman.com>
+ *
+ * \ingroup applications
*/
#include <stdio.h>
diff --git a/apps/app_exec.c b/apps/app_exec.c
index 50a8a270e..9759455ac 100755
--- a/apps/app_exec.c
+++ b/apps/app_exec.c
@@ -20,6 +20,8 @@
* \brief Exec application
*
* \author Tilghman Lesher <app_exec__v001@the-tilghman.com>
+ *
+ * \ingroup applications
*/
#include <stdio.h>
diff --git a/apps/app_externalivr.c b/apps/app_externalivr.c
index 7a34acf67..c3e3c5627 100755
--- a/apps/app_externalivr.c
+++ b/apps/app_externalivr.c
@@ -23,6 +23,7 @@
*
* \brief External IVR application interface
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_festival.c b/apps/app_festival.c
index 539d245bb..03753642c 100755
--- a/apps/app_festival.c
+++ b/apps/app_festival.c
@@ -20,6 +20,7 @@
*
* \brief Connect to festival
*
+ * \ingroup applications
*/
#include <sys/types.h>
diff --git a/apps/app_flash.c b/apps/app_flash.c
index ee72e0f38..8ffe8497a 100755
--- a/apps/app_flash.c
+++ b/apps/app_flash.c
@@ -20,6 +20,7 @@
*
* \brief App to flash a zap trunk
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_forkcdr.c b/apps/app_forkcdr.c
index 6ccaab415..0019ec1a4 100755
--- a/apps/app_forkcdr.c
+++ b/apps/app_forkcdr.c
@@ -19,6 +19,7 @@
*
* \brief Fork CDR application
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_getcpeid.c b/apps/app_getcpeid.c
index 6a0467044..8ab85241e 100755
--- a/apps/app_getcpeid.c
+++ b/apps/app_getcpeid.c
@@ -18,8 +18,9 @@
/*! \file
*
- * \brief Execute arbitrary system commands
+ * \brief Get ADSI CPE ID
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_groupcount.c b/apps/app_groupcount.c
index 8d7479c15..f47468acd 100755
--- a/apps/app_groupcount.c
+++ b/apps/app_groupcount.c
@@ -20,6 +20,7 @@
*
* \brief Group Manipulation Applications
*
+ * \ingroup applications
*/
#include <stdio.h>
diff --git a/apps/app_hasnewvoicemail.c b/apps/app_hasnewvoicemail.c
index bdf3014cb..6a96b58da 100755
--- a/apps/app_hasnewvoicemail.c
+++ b/apps/app_hasnewvoicemail.c
@@ -24,6 +24,7 @@
*
* \brief HasVoicemail application
*
+ * \ingroup applications
*/
#include <sys/types.h>
diff --git a/apps/app_ices.c b/apps/app_ices.c
index 1bc4b8ced..61fc18156 100755
--- a/apps/app_ices.c
+++ b/apps/app_ices.c
@@ -20,6 +20,7 @@
*
* \brief Stream to an icecast server via ICES (see contrib/asterisk-ices.xml)
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_image.c b/apps/app_image.c
index 0e43e2a3e..492bbab22 100755
--- a/apps/app_image.c
+++ b/apps/app_image.c
@@ -20,6 +20,7 @@
*
* \brief App to transmit an image
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_intercom.c b/apps/app_intercom.c
index 68409f9f8..ac2e897b4 100755
--- a/apps/app_intercom.c
+++ b/apps/app_intercom.c
@@ -20,6 +20,7 @@
*
* \brief Use /dev/dsp as an intercom.
*
+ * \ingroup applications
*/
#include <unistd.h>
diff --git a/apps/app_ivrdemo.c b/apps/app_ivrdemo.c
index 16cf45718..03c963e34 100755
--- a/apps/app_ivrdemo.c
+++ b/apps/app_ivrdemo.c
@@ -20,6 +20,7 @@
*
* \brief IVR Demo application
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_lookupblacklist.c b/apps/app_lookupblacklist.c
index 8285fd812..aafa81336 100755
--- a/apps/app_lookupblacklist.c
+++ b/apps/app_lookupblacklist.c
@@ -19,6 +19,8 @@
/*! \file
*
* \brief App to lookup the callerid number, and see if it is blacklisted
+ *
+ * \ingroup applications
*
*/
diff --git a/apps/app_lookupcidname.c b/apps/app_lookupcidname.c
index cf7d0496d..ca6d3e896 100755
--- a/apps/app_lookupcidname.c
+++ b/apps/app_lookupcidname.c
@@ -20,6 +20,7 @@
*
* \brief App to set callerid name from database, based on directory number
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_macro.c b/apps/app_macro.c
index 42e0c7801..ac9355473 100755
--- a/apps/app_macro.c
+++ b/apps/app_macro.c
@@ -20,6 +20,7 @@
*
* \brief Dial plan macro Implementation
*
+ * \ingroup applications
*/
#include <sys/types.h>
diff --git a/apps/app_math.c b/apps/app_math.c
index f74e1efee..e79219cee 100755
--- a/apps/app_math.c
+++ b/apps/app_math.c
@@ -20,6 +20,7 @@
*
* \brief A simple math application
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_md5.c b/apps/app_md5.c
index d30f3c216..27ec6eead 100755
--- a/apps/app_md5.c
+++ b/apps/app_md5.c
@@ -20,6 +20,7 @@
* \brief MD5 checksum application
*
* \todo Remove this deprecated application in 1.3dev
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_meetme.c b/apps/app_meetme.c
index e5e02975b..5af4f7cbd 100755
--- a/apps/app_meetme.c
+++ b/apps/app_meetme.c
@@ -20,6 +20,7 @@
*
* \brief Meet me conference bridge
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_milliwatt.c b/apps/app_milliwatt.c
index d3a28039c..446fd150a 100755
--- a/apps/app_milliwatt.c
+++ b/apps/app_milliwatt.c
@@ -20,6 +20,7 @@
*
* \brief Digital Milliwatt Test
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_mixmonitor.c b/apps/app_mixmonitor.c
index 4391cfb18..ddf8f5248 100755
--- a/apps/app_mixmonitor.c
+++ b/apps/app_mixmonitor.c
@@ -23,6 +23,7 @@
/*! \file
* \brief MixMonitor() - Record a call and mix the audio during the recording
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_mp3.c b/apps/app_mp3.c
index 51844fa25..3a44067e0 100755
--- a/apps/app_mp3.c
+++ b/apps/app_mp3.c
@@ -20,6 +20,7 @@
*
* \brief Silly application to play an MP3 file -- uses mpg123
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_nbscat.c b/apps/app_nbscat.c
index dbbc2b523..97af96755 100755
--- a/apps/app_nbscat.c
+++ b/apps/app_nbscat.c
@@ -20,6 +20,7 @@
*
* \brief Silly application to play an NBScat file -- uses nbscat8k
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_osplookup.c b/apps/app_osplookup.c
index 4cb8f2b04..79648f327 100755
--- a/apps/app_osplookup.c
+++ b/apps/app_osplookup.c
@@ -20,6 +20,7 @@
*
* \brief Open Settlement Protocol Lookup
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_page.c b/apps/app_page.c
index d2a65f4e8..218c9b2a5 100755
--- a/apps/app_page.c
+++ b/apps/app_page.c
@@ -20,6 +20,7 @@
*
* \brief page() - Paging application
*
+ * \ingroup applications
*/
#include <stdio.h>
diff --git a/apps/app_parkandannounce.c b/apps/app_parkandannounce.c
index 1db9101a5..a40c2efd7 100755
--- a/apps/app_parkandannounce.c
+++ b/apps/app_parkandannounce.c
@@ -23,6 +23,7 @@
*
* \brief ParkAndAnnounce application for Asterisk
*
+ * \ingroup applications
*/
#include <sys/types.h>
diff --git a/apps/app_playback.c b/apps/app_playback.c
index 5808197c4..2f280c950 100755
--- a/apps/app_playback.c
+++ b/apps/app_playback.c
@@ -20,6 +20,7 @@
*
* \brief Trivial application to playback a sound file
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_privacy.c b/apps/app_privacy.c
index d0b2e44cd..e41178950 100755
--- a/apps/app_privacy.c
+++ b/apps/app_privacy.c
@@ -20,6 +20,7 @@
*
* \brief Block all calls without Caller*ID, require phone # to be entered
*
+ * \ingroup applications
*/
#include <string.h>
@@ -71,8 +72,7 @@ LOCAL_USER_DECL;
-static int
-privacy_exec (struct ast_channel *chan, void *data)
+static int privacy_exec (struct ast_channel *chan, void *data)
{
int res=0;
int retries;
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 207cb5ee1..1047d21e3 100755
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -19,8 +19,10 @@
/*! \file
*
* \brief True call queues with optional send URL on answer
- *
*
+ * \arg Config in \ref Config_qu queues.conf
+ *
+ * \par Development notes
* \note 2004-11-25: Persistent Dynamic Members added by:
* NetNation Communications (www.netnation.com)
* Kevin Lindsay <kevinl@netnation.com>
@@ -49,6 +51,7 @@
* Fixed to work with CVS as of 2004-02-25 and released as 1.07a
* by Matthew Enger <m.enger@xi.com.au>
*
+ * \ingroup applications
*/
#include <stdlib.h>
@@ -192,15 +195,15 @@ static char *app_upqm_descrip =
"same way, except it unpauses instead of pausing the given interface.\n"
"Example: UnpauseQueueMember(|SIP/3000)\n";
-/* Persistent Members astdb family */
+/*! \brief Persistent Members astdb family */
static const char *pm_family = "/Queue/PersistentMembers";
/* The maximum lengh of each persistent member queue database entry */
#define PM_MAX_LEN 2048
-/* queues.conf [general] option */
+/*! \brief queues.conf [general] option */
static int queue_persistent_members = 0;
-/* queues.conf per-queue weight option */
+/*! \brief queues.conf per-queue weight option */
static int use_weight = 0;
enum queue_result {
@@ -226,7 +229,7 @@ const struct {
{ QUEUE_FULL, "FULL" },
};
-/* We define a custom "local user" structure because we
+/*! \brief We define a custom "local user" structure because we
use it not only for keeping track of what is in use but
also for keeping track of who we're dialing. */
@@ -244,34 +247,34 @@ struct localuser {
LOCAL_USER_DECL;
struct queue_ent {
- struct ast_call_queue *parent; /* What queue is our parent */
- char moh[80]; /* Name of musiconhold to be used */
- char announce[80]; /* Announcement to play for member when call is answered */
- char context[AST_MAX_CONTEXT]; /* Context when user exits queue */
- char digits[AST_MAX_EXTENSION]; /* Digits entered while in queue */
- int pos; /* Where we are in the queue */
- int prio; /* Our priority */
- int last_pos_said; /* Last position we told the user */
- time_t last_periodic_announce_time; /* The last time we played a periodic anouncement */
- time_t last_pos; /* Last time we told the user their position */
- int opos; /* Where we started in the queue */
- int handled; /* Whether our call was handled */
- time_t start; /* When we started holding */
- time_t expire; /* When this entry should expire (time out of queue) */
- struct ast_channel *chan; /* Our channel */
- struct queue_ent *next; /* The next queue entry */
+ struct ast_call_queue *parent; /*!< What queue is our parent */
+ char moh[80]; /*!< Name of musiconhold to be used */
+ char announce[80]; /*!< Announcement to play for member when call is answered */
+ char context[AST_MAX_CONTEXT]; /*!< Context when user exits queue */
+ char digits[AST_MAX_EXTENSION]; /*!< Digits entered while in queue */
+ int pos; /*!< Where we are in the queue */
+ int prio; /*!< Our priority */
+ int last_pos_said; /*!< Last position we told the user */
+ time_t last_periodic_announce_time; /*!< The last time we played a periodic anouncement */
+ time_t last_pos; /*!< Last time we told the user their position */
+ int opos; /*!< Where we started in the queue */
+ int handled; /*!< Whether our call was handled */
+ time_t start; /*!< When we started holding */
+ time_t expire; /*!< When this entry should expire (time out of queue) */
+ struct ast_channel *chan; /*!< Our channel */
+ struct queue_ent *next; /*!< The next queue entry */
};
struct member {
- char interface[80]; /* Technology/Location */
- int penalty; /* Are we a last resort? */
- int calls; /* Number of calls serviced by this member */
- int dynamic; /* Are we dynamically added? */
- int status; /* Status of queue member */
- int paused; /* Are we paused (not accepting calls)? */
- time_t lastcall; /* When last successful call was hungup */
- int dead; /* Used to detect members deleted in realtime */
- struct member *next; /* Next member */
+ char interface[80]; /*!< Technology/Location */
+ int penalty; /*!< Are we a last resort? */
+ int calls; /*!< Number of calls serviced by this member */
+ int dynamic; /*!< Are we dynamically added? */
+ int status; /*!< Status of queue member */
+ int paused; /*!< Are we paused (not accepting calls)? */
+ time_t lastcall; /*!< When last successful call was hungup */
+ int dead; /*!< Used to detect members deleted in realtime */
+ struct member *next; /*!< Next member */
};
/* values used in multi-bit flags in ast_call_queue */
@@ -282,10 +285,10 @@ struct member {
struct ast_call_queue {
ast_mutex_t lock;
- char name[80]; /* Name */
- char moh[80]; /* Music On Hold class to be used */
- char announce[80]; /* Announcement to play when call is answered */
- char context[AST_MAX_CONTEXT]; /* Exit context */
+ char name[80]; /*!< Name */
+ char moh[80]; /*!< Music On Hold class to be used */
+ char announce[80]; /*!< Announcement to play when call is answered */
+ char context[AST_MAX_CONTEXT]; /*!< Exit context */
unsigned int monjoin:1;
unsigned int dead:1;
unsigned int joinempty:2;
@@ -298,41 +301,41 @@ struct ast_call_queue {
unsigned int strategy:3;
unsigned int maskmemberstatus:1;
unsigned int realtime:1;
- int announcefrequency; /* How often to announce their position */
- int periodicannouncefrequency; /* How often to play periodic announcement */
- int roundingseconds; /* How many seconds do we round to? */
- int holdtime; /* Current avg holdtime, based on recursive boxcar filter */
- int callscompleted; /* Number of queue calls completed */
- int callsabandoned; /* Number of queue calls abandoned */
- int servicelevel; /* seconds setting for servicelevel*/
- int callscompletedinsl; /* Number of calls answered with servicelevel*/
- char monfmt[8]; /* Format to use when recording calls */
- char sound_next[80]; /* Sound file: "Your call is now first in line" (def. queue-youarenext) */
- char sound_thereare[80]; /* Sound file: "There are currently" (def. queue-thereare) */
- char sound_calls[80]; /* Sound file: "calls waiting to speak to a representative." (def. queue-callswaiting)*/
- char sound_holdtime[80]; /* Sound file: "The current estimated total holdtime is" (def. queue-holdtime) */
- char sound_minutes[80]; /* Sound file: "minutes." (def. queue-minutes) */
- char sound_lessthan[80]; /* Sound file: "less-than" (def. queue-lessthan) */
- char sound_seconds[80]; /* Sound file: "seconds." (def. queue-seconds) */
- char sound_thanks[80]; /* Sound file: "Thank you for your patience." (def. queue-thankyou) */
- char sound_reporthold[80]; /* Sound file: "Hold time" (def. queue-reporthold) */
- char sound_periodicannounce[80];/* Sound file: Custom announce, no default */
-
- int count; /* How many entries */
- int maxlen; /* Max number of entries */
- int wrapuptime; /* Wrapup Time */
-
- int retry; /* Retry calling everyone after this amount of time */
- int timeout; /* How long to wait for an answer */
- int weight; /* Respective weight */
+ int announcefrequency; /*!< How often to announce their position */
+ int periodicannouncefrequency; /*!< How often to play periodic announcement */
+ int roundingseconds; /*!< How many seconds do we round to? */
+ int holdtime; /*!< Current avg holdtime, based on recursive boxcar filter */
+ int callscompleted; /*!< Number of queue calls completed */
+ int callsabandoned; /*!< Number of queue calls abandoned */
+ int servicelevel; /*!< seconds setting for servicelevel*/
+ int callscompletedinsl; /*!< Number of calls answered with servicelevel*/
+ char monfmt[8]; /*!< Format to use when recording calls */
+ char sound_next[80]; /*!< Sound file: "Your call is now first in line" (def. queue-youarenext) */
+ char sound_thereare[80]; /*!< Sound file: "There are currently" (def. queue-thereare) */
+ char sound_calls[80]; /*!< Sound file: "calls waiting to speak to a representative." (def. queue-callswaiting)*/
+ char sound_holdtime[80]; /*!< Sound file: "The current estimated total holdtime is" (def. queue-holdtime) */
+ char sound_minutes[80]; /*!< Sound file: "minutes." (def. queue-minutes) */
+ char sound_lessthan[80]; /*!< Sound file: "less-than" (def. queue-lessthan) */
+ char sound_seconds[80]; /*!< Sound file: "seconds." (def. queue-seconds) */
+ char sound_thanks[80]; /*!< Sound file: "Thank you for your patience." (def. queue-thankyou) */
+ char sound_reporthold[80]; /*!< Sound file: "Hold time" (def. queue-reporthold) */
+ char sound_periodicannounce[80];/*!< Sound file: Custom announce, no default */
+
+ int count; /*!< How many entries */
+ int maxlen; /*!< Max number of entries */
+ int wrapuptime; /*!< Wrapup Time */
+
+ int retry; /*!< Retry calling everyone after this amount of time */
+ int timeout; /*!< How long to wait for an answer */
+ int weight; /*!< Respective weight */
/* Queue strategy things */
- int rrpos; /* Round Robin - position */
- int memberdelay; /* Seconds to delay connecting member to caller */
+ int rrpos; /*!< Round Robin - position */
+ int memberdelay; /*!< Seconds to delay connecting member to caller */
- struct member *members; /* Head of the list of members */
- struct queue_ent *head; /* Head of the list of callers */
- struct ast_call_queue *next; /* Next call queue */
+ struct member *members; /*!< Head of the list of members */
+ struct queue_ent *head; /*!< Head of the list of callers */
+ struct ast_call_queue *next; /*!< Next call queue */
};
static struct ast_call_queue *queues = NULL;
@@ -370,7 +373,7 @@ static int strat2int(const char *strategy)
return -1;
}
-/* Insert the 'new' entry after the 'prev' entry of queue 'q' */
+/*! \brief Insert the 'new' entry after the 'prev' entry of queue 'q' */
static inline void insert_entry(struct ast_call_queue *q, struct queue_ent *prev, struct queue_ent *new, int *pos)
{
struct queue_ent *cur;
@@ -565,7 +568,8 @@ static void clear_queue(struct ast_call_queue *q)
q->wrapuptime = 0;
}
-/* Configure a queue parameter.
+/*! \brief Configure a queue parameter.
+\par
For error reporting, line number is passed for .conf static configuration.
For Realtime queues, linenum is -1.
The failunknown flag is set for config files (and static realtime) to show
@@ -727,8 +731,9 @@ static void rt_handle_member_record(struct ast_call_queue *q, char *interface, c
}
-/* Reload a single queue via realtime. Return the queue, or NULL if it doesn't exist.
- Should be called with the global qlock locked.
+/*!\brief Reload a single queue via realtime.
+ \return Return the queue, or NULL if it doesn't exist.
+ \note Should be called with the global qlock locked.
When found, the queue is returned with q->lock locked. */
static struct ast_call_queue *reload_queue_rt(const char *queuename, struct ast_variable *queue_vars, struct ast_config *member_config)
{
@@ -769,7 +774,7 @@ static struct ast_call_queue *reload_queue_rt(const char *queuename, struct ast_
if (!queue_vars) {
/* Delete queue from in-core list if it has been deleted in realtime. */
if (q) {
- /* Hmm, can't seem to distinguish a DB failure from a not
+ /*! \note Hmm, can't seem to distinguish a DB failure from a not
found condition... So we might delete an in-core queue
in case of DB failure. */
ast_log(LOG_DEBUG, "Queue %s not found in realtime.\n", queuename);
@@ -865,7 +870,7 @@ static int join_queue(char *queuename, struct queue_ent *qe, enum queue_result *
int inserted = 0;
enum queue_member_status stat;
- /* Load from realtime before taking the global qlock, to avoid blocking all
+ /*! \note Load from realtime before taking the global qlock, to avoid blocking all
queue operations while waiting for the DB.
This will be two separate database transactions, so we might
@@ -3314,7 +3319,9 @@ static char *complete_queue(char *line, char *word, int pos, int state)
return q ? strdup(q->name) : NULL;
}
-/* JDG: callback to display queues status in manager */
+/*!\brief callback to display queues status in manager
+ \addtogroup Group_AMI
+ */
static int manager_queues_show( struct mansession *s, struct message *m )
{
char *a[] = { "show", "queues" };
diff --git a/apps/app_random.c b/apps/app_random.c
index 08e1d188a..57ef4dd32 100755
--- a/apps/app_random.c
+++ b/apps/app_random.c
@@ -20,6 +20,7 @@
* \brief Random application
*
* \author Tilghman Lesher <asterisk__app_random__200508@the-tilghman.com>
+ * \ingroup applications
*/
#include <stdio.h>
diff --git a/apps/app_read.c b/apps/app_read.c
index ed4272da6..bae0440f8 100755
--- a/apps/app_read.c
+++ b/apps/app_read.c
@@ -20,6 +20,7 @@
*
* \brief Trivial application to read a variable
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_readfile.c b/apps/app_readfile.c
index 4012bc6a2..3340964b7 100755
--- a/apps/app_readfile.c
+++ b/apps/app_readfile.c
@@ -20,6 +20,7 @@
*
* \brief ReadFile application -- Reads in a File for you.
*
+ * \ingroup applications
*/
#include <stdio.h>
diff --git a/apps/app_realtime.c b/apps/app_realtime.c
index b0a810a8a..80f092528 100755
--- a/apps/app_realtime.c
+++ b/apps/app_realtime.c
@@ -21,6 +21,7 @@
*
* \brief RealTime App
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_record.c b/apps/app_record.c
index 150aac216..c856f344b 100755
--- a/apps/app_record.c
+++ b/apps/app_record.c
@@ -20,6 +20,7 @@
*
* \brief Trivial application to record a sound file
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_sayunixtime.c b/apps/app_sayunixtime.c
index 9c126a167..1f9244607 100755
--- a/apps/app_sayunixtime.c
+++ b/apps/app_sayunixtime.c
@@ -19,6 +19,7 @@
*
* \brief SayUnixTime application
*
+ * \ingroup applications
*/
#include <stdio.h>
diff --git a/apps/app_senddtmf.c b/apps/app_senddtmf.c
index f9493f716..b0c9dc07a 100755
--- a/apps/app_senddtmf.c
+++ b/apps/app_senddtmf.c
@@ -20,6 +20,7 @@
*
* \brief App to send DTMF digits
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_sendtext.c b/apps/app_sendtext.c
index 7bdf1d265..252c95747 100755
--- a/apps/app_sendtext.c
+++ b/apps/app_sendtext.c
@@ -20,6 +20,9 @@
*
* \brief App to transmit a text message
*
+ * Requires support of sending text messages from channel driver
+ *
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_setcallerid.c b/apps/app_setcallerid.c
index 18343b786..272d18926 100755
--- a/apps/app_setcallerid.c
+++ b/apps/app_setcallerid.c
@@ -20,6 +20,7 @@
*
* \brief App to set callerid
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_setcdruserfield.c b/apps/app_setcdruserfield.c
index 28e1846f0..460bbc33e 100755
--- a/apps/app_setcdruserfield.c
+++ b/apps/app_setcdruserfield.c
@@ -20,6 +20,7 @@
*
* \brief Applictions connected with CDR engine
*
+ * \ingroup applications
*/
#include <sys/types.h>
diff --git a/apps/app_setcidname.c b/apps/app_setcidname.c
index 2dab53812..41dfda706 100755
--- a/apps/app_setcidname.c
+++ b/apps/app_setcidname.c
@@ -20,6 +20,7 @@
*
* \brief App to set callerid
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_setcidnum.c b/apps/app_setcidnum.c
index a4405fdf4..d3129441f 100755
--- a/apps/app_setcidnum.c
+++ b/apps/app_setcidnum.c
@@ -21,6 +21,7 @@
*
* \brief App to set callerid number
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_setrdnis.c b/apps/app_setrdnis.c
index ff477baa8..992732bf7 100755
--- a/apps/app_setrdnis.c
+++ b/apps/app_setrdnis.c
@@ -21,6 +21,7 @@
*
* \brief App to set rdnis
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_settransfercapability.c b/apps/app_settransfercapability.c
index 95f28f124..5ee1ab831 100755
--- a/apps/app_settransfercapability.c
+++ b/apps/app_settransfercapability.c
@@ -20,6 +20,7 @@
*
* \brief App to set the ISDN Transfer Capability
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_skel.c b/apps/app_skel.c
index f391cb64b..88a9a280b 100755
--- a/apps/app_skel.c
+++ b/apps/app_skel.c
@@ -20,6 +20,8 @@
*
* \brief Skeleton application
*
+ * This is a skeleton for development of an Asterisk application */
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_sms.c b/apps/app_sms.c
index dd553a195..c6d44941b 100755
--- a/apps/app_sms.c
+++ b/apps/app_sms.c
@@ -17,6 +17,7 @@
/*! \file
*
* \brief SMS application - ETSI ES 201 912 protocol 1 implimentation
+ * \ingroup applications
*
*/
diff --git a/apps/app_softhangup.c b/apps/app_softhangup.c
index 66c7c412b..d8eb6f3b4 100755
--- a/apps/app_softhangup.c
+++ b/apps/app_softhangup.c
@@ -20,6 +20,7 @@
*
* \brief SoftHangup application
*
+ * \ingroup applications
*/
#include <sys/types.h>
diff --git a/apps/app_sql_postgres.c b/apps/app_sql_postgres.c
index 65a0f14d2..d9ba1bfb7 100755
--- a/apps/app_sql_postgres.c
+++ b/apps/app_sql_postgres.c
@@ -20,6 +20,7 @@
*
* \brief Connect to PostgreSQL
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_striplsd.c b/apps/app_striplsd.c
index 597bca9d9..88810576d 100755
--- a/apps/app_striplsd.c
+++ b/apps/app_striplsd.c
@@ -20,6 +20,7 @@
*
* \brief striplsd: Strip trailing digits app
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_substring.c b/apps/app_substring.c
index 4f9a16066..dbaafd849 100755
--- a/apps/app_substring.c
+++ b/apps/app_substring.c
@@ -20,6 +20,7 @@
*
* \brief substr
*
+ * \ingroup applications
* \todo Deprecate this application in 1.3dev
*/
diff --git a/apps/app_system.c b/apps/app_system.c
index 76593f60f..c21c0ed9b 100755
--- a/apps/app_system.c
+++ b/apps/app_system.c
@@ -20,6 +20,7 @@
*
* \brief Execute arbitrary system commands
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_talkdetect.c b/apps/app_talkdetect.c
index 207d46e55..7f197ce88 100755
--- a/apps/app_talkdetect.c
+++ b/apps/app_talkdetect.c
@@ -20,6 +20,7 @@
*
* \brief Playback a file with audio detect
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_test.c b/apps/app_test.c
index 8a3c8c22a..56b5bf2b9 100755
--- a/apps/app_test.c
+++ b/apps/app_test.c
@@ -21,6 +21,7 @@
*
* \brief Applications to test connection and produce report in text file
*
+ * \ingroup applications
*/
#include <sys/types.h>
diff --git a/apps/app_transfer.c b/apps/app_transfer.c
index 4b4fb1c5d..b6ba16faa 100755
--- a/apps/app_transfer.c
+++ b/apps/app_transfer.c
@@ -20,6 +20,9 @@
*
* \brief Transfer a caller
*
+ * Requires transfer support from channel driver
+ *
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_txtcidname.c b/apps/app_txtcidname.c
index 18aa0cba9..dcede42ed 100755
--- a/apps/app_txtcidname.c
+++ b/apps/app_txtcidname.c
@@ -20,6 +20,7 @@
*
* \brief Caller*id name lookup - Look up the caller's name via DNS
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_url.c b/apps/app_url.c
index d9451dba5..b44fb218b 100755
--- a/apps/app_url.c
+++ b/apps/app_url.c
@@ -19,6 +19,7 @@
/*! \file
* \brief App to transmit a URL
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_userevent.c b/apps/app_userevent.c
index 8fc8fcdba..74fa58f2a 100755
--- a/apps/app_userevent.c
+++ b/apps/app_userevent.c
@@ -18,6 +18,7 @@
*
* \brief UserEvent application -- send manager event
*
+ * \ingroup applications
*/
diff --git a/apps/app_verbose.c b/apps/app_verbose.c
index 28ccfa867..f8532ff24 100755
--- a/apps/app_verbose.c
+++ b/apps/app_verbose.c
@@ -19,6 +19,7 @@
*
* \brief Verbose logging application
*
+ * \ingroup applications
*/
#include <stdio.h>
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 03448726f..975ffe58e 100755
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -29,6 +29,9 @@
*
* \brief Comedian Mail - Voicemail System
*
+ * \par See also
+ * \arg \ref Config_vm
+ * \ingroup applications
*/
#include <stdlib.h>
@@ -130,59 +133,62 @@ AST_APP_OPTIONS(vm_app_options, {
static int load_config(void);
-/* Syntaxes supported, not really language codes.
- en - English
- de - German
- es - Spanish
- fr - French
- it = Italian
- nl - Dutch
- pt - Portuguese
- gr - Greek
- no - Norwegian
- se - Swedish
+/*! \page vmlang Voicemail Language Syntaxes Supported
+
+ \par Syntaxes supported, not really language codes.
+ \arg \b en - English
+ \arg \b de - German
+ \arg \b es - Spanish
+ \arg \b fr - French
+ \arg \b it = Italian
+ \arg \b nl - Dutch
+ \arg \b pt - Portuguese
+ \arg \b gr - Greek
+ \arg \b no - Norwegian
+ \arg \b se - Swedish
German requires the following additional soundfile:
-1F einE (feminine)
+\arg \b 1F einE (feminine)
Spanish requires the following additional soundfile:
-1M un (masculine)
+\arg \b 1M un (masculine)
Dutch, Portuguese & Spanish require the following additional soundfiles:
-vm-INBOXs singular of 'new'
-vm-Olds singular of 'old/heard/read'
+\arg \b vm-INBOXs singular of 'new'
+\arg \b vm-Olds singular of 'old/heard/read'
NB these are plural:
-vm-INBOX nieuwe (nl)
-vm-Old oude (nl)
+\arg \b vm-INBOX nieuwe (nl)
+\arg \b vm-Old oude (nl)
Swedish uses:
-vm-nytt singular of 'new'
-vm-nya plural of 'new'
-vm-gammalt singular of 'old'
-vm-gamla plural of 'old'
-digits/ett 'one', not always same as 'digits/1'
+\arg \b vm-nytt singular of 'new'
+\arg \b vm-nya plural of 'new'
+\arg \b vm-gammalt singular of 'old'
+\arg \b vm-gamla plural of 'old'
+\arg \b digits/ett 'one', not always same as 'digits/1'
Norwegian uses:
-vm-ny singular of 'new'
-vm-nye plural of 'new'
-vm-gammel singular of 'old'
-vm-gamle plural of 'old'
+\arg \b vm-ny singular of 'new'
+\arg \b vm-nye plural of 'new'
+\arg \b vm-gammel singular of 'old'
+\arg \b vm-gamle plural of 'old'
Dutch also uses:
-nl-om 'at'?
+\arg \b nl-om 'at'?
Spanish also uses:
-vm-youhaveno
+\arg \b vm-youhaveno
Italian requires the following additional soundfile:
For vm_intro_it:
-vm-nuovo new
-vm-nuovi new plural
-vm-vecchio old
-vm-vecchi old plural
-Don't use vm-INBOX or vm-Old, because they are the name of the INBOX and Old folders,
+\arg \b vm-nuovo new
+\arg \b vm-nuovi new plural
+\arg \b vm-vecchio old
+\arg \b vm-vecchi old plural
+
+\note Don't use vm-INBOX or vm-Old, because they are the name of the INBOX and Old folders,
spelled among others when you have to change folder. For the above reasons, vm-INBOX
and vm-Old are spelled plural, to make them sound more as folder name than an adjective.
@@ -196,25 +202,25 @@ struct baseio {
unsigned char iobuf[BASEMAXINLINE];
};
-/* Structure for linked list of users */
+/*! Structure for linked list of users */
struct ast_vm_user {
- char context[AST_MAX_CONTEXT]; /* Voicemail context */
- char mailbox[AST_MAX_EXTENSION];/* Mailbox id, unique within vm context */
- char password[80]; /* Secret pin code, numbers only */
- char fullname[80]; /* Full name, for directory app */
- char email[80]; /* E-mail address */
- char pager[80]; /* E-mail address to pager (no attachment) */
- char serveremail[80]; /* From: Mail address */
- char mailcmd[160]; /* Configurable mail command */
- char language[MAX_LANGUAGE]; /* Config: Language setting */
- char zonetag[80]; /* Time zone */
+ char context[AST_MAX_CONTEXT]; /*!< Voicemail context */
+ char mailbox[AST_MAX_EXTENSION];/*!< Mailbox id, unique within vm context */
+ char password[80]; /*!< Secret pin code, numbers only */
+ char fullname[80]; /*!< Full name, for directory app */
+ char email[80]; /*!< E-mail address */
+ char pager[80]; /*!< E-mail address to pager (no attachment) */
+ char serveremail[80]; /*!< From: Mail address */
+ char mailcmd[160]; /*!< Configurable mail command */
+ char language[MAX_LANGUAGE]; /*!< Config: Language setting */
+ char zonetag[80]; /*!< Time zone */
char callback[80];
char dialout[80];
- char uniqueid[20]; /* Unique integer identifier */
+ char uniqueid[20]; /*!< Unique integer identifier */
char exit[80];
- unsigned int flags; /* VM_ flags */
+ unsigned int flags; /*!< VM_ flags */
int saydurationm;
- int maxmsg; /* Maximum number of msgs per folder for this mailbox */
+ int maxmsg; /*!< Maximum number of msgs per folder for this mailbox */
struct ast_vm_user *next;
};
diff --git a/apps/app_waitforring.c b/apps/app_waitforring.c
index 07e85f2d2..0de20560f 100755
--- a/apps/app_waitforring.c
+++ b/apps/app_waitforring.c
@@ -20,6 +20,7 @@
*
* \brief Wait for Ring Application
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_waitforsilence.c b/apps/app_waitforsilence.c
index d9274b441..79d2b2274 100755
--- a/apps/app_waitforsilence.c
+++ b/apps/app_waitforsilence.c
@@ -22,10 +22,11 @@
/*! \file
*
* \brief Wait for Silence
- * - Waits for up to 'x' milliseconds of silence, 'y' times
- * - WaitForSilence(500,2) will wait for 1/2 second of silence, twice
- * - WaitForSilence(1000,1) will wait for 1 second of silence, once
+ * - Waits for up to 'x' milliseconds of silence, 'y' times \n
+ * - WaitForSilence(500,2) will wait for 1/2 second of silence, twice \n
+ * - WaitForSilence(1000,1) will wait for 1 second of silence, once \n
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_while.c b/apps/app_while.c
index 5436cd3c9..757171ad1 100755
--- a/apps/app_while.c
+++ b/apps/app_while.c
@@ -20,6 +20,7 @@
*
* \brief While Loop and ExecIf Implementations
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_zapateller.c b/apps/app_zapateller.c
index 9d3ab1209..e3d55c056 100755
--- a/apps/app_zapateller.c
+++ b/apps/app_zapateller.c
@@ -20,6 +20,7 @@
*
* \brief Playback the special information tone to get rid of telemarketers
*
+ * \ingroup applications
*/
#include <string.h>
diff --git a/apps/app_zapbarge.c b/apps/app_zapbarge.c
index d9404a4a8..9511c4f6b 100755
--- a/apps/app_zapbarge.c
+++ b/apps/app_zapbarge.c
@@ -23,6 +23,7 @@
*
* \brief Zap Barge support
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/apps/app_zapras.c b/apps/app_zapras.c
index 9edb56d0b..a36191455 100755
--- a/apps/app_zapras.c
+++ b/apps/app_zapras.c
@@ -20,6 +20,7 @@
*
* \brief Execute an ISDN RAS
*
+ * \ingroup applications
*/
#include <sys/ioctl.h>
diff --git a/apps/app_zapscan.c b/apps/app_zapscan.c
index df215b45a..f016cb514 100755
--- a/apps/app_zapscan.c
+++ b/apps/app_zapscan.c
@@ -25,6 +25,7 @@
*
* \brief Zap Scanner
*
+ * \ingroup applications
*/
#include <stdlib.h>
diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c
index 958eb7913..63beb3dcb 100755
--- a/cdr/cdr_csv.c
+++ b/cdr/cdr_csv.c
@@ -23,6 +23,7 @@
* \brief Comma Separated Value CDR records.
*
* \arg See also \ref AstCDR
+ * \ingroup cdr_drivers
*/
#include <sys/types.h>
diff --git a/cdr/cdr_custom.c b/cdr/cdr_custom.c
index 34c47b962..0658c8e44 100755
--- a/cdr/cdr_custom.c
+++ b/cdr/cdr_custom.c
@@ -25,6 +25,7 @@
* \arg See also \ref AstCDR
*
* Logs in LOG_DIR/cdr_custom
+ * \ingroup cdr_drivers
*/
#include <sys/types.h>
diff --git a/cdr/cdr_manager.c b/cdr/cdr_manager.c
index 71546b120..e914772a2 100755
--- a/cdr/cdr_manager.c
+++ b/cdr/cdr_manager.c
@@ -22,6 +22,7 @@
* \arg \ref AstCDR
* \arg \ref AstAMI
* \arg \ref Config_ami
+ * \ingroup cdr_drivers
*/
#include <sys/types.h>
diff --git a/cdr/cdr_odbc.c b/cdr/cdr_odbc.c
index 3fc4ca926..2f78c99bb 100755
--- a/cdr/cdr_odbc.c
+++ b/cdr/cdr_odbc.c
@@ -25,6 +25,7 @@
* See also:
* \arg http://www.unixodbc.org
* \arg \ref Config_cdr
+ * \ingroup cdr_drivers
*/
#include <sys/types.h>
diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c
index 01d6dbb0a..f9769ab76 100755
--- a/cdr/cdr_pgsql.c
+++ b/cdr/cdr_pgsql.c
@@ -29,6 +29,7 @@
* See also
* \arg \ref Config_cdr
* \arg http://www.postgresql.org/
+ * \ingroup cdr_drivers
*/
#include <sys/types.h>
diff --git a/cdr/cdr_sqlite.c b/cdr/cdr_sqlite.c
index 74f3078e3..33410229f 100755
--- a/cdr/cdr_sqlite.c
+++ b/cdr/cdr_sqlite.c
@@ -28,6 +28,7 @@
* \arg http://www.sqlite.org/
*
* Creates the database and table on-the-fly
+ * \ingroup cdr_drivers
*/
#include <sys/types.h>
diff --git a/cdr/cdr_tds.c b/cdr/cdr_tds.c
index 06cfe5973..b5bb8a4c2 100755
--- a/cdr/cdr_tds.c
+++ b/cdr/cdr_tds.c
@@ -21,6 +21,7 @@
* See also
* \arg \ref Config_cdr
* \arg http://www.freetds.org/
+ * \ingroup cdr_drivers
*/
/*! \verbatim
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 812e87be0..f886288b8 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -18,10 +18,14 @@
/*! \file
- * \brief Implementation of Agents
+ * \brief Implementation of Agents (proxy channel)
*
* This file is the implementation of Agents modules.
- * It is a dynamic module that is loaded by Asterisk. At load time, load_module is run.
+ * It is a dynamic module that is loaded by Asterisk.
+ * \par See also
+ * \arg \ref Config_agent
+ *
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_alsa.c b/channels/chan_alsa.c
index adbce62eb..961abef54 100755
--- a/channels/chan_alsa.c
+++ b/channels/chan_alsa.c
@@ -18,6 +18,11 @@
/*! \file
* \brief ALSA sound card channel driver
+ *
+ * \par See also
+ * \arg Config_alsa
+ *
+ * \ingroup channel_drivers
*/
diff --git a/channels/chan_features.c b/channels/chan_features.c
index cd69d5d9e..32deae12f 100755
--- a/channels/chan_features.c
+++ b/channels/chan_features.c
@@ -22,6 +22,7 @@
*
* \note *** Experimental code ****
*
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index 208e817be..469ce398e 100755
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -25,6 +25,10 @@
*
* \brief This file is part of the chan_h323 driver for Asterisk
*
+ * \par See also
+ * \arg Config_h323
+ *
+ * \ingroup channel_drivers
*/
#include <sys/socket.h>
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index ca3d162ed..1cb7587de 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -20,6 +20,10 @@
*
* \brief Implementation of Inter-Asterisk eXchange Version 2
*
+ * \par See also
+ * \arg \ref Config_iax
+ *
+ * \ingroup channel_drivers
*/
#include "asterisk.h"
@@ -7694,6 +7698,9 @@ static char *pdescrip =
"the calling entity is in fact an IAXy) with the given template or\n"
"default if one is not specified. Returns -1 on error or 0 on success.\n";
+/*! iax2provision
+\ingroup applications
+*/
static int iax2_prov_app(struct ast_channel *chan, void *data)
{
int res;
diff --git a/channels/chan_local.c b/channels/chan_local.c
index 8e62f1a3f..6a4cc0c1f 100755
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -20,6 +20,7 @@
*
* \brief Local Proxy Channel
*
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index a560fd335..4447bd7ff 100755
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -20,6 +20,10 @@
*
* \brief Implementation of Media Gateway Control Protocol
*
+ * \par See also
+ * \arg \ref Config_mgcp
+ *
+ * \ingroup channel_drivers
*/
/* FO: Changes
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index b7ad71591..caa210aed 100755
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -1,14 +1,29 @@
/*
- * Chan_Misdn -- Channel Driver for Asterisk
- *
- * Interface to Asterisk
- *
+ * Asterisk -- An open source telephony toolkit.
+ *
* Copyright (C) 2004, Christian Richter
*
* Christian Richter <crich@beronet.com>
*
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
* This program is free software, distributed under the terms of
- * the GNU General Public License
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ *
+ */
+
+/*!
+ * \file
+ *
+ * \brief the chan_misdn channel driver for Asterisk
+ * \author Christian Richter <crich@beronet.com>
+ *
+ * \ingroup channel_drivers
*/
#include <stdio.h>
@@ -56,23 +71,23 @@ ast_mutex_t release_lock_mutex;
/* BEGIN: chan_misdn.h */
enum misdn_chan_state {
- MISDN_NOTHING, /* at beginning */
- MISDN_WAITING4DIGS, /* when waiting for infos */
- MISDN_EXTCANTMATCH, /* when asterisk couldnt match our ext */
- MISDN_DIALING, /* when pbx_start */
- MISDN_PROGRESS, /* we got a progress */
- MISDN_CALLING, /* when misdn_call is called */
- MISDN_CALLING_ACKNOWLEDGE, /* when we get SETUP_ACK */
- MISDN_ALERTING, /* when Alerting */
- MISDN_BUSY, /* when BUSY */
- MISDN_CONNECTED, /* when connected */
- MISDN_BRIDGED, /* when bridged */
- MISDN_CLEANING, /* when hangup from * but we were connected before */
- MISDN_HUNGUP_FROM_MISDN, /* when DISCONNECT/RELEASE/REL_COMP cam from misdn */
- MISDN_HUNGUP_FROM_AST, /* when DISCONNECT/RELEASE/REL_COMP came out of */
+ MISDN_NOTHING, /*!< at beginning */
+ MISDN_WAITING4DIGS, /*!< when waiting for infos */
+ MISDN_EXTCANTMATCH, /*!< when asterisk couldnt match our ext */
+ MISDN_DIALING, /*!< when pbx_start */
+ MISDN_PROGRESS, /*!< we got a progress */
+ MISDN_CALLING, /*!< when misdn_call is called */
+ MISDN_CALLING_ACKNOWLEDGE, /*!< when we get SETUP_ACK */
+ MISDN_ALERTING, /*!< when Alerting */
+ MISDN_BUSY, /*!< when BUSY */
+ MISDN_CONNECTED, /*!< when connected */
+ MISDN_BRIDGED, /*!< when bridged */
+ MISDN_CLEANING, /*!< when hangup from * but we were connected before */
+ MISDN_HUNGUP_FROM_MISDN, /*!< when DISCONNECT/RELEASE/REL_COMP cam from misdn */
+ MISDN_HUNGUP_FROM_AST, /*!< when DISCONNECT/RELEASE/REL_COMP came out of */
/* misdn_hangup */
- MISDN_HOLDED, /* if this chan is holded */
- MISDN_HOLD_DISCONNECT /* if this chan is holded */
+ MISDN_HOLDED, /*!< if this chan is holded */
+ MISDN_HOLD_DISCONNECT /*!< if this chan is holded */
};
diff --git a/channels/chan_misdn_config.c b/channels/chan_misdn_config.c
index 61a28fa7f..52fbe457c 100755
--- a/channels/chan_misdn_config.c
+++ b/channels/chan_misdn_config.c
@@ -1,14 +1,29 @@
/*
- * Chan_Misdn -- Channel Driver for Asterisk
- *
- * Interface to Asterisk
- *
+ * Asterisk -- An open source telephony toolkit.
+ *
* Copyright (C) 2005, Christian Richter
*
* Christian Richter <crich@beronet.com>
*
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
* This program is free software, distributed under the terms of
- * the GNU General Public License
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ *
+ */
+
+/*!
+ * \file
+ *
+ * \brief chan_misdn configuration management
+ * \author Christian Richter <crich@beronet.com>
+ *
+ * \ingroup channel_drivers
*/
diff --git a/channels/chan_modem.c b/channels/chan_modem.c
index d01c13ac5..f37a29e12 100755
--- a/channels/chan_modem.c
+++ b/channels/chan_modem.c
@@ -20,6 +20,7 @@
*
* \brief A/Open ITU-56/2 Voice Modem Driver (Rockwell, IS-101, and others)
*
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_modem_aopen.c b/channels/chan_modem_aopen.c
index 44b37afb4..0183cde92 100755
--- a/channels/chan_modem_aopen.c
+++ b/channels/chan_modem_aopen.c
@@ -20,6 +20,7 @@
*
* A/Open ITU-56/2 Voice Modem Driver (Rockwell, IS-101, and others)
*
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_modem_bestdata.c b/channels/chan_modem_bestdata.c
index bab18a8d1..e54a66a49 100755
--- a/channels/chan_modem_bestdata.c
+++ b/channels/chan_modem_bestdata.c
@@ -21,6 +21,7 @@
*
* BestData 56SX-92 Voice Modem Driver (Conexant)
*
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_modem_i4l.c b/channels/chan_modem_i4l.c
index fd875a592..3d0cbf26b 100755
--- a/channels/chan_modem_i4l.c
+++ b/channels/chan_modem_i4l.c
@@ -20,6 +20,7 @@
*
* \brief ISDN4Linux TTY Driver
*
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_nbs.c b/channels/chan_nbs.c
index edb989c10..380cb3b98 100755
--- a/channels/chan_nbs.c
+++ b/channels/chan_nbs.c
@@ -18,8 +18,11 @@
/*! \file
*
- * \brief Generic Linux Telephony Interface driver
+ * \brief Network broadcast sound support channel driver
*
+ * \author Mark Spencer <markster@digium.com>
+ *
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_oss.c b/channels/chan_oss.c
index 386199628..ee76a21f0 100755
--- a/channels/chan_oss.c
+++ b/channels/chan_oss.c
@@ -23,6 +23,10 @@
*
* \brief Channel driver for OSS sound cards
*
+ * \par See also
+ * \arg \ref Config_oss
+ *
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_oss_old.c b/channels/chan_oss_old.c
index dc5db4219..1450703b4 100755
--- a/channels/chan_oss_old.c
+++ b/channels/chan_oss_old.c
@@ -23,6 +23,7 @@
* VERY BADLY WRITTEN DRIVER so please don't use it as a model for
* writing a driver.
*
+ * \ingroup channel_drivers
*/
#include <unistd.h>
diff --git a/channels/chan_phone.c b/channels/chan_phone.c
index 03fe43608..c1d552716 100755
--- a/channels/chan_phone.c
+++ b/channels/chan_phone.c
@@ -20,6 +20,7 @@
*
* \brief Generic Linux Telephony Interface driver
*
+ * \ingroup channel_drivers
*/
#include <stdio.h>
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 498cc12cc..377448284 100755
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -20,6 +20,8 @@
*
* \brief Implementation of the Skinny protocol
*
+ * \author Jeremy McNamara & Florian Overkamp
+ * \ingroup channel_drivers
*/
diff --git a/channels/chan_vpb.c b/channels/chan_vpb.c
index 7c1b1c468..f735e3d16 100755
--- a/channels/chan_vpb.c
+++ b/channels/chan_vpb.c
@@ -26,6 +26,7 @@
*
* \brief VoiceTronix Interface driver
*
+ * \ingroup channel_drivers
*/
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index f44ebac29..199a377ba 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -20,6 +20,17 @@
*
* \brief Zaptel Pseudo TDM interface
*
+ * Connects to the zaptel telephony library as well as
+ * libpri. Libpri is optional and needed only if you are
+ * going to use ISDN connections.
+ *
+ * You need to install libraries before you attempt to compile
+ * and install the zaptel channel.
+ *
+ * \par See also
+ * \arg \ref Config_zap
+ *
+ * \ingroup channel_drivers
*/
#include <stdio.h>
@@ -96,8 +107,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#define ZT_EVENT_DTMFUP 0
#endif
-/*
- * Define ZHONE_HACK to cause us to go off hook and then back on hook when
+/*!
+ * \note Define ZHONE_HACK to cause us to go off hook and then back on hook when
* the user hangs up to reset the state machine so ring works properly.
* This is used to be able to support kewlstart by putting the zhone in
* groundstart mode since their forward disconnect supervision is entirely
@@ -105,24 +116,23 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
* is entirely unwilling to provide any assistance with their channel banks
* even though their web site says they support their products for life.
*/
-
/* #define ZHONE_HACK */
-/*
+/*! \note
* Define if you want to check the hook state for an FXO (FXS signalled) interface
* before dialing on it. Certain FXO interfaces always think they're out of
* service with this method however.
*/
/* #define ZAP_CHECK_HOOKSTATE */
-/* Typically, how many rings before we should send Caller*ID */
+/*! \brief Typically, how many rings before we should send Caller*ID */
#define DEFAULT_CIDRINGS 1
#define CHANNEL_PSEUDO -12
#define AST_LAW(p) (((p)->law == ZT_LAW_ALAW) ? AST_FORMAT_ALAW : AST_FORMAT_ULAW)
-/* Signaling types that need to use MF detection should be placed in this macro */
+/*! \brief Signaling types that need to use MF detection should be placed in this macro */
#define NEED_MFDETECT(p) (((p)->sig == SIG_FEATDMF) || ((p)->sig == SIG_FEATDMF_TA) || ((p)->sig == SIG_E911) || ((p)->sig == SIG_FEATB))
static const char desc[] = "Zapata Telephony"
@@ -171,8 +181,8 @@ static const char config[] = "zapata.conf";
#define SIG_GR303FXSKS (0x0100000 | ZT_SIG_FXSKS)
#define NUM_SPANS 32
-#define NUM_DCHANS 4 /* No more than 4 d-channels */
-#define MAX_CHANNELS 672 /* No more than a DS3 per trunk group */
+#define NUM_DCHANS 4 /*!< No more than 4 d-channels */
+#define MAX_CHANNELS 672 /*!< No more than a DS3 per trunk group */
#define CHAN_PSEUDO -2
@@ -287,7 +297,7 @@ static char nationalprefix[10] = "";
static char localprefix[20] = "";
static char privateprefix[20] = "";
static char unknownprefix[20] = "";
-static long resetinterval = 3600; /* How often (in seconds) to reset unused channels. Default 1 hour. */
+static long resetinterval = 3600; /*!< How often (in seconds) to reset unused channels. Default 1 hour. */
static struct ast_channel inuse = { "GR-303InUse" };
#ifdef PRI_GETSET_TIMERS
static int pritimers[PRI_MAX_TIMERS];
@@ -296,19 +306,19 @@ static int pridebugfd = -1;
static char pridebugfilename[1024]="";
#endif
-/* Wait up to 16 seconds for first digit (FXO logic) */
+/*! \brief Wait up to 16 seconds for first digit (FXO logic) */
static int firstdigittimeout = 16000;
-/* How long to wait for following digits (FXO logic) */
+/*! \brief How long to wait for following digits (FXO logic) */
static int gendigittimeout = 8000;
-/* How long to wait for an extra digit, if there is an ambiguous match */
+/*! \brief How long to wait for an extra digit, if there is an ambiguous match */
static int matchdigittimeout = 3000;
static int usecnt =0;
AST_MUTEX_DEFINE_STATIC(usecnt_lock);
-/* Protect the interface list (of zt_pvt's) */
+/*! \brief Protect the interface list (of zt_pvt's) */
AST_MUTEX_DEFINE_STATIC(iflock);
@@ -318,23 +328,23 @@ static int ifcount = 0;
AST_MUTEX_DEFINE_STATIC(pridebugfdlock);
#endif
-/* Whether we answer on a Polarity Switch event */
+/*! \brief Whether we answer on a Polarity Switch event */
static int answeronpolarityswitch = 0;
-/* Whether we hang up on a Polarity Switch event */
+/*! \brief Whether we hang up on a Polarity Switch event */
static int hanguponpolarityswitch = 0;
-/* How long (ms) to ignore Polarity Switch events after we answer a call */
+/*! \brief How long (ms) to ignore Polarity Switch events after we answer a call */
static int polarityonanswerdelay = 600;
-/* When to send the CallerID signals (rings) */
+/*! \brief When to send the CallerID signals (rings) */
static int sendcalleridafter = DEFAULT_CIDRINGS;
-/* Protect the monitoring thread, so only one process can kill or start it, and not
+/*! \brief Protect the monitoring thread, so only one process can kill or start it, and not
when it's doing something critical. */
AST_MUTEX_DEFINE_STATIC(monlock);
-/* This is the thread for the monitor which checks for input on the channels
+/*! \brief This is the thread for the monitor which checks for input on the channels
which are not currently in use. */
static pthread_t monitor_thread = AST_PTHREADT_NULL;
@@ -344,17 +354,17 @@ static enum ast_bridge_result zt_bridge(struct ast_channel *c0, struct ast_chann
static int zt_sendtext(struct ast_channel *c, const char *text);
+/*! \brief Avoid the silly zt_getevent which ignores a bunch of events */
static inline int zt_get_event(int fd)
{
- /* Avoid the silly zt_getevent which ignores a bunch of events */
int j;
if (ioctl(fd, ZT_GETEVENT, &j) == -1) return -1;
return j;
}
+/*! \brief Avoid the silly zt_waitevent which ignores a bunch of events */
static inline int zt_wait_event(int fd)
{
- /* Avoid the silly zt_waitevent which ignores a bunch of events */
int i,j=0;
i = ZT_IOMUX_SIGEVENT;
if (ioctl(fd, ZT_IOMUX, &i) == -1) return -1;
@@ -362,16 +372,16 @@ static inline int zt_wait_event(int fd)
return j;
}
-/* Chunk size to read -- we use 20ms chunks to make things happy. */
+/*! Chunk size to read -- we use 20ms chunks to make things happy. */
#define READ_SIZE 160
-#define MASK_AVAIL (1 << 0) /* Channel available for PRI use */
-#define MASK_INUSE (1 << 1) /* Channel currently in use */
+#define MASK_AVAIL (1 << 0) /*!< Channel available for PRI use */
+#define MASK_INUSE (1 << 1) /*!< Channel currently in use */
-#define CALLWAITING_SILENT_SAMPLES ( (300 * 8) / READ_SIZE) /* 300 ms */
-#define CALLWAITING_REPEAT_SAMPLES ( (10000 * 8) / READ_SIZE) /* 300 ms */
-#define CIDCW_EXPIRE_SAMPLES ( (500 * 8) / READ_SIZE) /* 500 ms */
-#define MIN_MS_SINCE_FLASH ( (2000) ) /* 2000 ms */
+#define CALLWAITING_SILENT_SAMPLES ( (300 * 8) / READ_SIZE) /*!< 300 ms */
+#define CALLWAITING_REPEAT_SAMPLES ( (10000 * 8) / READ_SIZE) /*!< 300 ms */
+#define CIDCW_EXPIRE_SAMPLES ( (500 * 8) / READ_SIZE) /*!< 500 ms */
+#define MIN_MS_SINCE_FLASH ( (2000) ) /*!< 2000 ms */
#define DEFAULT_RINGT ( (8000 * 8) / READ_SIZE)
struct zt_pvt;
@@ -391,44 +401,44 @@ static int ringt_base = DEFAULT_RINGT;
#define PRI_EXPLICIT(p) (((p) >> 16) & 0x01)
struct zt_pri {
- pthread_t master; /* Thread of master */
- ast_mutex_t lock; /* Mutex */
- char idleext[AST_MAX_EXTENSION]; /* Where to idle extra calls */
- char idlecontext[AST_MAX_CONTEXT]; /* What context to use for idle */
- char idledial[AST_MAX_EXTENSION]; /* What to dial before dumping */
- int minunused; /* Min # of channels to keep empty */
- int minidle; /* Min # of "idling" calls to keep active */
- int nodetype; /* Node type */
- int switchtype; /* Type of switch to emulate */
- int nsf; /* Network-Specific Facilities */
- int dialplan; /* Dialing plan */
- int localdialplan; /* Local dialing plan */
- char internationalprefix[10]; /* country access code ('00' for european dialplans) */
- char nationalprefix[10]; /* area access code ('0' for european dialplans) */
- char localprefix[20]; /* area access code + area code ('0'+area code for european dialplans) */
- char privateprefix[20]; /* for private dialplans */
- char unknownprefix[20]; /* for unknown dialplans */
- int dchannels[NUM_DCHANS]; /* What channel are the dchannels on */
- int trunkgroup; /* What our trunkgroup is */
- int mastertrunkgroup; /* What trunk group is our master */
- int prilogicalspan; /* Logical span number within trunk group */
- int numchans; /* Num of channels we represent */
- int overlapdial; /* In overlap dialing mode */
- int facilityenable; /* Enable facility IEs */
- struct pri *dchans[NUM_DCHANS]; /* Actual d-channels */
- int dchanavail[NUM_DCHANS]; /* Whether each channel is available */
- struct pri *pri; /* Currently active D-channel */
+ pthread_t master; /*!< Thread of master */
+ ast_mutex_t lock; /*!< Mutex */
+ char idleext[AST_MAX_EXTENSION]; /*!< Where to idle extra calls */
+ char idlecontext[AST_MAX_CONTEXT]; /*!< What context to use for idle */
+ char idledial[AST_MAX_EXTENSION]; /*!< What to dial before dumping */
+ int minunused; /*!< Min # of channels to keep empty */
+ int minidle; /*!< Min # of "idling" calls to keep active */
+ int nodetype; /*!< Node type */
+ int switchtype; /*!< Type of switch to emulate */
+ int nsf; /*!< Network-Specific Facilities */
+ int dialplan; /*!< Dialing plan */
+ int localdialplan; /*!< Local dialing plan */
+ char internationalprefix[10]; /*!< country access code ('00' for european dialplans) */
+ char nationalprefix[10]; /*!< area access code ('0' for european dialplans) */
+ char localprefix[20]; /*!< area access code + area code ('0'+area code for european dialplans) */
+ char privateprefix[20]; /*!< for private dialplans */
+ char unknownprefix[20]; /*!< for unknown dialplans */
+ int dchannels[NUM_DCHANS]; /*!< What channel are the dchannels on */
+ int trunkgroup; /*!< What our trunkgroup is */
+ int mastertrunkgroup; /*!< What trunk group is our master */
+ int prilogicalspan; /*!< Logical span number within trunk group */
+ int numchans; /*!< Num of channels we represent */
+ int overlapdial; /*!< In overlap dialing mode */
+ int facilityenable; /*!< Enable facility IEs */
+ struct pri *dchans[NUM_DCHANS]; /*!< Actual d-channels */
+ int dchanavail[NUM_DCHANS]; /*!< Whether each channel is available */
+ struct pri *pri; /*!< Currently active D-channel */
int debug;
- int fds[NUM_DCHANS]; /* FD's for d-channels */
+ int fds[NUM_DCHANS]; /*!< FD's for d-channels */
int offset;
int span;
int resetting;
int resetpos;
- time_t lastreset; /* time when unused channels were last reset */
- long resetinterval; /* Interval (in seconds) for resetting unused channels */
- struct zt_pvt *pvts[MAX_CHANNELS]; /* Member channel pvt structs */
- struct zt_pvt *crvs; /* Member CRV structs */
- struct zt_pvt *crvend; /* Pointer to end of CRV structs */
+ time_t lastreset; /*!< time when unused channels were last reset */
+ long resetinterval; /*!< Interval (in seconds) for resetting unused channels */
+ struct zt_pvt *pvts[MAX_CHANNELS]; /*!< Member channel pvt structs */
+ struct zt_pvt *crvs; /*!< Member CRV structs */
+ struct zt_pvt *crvend; /*!< Pointer to end of CRV structs */
};
@@ -453,13 +463,13 @@ static int dialplan = PRI_NATIONAL_ISDN + 1;
static int localdialplan = PRI_NATIONAL_ISDN + 1;
#else
-/* Shut up the compiler */
+/*! Shut up the compiler */
struct zt_pri;
#endif
-#define SUB_REAL 0 /* Active call */
-#define SUB_CALLWAIT 1 /* Call-Waiting call on hold */
-#define SUB_THREEWAY 2 /* Three-way call */
+#define SUB_REAL 0 /*!< Active call */
+#define SUB_CALLWAIT 1 /*!< Call-Waiting call on hold */
+#define SUB_THREEWAY 2 /*!< Three-way call */
/* Polarity states */
#define POLARITY_IDLE 0
@@ -490,7 +500,7 @@ struct zt_subchannel {
struct ast_channel *owner;
int chan;
short buffer[AST_FRIENDLY_OFFSET/2 + READ_SIZE];
- struct ast_frame f; /* One frame for each channel. How did this ever work before? */
+ struct ast_frame f; /*!< One frame for each channel. How did this ever work before? */
unsigned int needringing:1;
unsigned int needbusy:1;
unsigned int needcongestion:1;
@@ -509,24 +519,24 @@ struct zt_subchannel {
static struct zt_pvt {
ast_mutex_t lock;
- struct ast_channel *owner; /* Our current active owner (if applicable) */
- /* Up to three channels can be associated with this call */
+ struct ast_channel *owner; /*!< Our current active owner (if applicable) */
+ /*!< Up to three channels can be associated with this call */
- struct zt_subchannel sub_unused; /* Just a safety precaution */
- struct zt_subchannel subs[3]; /* Sub-channels */
- struct zt_confinfo saveconf; /* Saved conference info */
+ struct zt_subchannel sub_unused; /*!< Just a safety precaution */
+ struct zt_subchannel subs[3]; /*!< Sub-channels */
+ struct zt_confinfo saveconf; /*!< Saved conference info */
- struct zt_pvt *slaves[MAX_SLAVES]; /* Slave to us (follows our conferencing) */
- struct zt_pvt *master; /* Master to us (we follow their conferencing) */
- int inconference; /* If our real should be in the conference */
+ struct zt_pvt *slaves[MAX_SLAVES]; /*!< Slave to us (follows our conferencing) */
+ struct zt_pvt *master; /*!< Master to us (we follow their conferencing) */
+ int inconference; /*!< If our real should be in the conference */
- int sig; /* Signalling style */
- int radio; /* radio type */
+ int sig; /*!< Signalling style */
+ int radio; /*!< radio type */
float rxgain;
float txgain;
- int tonezone; /* tone zone for this chan, or -1 for default */
- struct zt_pvt *next; /* Next channel in list */
- struct zt_pvt *prev; /* Prev channel in list */
+ int tonezone; /*!< tone zone for this chan, or -1 for default */
+ struct zt_pvt *next; /*!< Next channel in list */
+ struct zt_pvt *prev; /*!< Prev channel in list */
/* flags */
unsigned int adsi:1;
@@ -537,9 +547,9 @@ static struct zt_pvt {
unsigned int callwaitingcallerid:1;
unsigned int cancallforward:1;
unsigned int canpark:1;
- unsigned int confirmanswer:1; /* Wait for '#' to confirm answer */
+ unsigned int confirmanswer:1; /*!< Wait for '#' to confirm answer */
unsigned int destroy:1;
- unsigned int didtdd:1; /* flag to say its done it once */
+ unsigned int didtdd:1; /*!< flag to say its done it once */
unsigned int dialednone:1;
unsigned int dialing:1;
unsigned int digital:1;
@@ -547,31 +557,31 @@ static struct zt_pvt {
unsigned int echobreak:1;
unsigned int echocanbridged:1;
unsigned int echocanon:1;
- unsigned int faxhandled:1; /* Has a fax tone already been handled? */
+ unsigned int faxhandled:1; /*!< Has a fax tone already been handled? */
unsigned int firstradio:1;
unsigned int hanguponpolarityswitch:1;
unsigned int hardwaredtmf:1;
unsigned int hidecallerid;
unsigned int ignoredtmf:1;
- unsigned int immediate:1; /* Answer before getting digits? */
+ unsigned int immediate:1; /*!< Answer before getting digits? */
unsigned int inalarm:1;
- unsigned int mate:1; /* flag to say its in MATE mode */
+ unsigned int mate:1; /*!< flag to say its in MATE mode */
unsigned int outgoing:1;
unsigned int overlapdial:1;
unsigned int permcallwaiting:1;
- unsigned int permhidecallerid:1; /* Whether to hide our outgoing caller ID or not */
+ unsigned int permhidecallerid:1; /*!< Whether to hide our outgoing caller ID or not */
unsigned int priindication_oob:1;
unsigned int priexclusive:1;
unsigned int pulse:1;
- unsigned int pulsedial:1; /* whether a pulse dial phone is detected */
- unsigned int restrictcid:1; /* Whether restrict the callerid -> only send ANI */
+ unsigned int pulsedial:1; /*!< whether a pulse dial phone is detected */
+ unsigned int restrictcid:1; /*!< Whether restrict the callerid -> only send ANI */
unsigned int threewaycalling:1;
unsigned int transfer:1;
- unsigned int use_callerid:1; /* Whether or not to use caller id on this channel */
- unsigned int use_callingpres:1; /* Whether to use the callingpres the calling switch sends */
+ unsigned int use_callerid:1; /*!< Whether or not to use caller id on this channel */
+ unsigned int use_callingpres:1; /*!< Whether to use the callingpres the calling switch sends */
unsigned int usedistinctiveringdetection:1;
- unsigned int zaptrcallerid:1; /* should we use the callerid from incoming call on zap transfer or not */
- unsigned int transfertobusy:1; /* allow flash-transfers to busy channels */
+ unsigned int zaptrcallerid:1; /*!< should we use the callerid from incoming call on zap transfer or not */
+ unsigned int transfertobusy:1; /*!< allow flash-transfers to busy channels */
#if defined(ZAPATA_PRI)
unsigned int alerting:1;
unsigned int alreadyhungup:1;
@@ -598,31 +608,31 @@ static struct zt_pvt {
char cid_ani[AST_MAX_EXTENSION];
#endif
char cid_num[AST_MAX_EXTENSION];
- int cid_ton; /* Type Of Number (TON) */
+ int cid_ton; /*!< Type Of Number (TON) */
char cid_name[AST_MAX_EXTENSION];
char lastcid_num[AST_MAX_EXTENSION];
char lastcid_name[AST_MAX_EXTENSION];
- char *origcid_num; /* malloced original callerid */
- char *origcid_name; /* malloced original callerid */
+ char *origcid_num; /*!< malloced original callerid */
+ char *origcid_name; /*!< malloced original callerid */
char callwait_num[AST_MAX_EXTENSION];
char callwait_name[AST_MAX_EXTENSION];
char rdnis[AST_MAX_EXTENSION];
char dnid[AST_MAX_EXTENSION];
unsigned int group;
int law;
- int confno; /* Our conference */
- int confusers; /* Who is using our conference */
- int propconfno; /* Propagated conference number */
+ int confno; /*!< Our conference */
+ int confusers; /*!< Who is using our conference */
+ int propconfno; /*!< Propagated conference number */
ast_group_t callgroup;
ast_group_t pickupgroup;
- int channel; /* Channel Number or CRV */
- int span; /* Span number */
- time_t guardtime; /* Must wait this much time before using for new call */
- int cid_signalling; /* CID signalling type bell202 or v23 */
- int cid_start; /* CID start indicator, polarity or ring */
- int callingpres; /* The value of callling presentation that we're going to use when placing a PRI call */
- int callwaitingrepeat; /* How many samples to wait before repeating call waiting */
- int cidcwexpire; /* When to expire our muting for CID/CW */
+ int channel; /*!< Channel Number or CRV */
+ int span; /*!< Span number */
+ time_t guardtime; /*!< Must wait this much time before using for new call */
+ int cid_signalling; /*!< CID signalling type bell202 or v23 */
+ int cid_start; /*!< CID start indicator, polarity or ring */
+ int callingpres; /*!< The value of callling presentation that we're going to use when placing a PRI call */
+ int callwaitingrepeat; /*!< How many samples to wait before repeating call waiting */
+ int cidcwexpire; /*!< When to expire our muting for CID/CW */
unsigned char *cidspill;
int cidpos;
int cidlen;
@@ -638,23 +648,23 @@ static struct zt_pvt {
int busy_tonelength;
int busy_quietlength;
int callprogress;
- struct timeval flashtime; /* Last flash-hook time */
+ struct timeval flashtime; /*!< Last flash-hook time */
struct ast_dsp *dsp;
- int cref; /* Call reference number */
+ int cref; /*!< Call reference number */
ZT_DIAL_OPERATION dop;
- int whichwink; /* SIG_FEATDMF_TA Which wink are we on? */
+ int whichwink; /*!< SIG_FEATDMF_TA Which wink are we on? */
char finaldial[64];
- char accountcode[AST_MAX_ACCOUNT_CODE]; /* Account code */
- int amaflags; /* AMA Flags */
- struct tdd_state *tdd; /* TDD flag */
+ char accountcode[AST_MAX_ACCOUNT_CODE]; /*!< Account code */
+ int amaflags; /*!< AMA Flags */
+ struct tdd_state *tdd; /*!< TDD flag */
char call_forward[AST_MAX_EXTENSION];
char mailbox[AST_MAX_EXTENSION];
char dialdest[256];
int onhooktime;
int msgstate;
- int distinctivering; /* Which distinctivering to use */
- int cidrings; /* Which ring to deliver CID on */
- int dtmfrelax; /* whether to run in relaxed DTMF mode */
+ int distinctivering; /*!< Which distinctivering to use */
+ int cidrings; /*!< Which ring to deliver CID on */
+ int dtmfrelax; /*!< whether to run in relaxed DTMF mode */
int fake_event;
int polarityonanswerdelay;
struct timeval polaritydelaytv;
@@ -741,23 +751,23 @@ static int num_cadence = 4;
static int user_has_defined_cadences = 0;
static struct zt_ring_cadence cadences[NUM_CADENCE_MAX] = {
- { { 125, 125, 2000, 4000 } }, /* Quick chirp followed by normal ring */
- { { 250, 250, 500, 1000, 250, 250, 500, 4000 } }, /* British style ring */
- { { 125, 125, 125, 125, 125, 4000 } }, /* Three short bursts */
- { { 1000, 500, 2500, 5000 } }, /* Long ring */
+ { { 125, 125, 2000, 4000 } }, /*!< Quick chirp followed by normal ring */
+ { { 250, 250, 500, 1000, 250, 250, 500, 4000 } }, /*!< British style ring */
+ { { 125, 125, 125, 125, 125, 4000 } }, /*!< Three short bursts */
+ { { 1000, 500, 2500, 5000 } }, /*!< Long ring */
};
-int receivedRingT; /* Used to find out what ringtone we are on */
+int receivedRingT; /*!< Used to find out what ringtone we are on */
-/* cidrings says in which pause to transmit the cid information, where the first pause
+/*! \brief cidrings says in which pause to transmit the cid information, where the first pause
* is 1, the second pause is 2 and so on.
*/
static int cidrings[NUM_CADENCE_MAX] = {
- 2, /* Right after first long ring */
- 4, /* Right after long part */
- 3, /* After third chirp */
- 2, /* Second spell */
+ 2, /*!< Right after first long ring */
+ 4, /*!< Right after long part */
+ 3, /*!< After third chirp */
+ 2, /*!< Second spell */
};
#define ISTRUNK(p) ((p->sig == SIG_FXSLS) || (p->sig == SIG_FXSKS) || \
diff --git a/codecs/codec_a_mu.c b/codecs/codec_a_mu.c
index d973bff3f..a3c8cc264 100755
--- a/codecs/codec_a_mu.c
+++ b/codecs/codec_a_mu.c
@@ -20,6 +20,7 @@
*
* \brief codec_a_mu.c - translate between alaw and ulaw directly
*
+ * \ingroup codecs
*/
#include <fcntl.h>
diff --git a/codecs/codec_adpcm.c b/codecs/codec_adpcm.c
index f9a5faf60..187c42442 100755
--- a/codecs/codec_adpcm.c
+++ b/codecs/codec_adpcm.c
@@ -24,6 +24,7 @@
*
* \brief codec_adpcm.c - translate between signed linear and Dialogic ADPCM
*
+ * \ingroup codecs
*/
#include <fcntl.h>
diff --git a/codecs/codec_alaw.c b/codecs/codec_alaw.c
index 13506721d..86e3a6592 100755
--- a/codecs/codec_alaw.c
+++ b/codecs/codec_alaw.c
@@ -20,6 +20,7 @@
*
* \brief codec_alaw.c - translate between signed linear and alaw
*
+ * \ingroup codecs
*/
#include <fcntl.h>
diff --git a/codecs/codec_g723_1.c b/codecs/codec_g723_1.c
index 327a7f5b5..67d9b51b0 100755
--- a/codecs/codec_g723_1.c
+++ b/codecs/codec_g723_1.c
@@ -24,6 +24,7 @@
*
* \brief Translate between signed linear and G.723.1
*
+ * \ingroup codecs
*/
#define TYPE_HIGH 0x0
diff --git a/codecs/codec_g726.c b/codecs/codec_g726.c
index 527363de1..81ec1e1ac 100755
--- a/codecs/codec_g726.c
+++ b/codecs/codec_g726.c
@@ -24,6 +24,7 @@
*
* \brief codec_g726.c - translate between signed linear and ITU G.726-32kbps
*
+ * \ingroup codecs
*/
#include <fcntl.h>
diff --git a/codecs/codec_gsm.c b/codecs/codec_gsm.c
index 4f52cc872..65800476e 100755
--- a/codecs/codec_gsm.c
+++ b/codecs/codec_gsm.c
@@ -23,6 +23,7 @@
*
* \brief Translate between signed linear and Global System for Mobile Communications (GSM)
*
+ * \ingroup codecs
*/
#include <fcntl.h>
diff --git a/codecs/codec_ilbc.c b/codecs/codec_ilbc.c
index cf6a1b038..3f415c8dd 100755
--- a/codecs/codec_ilbc.c
+++ b/codecs/codec_ilbc.c
@@ -22,6 +22,7 @@
*
* \brief Translate between signed linear and Internet Low Bitrate Codec
*
+ * \ingroup codecs
*/
#include <fcntl.h>
diff --git a/codecs/codec_lpc10.c b/codecs/codec_lpc10.c
index 599f1af4f..8eeecdef0 100755
--- a/codecs/codec_lpc10.c
+++ b/codecs/codec_lpc10.c
@@ -24,6 +24,7 @@
*
* \brief Translate between signed linear and LPC10 (Linear Predictor Code)
*
+ * \ingroup codecs
*/
#include <fcntl.h>
diff --git a/codecs/codec_speex.c b/codecs/codec_speex.c
index ea21780d6..24a6704a9 100755
--- a/codecs/codec_speex.c
+++ b/codecs/codec_speex.c
@@ -24,6 +24,7 @@
* http://www.speex.org
* \note This work was motivated by Jeremy McNamara
* hacked to be configurable by anthm and bkw 9/28/2004
+ * \ingroup codecs
*/
#include <fcntl.h>
diff --git a/codecs/codec_ulaw.c b/codecs/codec_ulaw.c
index e437c47fd..79a1657b9 100755
--- a/codecs/codec_ulaw.c
+++ b/codecs/codec_ulaw.c
@@ -20,6 +20,7 @@
*
* \brief codec_ulaw.c - translate between signed linear and ulaw
*
+ * \ingroup codecs
*/
#include <fcntl.h>
diff --git a/formats/format_au.c b/formats/format_au.c
index bfa4cdade..669fa1921 100755
--- a/formats/format_au.c
+++ b/formats/format_au.c
@@ -15,10 +15,14 @@
* at the top of the source tree.
*/
-/*! \file
+/*!
+ * \file
*
* \brief Work with Sun Microsystems AU format.
- *
+ *
+ * signed linear
+ * \arg File extension: au
+ * \ingroup formats
*/
#include <stdlib.h>
diff --git a/formats/format_g723.c b/formats/format_g723.c
index e046b6b3c..2d17d96eb 100755
--- a/formats/format_g723.c
+++ b/formats/format_g723.c
@@ -16,10 +16,13 @@
* at the top of the source tree.
*/
-/*! \file
+/*!
+ * \file
*
- * \brief Old-style G.723 frame/timestamp format.
+ * \brief Old-style G.723.1 frame/timestamp format.
*
+ * \arg Extensions: g723, g723sf
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_g726.c b/formats/format_g726.c
index cb1a3746e..717fdaf5b 100755
--- a/formats/format_g726.c
+++ b/formats/format_g726.c
@@ -20,6 +20,12 @@
*
* \brief Headerless G.726 (16/24/32/40kbps) data format for Asterisk.
*
+ * File name extensions:
+ * \arg 40 kbps: g726-40
+ * \arg 32 kbps: g726-32
+ * \arg 24 kbps: g726-24
+ * \arg 16 kbps: g726-16
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_g729.c b/formats/format_g729.c
index 39a6bc87c..6afe539da 100755
--- a/formats/format_g729.c
+++ b/formats/format_g729.c
@@ -19,7 +19,11 @@
/*! \file
*
* \brief Save to raw, headerless G729 data.
- *
+ * \note This is not an encoder/decoder. The codec fo g729 is only
+ * available with a commercial license from Digium, due to patent
+ * restrictions. Check http://www.digium.com for information.
+ * \arg Extensions: g729
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_gsm.c b/formats/format_gsm.c
index a3a6aaecb..176c73a97 100755
--- a/formats/format_gsm.c
+++ b/formats/format_gsm.c
@@ -19,7 +19,8 @@
/*! \file
*
* \brief Save to raw, headerless GSM data.
- *
+ * \arg File name extension: gsm
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_h263.c b/formats/format_h263.c
index 40d8c2eb1..ccba23d6d 100755
--- a/formats/format_h263.c
+++ b/formats/format_h263.c
@@ -19,7 +19,8 @@
/*! \file
*
* \brief Save to raw, headerless h263 data.
- *
+ * \arg File name extension: h263
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_ilbc.c b/formats/format_ilbc.c
index 4aee8c94e..cbe017f66 100755
--- a/formats/format_ilbc.c
+++ b/formats/format_ilbc.c
@@ -21,7 +21,8 @@
/*! \file
*
* \brief Save to raw, headerless iLBC data.
- *
+ * \arg File name extension: ilbc
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_jpeg.c b/formats/format_jpeg.c
index 2a5dfc15f..d71aeec80 100755
--- a/formats/format_jpeg.c
+++ b/formats/format_jpeg.c
@@ -20,6 +20,8 @@
*
* \brief JPEG File format support.
*
+ * \arg File name extension: jpeg, jpg
+ * \ingroup formats
*/
#include <sys/types.h>
diff --git a/formats/format_ogg_vorbis.c b/formats/format_ogg_vorbis.c
index b1bbfa7fd..eecc89f2c 100755
--- a/formats/format_ogg_vorbis.c
+++ b/formats/format_ogg_vorbis.c
@@ -17,7 +17,8 @@
/*! \file
*
* \brief OGG/Vorbis streams.
- *
+ * \arg File name extension: ogg
+ * \ingroup formats
*/
#include <netinet/in.h>
diff --git a/formats/format_pcm.c b/formats/format_pcm.c
index 13fef5ff7..4adb076cf 100755
--- a/formats/format_pcm.c
+++ b/formats/format_pcm.c
@@ -19,7 +19,9 @@
/*! \file
*
* \brief Flat, binary, ulaw PCM file format.
+ * \arg File name extension: pcm, ulaw, ul, mu
*
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_pcm_alaw.c b/formats/format_pcm_alaw.c
index 2cd874ecc..0fd7de407 100755
--- a/formats/format_pcm_alaw.c
+++ b/formats/format_pcm_alaw.c
@@ -19,7 +19,8 @@
/*! \file
*
* \brief Flat, binary, alaw PCM file format.
- *
+ * \arg File name extensions: alaw, al
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_sln.c b/formats/format_sln.c
index 6c36f1730..008a715bc 100755
--- a/formats/format_sln.c
+++ b/formats/format_sln.c
@@ -18,7 +18,8 @@
/*! \file
*
* \brief RAW SLINEAR Format
- *
+ * \arg File name extensions: sln, raw
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_vox.c b/formats/format_vox.c
index 0ef901079..60d2630be 100755
--- a/formats/format_vox.c
+++ b/formats/format_vox.c
@@ -19,7 +19,9 @@
/*! \file
*
* \brief Flat, binary, ADPCM vox file format.
+ * \arg File name extensions: vox
*
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_wav.c b/formats/format_wav.c
index f721ff6fe..83e6dd564 100755
--- a/formats/format_wav.c
+++ b/formats/format_wav.c
@@ -19,7 +19,9 @@
/*! \file
*
* \brief Work with WAV in the proprietary Microsoft format.
- *
+ * Microsoft WAV format (8000hz Signed Linear)
+ * \arg File name extension: wav (lower case)
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/formats/format_wav_gsm.c b/formats/format_wav_gsm.c
index 3403a8d9e..c7bc50425 100755
--- a/formats/format_wav_gsm.c
+++ b/formats/format_wav_gsm.c
@@ -20,6 +20,11 @@
*
* \brief Save GSM in the proprietary Microsoft format.
*
+ * Microsoft WAV format (Proprietary GSM)
+ * \arg File name extension: WAV,wav49 (Upper case WAV, lower case is another format)
+ * This format can be played on Windows systems, used for
+ * e-mail attachments mainly.
+ * \ingroup formats
*/
#include <unistd.h>
diff --git a/include/asterisk/app.h b/include/asterisk/app.h
index b7d0e2fa7..3c9c49e48 100755
--- a/include/asterisk/app.h
+++ b/include/asterisk/app.h
@@ -29,46 +29,46 @@ extern "C" {
/* IVR stuff */
-/* Callback function for IVR, returns 0 on completion, -1 on hangup or digit if
- interrupted */
+/*! \brief Callback function for IVR
+ \return returns 0 on completion, -1 on hangup or digit if interrupted
+ */
typedef int (*ast_ivr_callback)(struct ast_channel *chan, char *option, void *cbdata);
typedef enum {
- AST_ACTION_UPONE, /* adata is unused */
- AST_ACTION_EXIT, /* adata is the return value for ast_ivr_menu_run if channel was not hungup */
- AST_ACTION_CALLBACK, /* adata is an ast_ivr_callback */
- AST_ACTION_PLAYBACK, /* adata is file to play */
- AST_ACTION_BACKGROUND, /* adata is file to play */
- AST_ACTION_PLAYLIST, /* adata is list of files, separated by ; to play */
- AST_ACTION_MENU, /* adata is a pointer to an ast_ivr_menu */
- AST_ACTION_REPEAT, /* adata is max # of repeats, cast to a pointer */
- AST_ACTION_RESTART, /* adata is like repeat, but resets repeats to 0 */
- AST_ACTION_TRANSFER, /* adata is a string with exten[@context] */
- AST_ACTION_WAITOPTION, /* adata is a timeout, or 0 for defaults */
- AST_ACTION_NOOP, /* adata is unused */
- AST_ACTION_BACKLIST, /* adata is list of files separated by ; allows interruption */
+ AST_ACTION_UPONE, /*!< adata is unused */
+ AST_ACTION_EXIT, /*!< adata is the return value for ast_ivr_menu_run if channel was not hungup */
+ AST_ACTION_CALLBACK, /*!< adata is an ast_ivr_callback */
+ AST_ACTION_PLAYBACK, /*!< adata is file to play */
+ AST_ACTION_BACKGROUND, /*!< adata is file to play */
+ AST_ACTION_PLAYLIST, /*!< adata is list of files, separated by ; to play */
+ AST_ACTION_MENU, /*!< adata is a pointer to an ast_ivr_menu */
+ AST_ACTION_REPEAT, /*!< adata is max # of repeats, cast to a pointer */
+ AST_ACTION_RESTART, /*!< adata is like repeat, but resets repeats to 0 */
+ AST_ACTION_TRANSFER, /*!< adata is a string with exten[@context] */
+ AST_ACTION_WAITOPTION, /*!< adata is a timeout, or 0 for defaults */
+ AST_ACTION_NOOP, /*!< adata is unused */
+ AST_ACTION_BACKLIST, /*!< adata is list of files separated by ; allows interruption */
} ast_ivr_action;
+/*!
+ Special "options" are:
+ \arg "s" - "start here (one time greeting)"
+ \arg "g" - "greeting/instructions"
+ \arg "t" - "timeout"
+ \arg "h" - "hangup"
+ \arg "i" - "invalid selection"
+
+*/
struct ast_ivr_option {
char *option;
ast_ivr_action action;
void *adata;
};
-/*
- Special "options" are:
- "s" - "start here (one time greeting)"
- "g" - "greeting/instructions"
- "t" - "timeout"
- "h" - "hangup"
- "i" - "invalid selection"
-
-*/
-
struct ast_ivr_menu {
- char *title; /* Title of menu */
- unsigned int flags; /* Flags */
- struct ast_ivr_option *options; /* All options */
+ char *title; /*!< Title of menu */
+ unsigned int flags; /*!< Flags */
+ struct ast_ivr_option *options; /*!< All options */
};
#define AST_IVR_FLAG_AUTORESTART (1 << 0)
@@ -78,11 +78,11 @@ struct ast_ivr_menu {
static struct ast_ivr_menu holder = { title, flags, __options_##holder }
-/*! Runs an IVR menu, returns 0 on successful completion, -1 on hangup, or -2 on user error in menu */
+/*! \brief Runs an IVR menu
+ \return returns 0 on successful completion, -1 on hangup, or -2 on user error in menu */
extern int ast_ivr_menu_run(struct ast_channel *c, struct ast_ivr_menu *menu, void *cbdata);
-/*! Plays a stream and gets DTMF data from a channel */
-/*!
+/*! \brief Plays a stream and gets DTMF data from a channel
* \param c Which channel one is interacting with
* \param prompt File to pass to ast_streamfile (the one that you wish to play)
* \param s The location where the DTMF data will be stored
@@ -96,7 +96,7 @@ extern int ast_ivr_menu_run(struct ast_channel *c, struct ast_ivr_menu *menu, vo
*/
extern int ast_app_getdata(struct ast_channel *c, char *prompt, char *s, int maxlen, int timeout);
-/* Full version with audiofd and controlfd. NOTE: returns '2' on ctrlfd available, not '1' like other full functions */
+/*! \brief Full version with audiofd and controlfd. NOTE: returns '2' on ctrlfd available, not '1' like other full functions */
extern int ast_app_getdata_full(struct ast_channel *c, char *prompt, char *s, int maxlen, int timeout, int audiofd, int ctrlfd);
/*! Record voice (after playing prompt if specified), waiting for silence (in ms) up to a given timeout (in s) or '#' */
@@ -113,7 +113,9 @@ int ast_app_has_voicemail(const char *mailbox, const char *folder);
/*! Determine number of new/old messages in a mailbox */
int ast_app_messagecount(const char *mailbox, int *newmsgs, int *oldmsgs);
-/*! Safely spawn an external program while closingn file descriptors */
+/*! Safely spawn an external program while closing file descriptors
+ \note This replaces the \b system call in all Asterisk modules
+*/
extern int ast_safe_system(const char *s);
/*! Send DTMF to chan (optionally entertain peer) */
@@ -128,13 +130,18 @@ int ast_control_streamfile(struct ast_channel *chan, const char *file, const cha
/*! Play a stream and wait for a digit, returning the digit that was pressed */
int ast_play_and_wait(struct ast_channel *chan, const char *fn);
-/*! Record a file for a max amount of time (in seconds), in a given list of formats separated by '|', outputting the duration of the recording, and with a maximum */
-/* permitted silence time in milliseconds of 'maxsilence' under 'silencethreshold' or use '-1' for either or both parameters for defaults.
+/*! Record a file for a max amount of time (in seconds), in a given list of formats separated by '|', outputting the duration of the recording, and with a maximum
+ \n
+ permitted silence time in milliseconds of 'maxsilence' under 'silencethreshold' or use '-1' for either or both parameters for defaults.
calls ast_unlock_path() on 'path' if passed */
int ast_play_and_record(struct ast_channel *chan, const char *playfile, const char *recordfile, int maxtime_sec, const char *fmt, int *duration, int silencethreshold, int maxsilence_ms, const char *path);
-/*! Record a message and prepend the message to the given record file after playing the optional playfile (or a beep), storing the duration in 'duration' and with a maximum */
-/* permitted silence time in milliseconds of 'maxsilence' under 'silencethreshold' or use '-1' for either or both parameters for defaults. */
+/*! Record a message and prepend the message to the given record file after
+ playing the optional playfile (or a beep), storing the duration in
+ 'duration' and with a maximum
+\n
+ permitted silence time in milliseconds of 'maxsilence' under
+ 'silencethreshold' or use '-1' for either or both parameters for defaults. */
int ast_play_and_prepend(struct ast_channel *chan, char *playfile, char *recordfile, int maxtime_sec, char *fmt, int *duration, int beep, int silencethreshold, int maxsilence_ms);
enum AST_LOCK_RESULT {
@@ -144,17 +151,17 @@ enum AST_LOCK_RESULT {
AST_LOCK_FAILURE = -3,
};
-/*
+/*!
* \brief Lock a filesystem path.
* \param path the path to be locked
- * \return one of AST_LOCK_RESULT values
+ * \return one of \ref AST_LOCK_RESULT values
*/
enum AST_LOCK_RESULT ast_lock_path(const char *path);
-/* Unlock a path */
+/*! Unlock a path */
int ast_unlock_path(const char *path);
-/*Read a file into asterisk*/
+/*! Read a file into asterisk*/
char *ast_read_textfile(const char *file);
#define GROUP_CATEGORY_PREFIX "GROUP"
@@ -188,7 +195,7 @@ int ast_app_group_match_get_count(char *groupmatch, char *category);
argc argument counter. The arguments must be declared using AST_APP_ARG,
and they will all be character pointers (strings).
- Note: The structure is <b>not</b> initialized, as the call to
+ \note The structure is <b>not</b> initialized, as the call to
ast_separate_app_args() will perform that function before parsing
the arguments.
*/
@@ -329,7 +336,9 @@ struct ast_app_option {
*/
int ast_app_parse_options(const struct ast_app_option *options, struct ast_flags *flags, char **args, char *optstr);
-/*! Present a dialtone and collect a certain length extension. Returns 1 on valid extension entered, -1 on hangup, or 0 on invalid extension. Note that if 'collect' holds digits already, new digits will be appended, so be sure it's initialized properly */
+/*! \brief Present a dialtone and collect a certain length extension.
+ \return Returns 1 on valid extension entered, -1 on hangup, or 0 on invalid extension.
+\note Note that if 'collect' holds digits already, new digits will be appended, so be sure it's initialized properly */
int ast_app_dtget(struct ast_channel *chan, const char *context, char *collect, size_t size, int maxlen, int timeout);
/*! Allow to record message and have a review option */
diff --git a/include/asterisk/callerid.h b/include/asterisk/callerid.h
index 094a22c92..45ff8b057 100755
--- a/include/asterisk/callerid.h
+++ b/include/asterisk/callerid.h
@@ -17,8 +17,15 @@
*/
/*! \file
- * \brief CallerID (and other GR30) Generation support
+ * \brief CallerID (and other GR30) management and generation
* Includes code and algorithms from the Zapata library.
+ * Caller ID names are currently 8 bit characters, propably
+ * ISO8859-1, depending on what your channel drivers handle.
+ * \note Asterisk does not currently support SIP utf8 caller ID names or caller ID's.
+ *
+ * \par See also
+ * \arg \ref callerid.c
+ * \arg \ref Def_CallerPres
*/
#ifndef _ASTERISK_CALLERID_H
@@ -46,49 +53,46 @@
struct callerid_state;
typedef struct callerid_state CIDSTATE;
-/*! CallerID Initialization */
-/*!
+/*! \brief CallerID Initialization
+ * \par
* Initializes the callerid system. Mostly stuff for inverse FFT
*/
extern void callerid_init(void);
-/*! Generates a CallerID FSK stream in ulaw format suitable for transmission. */
-/*!
+/*! \brief Generates a CallerID FSK stream in ulaw format suitable for transmission.
* \param buf Buffer to use. If "buf" is supplied, it will use that buffer instead of allocating its own. "buf" must be at least 32000 bytes in size of you want to be sure you don't have an overrun.
* \param number Use NULL for no number or "P" for "private"
* \param name name to be used
* \param flags passed flags
* \param callwaiting callwaiting flag
* \param codec -- either AST_FORMAT_ULAW or AST_FORMAT_ALAW
- * This function creates a stream of callerid (a callerid spill) data in ulaw format. It returns the size
+ * This function creates a stream of callerid (a callerid spill) data in ulaw format.
+ * \return It returns the size
* (in bytes) of the data (if it returns a size of 0, there is probably an error)
*/
extern int callerid_generate(unsigned char *buf, char *number, char *name, int flags, int callwaiting, int codec);
-/*! Create a callerID state machine */
-/*!
+/*! \brief Create a callerID state machine
* \param cid_signalling Type of signalling in use
*
* This function returns a malloc'd instance of the callerid_state data structure.
- * Returns a pointer to a malloc'd callerid_state structure, or NULL on error.
+ * \return Returns a pointer to a malloc'd callerid_state structure, or NULL on error.
*/
extern struct callerid_state *callerid_new(int cid_signalling);
-/*! Read samples into the state machine. */
-/*!
+/*! \brief Read samples into the state machine.
* \param cid Which state machine to act upon
* \param ubuf containing your samples
* \param samples number of samples contained within the buffer.
* \param codec which codec (AST_FORMAT_ALAW or AST_FORMAT_ULAW)
*
* Send received audio to the Caller*ID demodulator.
- * Returns -1 on error, 0 for "needs more samples",
+ * \return Returns -1 on error, 0 for "needs more samples",
* and 1 if the CallerID spill reception is complete.
*/
extern int callerid_feed(struct callerid_state *cid, unsigned char *ubuf, int samples, int codec);
-/*! Extract info out of callerID state machine. Flags are listed above */
-/*!
+/*! \brief Extract info out of callerID state machine. Flags are listed above
* \param cid Callerid state machine to act upon
* \param number Pass the address of a pointer-to-char (will contain the phone number)
* \param name Pass the address of a pointer-to-char (will contain the name)
@@ -98,7 +102,7 @@ extern int callerid_feed(struct callerid_state *cid, unsigned char *ubuf, int sa
* If no number is found, *number will be set to NULL. Likewise for the name.
* Flags can contain any of the following:
*
- * Returns nothing.
+ * \return Returns nothing.
*/
void callerid_get(struct callerid_state *cid, char **number, char **name, int *flags);
@@ -111,15 +115,13 @@ void callerid_get(struct callerid_state *cid, char **number, char **name, int *f
*/
void callerid_get_dtmf(char *cidstring, char *number, int *flags);
-/*! Free a callerID state */
-/*!
+/*! \brief Free a callerID state
* \param cid This is the callerid_state state machine to free
* This function frees callerid_state cid.
*/
extern void callerid_free(struct callerid_state *cid);
-/*! Generate Caller-ID spill from the "callerid" field of asterisk (in e-mail address like format) */
-/*!
+/*! \brief Generate Caller-ID spill from the "callerid" field of asterisk (in e-mail address like format)
* \param buf buffer for output samples. See callerid_generate() for details regarding buffer.
* \param name Caller-ID Name
* \param number Caller-ID Number
@@ -129,22 +131,20 @@ extern void callerid_free(struct callerid_state *cid);
*/
extern int ast_callerid_generate(unsigned char *buf, char *name, char *number, int codec);
-/*! Generate message waiting indicator */
+/*! \brief Generate message waiting indicator (stutter tone) */
extern int vmwi_generate(unsigned char *buf, int active, int mdmf, int codec);
-/*! Generate Caller-ID spill but in a format suitable for Call Waiting(tm)'s Caller*ID(tm) */
-/*!
- * See ast_callerid_generate for other details
+/*! \brief Generate Caller-ID spill but in a format suitable for Call Waiting(tm)'s Caller*ID(tm)
+ * See ast_callerid_generate() for other details
*/
extern int ast_callerid_callwaiting_generate(unsigned char *buf, char *name, char *number, int codec);
-/*! Destructively parse inbuf into name and location (or number) */
-/*!
+/*! \brief Destructively parse inbuf into name and location (or number)
+ * Parses callerid stream from inbuf and changes into useable form, outputed in name and location.
* \param instr buffer of callerid stream (in audio form) to be parsed. Warning, data in buffer is changed.
* \param name address of a pointer-to-char for the name value of the stream.
* \param location address of a pointer-to-char for the phone number value of the stream.
- * Parses callerid stream from inbuf and changes into useable form, outputed in name and location.
- * Returns 0 on success, -1 on failure.
+ * \return Returns 0 on success, -1 on failure.
*/
extern int ast_callerid_parse(char *instr, char **name, char **location);
@@ -154,21 +154,20 @@ extern int ast_callerid_parse(char *instr, char **name, char **location);
* \param sas Non-zero if CAS should be preceeded by SAS
* \param len How many samples to generate.
* \param codec Which codec (AST_FORMAT_ALAW or AST_FORMAT_ULAW)
- * Returns -1 on error (if len is less than 2400), 0 on success.
+ * \return Returns -1 on error (if len is less than 2400), 0 on success.
*/
extern int ast_gen_cas(unsigned char *outbuf, int sas, int len, int codec);
-/*! Shrink a phone number in place to just digits (more accurately it just removes ()'s, .'s, and -'s... */
+/*! \brief Shrink a phone number in place to just digits (more accurately it just removes ()'s, .'s, and -'s... */
/*!
* \param n The number to be stripped/shrunk
- * Returns nothing important
+ * \return Returns nothing important
*/
extern void ast_shrink_phone_number(char *n);
-/*! Check if a string consists only of digits. Returns non-zero if so */
-/*!
- * \param n number to be checked.
- * Returns 0 if n is a number, 1 if it's not.
+/*! \brief Check if a string consists only of digits.
+ \param n number to be checked.
+ \return Returns 0 if n is a number, 1 if it's not.
*/
extern int ast_isphonenumber(char *n);
@@ -280,4 +279,28 @@ static inline float callerid_getcarrier(float *cr, float *ci, int bit)
int ast_parse_caller_presentation(const char *data);
const char *ast_describe_caller_presentation(int data);
+/*! \page Def_CallerPres Caller ID Presentation
+
+ Caller ID presentation values are used to set properties to a
+ caller ID in PSTN networks, and as RPID value in SIP transactions.
+
+ The following values are available to use:
+ \arg \b Defined value, text string in config file, explanation
+ .
+
+ \arg \b AST_PRES_ALLOWED_USER_NUMBER_NOT_SCREENED, "allowed_not_screened", Presentation Allowed, Not Screened,
+ \arg \b AST_PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN, "allowed_passed_screen", Presentation Allowed, Passed Screen,
+ \arg \b AST_PRES_ALLOWED_USER_NUMBER_FAILED_SCREEN, "allowed_failed_screen", Presentation Allowed, Failed Screen,
+ \arg \b AST_PRES_ALLOWED_NETWORK_NUMBER, "allowed", Presentation Allowed, Network Number,
+ \arg \b AST_PRES_PROHIB_USER_NUMBER_NOT_SCREENED, "prohib_not_screened", Presentation Prohibited, Not Screened,
+ \arg \b AST_PRES_PROHIB_USER_NUMBER_PASSED_SCREEN, "prohib_passed_screen", Presentation Prohibited, Passed Screen,
+ \arg \b AST_PRES_PROHIB_USER_NUMBER_FAILED_SCREEN, "prohib_failed_screen", Presentation Prohibited, Failed Screen,
+ \arg \b AST_PRES_PROHIB_NETWORK_NUMBER, "prohib", Presentation Prohibited, Network Number,
+
+ \par References
+ \arg \ref callerid.h Definitions
+ \arg \ref callerid.c Functions
+*/
+
+
#endif /* _ASTERISK_CALLERID_H */
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index 3d8f47d34..fe48f841f 100755
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -18,8 +18,71 @@
/*! \file
* \brief General Asterisk PBX channel definitions.
+ * \par See also:
+ * \arg \ref Def_Channel
+ * \arg \ref channel_drivers
*/
+/*! \page Def_Channel Asterisk Channels
+ \par What is a Channel?
+ A phone call through Asterisk consists of an incoming
+ connection and an outbound connection. Each call comes
+ in through a channel driver that supports one technology,
+ like SIP, ZAP, IAX2 etc.
+ \par
+ Each channel driver, technology, has it's own private
+ channel or dialog structure, that is technology-dependent.
+ Each private structure is "owned" by a generic Asterisk
+ channel structure, defined in channel.h and handled by
+ channel.c .
+ \par Call scenario
+ This happens when an incoming call arrives to Asterisk
+ -# Call arrives on a channel driver interface
+ -# Channel driver creates a PBX channel and starts a
+ pbx thread on the channel
+ -# The dial plan is executed
+ -# At this point at least two things can happen:
+ -# The call is answered by Asterisk and
+ Asterisk plays a media stream or reads media
+ -# The dial plan forces Asterisk to create an outbound
+ call somewhere with the dial (see \ref app_dial.c)
+ application
+
+ .
+ \par Bridging channels
+ If Asterisk dials out this happens:
+ -# Dial creates an outbound PBX channel and asks one of the
+ channel drivers to create a call
+ -# When the call is answered, Asterisk bridges the media streams
+ so the caller on the first channel can speak with the callee
+ on the second, outbound channel
+ -# In some cases where we have the same technology on both
+ channels and compatible codecs, a native bridge is used.
+ In a native bridge, the channel driver handles forwarding
+ of incoming audio to the outbound stream internally, without
+ sending audio frames through the PBX.
+ -# In SIP, theres an "external native bridge" where Asterisk
+ redirects the endpoint, so audio flows directly between the
+ caller's phone and the callee's phone. Signalling stays in
+ Asterisk in order to be able to provide a proper CDR record
+ for the call.
+
+
+ \par Masquerading channels
+ In some cases, a channel can masquerade itself into another
+ channel. This happens frequently in call transfers, where
+ a new channel takes over a channel that is already involved
+ in a call. The new channel sneaks in and takes over the bridge
+ and the old channel, now a zombie, is hung up.
+
+ \par Reference
+ \arg channel.c - generic functions
+ \arg channel.h - declarations of functions, flags and structures
+ \arg \ref channel_drivers - Implemented channel drivers
+ \arg \ref Def_Frame Asterisk Multimedia Frames
+
+*/
+
#ifndef _ASTERISK_CHANNEL_H
#define _ASTERISK_CHANNEL_H
@@ -74,6 +137,7 @@ struct ast_generator {
int (*generate)(struct ast_channel *chan, void *data, int len, int samples);
};
+/*! Structure for all kinds of caller ID identifications */
struct ast_callerid {
/*! Malloc'd Dialed Number Identifier */
char *cid_dnid;
@@ -95,7 +159,18 @@ struct ast_callerid {
int cid_tns;
};
-/*! Structure to describe a channel "technology" */
+/*! Structure to describe a channel "technology", ie a channel driver
+ See
+ \arg chan_iax2.c - The Inter-Asterisk exchange protocol
+ \arg chan_sip.c - The SIP channel driver
+ \arg chan_zap.c - PSTN connectivity (TDM, PRI, T1/E1, FXO, FXS)
+
+ If you develop your own channel driver, this is where you
+ tell the PBX at registration of your driver what properties
+ this driver supports and where different callbacks are
+ implemented.
+*/
+
struct ast_channel_tech {
const char * const type;
@@ -107,8 +182,10 @@ struct ast_channel_tech {
/*! Technology Properties */
int properties;
+ /*! Requester - to set up call data structures (pvt's) */
struct ast_channel *(* const requester)(const char *type, int format, void *data, int *cause);
+ /*! Devicestate call back */
int (* const devicestate)(void *data);
/*! Send a literal DTMF digit */
@@ -121,13 +198,13 @@ struct ast_channel_tech {
/*! Hangup (and possibly destroy) the channel */
int (* const hangup)(struct ast_channel *chan);
- /*! Answer the line */
+ /*! Answer the channel */
int (* const answer)(struct ast_channel *chan);
- /*! Read a frame, in standard format */
+ /*! Read a frame, in standard format (see frame.h) */
struct ast_frame * (* const read)(struct ast_channel *chan);
- /*! Write a frame, in standard format */
+ /*! Write a frame, in standard format (see frame.h) */
int (* const write)(struct ast_channel *chan, struct ast_frame *frame);
/*! Display or transmit text */
@@ -158,7 +235,7 @@ struct ast_channel_tech {
/*! Query a given option */
int (* const queryoption)(struct ast_channel *chan, int option, void *data, int *datalen);
- /*! Blind transfer other side */
+ /*! Blind transfer other side (see app_transfer.c and ast_transfer() */
int (* const transfer)(struct ast_channel *chan, const char *newdest);
/*! Write a frame, in standard format */
@@ -212,20 +289,20 @@ struct ast_channel_spy {
struct ast_channel_spy_list;
-/*! Main Channel structure associated with a channel. */
-/*!
+/*! Main Channel structure associated with a channel.
* This is the side of it mostly used by the pbx and call management.
*/
struct ast_channel {
- /*! ASCII Description of channel name */
+ /*! ASCII unique channel name */
char name[AST_CHANNEL_NAME];
- /*! Technology */
+ /*! Technology (point to channel driver) */
const struct ast_channel_tech *tech;
+
/*! Private data used by the technology driver */
void *tech_pvt;
- /*! Language requested */
+ /*! Language requested for voice prompts */
char language[MAX_LANGUAGE];
/*! Type of channel */
const char *type;
@@ -252,7 +329,7 @@ struct ast_channel {
int cdrflags;
/*! Whether or not we have been hung up... Do not set this value
directly, use ast_softhangup */
- int _softhangup;
+ int _softhangup;
/*! Non-zero, set to actual time when channel is to be hung up */
time_t whentohangup;
/*! If anyone is blocking, this is them */
@@ -275,9 +352,9 @@ struct ast_channel {
int streamid;
/*! Stream itself. */
struct ast_filestream *stream;
- /*! For streaming playback, the schedule ID */
+ /*! For streaming video playback, the schedule ID */
int vstreamid;
- /*! Stream itself. */
+ /*! Video Stream itself. */
struct ast_filestream *vstream;
/*! Original writer format */
int oldwriteformat;
@@ -321,17 +398,17 @@ struct ast_channel {
/*! PBX private structure */
struct ast_pbx *pbx;
/*! Set BEFORE PBX is started to determine AMA flags */
- int amaflags;
+ int amaflags;
/*! Account code for billing */
- char accountcode[AST_MAX_ACCOUNT_CODE];
+ char accountcode[AST_MAX_ACCOUNT_CODE];
/*! Call Detail Record */
struct ast_cdr *cdr;
/*! Whether or not ADSI is detected on CPE */
- int adsicpe;
+ int adsicpe;
/*! Where to forward to if asked to dial on this interface */
char call_forward[AST_MAX_EXTENSION];
- /*! Tone zone */
+ /*! Tone zone as set in indications.conf */
struct tone_zone *zone;
/* Channel monitoring */
@@ -360,7 +437,7 @@ struct ast_channel {
/*! channel flags of AST_FLAG_ type */
unsigned int flags;
- /* ISDN Transfer Capbility - AST_FLAG_DIGITAL is not enough */
+ /*! ISDN Transfer Capbility - AST_FLAG_DIGITAL is not enough */
unsigned short transfercapability;
struct ast_frame *readq;
@@ -381,24 +458,26 @@ struct ast_channel {
struct ast_channel *next;
};
-/* Channel tech properties: */
-/* Channels have this property if they can accept input with jitter; i.e. most VoIP channels */
+/* \defgroup chanprop Channel tech properties:
+ \brief Channels have this property if they can accept input with jitter; i.e. most VoIP channels */
+/* @{ */
#define AST_CHAN_TP_WANTSJITTER (1 << 0)
/* This flag has been deprecated by the transfercapbilty data member in struct ast_channel */
/* #define AST_FLAG_DIGITAL (1 << 0) */ /* if the call is a digital ISDN call */
-#define AST_FLAG_DEFER_DTMF (1 << 1) /* if dtmf should be deferred */
-#define AST_FLAG_WRITE_INT (1 << 2) /* if write should be interrupt generator */
-#define AST_FLAG_BLOCKING (1 << 3) /* if we are blocking */
-#define AST_FLAG_ZOMBIE (1 << 4) /* if we are a zombie */
-#define AST_FLAG_EXCEPTION (1 << 5) /* if there is a pending exception */
-#define AST_FLAG_MOH (1 << 6) /* XXX anthm promises me this will disappear XXX listening to moh */
-#define AST_FLAG_SPYING (1 << 7) /* XXX might also go away XXX is spying on someone */
-#define AST_FLAG_NBRIDGE (1 << 8) /* is it in a native bridge */
-#define AST_FLAG_IN_AUTOLOOP (1 << 9) /* the channel is in an auto-incrementing dialplan processor,
+#define AST_FLAG_DEFER_DTMF (1 << 1) /*!< if dtmf should be deferred */
+#define AST_FLAG_WRITE_INT (1 << 2) /*!< if write should be interrupt generator */
+#define AST_FLAG_BLOCKING (1 << 3) /*!< if we are blocking */
+#define AST_FLAG_ZOMBIE (1 << 4) /*!< if we are a zombie */
+#define AST_FLAG_EXCEPTION (1 << 5) /*!< if there is a pending exception */
+#define AST_FLAG_MOH (1 << 6) /*!< XXX anthm promises me this will disappear XXX listening to moh */
+#define AST_FLAG_SPYING (1 << 7) /*!< XXX might also go away XXX is spying on someone */
+#define AST_FLAG_NBRIDGE (1 << 8) /*!< is it in a native bridge */
+#define AST_FLAG_IN_AUTOLOOP (1 << 9) /*!< the channel is in an auto-incrementing dialplan processor,
so when ->priority is set, it will get incremented before
finding the next priority to run
*/
+/* @} */
#define AST_FEATURE_PLAY_WARNING (1 << 0)
#define AST_FEATURE_REDIRECT (1 << 1)
@@ -457,15 +536,18 @@ struct outgoing_helper {
#define AST_ADSI_UNAVAILABLE (2)
#define AST_ADSI_OFFHOOKONLY (3)
-#define AST_SOFTHANGUP_DEV (1 << 0) /* Soft hangup by device */
-#define AST_SOFTHANGUP_ASYNCGOTO (1 << 1) /* Soft hangup for async goto */
+#define AST_SOFTHANGUP_DEV (1 << 0) /*!< Soft hangup by device */
+#define AST_SOFTHANGUP_ASYNCGOTO (1 << 1) /*!< Soft hangup for async goto */
#define AST_SOFTHANGUP_SHUTDOWN (1 << 2)
#define AST_SOFTHANGUP_TIMEOUT (1 << 3)
#define AST_SOFTHANGUP_APPUNLOAD (1 << 4)
#define AST_SOFTHANGUP_EXPLICIT (1 << 5)
#define AST_SOFTHANGUP_UNBRIDGE (1 << 6)
-/* Bits 0-15 of state are reserved for the state (up/down) of the line */
+
+/*! \defgroup ChanState Channel states
+\brief Bits 0-15 of state are reserved for the state (up/down) of the line */
+/*! @{ */
/*! Channel is down and available */
#define AST_STATE_DOWN 0
/*! Channel is down, but reserved */
@@ -487,47 +569,52 @@ struct outgoing_helper {
/*! Channel has detected an incoming call and is waiting for ring */
#define AST_STATE_PRERING 9
-/* Bits 16-32 of state are reserved for flags */
+/* Bits 16-32 of state are reserved for flags (See \ref ChanState ) */
/*! Do not transmit voice data */
#define AST_STATE_MUTE (1 << 16)
+/*! @} */
+
+/*! \brief Change the state of a channel */
+int ast_setstate(struct ast_channel *chan, int state);
-/*! Create a channel structure */
-/*! Returns NULL on failure to allocate. New channels are
+/*! \brief Create a channel structure
+ \return Returns NULL on failure to allocate.
+ \note New channels are
by default set to the "default" context and
extension "s"
*/
struct ast_channel *ast_channel_alloc(int needalertpipe);
-/*! Queue an outgoing frame */
+/*! \brief Queue an outgoing frame */
int ast_queue_frame(struct ast_channel *chan, struct ast_frame *f);
-/*! Queue a hangup frame */
+/*! \brief Queue a hangup frame */
int ast_queue_hangup(struct ast_channel *chan);
-/*! Queue a control frame */
+/*! \brief Queue a control frame */
int ast_queue_control(struct ast_channel *chan, int control);
-/*! Change the state of a channel */
-int ast_setstate(struct ast_channel *chan, int state);
+/*! \brief Change channel name */
void ast_change_name(struct ast_channel *chan, char *newname);
-/*! Free a channel structure */
+/*! \brief Free a channel structure */
void ast_channel_free(struct ast_channel *);
-/*! Requests a channel */
-/*!
+/*! \brief Requests a channel
* \param type type of channel to request
* \param format requested channel format
* \param data data to pass to the channel requester
* \param status status
* Request a channel of a given type, with data as optional information used
* by the low level module
- * Returns an ast_channel on success, NULL on failure.
+ * \return Returns an ast_channel on success, NULL on failure.
*/
struct ast_channel *ast_request(const char *type, int format, void *data, int *status);
/*!
+ * \brief Request a channel of a given type, with data as optional information used
+ * by the low level module and attempt to place a call on it
* \param type type of channel to request
* \param format requested channel format
* \param data data to pass to the channel requester
@@ -535,71 +622,63 @@ struct ast_channel *ast_request(const char *type, int format, void *data, int *s
* \param reason why unsuccessful (if unsuceessful)
* \param cidnum Caller-ID Number
* \param cidname Caller-ID Name
- * Request a channel of a given type, with data as optional information used
- * by the low level module and attempt to place a call on it
- * Returns an ast_channel on success or no answer, NULL on failure. Check the value of chan->_state
+ * \return Returns an ast_channel on success or no answer, NULL on failure. Check the value of chan->_state
* to know if the call was answered or not.
*/
struct ast_channel *ast_request_and_dial(const char *type, int format, void *data, int timeout, int *reason, const char *cidnum, const char *cidname);
struct ast_channel *__ast_request_and_dial(const char *type, int format, void *data, int timeout, int *reason, const char *cidnum, const char *cidname, struct outgoing_helper *oh);
-/*! Register a channel technology */
-/*!
- * \param tech Structure defining channel technology or "type"
+/*!\brief Register a channel technology (a new channel driver)
* Called by a channel module to register the kind of channels it supports.
- * Returns 0 on success, -1 on failure.
+ * \param tech Structure defining channel technology or "type"
+ * \return Returns 0 on success, -1 on failure.
*/
int ast_channel_register(const struct ast_channel_tech *tech);
-/*! Unregister a channel technology */
-/*
+/*! \brief Unregister a channel technology
* \param tech Structure defining channel technology or "type" that was previously registered
- * No return value.
+ * \return No return value.
*/
void ast_channel_unregister(const struct ast_channel_tech *tech);
-/*! Get a channel technology structure by name
+/*! \brief Get a channel technology structure by name
* \param name name of technology to find
* \return a pointer to the structure, or NULL if no matching technology found
*/
const struct ast_channel_tech *ast_get_channel_tech(const char *name);
-/*! Hang up a channel */
-/*!
- * \param chan channel to hang up
- * This function performs a hard hangup on a channel. Unlike the soft-hangup, this function
+/*! \brief Hang up a channel
+ * \note This function performs a hard hangup on a channel. Unlike the soft-hangup, this function
* performs all stream stopping, etc, on the channel that needs to end.
* chan is no longer valid after this call.
- * Returns 0 on success, -1 on failure.
+ * \param chan channel to hang up
+ * \return Returns 0 on success, -1 on failure.
*/
int ast_hangup(struct ast_channel *chan);
-/*! Softly hangup up a channel */
-/*!
+/*! \brief Softly hangup up a channel
* \param chan channel to be soft-hung-up
* Call the protocol layer, but don't destroy the channel structure (use this if you are trying to
* safely hangup a channel managed by another thread.
* \param cause Ast hangupcause for hangup
- * Returns 0 regardless
+ * \return Returns 0 regardless
*/
int ast_softhangup(struct ast_channel *chan, int cause);
-/*! Softly hangup up a channel (no channel lock)
+/*! \brief Softly hangup up a channel (no channel lock)
* \param chan channel to be soft-hung-up
- * \param cause Ast hangupcause for hangup */
+ * \param cause Ast hangupcause for hangup (see cause.h) */
int ast_softhangup_nolock(struct ast_channel *chan, int cause);
-/*! Check to see if a channel is needing hang up */
-/*!
+/*! \brief Check to see if a channel is needing hang up
* \param chan channel on which to check for hang up
* This function determines if the channel is being requested to be hung up.
- * Returns 0 if not, or 1 if hang up is requested (including time-out).
+ * \return Returns 0 if not, or 1 if hang up is requested (including time-out).
*/
int ast_check_hangup(struct ast_channel *chan);
-/*! Compare a offset with the settings of when to hang a channel up */
-/*!
+/*! \brief Compare a offset with the settings of when to hang a channel up
* \param chan channel on which to check for hang up
* \param offset offset in seconds from current time
* \return 1, 0, or -1
@@ -610,77 +689,69 @@ int ast_check_hangup(struct ast_channel *chan);
*/
int ast_channel_cmpwhentohangup(struct ast_channel *chan, time_t offset);
-/*! Set when to hang a channel up */
-/*!
+/*! \brief Set when to hang a channel up
* \param chan channel on which to check for hang up
* \param offset offset in seconds from current time of when to hang up
* This function sets the absolute time out on a channel (when to hang up).
*/
void ast_channel_setwhentohangup(struct ast_channel *chan, time_t offset);
-/*! Answer a ringing call */
-/*!
+/*! \brief Answer a ringing call
* \param chan channel to answer
* This function answers a channel and handles all necessary call
* setup functions.
- * Returns 0 on success, -1 on failure
+ * \return Returns 0 on success, -1 on failure
*/
int ast_answer(struct ast_channel *chan);
-/*! Make a call */
-/*!
+/*! \brief Make a call
* \param chan which channel to make the call on
* \param addr destination of the call
* \param timeout time to wait on for connect
- * Place a call, take no longer than timeout ms. Returns -1 on failure,
- 0 on not enough time (does not auto matically stop ringing), and
+ * Place a call, take no longer than timeout ms.
+ \return Returns -1 on failure, 0 on not enough time
+ (does not automatically stop ringing), and
the number of seconds the connect took otherwise.
- Returns 0 on success, -1 on failure
*/
int ast_call(struct ast_channel *chan, char *addr, int timeout);
-/*! Indicates condition of channel */
-/*!
+/*! \brief Indicates condition of channel
+ * \note Indicate a condition such as AST_CONTROL_BUSY, AST_CONTROL_RINGING, or AST_CONTROL_CONGESTION on a channel
* \param chan channel to change the indication
* \param condition which condition to indicate on the channel
- * Indicate a condition such as AST_CONTROL_BUSY, AST_CONTROL_RINGING, or AST_CONTROL_CONGESTION on a channel
- * Returns 0 on success, -1 on failure
+ * \return Returns 0 on success, -1 on failure
*/
int ast_indicate(struct ast_channel *chan, int condition);
-/* Misc stuff */
+/* Misc stuff ------------------------------------------------ */
-/*! Wait for input on a channel */
-/*!
+/*! \brief Wait for input on a channel
* \param chan channel to wait on
* \param ms length of time to wait on the channel
* Wait for input on a channel for a given # of milliseconds (<0 for indefinite).
- Returns < 0 on failure, 0 if nothing ever arrived, and the # of ms remaining otherwise */
+ \return Returns < 0 on failure, 0 if nothing ever arrived, and the # of ms remaining otherwise */
int ast_waitfor(struct ast_channel *chan, int ms);
-/*! Wait for a specied amount of time, looking for hangups */
-/*!
+/*! \brief Wait for a specied amount of time, looking for hangups
* \param chan channel to wait for
* \param ms length of time in milliseconds to sleep
* Waits for a specified amount of time, servicing the channel as required.
- * returns -1 on hangup, otherwise 0.
+ * \return returns -1 on hangup, otherwise 0.
*/
int ast_safe_sleep(struct ast_channel *chan, int ms);
-/*! Wait for a specied amount of time, looking for hangups and a condition argument */
-/*!
+/*! \brief Wait for a specied amount of time, looking for hangups and a condition argument
* \param chan channel to wait for
* \param ms length of time in milliseconds to sleep
* \param cond a function pointer for testing continue condition
* \param data argument to be passed to the condition test function
+ * \return returns -1 on hangup, otherwise 0.
* Waits for a specified amount of time, servicing the channel as required. If cond
* returns 0, this function returns.
- * returns -1 on hangup, otherwise 0.
*/
int ast_safe_sleep_conditional(struct ast_channel *chan, int ms, int (*cond)(void*), void *data );
-/*! Waits for activity on a group of channels */
-/*!
+/*! \brief Waits for activity on a group of channels
* \param chan an array of pointers to channels
* \param n number of channels that are to be waited upon
* \param fds an array of fds to wait upon
@@ -689,7 +760,8 @@ int ast_safe_sleep_conditional(struct ast_channel *chan, int ms, int (*cond)(voi
* \param outfd fd that had activity on it
* \param ms how long the wait was
* Big momma function here. Wait for activity on any of the n channels, or any of the nfds
- file descriptors. Returns the channel with activity, or NULL on error or if an FD
+ file descriptors.
+ \return Returns the channel with activity, or NULL on error or if an FD
came first. If the FD came first, it will be returned in outfd, otherwise, outfd
will be -1 */
struct ast_channel *ast_waitfor_nandfds(struct ast_channel **chan, int n, int *fds, int nfds, int *exception, int *outfd, int *ms);
@@ -1163,8 +1235,7 @@ static inline void timersub(struct timeval *tvend, struct timeval *tvstart, stru
}
#endif
-/*! Waits for activity on a group of channels */
-/*!
+/*! \brief Waits for activity on a group of channels
* \param nfds the maximum number of file descriptors in the sets
* \param rfds file descriptors to check for read availability
* \param wfds file descriptors to check for write availability
diff --git a/include/asterisk/doxyref.h b/include/asterisk/doxyref.h
index b472e7ef5..507e112b3 100755
--- a/include/asterisk/doxyref.h
+++ b/include/asterisk/doxyref.h
@@ -25,26 +25,30 @@
* system.
*/
/*! \page DevDoc Asterisk Developer's Documentation - appendices
- * \arg \ref CodeGuide
+ * \arg \ref CodeGuide : The must-read document for all developer's
* \arg \ref AstAPI
- * \arg \ref AstDebug
- * \arg \ref AstAMI
- * \arg \ref AstARA
- * \arg \ref AstDUNDi
+ * \arg \ref Def_Channel : What's a channel, anyway?
+ * \arg \ref channel_drivers : Existing channel drivers
+ * \arg \ref AstDebug : Hints on debugging
+ * \arg \ref AstAMI : The Call management socket API
+ * \arg \ref AstARA : A generic data storage and retrieval API for Asterisk
+ * \arg \ref AstDUNDi : A way to find phone services dynamically by using the DUNDi protocol
* \arg \ref AstCDR
* \arg \ref AstREADME
- * \arg \ref AstCREDITS
* \arg \ref AstVar
- * \arg \ref AstENUM
+ * \arg \ref AstENUM : The IETF way to redirect from phone numbers to VoIP calls
* \arg \ref ConfigFiles
- * \arg \ref SoundFiles
- * \section wwwsites Web sites
- * \arg Main: Asterisk Developer's website http://www.asterisk.org/developers/
- * \arg Bugs: The Issue tracker http://bugs.digium.com
- * \arg Lists: List server http://lists.digium.com
- * \arg Wiki: The Asterisk Wiki http://www.voip-info.org
- * \arg Docs: The Asterisk Documentation Project http://www.asteriskdocs.org
- * \arg Digium: The Asterisk company http://www.digium.com
+ * \arg \ref SoundFiles included in the Asterisk distribution
+ * \arg \ref AstCREDITS : A Thank You to contributors
+ \n\n
+ * \section weblinks Web sites
+ * \arg \b Main: Asterisk Developer's website http://www.asterisk.org/developers/
+ * \arg \b Bugs: The Issue tracker http://bugs.digium.com
+ * \arg \b Lists: List server http://lists.digium.com
+ * \arg \b Wiki: The Asterisk Wiki http://www.voip-info.org
+ * \arg \b Docs: The Asterisk Documentation Project http://www.asteriskdocs.org
+ * \arg \b Digium: The Asterisk company http://www.digium.com
+ *
*/
/*! \page CodeGuide Coding Guidelines
@@ -56,10 +60,11 @@
/*! \page AstAPI Asterisk API
* \section Asteriskapi Asterisk API
- * This programmer's documentation covers the generic API.
- * \subsection generic Generic Model
+ * Some generic documents on the Asterisk architecture
+ * \subsection model_txt Generic Model
* \verbinclude model.txt
- * \subsection channel Channels
+ * \subsection channel_txt Channels
+ * \arg See \link Def_Channel
* \verbinclude channel.txt
*/
@@ -88,6 +93,7 @@ DUNDi is a peer-to-peer system for locating Internet gateways to telephony servi
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.
+ \par References
\arg DUNDi is documented at http://www.dundi.com
\arg Implemented in \ref pbx_dundi.c and \ref dundi-parser.c
\arg Configuration in \link Config_dun dundi.conf \endlink
@@ -95,9 +101,12 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
/*! \page AstCDR CDR - Call Data Records and billing
* \section cdr Call Data Records
- * \verbinclude README.cdr
+ * \par See also
* \arg \ref cdr.c
+ * \arg \ref cdr_drivers
* \arg \ref Config_cdr CDR configuration files
+ *
+ * \verbinclude README.cdr
*/
/*! \page AstREADME README - the general administrator introduction
@@ -137,6 +146,8 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
* \arg \link Config_oss OSS (sound card) configuration \endlink
* \arg \link Config_alsa ALSA (sound card) configuration \endlink
* \arg \link Config_agent Agent (proxy channel) configuration \endlink
+ * \arg \link Config_misdn MISDN Experimental ISDN BRI channel configuration \endlink
+ * \arg \link Config_h323 H.323 configuration \endlink
* \section appconf Application configuration files
* \arg \link Config_mm Meetme (conference bridge) configuration \endlink
* \arg \link Config_qu Queue system configuration \endlink
@@ -164,10 +175,17 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
* \verbinclude README.asterisk.conf
*/
/*! \page Config_mod Modules configuration
+ * All res_ resource modules are loaded with globals on, which means
+ * that non-static functions are callable from other modules.
+ *
+ * If you want your non res_* module to export functions to other modules
+ * you have to include it in the [global] section.
* \verbinclude modules.conf.sample
*/
/*! \page Config_fea Call features configuration
+ * \par See also
+ * \arg \ref res_features.c : Call feature implementation
* \section featconf features.conf
* \verbinclude features.conf.sample
*/
@@ -189,58 +207,75 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
*/
/*! \page Config_iax IAX configuration
- * \ref chan_iax2.c
+ * \arg Implemented in \ref chan_iax2.c
* \section iaxconf iax.conf
* \verbinclude iax.conf.sample
*/
/*! \page Config_sip SIP configuration
* Also see \ref Config_rtp RTP configuration
- * \ref chan_sip.c
+ * \arg Implemented in \ref chan_sip.c
* \section sipconf sip.conf
* \verbinclude sip.conf.sample
+ *
+ * \arg \b Back \ref chanconf
*/
/*! \page Config_mgcp MGCP configuration
* Also see \ref Config_rtp RTP configuration
- * \ref chan_mgcp.c
+ * \arg Implemented in \ref chan_mgcp.c
* \section mgcpconf mgcp.conf
* \verbinclude mgcp.conf.sample
*/
+/*! \page Config_misdn MISDN configuration
+ * \arg Implemented in \ref chan_misdn.c
+ * \section misdnconf misdn.conf
+ * \verbinclude misdn.conf.sample
+ */
+
/*! \page Config_vm VoiceMail configuration
* \section vmconf voicemail.conf
- * \ref app_voicemail.c
+ * \arg Implemented in \ref app_voicemail.c
* \verbinclude voicemail.conf.sample
*/
/*! \page Config_zap Zaptel configuration
* \section zapconf zapata.conf
- * \ref chan_zap.c
+ * \arg Implemented in \ref chan_zap.c
* \verbinclude zapata.conf.sample
*/
+/*! \page Config_h323 H.323 channel driver information
+ * This is the configuration of the H.323 channel driver within the Asterisk
+ * distribution. There's another one, called OH323, in asterisk-addons
+ * \arg Implemented in \ref chan_h323.c
+ * \section h323conf h323.conf
+ * \ref chan_h323.c
+ * \verbinclude README.h323
+ */
+
/*! \page Config_oss OSS configuration
* \section ossconf oss.conf
- * \ref chan_oss.c
+ * \arg Implemented in \ref chan_oss.c
* \verbinclude oss.conf.sample
*/
/*! \page Config_alsa ALSA configuration
* \section alsaconf alsa.conf
- * \ref chan_alsa.c
+ * \arg Implemented in \ref chan_alsa.c
* \verbinclude alsa.conf.sample
*/
/*! \page Config_agent Agent configuration
* \section agentconf agents.conf
* The agent channel is a proxy channel for queues
- * \ref chan_agent.c
+ * \arg Implemented in \ref chan_agent.c
* \verbinclude agents.conf.sample
*/
/*! \page Config_rtp RTP configuration
- * \ref rtp.c
+ * \arg Implemented in \ref rtp.c
* Used in \ref chan_sip.c and \ref chan_mgcp.c (and various H.323 channels)
* \section rtpconf rtp.conf
* \verbinclude rtp.conf.sample
@@ -255,19 +290,20 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
/*! \page Config_enum ENUM Configuration
* \section enumconf enum.conf
* \arg See also \ref enumreadme
- * \arg \ref app_enumlookup.c
+ * \arg Implemented in \ref app_enumlookup.c and \ref enum.c
* \verbinclude enum.conf.sample
*/
/*! \page cdr_custom Custom CDR Configuration
- * \arg See also \ref cdrconf
+ * \par See also
+ * \arg \ref cdrconf
* \arg \ref cdr_custom.c
* \verbinclude cdr_custom.conf.sample
*/
/*! \page cdr_ami Manager CDR driver configuration
- * \arg See also \ref cdrconf
- * See also:
+ * \par See also
+ * \arg \ref cdrconf
* \arg \ref AstAMI
* \arg \ref cdr_manager.c
* \verbinclude cdr_manager.conf.sample
@@ -304,7 +340,8 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
*/
/*! \page Config_cdr CDR configuration
- * \verbinclude cdr.conf.sample
+ * \par See also
+ * \arg \ref cdr_drivers
* \arg \link Config_cdr CDR configuration \endlink
* \arg \link cdr_custom Custom CDR driver configuration \endlink
* \arg \link cdr_ami Manager CDR driver configuration \endlink
@@ -312,6 +349,7 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
* \arg \link cdr_pgsql PostgreSQL CDR driver configuration \endlink
* \arg \link cdr_sqlite SQLite CDR driver configuration \endlink
* \arg \link cdr_tds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink
+ * \verbinclude cdr.conf.sample
*/
/*! \page Config_moh Music on Hold Configuration
@@ -343,11 +381,13 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
*/
/*! \page Config_qu ACD - Queue system configuration
+ * \arg Implemented in \ref app_queue.c
* \section quconf queues.conf
* \verbinclude queues.conf.sample
*/
/*! \page Config_mm Meetme - The conference bridge configuration
+ * \arg Implemented in \ref app_meetme.c
* \section mmconf meetme.conf
* \verbinclude meetme.conf.sample
*/
@@ -363,3 +403,47 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
* \section SoundList List of included sound files
* \verbinclude sounds.txt
*/
+
+/*! \addtogroup cdr_drivers Module: CDR Drivers
+ * \section CDR_generic Asterisk CDR Drivers
+ * \brief CDR drivers are loaded dynamically (see \ref Config_mod "Modules Configuration"). Each loaded CDR driver produce a billing record for each call.
+ * \arg \ref Config_cdr "CDR Configuration"
+ */
+
+
+/*! \addtogroup channel_drivers Module: Asterisk Channel Drivers
+ * \section channel_generic Asterisk Channel Drivers
+ * \brief Channel drivers are loaded dynamically (see \ref Config_mod "Modules Configuration").
+ */
+
+/*! \addtogroup applications Module: Dial plan applications
+ * \section app_generic Asterisk Dial Plan Applications
+ * \brief Applications support the dialplan. They register dynamically with \ref ast_register_application() and unregister with ast_unregister_application()
+ * \par See also
+ * \arg \ref functions
+ *
+ */
+
+/*! \addtogroup functions Module: Dial plan functions
+ * \section func_generic Asterisk Dial Plan Functions
+ * \brief Functions support the dialplan. They do not change any property of a channel
+ * or touch a channel in any way.
+ * \par See also
+ * \arg \ref applications
+ *
+ */
+
+/*! \addtogroup codecs Module: Codecs
+ * \section codec_generic Asterisk Codec Modules
+ * Codecs are referenced in configuration files by name
+ * \par See also
+ * \arg \ref formats
+ *
+ */
+
+/*! \addtogroup formats Module: Media File Formats
+ * \section codec_generic Asterisk Format drivers
+ * Formats are modules that read or write media files to disk.
+ * \par See also
+ * \arg \ref codecs
+ */
diff --git a/include/asterisk/frame.h b/include/asterisk/frame.h
index 551138005..ccba41539 100755
--- a/include/asterisk/frame.h
+++ b/include/asterisk/frame.h
@@ -18,6 +18,8 @@
/*! \file
* \brief Asterisk internal frame definitions.
+ * \arg For an explanation of frames, see \ref Def_Frame
+ * \arg Frames are send of Asterisk channels, see \ref Def_Channel
*/
#ifndef _ASTERISK_FRAME_H
@@ -35,9 +37,55 @@ struct ast_codec_pref {
char order[32];
};
-/*! Data structure associated with a single frame of data */
-/* A frame of data read used to communicate between
- between channels and applications */
+/*! \page Def_Frame AST Multimedia and signalling frames
+ \section Def_AstFrame What is an ast_frame ?
+ A frame of data read used to communicate between
+ between channels and applications.
+ Frames are divided into frame types and subclasses.
+
+ \par Frame types
+ \arg \b VOICE: Voice data, subclass is codec (AST_FORMAT_*)
+ \arg \b VIDEO: Video data, subclass is codec (AST_FORMAT_*)
+ \arg \b DTMF: A DTMF digit, subclass is the digit
+ \arg \b IMAGE: Image transport, mostly used in IAX
+ \arg \b TEXT: Text messages
+ \arg \b HTML: URL's and web pages
+ \arg \b T38: T38 Fax transport frames
+ \arg \b IAX: Private frame type for the IAX protocol
+ \arg \b CNG: Comfort noice frames
+ \arg \b CONTROL: A control frame, subclass defined as AST_CONTROL_
+ \arg \b NULL: Empty, useless frame
+
+ \par Files
+ \arg frame.h Definitions
+ \arg frame.c Function library
+ \arg \ref Def_Channel Asterisk channels
+ \section Def_ControlFrame Control Frames
+ Control frames send signalling information between channels
+ and devices. They are prefixed with AST_CONTROL_, like AST_CONTROL_FRAME_HANGUP
+ \arg \b HANGUP The other end has hungup
+ \arg \b RING Local ring
+ \arg \b RINGING The other end is ringing
+ \arg \b ANSWER The other end has answered
+ \arg \b BUSY Remote end is busy
+ \arg \b TAKEOFFHOOK Make it go off hook (what's "it" ? )
+ \arg \b OFFHOOK Line is off hook
+ \arg \b CONGESTION Congestion (circuit is busy, not available)
+ \arg \b FLASH Other end sends flash hook
+ \arg \b WINK Other end sends wink
+ \arg \b OPTION Send low-level option
+ \arg \b RADIO_KEY Key radio (see app_rpt.c)
+ \arg \b RADIO_UNKEY Un-key radio (see app_rpt.c)
+ \arg \b PROGRESS Other end indicates call progress
+ \arg \b PROCEEDING Indicates proceeding
+ \arg \b HOLD Call is placed on hold
+ \arg \b UNHOLD Call is back from hold
+ \arg \b VIDUPDATE Video update requested
+
+*/
+
+/*! \brief Data structure associated with a single frame of data
+ */
struct ast_frame {
/*! Kind of frame */
int frametype;
@@ -63,10 +111,10 @@ struct ast_frame {
struct ast_frame *next;
};
-#define AST_FRIENDLY_OFFSET 64 /*! It's polite for a a new frame to
- have this number of bytes for additional
- headers. */
-#define AST_MIN_OFFSET 32 /*! Make sure we keep at least this much handy */
+#define AST_FRIENDLY_OFFSET 64 /*! It's polite for a a new frame to
+ have this number of bytes for additional
+ headers. */
+#define AST_MIN_OFFSET 32 /*! Make sure we keep at least this much handy */
/*! Need the header be free'd? */
#define AST_MALLOCD_HDR (1 << 0)
@@ -206,29 +254,29 @@ struct ast_frame {
#define AST_OPTION_FLAG_ANSWER 5
#define AST_OPTION_FLAG_WTF 6
-/* Verify touchtones by muting audio transmission
+/*! Verify touchtones by muting audio transmission
(and reception) and verify the tone is still present */
#define AST_OPTION_TONE_VERIFY 1
-/* Put a compatible channel into TDD (TTY for the hearing-impared) mode */
+/*! Put a compatible channel into TDD (TTY for the hearing-impared) mode */
#define AST_OPTION_TDD 2
-/* Relax the parameters for DTMF reception (mainly for radio use) */
+/*! Relax the parameters for DTMF reception (mainly for radio use) */
#define AST_OPTION_RELAXDTMF 3
-/* Set (or clear) Audio (Not-Clear) Mode */
+/*! Set (or clear) Audio (Not-Clear) Mode */
#define AST_OPTION_AUDIO_MODE 4
-/* Set channel transmit gain */
-/* Option data is a single signed char
+/*! Set channel transmit gain
+ * Option data is a single signed char
representing number of decibels (dB)
to set gain to (on top of any gain
specified in channel driver)
*/
#define AST_OPTION_TXGAIN 5
-/* Set channel receive gain */
-/* Option data is a single signed char
+/*! Set channel receive gain
+ * Option data is a single signed char
representing number of decibels (dB)
to set gain to (on top of any gain
specified in channel driver)
@@ -251,8 +299,8 @@ struct ast_option_header {
u_int8_t data[0];
};
-/* Requests a frame to be allocated */
-/*
+/*! \brief Requests a frame to be allocated
+ *
* \param source
* Request a frame be allocated. source is an optional source of the frame,
* len is the requested length, or "0" if the caller will supply the buffer
@@ -261,55 +309,49 @@ struct ast_option_header {
struct ast_frame *ast_fralloc(char *source, int len);
#endif
-/*! Frees a frame */
-/*!
+/*! \brief Frees a frame
* \param fr Frame to free
* Free a frame, and the memory it used if applicable
- * no return.
+ * \return no return.
*/
void ast_frfree(struct ast_frame *fr);
-/*! Copies a frame */
-/*!
+/*! \brief Copies a frame
* \param fr frame to act upon
* Take a frame, and if it's not been malloc'd, make a malloc'd copy
* and if the data hasn't been malloced then make the
* data malloc'd. If you need to store frames, say for queueing, then
* you should call this function.
- * Returns a frame on success, NULL on error
+ * \return Returns a frame on success, NULL on error
*/
struct ast_frame *ast_frisolate(struct ast_frame *fr);
-/*! Copies a frame */
-/*!
+/*! \brief Copies a frame
* \param fr frame to copy
* Dupliates a frame -- should only rarely be used, typically frisolate is good enough
- * Returns a frame on success, NULL on error
+ * \return Returns a frame on success, NULL on error
*/
struct ast_frame *ast_frdup(struct ast_frame *fr);
-/*! Reads a frame from an fd */
-/*!
- * \param fd an opened fd to read from
+/*! \brief Reads a frame from an fd
* Read a frame from a stream or packet fd, as written by fd_write
- * returns a frame on success, NULL on error
+ * \param fd an opened fd to read from
+ * \return returns a frame on success, NULL on error
*/
struct ast_frame *ast_fr_fdread(int fd);
-/*! Writes a frame to an fd */
-/*!
+/*! Writes a frame to an fd
+ * Write a frame to an fd
* \param fd Which fd to write to
* \param frame frame to write to the fd
- * Write a frame to an fd
- * Returns 0 on success, -1 on failure
+ * \return Returns 0 on success, -1 on failure
*/
int ast_fr_fdwrite(int fd, struct ast_frame *frame);
-/*! Sends a hangup to an fd */
-/*!
- * \param fd fd to write to
+/*! \brief Sends a hangup to an fd
* Send a hangup (NULL equivalent) on an fd
- * Returns 0 on success, -1 on failure
+ * \param fd fd to write to
+ * \return Returns 0 on success, -1 on failure
*/
int ast_fr_fdhangup(int fd);
@@ -326,15 +368,13 @@ void ast_swapcopy_samples(void *dst, const void *src, int samples);
#endif
-/*! Get the name of a format */
-/*!
+/*! \brief Get the name of a format
* \param format id of format
* \return A static string containing the name of the format or "UNKN" if unknown.
*/
extern char* ast_getformatname(int format);
-/*! Get the names of a set of formats */
-/*!
+/*! \brief Get the names of a set of formats
* \param buf a buffer for the output string
* \param size size of buf (bytes)
* \param format the format (combined IDs of codecs)
@@ -345,17 +385,16 @@ extern char* ast_getformatname(int format);
extern char* ast_getformatname_multiple(char *buf, size_t size, int format);
/*!
+ * \brief Gets a format from a name.
* \param name string of format
- * Gets a format from a name.
- * This returns the form of the format in binary on success, 0 on error.
+ * \return This returns the form of the format in binary on success, 0 on error.
*/
extern int ast_getformatbyname(char *name);
-/*! Get a name from a format */
-/*!
- * \param codec codec number (1,2,4,8,16,etc.)
+/*! \brief Get a name from a format
* Gets a name from a format
- * This returns a static string identifying the format on success, 0 on error.
+ * \param codec codec number (1,2,4,8,16,etc.)
+ * \return This returns a static string identifying the format on success, 0 on error.
*/
extern char *ast_codec2str(int codec);
@@ -381,39 +420,39 @@ extern struct ast_frame *ast_smoother_read(struct ast_smoother *s);
extern void ast_frame_dump(char *name, struct ast_frame *f, char *prefix);
-/* Initialize a codec preference to "no preference" */
+/*! \brief Initialize a codec preference to "no preference" */
extern void ast_codec_pref_init(struct ast_codec_pref *pref);
-/* Codec located at a particular place in the preference index */
+/*! \brief Codec located at a particular place in the preference index */
extern int ast_codec_pref_index(struct ast_codec_pref *pref, int index);
-/* Remove a codec from a preference list */
+/*! \brief Remove a codec from a preference list */
extern void ast_codec_pref_remove(struct ast_codec_pref *pref, int format);
-/* Append a codec to a preference list, removing it first if it was already there */
+/*! \brief Append a codec to a preference list, removing it first if it was already there */
extern int ast_codec_pref_append(struct ast_codec_pref *pref, int format);
-/* Select the best format according to preference list from supplied options.
+/*! \brief Select the best format according to preference list from supplied options.
If "find_best" is non-zero then if nothing is found, the "Best" format of
the format list is selected, otherwise 0 is returned. */
extern int ast_codec_choose(struct ast_codec_pref *pref, int formats, int find_best);
-/* Parse an "allow" or "deny" line and update the mask and pref if provided */
+/*! \brief Parse an "allow" or "deny" line and update the mask and pref if provided */
extern void ast_parse_allow_disallow(struct ast_codec_pref *pref, int *mask, const char *list, int allowing);
-/* Dump codec preference list into a string */
+/*! \brief Dump codec preference list into a string */
extern int ast_codec_pref_string(struct ast_codec_pref *pref, char *buf, size_t size);
-/* Shift a codec preference list up or down 65 bytes so that it becomes an ASCII string */
+/*! \brief Shift a codec preference list up or down 65 bytes so that it becomes an ASCII string */
extern void ast_codec_pref_convert(struct ast_codec_pref *pref, char *buf, size_t size, int right);
-/* Returns the number of samples contained in the frame */
+/*! \brief Returns the number of samples contained in the frame */
extern int ast_codec_get_samples(struct ast_frame *f);
-/* Returns the number of bytes for the number of samples of the given format */
+/*! \brief Returns the number of bytes for the number of samples of the given format */
extern int ast_codec_get_len(int format, int samples);
-/* Gets duration in ms of interpolation frame for a format */
+/*! \brief Gets duration in ms of interpolation frame for a format */
static inline int ast_codec_interp_len(int format)
{
return (format == AST_FORMAT_ILBC) ? 30 : 20;
diff --git a/include/asterisk/fskmodem.h b/include/asterisk/fskmodem.h
index 62b584ba4..ea863fc2f 100755
--- a/include/asterisk/fskmodem.h
+++ b/include/asterisk/fskmodem.h
@@ -19,6 +19,7 @@
/*! \file
* \brief FSK Modem Support
* \note Includes code and algorithms from the Zapata library.
+ * \todo Translate Emiliano Zapata's spanish comments to english, please.
*/
#ifndef _ASTERISK_FSKMODEM_H
@@ -32,39 +33,39 @@
#define NCOLA 0x4000
typedef struct {
- float spb; /* Samples / Bit */
- int nbit; /* Number of Data Bits (5,7,8) */
- float nstop; /* Number of Stop Bits 1,1.5,2 */
- int paridad; /* Parity 0=none 1=even 2=odd */
- int hdlc; /* Modo Packet */
+ float spb; /*!< Samples / Bit */
+ int nbit; /*!< Number of Data Bits (5,7,8) */
+ float nstop; /*!< Number of Stop Bits 1,1.5,2 */
+ int paridad; /*!< Parity 0=none 1=even 2=odd */
+ int hdlc; /*!< Modo Packet */
float x0;
float x1;
float x2;
float cont;
- int bw; /* Ancho de Banda */
- double fmxv[8],fmyv[8]; /* filter stuff for M filter */
- int fmp; /* pointer for M filter */
- double fsxv[8],fsyv[8]; /* filter stuff for S filter */
- int fsp; /* pointer for S filter */
- double flxv[8],flyv[8]; /* filter stuff for L filter */
- int flp; /* pointer for L filter */
- int f_mark_idx; /* Indice de frecuencia de marca (f_M-500)/5 */
- int f_space_idx;/* Indice de frecuencia de espacio (f_S-500)/5 */
+ int bw; /*!< Ancho de Banda */
+ double fmxv[8],fmyv[8]; /*!< filter stuff for M filter */
+ int fmp; /*!< pointer for M filter */
+ double fsxv[8],fsyv[8]; /*!< filter stuff for S filter */
+ int fsp; /*!< pointer for S filter */
+ double flxv[8],flyv[8]; /*!< filter stuff for L filter */
+ int flp; /*!< pointer for L filter */
+ int f_mark_idx; /*!< Indice de frecuencia de marca (f_M-500)/5 */
+ int f_space_idx; /*!< Indice de frecuencia de espacio (f_S-500)/5 */
int state;
- int pcola; /* Puntero de las colas de datos */
- float cola_in[NCOLA]; /* Cola de muestras de entrada */
- float cola_filtro[NCOLA]; /* Cola de muestras tras filtros */
- float cola_demod[NCOLA]; /* Cola de muestras demoduladas */
+ int pcola; /*!< Puntero de las colas de datos */
+ float cola_in[NCOLA]; /*!< Cola de muestras de entrada */
+ float cola_filtro[NCOLA]; /*!< Cola de muestras tras filtros */
+ float cola_demod[NCOLA]; /*!< Cola de muestras demoduladas */
} fsk_data;
/* \brief Retrieve a serial byte into outbyte.
Buffer is a pointer into a series of
shorts and len records the number of bytes in the buffer. len will be
- overwritten with the number of bytes left that were not consumed, and the
- return value is as follows:
- 0: Still looking for something...
- 1: An output byte was received and stored in outbyte
- -1: An error occured in the transmission
+ overwritten with the number of bytes left that were not consumed.
+ \return return value is as follows:
+ \arg 0: Still looking for something...
+ \arg 1: An output byte was received and stored in outbyte
+ \arg -1: An error occured in the transmission
He must be called with at least 80 bytes of buffer. */
extern int fsk_serie(fsk_data *fskd, short *buffer, int *len, int *outbyte);
diff --git a/pbx/pbx_dundi.c b/pbx/pbx_dundi.c
index c0165d962..c7e68f788 100755
--- a/pbx/pbx_dundi.c
+++ b/pbx/pbx_dundi.c
@@ -3850,6 +3850,9 @@ int dundi_query_eid(struct dundi_entity_info *dei, const char *dcontext, dundi_e
return dundi_query_eid_internal(dei, dcontext, &eid, &hmd, dundi_ttl, 0, avoid);
}
+/*!
+ * \ingroup applications
+ */
static int dundi_lookup_exec(struct ast_channel *chan, void *data)
{
char *num;
@@ -3976,6 +3979,10 @@ static char *dundifunc_read(struct ast_channel *chan, char *cmd, char *data, cha
return buf;
}
+/*! DUNDILOOKUP
+ * \ingroup functions
+*/
+
static struct ast_custom_function dundi_function = {
.name = "DUNDILOOKUP",
.synopsis = "Do a DUNDi lookup of a phone number.",
diff --git a/stdtime/localtime.c b/stdtime/localtime.c
index b177d3cd4..67dc71d2c 100755
--- a/stdtime/localtime.c
+++ b/stdtime/localtime.c
@@ -23,10 +23,13 @@
* at the top of the source tree.
*/
-/*
+/*! \file
*
* Multi-timezone Localtime code
*
+ * \author Leap second handling Bradley White (bww@k.gp.cs.cmu.edu).
+ * \author POSIX-style TZ environment variable handling from Guy Harris (guy@auspex.com).
+ *
*/
/*
@@ -40,11 +43,6 @@
#define TZ_STRLEN_MAX 255
/* #define DEBUG */
-/*
-** Leap second handling from Bradley White (bww@k.gp.cs.cmu.edu).
-** POSIX-style TZ environment variable handling from Guy Harris
-** (guy@auspex.com).
-*/
/*LINTLIBRARY*/
@@ -62,7 +60,7 @@
#ifndef lint
#ifndef NOID
-static const char elsieid[] = "@(#)localtime.c 7.57";
+static const char elsieid[] = "@(#)localtime.c 7.57";
#endif /* !defined NOID */
#endif /* !defined lint */
@@ -80,45 +78,47 @@ static const char elsieid[] = "@(#)localtime.c 7.57";
#endif /* !defined O_BINARY */
#ifndef WILDABBR
-/*
-** Someone might make incorrect use of a time zone abbreviation:
-** 1. They might reference tzname[0] before calling ast_tzset (explicitly
-** or implicitly).
-** 2. They might reference tzname[1] before calling ast_tzset (explicitly
-** or implicitly).
-** 3. They might reference tzname[1] after setting to a time zone
-** in which Daylight Saving Time is never observed.
-** 4. They might reference tzname[0] after setting to a time zone
-** in which Standard Time is never observed.
-** 5. They might reference tm.TM_ZONE after calling offtime.
-** What's best to do in the above cases is open to debate;
-** for now, we just set things up so that in any of the five cases
-** WILDABBR is used. Another possibility: initialize tzname[0] to the
-** string "tzname[0] used before set", and similarly for the other cases.
-** And another: initialize tzname[0] to "ERA", with an explanation in the
-** manual page of what this "time zone abbreviation" means (doing this so
-** that tzname[0] has the "normal" length of three characters).
-*/
+/*! \note
+ * Someone might make incorrect use of a time zone abbreviation:
+ * 1. They might reference tzname[0] before calling ast_tzset (explicitly
+ * or implicitly).
+ * 2. They might reference tzname[1] before calling ast_tzset (explicitly
+ * or implicitly).
+ * 3. They might reference tzname[1] after setting to a time zone
+ * in which Daylight Saving Time is never observed.
+ * 4. They might reference tzname[0] after setting to a time zone
+ * in which Standard Time is never observed.
+ * 5. They might reference tm.TM_ZONE after calling offtime.
+ * What's best to do in the above cases is open to debate;
+ * for now, we just set things up so that in any of the five cases
+ * WILDABBR is used. Another possibility: initialize tzname[0] to the
+ * string "tzname[0] used before set", and similarly for the other cases.
+ * And another: initialize tzname[0] to "ERA", with an explanation in the
+ * manual page of what this "time zone abbreviation" means (doing this so
+ * that tzname[0] has the "normal" length of three characters).
+ */
#define WILDABBR " "
#endif /* !defined WILDABBR */
static char wildabbr[] = "WILDABBR";
-/* FreeBSD defines 'zone' in 'struct tm' as non-const, so don't declare this
+/*! \brief FreeBSD defines 'zone' in 'struct tm' as non-const, so don't declare this
string as const. */
static char gmt[] = "GMT";
-struct ttinfo { /* time type information */
- long tt_gmtoff; /* GMT offset in seconds */
- int tt_isdst; /* used to set tm_isdst */
- int tt_abbrind; /* abbreviation list index */
- int tt_ttisstd; /* TRUE if transition is std time */
- int tt_ttisgmt; /* TRUE if transition is GMT */
+/*!< \brief time type information */
+struct ttinfo {
+ long tt_gmtoff; /*!< GMT offset in seconds */
+ int tt_isdst; /*!< used to set tm_isdst */
+ int tt_abbrind; /*!< abbreviation list index */
+ int tt_ttisstd; /*!< TRUE if transition is std time */
+ int tt_ttisgmt; /*!< TRUE if transition is GMT */
};
-struct lsinfo { /* leap second information */
- time_t ls_trans; /* transition time */
- long ls_corr; /* correction to apply */
+/*! \brief leap second information */
+struct lsinfo {
+ time_t ls_trans; /*!< transition time */
+ long ls_corr; /*!< correction to apply */
};
#define BIGGEST(a, b) (((a) > (b)) ? (a) : (b))
@@ -152,16 +152,16 @@ struct state {
};
struct rule {
- int r_type; /* type of rule--see below */
- int r_day; /* day number of rule */
- int r_week; /* week number of rule */
- int r_mon; /* month number of rule */
- long r_time; /* transition time of rule */
+ int r_type; /*!< type of rule--see below */
+ int r_day; /*!< day number of rule */
+ int r_week; /*!< week number of rule */
+ int r_mon; /*!< month number of rule */
+ long r_time; /*!< transition time of rule */
};
-#define JULIAN_DAY 0 /* Jn - Julian day */
-#define DAY_OF_YEAR 1 /* n - day of year */
-#define MONTH_NTH_DAY_OF_WEEK 2 /* Mm.n.d - month, week, day of week */
+#define JULIAN_DAY 0 /*!< Jn - Julian day */
+#define DAY_OF_YEAR 1 /*!< n - day of year */
+#define MONTH_NTH_DAY_OF_WEEK 2 /*!< Mm.n.d - month, week, day of week */
/*
** Prototypes for static functions.
@@ -223,9 +223,7 @@ AST_MUTEX_DEFINE_STATIC(gmt_mutex);
** Thanks to Paul Eggert (eggert@twinsun.com) for noting this.
*/
-static long
-detzcode(codep)
-const char * const codep;
+static long detzcode(const char * const codep)
{
register long result;
register int i;
@@ -236,10 +234,7 @@ const char * const codep;
return result;
}
-static int
-tzload(name, sp)
-register const char * name;
-register struct state * const sp;
+static int tzload(register const char *name, register struct state *const sp)
{
register const char * p;
register int i;
@@ -401,19 +396,14 @@ static const int year_lengths[2] = {
DAYSPERNYEAR, DAYSPERLYEAR
};
-/*
-** Given a pointer into a time zone string, extract a number from that string.
-** Check that the number is within a specified range; if it is not, return
-** NULL.
-** Otherwise, return a pointer to the first character not part of the number.
+/*! \brief
+ * Given a pointer into a time zone string, extract a number from that string.
+ * \return Check that the number is within a specified range; if it is not, return
+ * NULL.
+ * Otherwise, return a pointer to the first character not part of the number.
*/
-static const char *
-getnum(strp, nump, min, max)
-register const char * strp;
-int * const nump;
-const int min;
-const int max;
+static const char *getnum(register const char *strp, int * const nump, const int min, const int max)
{
register char c;
register int num;
@@ -433,18 +423,15 @@ const int max;
return strp;
}
-/*
-** Given a pointer into a time zone string, extract a number of seconds,
-** in hh[:mm[:ss]] form, from the string.
-** If any error occurs, return NULL.
-** Otherwise, return a pointer to the first character not part of the number
-** of seconds.
+/*! \brief
+ * Given a pointer into a time zone string, extract a number of seconds,
+ * in hh[:mm[:ss]] form, from the string.
+ * \return If any error occurs, return NULL.
+ * Otherwise, return a pointer to the first character not part of the number
+ * of seconds.
*/
-static const char *
-getsecs(strp, secsp)
-register const char * strp;
-long * const secsp;
+static const char *getsecs(register const char *strp, long * const secsp)
{
int num;
@@ -476,17 +463,14 @@ long * const secsp;
return strp;
}
-/*
-** Given a pointer into a time zone string, extract an offset, in
-** [+-]hh[:mm[:ss]] form, from the string.
-** If any error occurs, return NULL.
-** Otherwise, return a pointer to the first character not part of the time.
+/*! \brief
+ * Given a pointer into a time zone string, extract an offset, in
+ * [+-]hh[:mm[:ss]] form, from the string.
+ * \return If any error occurs, return NULL.
+ * Otherwise, return a pointer to the first character not part of the time.
*/
-static const char *
-getoffset(strp, offsetp)
-register const char * strp;
-long * const offsetp;
+static const char * getoffset(register const char *strp, long * const offsetp)
{
register int neg = 0;
@@ -503,17 +487,14 @@ long * const offsetp;
return strp;
}
-/*
-** Given a pointer into a time zone string, extract a rule in the form
-** date[/time]. See POSIX section 8 for the format of "date" and "time".
-** If a valid rule is not found, return NULL.
-** Otherwise, return a pointer to the first character not part of the rule.
+/*! \brief
+ * Given a pointer into a time zone string, extract a rule in the form
+ * date[/time]. See POSIX section 8 for the format of "date" and "time".
+ * \return If a valid rule is not found, return NULL.
+ * Otherwise, return a pointer to the first character not part of the rule.
*/
-static const char *
-getrule(strp, rulep)
-const char * strp;
-register struct rule * const rulep;
+static const char *getrule(const char *strp, register struct rule * const rulep)
{
if (*strp == 'J') {
/*
@@ -558,14 +539,13 @@ register struct rule * const rulep;
return strp;
}
-/*
-** Given the Epoch-relative time of January 1, 00:00:00 GMT, in a year, the
-** year, a rule, and the offset from GMT at the time that rule takes effect,
-** calculate the Epoch-relative time that rule takes effect.
+/*! \brief
+ * Given the Epoch-relative time of January 1, 00:00:00 GMT, in a year, the
+ * year, a rule, and the offset from GMT at the time that rule takes effect,
+ * calculate the Epoch-relative time that rule takes effect.
*/
-static time_t
-transtime(janfirst, year, rulep, offset)
+static time_t transtime(janfirst, year, rulep, offset)
const time_t janfirst;
const int year;
register const struct rule * const rulep;
diff --git a/stdtime/test.c b/stdtime/test.c
index 70e2a0c65..9e8ce45da 100755
--- a/stdtime/test.c
+++ b/stdtime/test.c
@@ -1,4 +1,5 @@
-/* Testing localtime functionality */
+/*! \file
+ \brief Testing localtime functionality */
#include "localtime.c"
#include <sys/time.h>
diff --git a/stdtime/tzfile.h b/stdtime/tzfile.h
index c1b27ea94..f16d5a05c 100755
--- a/stdtime/tzfile.h
+++ b/stdtime/tzfile.h
@@ -2,18 +2,17 @@
#define TZFILE_H
-/*
-** This file is in the public domain, so clarified as of
-** 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
-*/
-
-/*
-** This header is for use ONLY with the time conversion code.
-** There is no guarantee that it will remain unchanged,
-** or that it will remain at all.
-** Do NOT copy it to any system include directory.
-** Thank you!
-*/
+/*! \brief
+ * This file is in the public domain, so clarified as of
+ * 1996-06-05 by
+ * \author Arthur David Olson (arthur_david_olson@nih.gov).
+ *
+ * \note This header is for use ONLY with the time conversion code.
+ * There is no guarantee that it will remain unchanged,
+ * or that it will remain at all.
+ * Do NOT copy it to any system include directory.
+ * Thank you!
+ */
/*
** ID
@@ -32,7 +31,7 @@ static char tzfilehid[] = "@(#)tzfile.h 7.14";
*/
#ifndef TZDIR
-#define TZDIR "/usr/share/zoneinfo" /* Time zone object file directory */
+#define TZDIR "/usr/share/zoneinfo" /*!< Time zone object file directory */
#endif /* !defined TZDIR */
#ifndef TZDEFAULT