* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Various sorts of access control
+ * \brief Various sorts of access control
*
*/
---------------------------------------------------------------------------
Issue Date: 26/08/2003
- This file contains the code for implementing encryption and decryption
+*/
+/*! \file
+\brief This file contains the code for implementing encryption and decryption
for AES (Rijndael) for block and key sizes of 16, 24 and 32 bytes. It
can optionally be replaced by code written in assembler using NASM. For
further details see the file aesopt.h
---------------------------------------------------------------------------
Issue Date: 26/08/2003
- This file contains the code for implementing the key schedule for AES
+*/
+/*! \file
+\brief This file contains the code for implementing the key schedule for AES
(Rijndael) for block and key sizes of 16, 24, and 32 bytes. See aesopt.h
for further details including optimisation.
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * u-Law to Signed linear conversion
+ * \brief u-Law to Signed linear conversion
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Convenient Application Routines
+ * \brief Convenient Application Routines
*
*/
* at the top of the source tree.
*/
-/*
- *
- * Program Asterisk ADSI Scripts into phone
+/*! \file
+ * \brief Program Asterisk ADSI Scripts into phone
*
*/
* at the top of the source tree.
*/
-/*
- *
- * Central Station Alarm receiver for Ademco Contact ID
+/*! \file
+ * \brief Central Station Alarm receiver for Ademco Contact ID
*
* *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING ***
*
* at the top of the source tree.
*/
-/*
- *
- * Execute arbitrary authenticate commands
+/*! \file
+ * \brief Execute arbitrary authenticate commands
*
*/
* at the top of the source tree.
*/
-/*
- *
- * Applictions connected with CDR engine
+/*! \file
+ * \brief Applications connected with CDR engine
*
*/
* at the top of the source tree.
*/
-/*
- *
- * Check if Channel is Available
+/*! \file
+ * \brief Check if Channel is Available
*
*/
* at the top of the source tree.
*/
-/*
- *
- * ChanSpy Listen in on any channel.
+/*! \file
+ * \brief ChanSpy: Listen in on any channel.
*
*/
* at the top of the source tree.
*/
-/*
- *
- * Trivial application to control playback a sound file
+/*! \file
+ * \brief Trivial application to control playback of a sound file
*
*/
*
*/
-/*
- *
- * Curl - App to load a URL
+/*! \file
+ * \brief Curl - App to load a URL
*
*/
*
*/
-/*
- *
- * Cut application
+/*! \file
+ * \brief Cut application
*
*/
* at the top of the source tree.
*/
-/*
- *
- * Time of day - Report the time of day
+/*! \file
+ * \brief Time of day - Report the time of day
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Database access functions
+ * \brief Database access functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Trivial application to dial a channel and send an URL on answer
+ * \brief dial() & retrydial() - Trivial application to dial a channel and send an URL on answer
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Virtual Dictation Machine Application For Asterisk
+ * \brief Virtual Dictation Machine Application For Asterisk
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Directed Call Pickup Support
+ * \brief Directed Call Pickup Support
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Provide a directory of extensions
+ * \brief Provide a directory of extensions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * DISA -- Direct Inward System Access Application
+ * \brief DISA -- Direct Inward System Access Application
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Application to dump channel variables
+ * \brief Application to dump channel variables
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Echo application -- play back what you hear to evaluate latency
+ * \brief Echo application -- play back what you hear to evaluate latency
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Enumlookup - lookup entry in ENUM
+ * \brief Enumlookup - lookup entry in ENUM
*
*/
*
*/
-/*
- *
- * Eval application
+/*! \file
+ * \brief Eval application
*
+ * \author Tilghman Lesher <app_eval__v001@the-tilghman.com>
*/
#include <stdio.h>
*
*/
-/*
+/*! \file
*
- * Exec application
+ * \brief Exec application
*
+ * \author Tilghman Lesher <app_exec__v001@the-tilghman.com>
*/
#include <stdio.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * External IVR application interface
+ * \brief External IVR application interface
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Connect to festival
+ * \brief Connect to festival
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to flash a zap trunk
+ * \brief App to flash a zap trunk
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Fork CDR application
+ * \brief Fork CDR application
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Execute arbitrary system commands
+ * \brief Execute arbitrary system commands
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Group Manipulation Applications
+ * \brief Group Manipulation Applications
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * HasVoicemail application
+ * \brief HasVoicemail application
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Stream to an icecast server via ICES (see contrib/asterisk-ices.xml)
+ * \brief Stream to an icecast server via ICES (see contrib/asterisk-ices.xml)
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to transmit an image
+ * \brief App to transmit an image
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Use /dev/dsp as an intercom.
+ * \brief Use /dev/dsp as an intercom.
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * IVR Demo application
+ * \brief IVR Demo application
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to lookup the callerid number, and see if it is blacklisted
+ * \brief App to lookup the callerid number, and see if it is blacklisted
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to set callerid name from database, based on directory number
+ * \brief App to set callerid name from database, based on directory number
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Macro Implementation
+ * \brief Dial plan macro Implementation
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * simple math application
+ * \brief A simple math application
*
*/
*/
-/*
+/*! \file
*
- * MD5 checksum application
+ * \brief MD5 checksum application
*
+ * \todo Remove this deprecated application in 1.3dev
*/
#include <stdlib.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Meet me conference bridge
+ * \brief Meet me conference bridge
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Digital Milliwatt Test
+ * \brief Digital Milliwatt Test
*
*/
/*
* Asterisk -- A telephony toolkit for Linux.
*
- * muxmon Application For Asterisk
*
* Copyright (C) 2005, Anthony Minessale II
*
* the GNU General Public License
*/
+/*! \file
+ * \brief muxmon() - record a call natively
+ */
+
#include <asterisk/file.h>
#include <asterisk/logger.h>
#include <asterisk/channel.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Silly application to play an MP3 file -- uses mpg123
+ * \brief Silly application to play an MP3 file -- uses mpg123
*
*/
/*
* Asterisk -- A telephony toolkit for Linux.
*
- * muxmon Application For Asterisk
*
* Copyright (C) 2005, Anthony Minessale II
*
* the GNU General Public License
*/
+/*! \file
+ * \brief muxmon() - record a call natively
+ */
+
#include <asterisk/file.h>
#include <asterisk/logger.h>
#include <asterisk/channel.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Silly application to play an NBScat file -- uses nbscat8k
+ * \brief Silly application to play an NBScat file -- uses nbscat8k
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Open Settlement Protocol Lookup
+ * \brief Open Settlement Protocol Lookup
*
*/
*
*/
-/*
+/*! \file
*
- * Paging application
+ * \brief page() - Paging application
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * ParkAndAnnounce application for Asterisk
+ * \brief ParkAndAnnounce application for Asterisk
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Trivial application to playback a sound file
+ * \brief Trivial application to playback a sound file
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Block all calls without Caller*ID, require phone # to be entered
+ * \brief Block all calls without Caller*ID, require phone # to be entered
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * True call queues with optional send URL on answer
+ * \brief True call queues with optional send URL on answer
*
*
- * 2004-11-25: Persistent Dynamic Members added by:
+ * \note 2004-11-25: Persistent Dynamic Members added by:
* NetNation Communications (www.netnation.com)
* Kevin Lindsay <kevinl@netnation.com>
*
* configured with the 'persistent_members=<1|0>' setting in the
* '[general]' category in queues.conf. The default is on.
*
- * 2004-06-04: Priorities in queues added by inAccess Networks (work funded by Hellas On Line (HOL) www.hol.gr).
+ * \note 2004-06-04: Priorities in queues added by inAccess Networks (work funded by Hellas On Line (HOL) www.hol.gr).
*
- * These features added by David C. Troy <dave@toad.net>:
+ * \note These features added by David C. Troy <dave@toad.net>:
* - Per-queue holdtime calculation
* - Estimated holdtime announcement
* - Position announcement
* Fixed to work with CVS as of 2004-02-25 and released as 1.07a
* by Matthew Enger <m.enger@xi.com.au>
*
- * This program is free software, distributed under the terms of
- * the GNU General Public License
*/
#include <stdlib.h>
*
*/
-/*
+/*! \file
*
- * Random application
+ * \brief Random application
*
+ * \author Tilghman Lesher <asterisk__app_random__200508@the-tilghman.com>
*/
#include <stdio.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Trivial application to read a variable
+ * \brief Trivial application to read a variable
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * ReadFile application -- Reads in a File for you.
+ * \brief ReadFile application -- Reads in a File for you.
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * RealTime App
+ * \brief RealTime App
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Trivial application to record a sound file
+ * \brief Trivial application to record a sound file
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Radio Repeater / Remote Base program
+ * \brief Radio Repeater / Remote Base program
* version 0.31 09/15/05
*
* See http://www.zapatatelephony.org/app_rpt.html
*
*/
-/*
+/*! \file
*
- * SayUnixTime application
+ * \brief SayUnixTime application
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to send DTMF digits
+ * \brief App to send DTMF digits
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to transmit a text message
+ * \brief App to transmit a text message
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to set callerid
+ * \brief App to set callerid
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Applictions connected with CDR engine
+ * \brief Applictions connected with CDR engine
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to set callerid
+ * \brief App to set callerid
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to set callerid
+ * \brief App to set callerid number
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to set rdnis
+ * \brief App to set rdnis
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * App to set the ISDN Transfer Capability
+ * \brief App to set the ISDN Transfer Capability
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Skeleton application
+ * \brief Skeleton application
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * SMS application - ETSI ES 201 912 protocol 1 implimentation
+ * \brief SMS application - ETSI ES 201 912 protocol 1 implimentation
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * SoftHangup application
+ * \brief SoftHangup application
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Connect to PostgreSQL
+ * \brief Connect to PostgreSQL
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Skeleton application (?)
+ * \brief striplsd: Strip trailing digits app
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
+ *
+ * \brief substr
*
- * Skeleton application (?)
- *
+ * \todo Deprecate this application in 1.3dev
*/
#include <sys/types.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Execute arbitrary system commands
+ * \brief Execute arbitrary system commands
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Playback a file with audio detect
+ * \brief Playback a file with audio detect
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Applications to test connection and produce report in text file
+ * \brief Applications to test connection and produce report in text file
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Transfer a caller
+ * \brief Transfer a caller
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Caller*id name lookup - Look up the caller's name via DNS
+ * \brief Caller*id name lookup - Look up the caller's name via DNS
*
*/
* at the top of the source tree.
*/
-/*
- *
- * App to transmit a URL
+/*! \file
+ * \brief App to transmit a URL
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * UserEvent application -- send manager event
+ * \brief UserEvent application -- send manager event
*
*/
*
*/
-/*
+/*! \file
*
- * Verbose application
+ * \brief Verbose logging application
*
*/
* 05-10-2005 : Support for Swedish and Norwegian added by Daniel Nylander, http://www.danielnylander.se/
*
* 05-11-2005 : An option for maximum number of messsages per mailbox added by GDS Partners (www.gdspartners.com)
- * Stojan Sljivic <stojan.sljivic@gdspartners.com>
- *
* 07-11-2005 : An issue with voicemail synchronization has been fixed by GDS Partners (www.gdspartners.com)
* Stojan Sljivic <stojan.sljivic@gdspartners.com>
*
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Voicemail System
+ * \brief Comedian Mail - Voicemail System
*
*/
}
if (len) {
res = write(ofd, buf, len);
- if (res != len) {
+ if (errno == ENOMEM || errno == ENOSPC || res != len) {
ast_log(LOG_WARNING, "Write failed on %s (%d of %d): %s\n", outfile, res, len, strerror(errno));
close(ifd);
close(ofd);
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Wait for Ring Application
+ * \brief Wait for Ring Application
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Wait for Silence
+ * \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
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * While Loop and ExecIf Implementations
+ * \brief While Loop and ExecIf Implementations
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Playback the special information tone to get rid of telemarketers
+ * \brief Playback the special information tone to get rid of telemarketers
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Zap Barge support
+ * \brief Zap Barge support
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Execute an ISDN RAS
+ * \brief Execute an ISDN RAS
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Zap Scanner
+ * \brief Zap Scanner
*
*/
* at the top of the source tree.
*/
-/*
+
+/* Doxygenified Copyright Header */
+/*!
+ * \mainpage Asterisk -- An Open Source Telephony Toolkit
+ *
+ * \arg \ref DevDoc
+ * \arg \ref ConfigFiles
+ *
+ * \section copyright Copyright and author
+ *
+ * Copyright (C) 1999 - 2005, Digium, Inc.
+ * Asterisk is a trade mark registered by Digium, Inc.
+ *
+ * \author Mark Spencer <markster@digium.com>
+ * Also see \ref AstCREDITS
+ *
+ * \section license License
+ * 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.
*
- * Top level source file for asterisk
- *
+ * 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.
+ *
+ * \verbinclude LICENSE
+ *
+ */
+
+/*! \file
+ \brief Top level source file for Asterisk - the Open Source PBX. Implementation
+ of PBX core functions and CLI interface.
+
*/
#include <unistd.h>
#include "asterisk/linkedlists.h"
#include "asterisk/devicestate.h"
+#include "asterisk/doxyref.h" /* Doxygen documentation */
+
#include "defaults.h"
#ifndef AF_LOCAL
char record_cache_dir[AST_CACHE_DIR_LEN] = AST_TMP_DIR;
char debug_filename[AST_FILENAME_MAX] = "";
-static int ast_socket = -1; /* UNIX Socket for allowing remote control */
-static int ast_consock = -1; /* UNIX Socket for controlling another asterisk */
+static int ast_socket = -1; /*!< UNIX Socket for allowing remote control */
+static int ast_consock = -1; /*!< UNIX Socket for controlling another asterisk */
int ast_mainpid;
struct console {
- int fd; /* File descriptor */
- int p[2]; /* Pipe */
- pthread_t t; /* Thread of handler */
+ int fd; /*!< File descriptor */
+ int p[2]; /*!< Pipe */
+ pthread_t t; /*!< Thread of handler */
};
static struct ast_atexit {
void (*func)(void);
struct ast_atexit *next;
} *atexits = NULL;
+
AST_MUTEX_DEFINE_STATIC(atexitslock);
time_t ast_startuptime;
" Shows the revision numbers of the files used to build this copy of Asterisk.\n"
" Optional regular expression pattern is used to filter the file list.\n";
+/*! CLI command to list module versions */
static int handle_show_version_files(int fd, int argc, char *argv[])
{
#define FORMAT "%-25.25s %-40.40s\n"
return write(fd, s, strlen(s) + 1);
}
-/* NULL handler so we can collect the child exit status */
+/*! NULL handler so we can collect the child exit status */
static void null_sig_handler(int signal)
{
return res;
}
-/*
+/*!
* write the string to all attached console clients
*/
static void ast_network_puts(const char *string)
}
}
-/*
+/*!
* write the string to the console, and all attached
* console clients
*/
return 1;
}
+/*! Urgent handler
+ Called by soft_hangup to interrupt the poll, read, or other
+ system call. We don't actually need to do anything though.
+ Remember: Cannot EVER ast_log from within a signal handler
+ SLD: seems to be some pthread activity relating to the printf anyway:
+ which is leading to a deadlock?
+ */
static void urg_handler(int num)
{
- /* Called by soft_hangup to interrupt the poll, read, or other
- system call. We don't actually need to do anything though. */
- /* Cannot EVER ast_log from within a signal handler */
- /* SLD: seems to be some pthread activity relating to the printf anyway:
- * which is leading to a deadlock? */
#if 0
if (option_debug > 2)
printf("-- Asterisk Urgent handler\n");
signal(sig, child_handler);
}
+/*! Set an X-term or screen title */
static void set_title(char *text)
{
- /* Set an X-term or screen title */
if (getenv("TERM") && strstr(getenv("TERM"), "xterm"))
fprintf(stdout, "\033]2;%s\007", text);
}
fprintf(stdout, "\033]1;%s\007", text);
}
+/*! We set ourselves to a high priority, that we might pre-empt everything
+ else. If your PBX has heavy activity on it, this is a good thing. */
int ast_set_priority(int pri)
{
struct sched_param sched;
memset(&sched, 0, sizeof(sched));
- /* We set ourselves to a high priority, that we might pre-empt everything
- else. If your PBX has heavy activity on it, this is a good thing. */
#ifdef __linux__
if (pri) {
sched.sched_priority = 10;
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Memory Management
+ * \brief Memory Management
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Automatic channel service routines
+ * \brief Automatic channel service routines
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * CallerID Generation support
+ * \brief CallerID Generation support
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Call Detail Record API
+ * \brief Call Detail Record API
*
* Includes code and algorithms from the Zapata library.
*
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Channel Management
+ * \brief Channel Management
*
*/
*/
-/**
- * Implementation of Agents
+/*! \file
+ * \brief Implementation of Agents
*
- * @file chan_agent.c
- * @brief This file is the implementation of Agents modules.
+ * 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.
*/
* at the top of the source tree.
*/
+/*! \file
+ * \brief ALSA sound card channel driver
+ */
+
#include <unistd.h>
#include <fcntl.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * feature Proxy Channel
+ * \brief feature Proxy Channel
*
- * *** Experimental code ****
+ * \note *** Experimental code ****
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * This file is part of the chan_h323 driver for Asterisk
+ * \brief This file is part of the chan_h323 driver for Asterisk
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Implementation of Inter-Asterisk eXchange Version 2
+ * \brief Implementation of Inter-Asterisk eXchange Version 2
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Local Proxy Channel
+ * \brief Local Proxy Channel
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Implementation of Media Gateway Control Protocol
+ * \brief Implementation of Media Gateway Control Protocol
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * A/Open ITU-56/2 Voice Modem Driver (Rockwell, IS-101, and others)
+ * \brief A/Open ITU-56/2 Voice Modem Driver (Rockwell, IS-101, and others)
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * ISDN4Linux TTY Driver
+ * \brief ISDN4Linux TTY Driver
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Generic Linux Telephony Interface driver
+ * \brief Generic Linux Telephony Interface driver
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- *
+ * \brief Channel driver for OSS sound cards
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Generic Linux Telephony Interface driver
+ * \brief Generic Linux Telephony Interface driver
*
*/
* at the top of the source tree.
*/
-/*
- *
- * Implementation of Session Initiation Protocol
+/*!
+ * \file
+ * \brief Implementation of Session Initiation Protocol
*
+ * Implementation of RFC 3261 - without S/MIME, TCP and TLS support
+ * Configuration file \link page20sip sip.conf \endlink
+ *
+ * \todo SIP over TCP
+ * \todo SIP over TLS
+ * \todo Better support of forking
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Implementation of the Skinny protocol
+ * \brief Implementation of the Skinny protocol
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * VoiceTronix Interface driver
+ * \brief VoiceTronix Interface driver
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Zaptel Pseudo TDM interface
+ * \brief Zaptel Pseudo TDM interface
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Channel Variables
+ * \brief Channel Variables
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Standard Command Line Interface
+ * \brief Standard Command Line Interface
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
+ *
+ * \brief Configuration File Parser
*
- * Configuration File Parser
- *
+ * Includes the Asterisk Realtime API - ARA
+ * See README.realtime
*/
#include <stdio.h>
--- /dev/null
+<HTML>
+ <HEAD>
+ <TITLE>Asterisk.org: Developer Documentation ($date)</TITLE>
+ <LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
+ </HEAD>
+ <BODY BGCOLOR="#FFFFFF">
+<div><font size="2" align="right">$datetime</font></div>
+
+<h2>Asterisk developer's documentation</h2>
+<hr/>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Channel Management
+ * \brief ASTdb Management
*
*
* DB3 is licensed under Sleepycat Public License and is thus incompatible
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Device state management
+ * \brief Device state management
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * DNS Support for Asterisk
+ * \brief DNS Support for Asterisk
*
+ * \author Thorsten Lockert <tholo@trollphone.org>
*/
#include <sys/types.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Background DNS update manager
+ * \brief Background DNS update manager
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Convenience Signal Processing routines
+ * \brief Convenience Signal Processing routines
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * ENUM Support for Asterisk
+ * \brief ENUM Support for Asterisk
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Generic File Format Support.
+ * \brief Generic File Format Support.
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Frame manipulation routines
+ * \brief Frame manipulation routines
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * FSK Modulator/Demodulator
+ * \brief FSK Modulator/Demodulator
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Caller ID related dialplan functions
+ * \brief Caller ID related dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Call Detail Record related dialplan functions
+ * \brief Call Detail Record related dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Functions for interaction with the Asterisk database
+ * \brief Functions for interaction with the Asterisk database
*
*/
* at the top of the source tree.
*/
-/*
- *
- * Enum Functions
+/*! \file
*
+ * \brief ENUM Functions
+ * \arg See also AstENUM
*/
#include <stdlib.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Environment related dialplan functions
+ * \brief Environment related dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Channel group related dialplan functions
+ * \brief Channel group related dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Language related dialplan functions
+ * \brief Language related dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Conditional logic dialplan functions
+ * \brief Conditional logic dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Maths relatad dialplan functions
+ * \brief Maths relatad dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * MD5 digest related dialplan functions
+ * \brief MD5 digest related dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Functions for reading or setting the MusicOnHold class
+ * \brief Functions for reading or setting the MusicOnHold class
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * String manipulation dialplan functions
+ * \brief String manipulation dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Channel timeout related dialplan functions
+ * \brief Channel timeout related dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * URI encoding / decoding
+ * \brief URI encoding / decoding
*
- * For now this code only supports 8 bit characters, not unicode,
- * which we ultimately will need to support.
+ * \note For now this code only supports 8 bit characters, not unicode,
+ which we ultimately will need to support.
*
*/
#include "asterisk/app.h"
#include "asterisk/module.h"
-/*--- builtin_function_uriencode: Encode URL according to RFC 2396 */
+/*! \brief builtin_function_uriencode: Encode URL according to RFC 2396 */
static char *builtin_function_uriencode(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
{
char uri[BUFSIZ];
return buf;
}
-/*--- builtin_function_uridecode: Decode URI according to RFC 2396 */
+/*!\brief builtin_function_uridecode: Decode URI according to RFC 2396 */
static char *builtin_function_uridecode(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
{
if (!data || ast_strlen_zero(data)) {
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Builtin dialplan functions
+ * \brief Builtin dialplan functions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Channel Management
+ * \brief Image Management
*
*/
* at the top of the source tree.
*/
-/*
- * Access Control of various sorts
+/*! \file
+ * \brief Access Control of various sorts
*/
#ifndef _ASTERISK_ACL_H
* at the top of the source tree.
*/
-/*
- * ADSI Support (built upon Caller*ID)
+/*! \file
+ * \brief ADSI Support (built upon Caller*ID)
*/
#ifndef _ASTERISK_ADSI_H
and/or fitness for purpose.
---------------------------------------------------------------------------
Issue Date: 26/08/2003
+*/
+/*!\file
- This file contains the definitions required to use AES in C. See aesopt.h
+ \brief This file contains the definitions required to use AES in C. See aesopt.h
for optimisation details.
*/
* at the top of the source tree.
*/
-/*
- * AGI Extension interfaces
+/*! \file
+ * \brief AGI Extension interfaces - Asterisk Gateway Interface
*/
#ifndef _ASTERISK_AGI_H
* at the top of the source tree.
*/
-/*
- * A-Law to Signed linear conversion
+/*! \file
+ * \brief A-Law to Signed linear conversion
*/
#ifndef _ASTERISK_ALAW_H
* at the top of the source tree.
*/
-/*
- * Application convenience functions, designed to give consistent
- * look and feel to Asterisk apps.
+/*! \file
+ * \brief Application convenience functions, designed to give consistent
+ look and feel to Asterisk apps.
*/
#ifndef _ASTERISK_APP_H
* at the top of the source tree.
*/
-/*
- * Persistant data storage (akin to *doze registry)
+/*! \file
+ * \brief Persistant data storage (akin to *doze registry)
*/
#ifndef _ASTERISK_ASTDB_H
* at the top of the source tree.
*/
-/*
- * Asterisk memory usage debugging
+/*! \file
+ * \brief Asterisk memory usage debugging
*/
#ifndef NO_AST_MM
* at the top of the source tree.
*/
-/*
- * OSP support
+/*! \file
+ * \brief OSP support (Open Settlement Protocol)
*/
#ifndef _ASTERISK_OSP_H
* at the top of the source tree.
*/
-/*
- * CallerID (and other GR30) Generation support
+/*! \file
+ * \brief CallerID (and other GR30) Generation support
* Includes code and algorithms from the Zapata library.
*/
* at the top of the source tree.
*/
-/*
- * Internal Asterisk hangup causes
+/*! \file
+ * \brief Internal Asterisk hangup causes
*/
#ifndef _ASTERISK_CAUSES_H
* at the top of the source tree.
*/
-/*
- * Call Detail Record API
+/*! \file
+ * \brief Call Detail Record API
*/
#ifndef _ASTERISK_CDR_H
typedef int (*ast_cdrbe)(struct ast_cdr *cdr);
-/*! Allocate a record */
-/*!
+/*! \brief Allocate a CDR record
* Returns a malloc'd ast_cdr structure, returns NULL on error (malloc failure)
*/
extern struct ast_cdr *ast_cdr_alloc(void);
-/*! Duplicate a record */
-/*!
+/*! \brief Duplicate a record
* Returns a malloc'd ast_cdr structure, returns NULL on error (malloc failure)
*/
extern struct ast_cdr *ast_cdr_dup(struct ast_cdr *cdr);
-/*! Free a record */
-/* \param cdr ast_cdr structure to free
+/*! \brief Free a CDR record
+ * \param cdr ast_cdr structure to free
* Returns nothing important
*/
extern void ast_cdr_free(struct ast_cdr *cdr);
-/*! Initialize based on a channel */
-/*!
+/*! \brief Initialize based on a channel
* \param cdr Call Detail Record to use for channel
* \param chan Channel to bind CDR with
* Initializes a CDR and associates it with a particular channel
* at the top of the source tree.
*/
-/*
- * General Asterisk channel definitions.
+/*! \file
+ * \brief General Asterisk PBX channel definitions.
*/
#ifndef _ASTERISK_CHANNEL_H
* at the top of the source tree.
*/
-/*
- * Channel Variables
+/*! \file
+ * \brief Channel Variables
*/
#ifndef _ASTERISK_CHANVARS_H
* at the top of the source tree.
*/
-/*
- * Standard Command Line Interface
+/*! \file
+ * \brief Standard Command Line Interface
*/
#ifndef _ASTERISK_CLI_H
#define AST_CLI_COMPLETE_EOF "_EOF_"
-/*! A command line entry */
+/*! \brief A command line entry */
struct ast_cli_entry {
/*! Null terminated list of the words of the command */
char *cmda[AST_MAX_CMD_LEN];
int inuse;
};
-/*! Interprets a command */
-/*! Interpret a command s, sending output to fd
+/*! \brief Interprets a command
+ * Interpret a command s, sending output to fd
* Returns 0 on succes, -1 on failure
*/
extern int ast_cli_command(int fd, char *s);
-/*! Registers a command or an array of commands */
-/*!
+/*! \brief Registers a command or an array of commands
* \param e which cli entry to register
* Register your own command
* Returns 0 on success, -1 on failure
extern int ast_cli_register(struct ast_cli_entry *e);
/*!
+ * \brief Register multiple commands
* \param e pointer to first cli entry to register
* \param len number of entries to register
- * Register multiple commands
*/
extern void ast_cli_register_multiple(struct ast_cli_entry *e, int len);
-/*! Unregisters a command or an array of commands */
-/*!
+/*! \brief Unregisters a command or an array of commands
+ *
* \param e which cli entry to unregister
* Unregister your own command. You must pass a completed ast_cli_entry structure
* Returns 0.
extern int ast_cli_unregister(struct ast_cli_entry *e);
/*!
+ * \brief Unregister multiple commands
* \param e pointer to first cli entry to unregister
* \param len number of entries to unregister
- * Unregister multiple commands
*/
extern void ast_cli_unregister_multiple(struct ast_cli_entry *e, int len);
-/*! Readline madness */
-/* Useful for readline, that's about it
+/*! \brief Readline madness
+ * Useful for readline, that's about it
* Returns 0 on success, -1 on failure
*/
extern char *ast_cli_generator(char *, char *, int);
/*
* Asterisk -- A telephony toolkit for Linux.
- *
- * General Definitions for Asterisk top level program
*
* Copyright (C) 1999-2005, Mark Spencer
*
* the GNU General Public License
*/
+/*! \file
+ * \brief General Definitions for Asterisk top level program
+ */
+
#ifndef _COMPAT_H
#define _COMPAT_H
* at the top of the source tree.
*/
-/*
- * Compiler-specific macros and other items
+/*! \file
+ * \brief Compiler-specific macros and other items
*/
#ifndef _ASTERISK_COMPILER_H
* at the top of the source tree.
*/
-/*
- * Configuration File Parser
+/*! \file
+ * \brief Configuration File Parser
*/
#ifndef _ASTERISK_CONFIG_H
char *name;
char *value;
int lineno;
- int object; /* 0 for variable, 1 for object */
- int blanklines; /* Number of blanklines following entry */
+ int object; /*!< 0 for variable, 1 for object */
+ int blanklines; /*!< Number of blanklines following entry */
struct ast_comment *precomments;
struct ast_comment *sameline;
struct ast_variable *next;
struct ast_config_engine *next;
};
-/*! Load a config file */
-/*!
+/*! \brief Load a config file
* \param configfile path of file to open. If no preceding '/' character, path is considered relative to AST_CONFIG_DIR
* Create a config structure from a given configuration file.
*
*/
struct ast_config *ast_config_load(const char *filename);
-/*! Destroys a config */
-/*!
+/*! \brief Destroys a config
* \param config pointer to config data structure
* Free memory associated with a given config
*
*/
void ast_config_destroy(struct ast_config *config);
-/*! Goes through categories */
-/*!
+/*! \brief Goes through categories
* \param config Which config structure you wish to "browse"
* \param prev A pointer to a previous category.
* This funtion is kind of non-intuitive in it's use. To begin, one passes NULL as the second arguement. It will return a pointer to the string of the first category in the file. From here on after, one must then pass the previous usage's return value as the second pointer, and it will return a pointer to the category name afterwards.
*/
char *ast_category_browse(struct ast_config *config, const char *prev);
-/*! Goes through variables */
-/*!
+/*! \brief Goes through variables
* Somewhat similar in intent as the ast_category_browse.
* List variables of config file category
*
*/
struct ast_variable *ast_variable_browse(const struct ast_config *config, const char *category);
-/*! Gets a variable */
-/*!
+/*! \brief Gets a variable
* \param config which (opened) config to use
* \param category category under which the variable lies
* \param value which variable you wish to get the data for
*/
char *ast_variable_retrieve(const struct ast_config *config, const char *category, const char *variable);
-/*! Retrieve a category if it exists */
-/*!
+/*! \brief Retrieve a category if it exists
* \param config which config to use
* \param category_name name of the category you're looking for
* This will search through the categories within a given config file for a match.
*/
struct ast_category *ast_category_get(const struct ast_config *config, const char *category_name);
-/*! Check for category duplicates */
-/*!
+/*! \brief Check for category duplicates
* \param config which config to use
* \param category_name name of the category you're looking for
* This will search through the categories within a given config file for a match.
*/
int ast_category_exist(const struct ast_config *config, const char *category_name);
-/*! Retrieve realtime configuration */
-/*!
+/*! \brief Retrieve realtime configuration
* \param family which family/config to lookup
* \param keyfield which field to use as the key
* \param lookup which value to look for in the key field to match the entry.
*/
struct ast_variable *ast_load_realtime(const char *family, ...);
-/*! Retrieve realtime configuration */
-/*!
+/*! \brief Retrieve realtime configuration
* \param family which family/config to lookup
* \param keyfield which field to use as the key
* \param lookup which value to look for in the key field to match the entry.
*/
struct ast_config *ast_load_realtime_multientry(const char *family, ...);
-/*! Update realtime configuration */
-/*!
+/*! \brief Update realtime configuration
* \param family which family/config to be updated
* \param keyfield which field to use as the key
* \param lookup which value to look for in the key field to match the entry.
*/
int ast_update_realtime(const char *family, const char *keyfield, const char *lookup, ...);
-/*! Check if realtime engine is configured for family
- returns 1 if family is configured in realtime and engine exists
- \param family which family/config to be checked
+/*! \brief Check if realtime engine is configured for family
+ * returns 1 if family is configured in realtime and engine exists
+ * \param family which family/config to be checked
*/
int ast_check_realtime(const char *family);
-/*! Free variable list */
-/*!
+/*! \brief Free variable list
* \param var the linked list of variables to free
* This function frees a list of variables.
*/
void ast_variables_destroy(struct ast_variable *var);
+/*! \brief Register config engine */
int ast_config_engine_register(struct ast_config_engine *newconfig);
+
+/*! \brief Deegister config engine */
int ast_config_engine_deregister(struct ast_config_engine *del);
+
int register_config_cli(void);
void read_config_maps(void);
* at the top of the source tree.
*/
-/*
- * Provide cryptographic signature routines
+/*! \file
+ * \brief Provide cryptographic signature routines
*/
#ifndef _ASTERISK_CRYPTO_H
struct ast_key;
-/*! Retrieve a key */
-/*!
+/*! \brief Retrieve a key
* \param name of the key we are retrieving
* \param int type of key (AST_KEY_PUBLIC or AST_KEY_PRIVATE)
*
*/
extern struct ast_key *(*ast_key_get)(const char *key, int type);
-/*! Check the authenticity of a message signature using a given public key */
-/*!
+/*! \brief Check the authenticity of a message signature using a given public key
* \param key a public key to use to verify
* \param msg the message that has been signed
* \param sig the proposed valid signature in mime64-like encoding
*/
extern int (*ast_check_signature)(struct ast_key *key, const char *msg, const char *sig);
-/*! Check the authenticity of a message signature using a given public key */
-/*!
+/*! \brief Check the authenticity of a message signature using a given public key
* \param key a public key to use to verify
* \param msg the message that has been signed
* \param sig the proposed valid signature in raw binary representation
*
*/
extern int (*ast_sign)(struct ast_key *key, char *msg, char *sig);
+
/*!
* \param key a private key to use to create the signature
* \param msg the message to sign
* at the top of the source tree.
*/
-/*
- * Device state management
+/*! \file
+ * \brief Device state management
*/
#ifndef _ASTERISK_DEVICESTATE_H
typedef int (*ast_devstate_cb_type)(const char *dev, int state, void *data);
-/*! Convert device state to text string for output */
-/*! \param devstate Current device state */
+/*! \brief Convert device state to text string for output
+ * \param devstate Current device state
+ */
const char *devstate2str(int devstate);
-/*! Search the Channels by Name */
-/*!
+/*! \brief Search the Channels by Name
* \param device like a dialstring
* Search the Device in active channels by compare the channelname against
* the devicename. Compared are only the first chars to the first '-' char.
*/
int ast_parse_device_state(const char *device);
-/*! Asks a channel for device state */
-/*!
+/*! \brief Asks a channel for device state
* \param device like a dialstring
* Asks a channel for device state, data is normaly a number from dialstring
* used by the low level module
*/
int ast_device_state(const char *device);
-/*! Tells Asterisk the State for Device is changed */
-/*!
+/*! \brief Tells Asterisk the State for Device is changed
* \param fmt devicename like a dialstring with format parameters
* Asterisk polls the new extensionstates and calls the registered
* callbacks for the changed extensions
__attribute__ ((format (printf, 1, 2)));
-/*! Tells Asterisk the State for Device is changed */
-/*!
+/*! \brief Tells Asterisk the State for Device is changed
* \param device devicename like a dialstrin
* Asterisk polls the new extensionstates and calls the registered
* callbacks for the changed extensions
*/
int ast_device_state_changed_literal(const char *device);
-/*! Registers a device state change callback */
-/*!
+/*! \brief Registers a device state change callback
* \param data to pass to callback
* The callback is called if the state for extension is changed
* Return -1 on failure, ID on success
* at the top of the source tree.
*/
-/*
- * DNS support
+/*! \file
+ * \brief DNS support for Asterisk
+ * \author Thorsten Lockert <tholo@trollphone.org>
*/
#ifndef _ASTERISK_DNS_H
* at the top of the source tree.
*/
-/*
- * Background DNS update manager
+/*! \file
+ * \brief Background DNS update manager
*/
#ifndef _ASTERISK_DNSMGR_H
--- /dev/null
+/*
+ * Asterisk -- An open source telephony toolkit.
+ *
+ * Copyright (C) 1999 - 2005, Digium, Inc.
+ *
+ * Mark Spencer <markster@digium.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 Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+/* \file This file generates Doxygen pages from files in the /doc
+ directory of the Asterisk source code tree
+ */
+
+/* The following is for Doxygen Developer's documentation generated
+ * by running "make progdocs" with doxygen installed on your
+ * system.
+ */
+/*! \page DevDoc Asterisk Developer's Documentation - appendices
+ * \arg \ref CodeGuide
+ * \arg \ref AstAPI
+ * \arg \ref AstDebug
+ * \arg \ref AstAMI
+ * \arg \ref AstARA
+ * \arg \ref AstDUNDi
+ * \arg \ref AstCDR
+ * \arg \ref AstREADME
+ * \arg \ref AstCREDITS
+ * \arg \ref AstVar
+ * \arg \ref AstENUM
+ * \arg \ref ConfigFiles
+ */
+
+/*! \page CodeGuide Coding Guidelines
+ * \section Coding Guidelines
+ * This file is in the /doc directory in your Asterisk source tree.
+ * Make sure to stay up to date with the latest guidelines.
+ * \verbinclude CODING-GUIDELINES
+ */
+/*! \page AstAPI Asterisk API
+ * \section Asteriskapi Asterisk API
+ * This programmer's documentation covers the generic API.
+ * \subsection generic Generic Model
+ * \verbinclude model.txt
+ * \subsection channel Channels
+ * \verbinclude channel.txt
+ */
+/*! \page AstDebug Debugging
+ * \section debug Debugging
+ * \verbinclude README.backtrace
+ */
+/*! \page AstAMI AMI - The Manager Interface
+ * \section ami AMI - The manager Interface
+ * \arg \link Config_ami Configuration file \endlink
+ * \verbinclude manager.txt
+ */
+/*! \page AstARA ARA - The Asterisk Realtime Interface
+ * \section realtime ARA - a generic API to storage and retrieval
+ * Implemented in \ref config.c
+ * Implemented in \ref pbx_realtime.c
+ * \verbinclude README.realtime
+ * \verbinclude README.extconfig
+ */
+/*! \page AstDUNDi DUNDi
+DUNDi is a peer-to-peer system for locating Internet gateways to telephony services. Unlike traditional centralized services (such as the remarkably simple and concise ENUM standard), DUNDi is fully-distributed with no centralized authority whatsoever.
+
+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.
+
+ \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
+ */
+
+/*! \page AstCDR CDR - Call Data Records and billing
+ * \section cdr Call Data Records
+ * \verbinclude README.cdr
+ * \arg \ref Config_cdr CDR configuration files
+ */
+/*! \page AstREADME README - the general administrator introduction
+ * \verbinclude README
+ */
+
+/*! \page AstCREDITS CREDITS
+ * \verbinclude CREDITS
+ */
+
+/*! \page AstVar Global channel variables
+ * \section globchan Global Channel Variables
+ * \verbinclude README.variables
+ */
+
+/*! \page AstENUM ENUM
+ * \section enumreadme ENUM
+ * \arg Configuration: \ref Config_enum
+ * \verbinclude README.enum
+ */
+
+/*! \page ConfigFiles Configuration files
+ * \section config Main configuration files
+ * \arg \link Config_ast asterisk.conf - the main configuration file \endlink
+ * \arg \link Config_ext extensions.conf - The Dial Plan \endlink
+ * \arg \link Config_mod modules.conf - which modules to load and not to load \endlink
+ * \arg \link Config_fea features.conf - call features (transfer, parking, etc) \endlink
+ * \section chanconf Channel configurations
+ * \arg \link Config_iax IAX2 configuration \endlink
+ * \arg \link Config_sip SIP configuration \endlink
+ * \arg \link Config_mgcp MGCP configuration \endlink
+ * \arg \link Config_rtp RTP configuration \endlink
+ * \arg \link Config_zap Zaptel configuration \endlink
+ * \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
+ * \section appconf Application configuration files
+ * \arg \link Config_mm Meetme (conference bridge) configuration \endlink
+ * \arg \link Config_qu Queue system configuration \endlink
+ * \arg \link Config_vm Voicemail configuration \endlink
+ * \section miscconf Miscellenaous configuration files
+ * \arg \link Config_adsi Adsi configuration \endlink
+ * \arg \link Config_ami AMI - Manager configuration \endlink
+ * \arg \link Config_ara Realtime configuration \endlink
+ * \arg \link Config_codec Codec configuration \endlink
+ * \arg \link Config_dun Dundi configuration \endlink
+ * \arg \link Config_enum ENUM configuration \endlink
+ * \arg \link Config_moh Music on Hold configuration \endlink
+ * \arg \link Config_vm Voicemail configuration \endlink
+ */
+
+/*! \page Config_ast Asterisk.conf
+ * \verbinclude README.asterisk.conf
+ */
+/*! \page Config_mod Modules configuration
+ * \verbinclude modules.conf.sample
+ */
+
+/*! \page Config_fea Call features configuration
+ * \section featconf features.conf
+ * \verbinclude features.conf.sample
+ */
+
+/*! \page Config_ext Extensions.conf - the Dial Plan
+ * \section dialplan Extensions.conf
+ * \verbinclude extensions.conf.sample
+ */
+
+/*! \page Config_iax IAX2 configuration
+ * IAX2 is implemented in \ref chan_iax2.c .
+ * \arg \link iaxreadme README file \endlink
+ * \arg \link iaxconfig iax.conf Configuration file example \endlink
+ * \section iaxreadme IAX readme file
+ * \verbinclude README.iax
+ * \section iaxconfig IAX Configuration example
+ * \verbinclude iax.conf.sample
+ * \section iaxjitter IAX Jitterbuffer information
+ * \verbinclude README.jitterbuffer
+ */
+
+/*! \page Config_sip SIP configuration
+ * Also see \ref Config_rtp RTP configuration
+ * \ref chan_sip.c
+ * \section sipconf sip.conf
+ * \verbinclude sip.conf.sample
+ */
+
+/*! \page Config_mgcp MGCP configuration
+ * Also see \ref Config_rtp RTP configuration
+ * \ref chan_mgcp.c
+ * \section mgcpconf mgcp.conf
+ * \verbinclude mgcp.conf.sample
+ */
+
+
+/*! \page Config_vm VoiceMail configuration
+ * \section vmconf voicemail.conf
+ * \ref app_voicemail.c
+ * \verbinclude voicemail.conf.sample
+ */
+
+/*! \page Config_zap Zaptel configuration
+ * \section zapconf zapata.conf
+ * \ref chan_zap.c
+ * \verbinclude zapata.conf.sample
+ */
+
+/*! \page Config_oss OSS configuration
+ * \section ossconf oss.conf
+ * \ref chan_oss.c
+ * \verbinclude oss.conf.sample
+ */
+
+/*! \page Config_alsa ALSA configuration
+ * \section alsaconf alsa.conf
+ * \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
+ * \verbinclude agents.conf.sample
+ */
+
+/*! \page Config_rtp RTP configuration
+ * \ref rtp.c
+ * \section rtpconf rtp.conf
+ * \verbinclude rtp.conf.sample
+ */
+/*! \page Config_dun Dundi Configuration
+ * \arg See also \ref AstDundi
+ * \section dundiconf dundi.conf
+ * \verbinclude dundi.conf.sample
+ */
+/*! \page Config_enum ENUM Configuration
+ * \arg See also \ref enumreadme
+ * \section enumconf enum.conf
+ * \verbinclude enum.conf.sample
+ */
+/*! \page Config_cdr CDR configuration
+ * \arg \link cdrconf Main CDR Configuration \endlink
+ * \arg \link cdrcustom Custom CDR driver configuration \endlink
+ * \arg \link cdrami Manager CDR driver configuration \endlink
+ * \arg \link cdrodbc ODBC CDR driver configuration \endlink
+ * \arg \link cdrpgsql Postgres CDR driver configuration \endlink
+ * \arg \link cdrtds FreeTDS CDR driver configuration (Microsoft SQL Server) \endlink
+ * \section cdrconf Main CDR configuration
+ * \verbinclude cdr.conf.sample
+ * \section cdrcustom Custom CDR driver configuration
+ * \verbinclude cdr_custom.conf.sample
+ * \section cdrami Manager CDR driver configuration
+ * \verbinclude cdr_manager.conf.sample
+ * \section cdrodbc ODBC CDR driver configuration
+ * Based on http://www.unixodbc.org
+ * \verbinclude cdr_odbc.conf.sample
+ * \section cdrpgsql Postgres CDR driver configuration
+ * \verbinclude cdr_pgsql.conf.sample
+ * \verbinclude cdr_tds.conf.sample
+ * \section cdrtds FreeTDS CDR driver configuration
+ * \verbinclude cdr_tds.conf.sample
+ */
+
+/*! \page Config_moh Music on Hold Configuration
+ * \arg Implemented in \ref res_musiconhold.c
+ * \section mohconf musiconhold.conf
+ * \verbinclude musiconhold.conf.sample
+ */
+
+/*! \page Config_adsi ADSI Configuration
+ * \section adsiconf adsi.conf
+ * \verbinclude adsi.conf.sample
+ */
+
+/*! \page Config_codec CODEC Configuration
+ * \section codecsconf codecs.conf
+ * \verbinclude codecs.conf.sample
+ */
+
+/*! \page Config_ara REALTIME Configuration
+ * \arg See also: \AstARA
+ * \section extconf extconfig.conf
+ * \verbinclude extconfig.conf.sample
+ */
+
+/*! \page Config_ami AMI configuration
+ * \arg See also: \AstAMI
+ * \section amiconf manager.conf
+ * \verbinclude manager.conf.sample
+ */
+
+/*! \page Config_qu ACD - Queue system configuration
+ * \section quconf queues.conf
+ * \verbinclude queues.conf.sample
+ */
+
+/*! \page Config_mm Meetme - The conference bridge configuration
+ * \section mmconf meetme.conf
+ * \verbinclude meetme.conf.sample
+ */
+
* at the top of the source tree.
*/
-/*
- * Convenient Signal Processing routines
+/*! \file
+ * \brief Convenient Signal Processing routines
*/
#ifndef _ASTERISK_DSP_H
struct ast_dsp *ast_dsp_new(void);
void ast_dsp_free(struct ast_dsp *dsp);
-/* Set threshold value for silence */
+
+/*! \brief Set threshold value for silence */
void ast_dsp_set_threshold(struct ast_dsp *dsp, int threshold);
-/* Set number of required cadences for busy */
+/*! \brief Set number of required cadences for busy */
void ast_dsp_set_busy_count(struct ast_dsp *dsp, int cadences);
-/* Set expected lengths of the busy tone */
+/*! \brief Set expected lengths of the busy tone */
void ast_dsp_set_busy_pattern(struct ast_dsp *dsp, int tonelength, int quietlength);
-/* Scans for progress indication in audio */
+/*! \brief Scans for progress indication in audio */
int ast_dsp_call_progress(struct ast_dsp *dsp, struct ast_frame *inf);
-/* Set zone for doing progress detection */
+/*! \brief Set zone for doing progress detection */
int ast_dsp_set_call_progress_zone(struct ast_dsp *dsp, char *zone);
-/* Return AST_FRAME_NULL frames when there is silence, AST_FRAME_BUSY on
+/*! \brief Return AST_FRAME_NULL frames when there is silence, AST_FRAME_BUSY on
busies, and call progress, all dependent upon which features are enabled */
struct ast_frame *ast_dsp_process(struct ast_channel *chan, struct ast_dsp *dsp, struct ast_frame *inf);
-/* Return non-zero if this is silence. Updates "totalsilence" with the total
+/*! \brief Return non-zero if this is silence. Updates "totalsilence" with the total
number of seconds of silence */
int ast_dsp_silence(struct ast_dsp *dsp, struct ast_frame *f, int *totalsilence);
-/* Return non-zero if historically this should be a busy, request that
+/*! \brief Return non-zero if historically this should be a busy, request that
ast_dsp_silence has already been called */
int ast_dsp_busydetect(struct ast_dsp *dsp);
-/* Return non-zero if DTMF hit was found */
+/*! \brief Return non-zero if DTMF hit was found */
int ast_dsp_digitdetect(struct ast_dsp *dsp, struct ast_frame *f);
-/* Reset total silence count */
+/*! \brief Reset total silence count */
void ast_dsp_reset(struct ast_dsp *dsp);
-/* Reset DTMF detector */
+/*! \brief Reset DTMF detector */
void ast_dsp_digitreset(struct ast_dsp *dsp);
-/* Select feature set */
+/*! \brief Select feature set */
void ast_dsp_set_features(struct ast_dsp *dsp, int features);
-/* Get pending DTMF/MF digits */
+/*! \brief Get pending DTMF/MF digits */
int ast_dsp_getdigits(struct ast_dsp *dsp, char *buf, int max);
-/* Set digit mode */
+/*! \brief Set digit mode */
int ast_dsp_digitmode(struct ast_dsp *dsp, int digitmode);
-/* Get tstate (Tone State) */
+/*! \brief Get tstate (Tone State) */
int ast_dsp_get_tstate(struct ast_dsp *dsp);
-/* Get tcount (Threshold counter) */
+/*! \brief Get tcount (Threshold counter) */
int ast_dsp_get_tcount(struct ast_dsp *dsp);
#endif /* _ASTERISK_DSP_H */
* at the top of the source tree.
*/
-/*
- * Distributed Universal Number Discovery (DUNDi)
+/*! \file
+ * \brief Distributed Universal Number Discovery (DUNDi)
+ * See also \ref AstDUNDi
*/
#ifndef _ASTERISK_DUNDI_H
#define DUNDI_PORT 4520
-/* A DUNDi Entity ID is essentially a MAC address, brief and unique */
+/*!\brief A DUNDi Entity ID is essentially a MAC address, brief and unique */
struct _dundi_eid {
unsigned char eid[6];
} __attribute__ ((__packed__));
typedef struct _dundi_eid dundi_eid;
struct dundi_hdr {
- unsigned short strans; /* Source transaction */
- unsigned short dtrans; /* Destination transaction */
- unsigned char iseqno; /* Next expected incoming sequence number */
- unsigned char oseqno; /* Outgoing sequence number */
- unsigned char cmdresp; /* Command / Response */
- unsigned char cmdflags; /* Command / Response specific flags*/
+ unsigned short strans; /*!< Source transaction */
+ unsigned short dtrans; /*!< Destination transaction */
+ unsigned char iseqno; /*!< Next expected incoming sequence number */
+ unsigned char oseqno; /*!< Outgoing sequence number */
+ unsigned char cmdresp; /*!< Command / Response */
+ unsigned char cmdflags; /*!< Command / Response specific flags*/
unsigned char ies[0];
} __attribute__ ((__packed__));
unsigned char iedata[0];
} __attribute__ ((__packed__));
-#define DUNDI_FLAG_RETRANS (1 << 16) /* Applies to dtrans */
-#define DUNDI_FLAG_RESERVED (1 << 16) /* Applies to strans */
-
-#define DUNDI_PROTO_NONE 0 /* No answer yet */
-#define DUNDI_PROTO_IAX 1 /* IAX version 2 */
-#define DUNDI_PROTO_SIP 2 /* Session Initiation Protocol */
-#define DUNDI_PROTO_H323 3 /* ITU H.323 */
-
-#define DUNDI_FLAG_NONEXISTENT (0) /* Isn't and can't be a valid number */
-#define DUNDI_FLAG_EXISTS (1 << 0) /* Is a valid number */
-#define DUNDI_FLAG_MATCHMORE (1 << 1) /* Might be valid if you add more digits */
-#define DUNDI_FLAG_CANMATCH (1 << 2) /* Might be a match */
-#define DUNDI_FLAG_IGNOREPAT (1 << 3) /* Keep dialtone */
-#define DUNDI_FLAG_RESIDENTIAL (1 << 4) /* Destination known to be residential */
-#define DUNDI_FLAG_COMMERCIAL (1 << 5) /* Destination known to be commercial */
-#define DUNDI_FLAG_MOBILE (1 << 6) /* Destination known to be cellular/mobile */
-#define DUNDI_FLAG_NOUNSOLICITED (1 << 7) /* No unsolicited calls of any kind through this route */
-#define DUNDI_FLAG_NOCOMUNSOLICIT (1 << 8) /* No commercial unsolicited calls through this route */
-
-#define DUNDI_HINT_NONE (0)
-#define DUNDI_HINT_TTL_EXPIRED (1 << 0) /* TTL Expired */
-#define DUNDI_HINT_DONT_ASK (1 << 1) /* Don't ask for anything beginning with data */
-#define DUNDI_HINT_UNAFFECTED (1 << 2) /* Answer not affected by entity list */
-
-struct dundi_encblock { /* AES-128 encrypted block */
- unsigned char iv[16]; /* Initialization vector of random data */
- unsigned char encdata[0]; /* Encrypted / compressed data */
+#define DUNDI_FLAG_RETRANS (1 << 16) /*!< Applies to dtrans */
+#define DUNDI_FLAG_RESERVED (1 << 16) /*!< Applies to strans */
+
+#define DUNDI_PROTO_NONE 0 /*!< No answer yet */
+#define DUNDI_PROTO_IAX 1 /*!< IAX version 2 */
+#define DUNDI_PROTO_SIP 2 /*!< Session Initiation Protocol */
+#define DUNDI_PROTO_H323 3 /*!< ITU H.323 */
+
+#define DUNDI_FLAG_NONEXISTENT (0) /*!< Isn't and can't be a valid number */
+#define DUNDI_FLAG_EXISTS (1 << 0) /*!< Is a valid number */
+#define DUNDI_FLAG_MATCHMORE (1 << 1) /*!< Might be valid if you add more digits */
+#define DUNDI_FLAG_CANMATCH (1 << 2) /*!< Might be a match */
+#define DUNDI_FLAG_IGNOREPAT (1 << 3) /*!< Keep dialtone */
+#define DUNDI_FLAG_RESIDENTIAL (1 << 4) /*!< Destination known to be residential */
+#define DUNDI_FLAG_COMMERCIAL (1 << 5) /*!< Destination known to be commercial */
+#define DUNDI_FLAG_MOBILE (1 << 6) /*!< Destination known to be cellular/mobile */
+#define DUNDI_FLAG_NOUNSOLICITED (1 << 7) /*!< No unsolicited calls of any kind through this route */
+#define DUNDI_FLAG_NOCOMUNSOLICIT (1 << 8) /*!< No commercial unsolicited calls through this route */
+
+#define DUNDI_HINT_NONE (0)
+#define DUNDI_HINT_TTL_EXPIRED (1 << 0) /*!< TTL Expired */
+#define DUNDI_HINT_DONT_ASK (1 << 1) /*!< Don't ask for anything beginning with data */
+#define DUNDI_HINT_UNAFFECTED (1 << 2) /*!< Answer not affected by entity list */
+
+struct dundi_encblock { /*!< AES-128 encrypted block */
+ unsigned char iv[16]; /*!< Initialization vector of random data */
+ unsigned char encdata[0]; /*!< Encrypted / compressed data */
} __attribute__ ((__packed__));
struct dundi_answer {
- dundi_eid eid; /* Original source of answer */
- unsigned char protocol; /* Protocol (DUNDI_PROTO_*) */
- unsigned short flags; /* Flags relating to answer */
- unsigned short weight; /* Weight of answers */
- unsigned char data[0]; /* Protocol specific URI */
+ dundi_eid eid; /*!< Original source of answer */
+ unsigned char protocol; /*!< Protocol (DUNDI_PROTO_*) */
+ unsigned short flags; /*!< Flags relating to answer */
+ unsigned short weight; /*!< Weight of answers */
+ unsigned char data[0]; /*!< Protocol specific URI */
} __attribute__ ((__packed__));
struct dundi_hint {
- unsigned short flags; /* Flags relating to answer */
- unsigned char data[0]; /* For data for hint */
+ unsigned short flags; /*!< Flags relating to answer */
+ unsigned char data[0]; /*!< For data for hint */
} __attribute__ ((__packed__));
-#define DUNDI_CAUSE_SUCCESS 0 /* Success */
-#define DUNDI_CAUSE_GENERAL 1 /* General unspecified failure */
-#define DUNDI_CAUSE_DYNAMIC 2 /* Requested entity is dynamic */
-#define DUNDI_CAUSE_NOAUTH 3 /* No or improper authorization */
-#define DUNDI_CAUSE_DUPLICATE 4 /* Duplicate request */
-#define DUNDI_CAUSE_TTL_EXPIRED 5 /* Expired TTL */
-#define DUNDI_CAUSE_NEEDKEY 6 /* Need new session key to decode */
-#define DUNDI_CAUSE_BADENCRYPT 7 /* Badly encrypted data */
+#define DUNDI_CAUSE_SUCCESS 0 /*!< Success */
+#define DUNDI_CAUSE_GENERAL 1 /*!< General unspecified failure */
+#define DUNDI_CAUSE_DYNAMIC 2 /*!< Requested entity is dynamic */
+#define DUNDI_CAUSE_NOAUTH 3 /*!< No or improper authorization */
+#define DUNDI_CAUSE_DUPLICATE 4 /*!< Duplicate request */
+#define DUNDI_CAUSE_TTL_EXPIRED 5 /*!< Expired TTL */
+#define DUNDI_CAUSE_NEEDKEY 6 /*!< Need new session key to decode */
+#define DUNDI_CAUSE_BADENCRYPT 7 /*!< Badly encrypted data */
struct dundi_cause {
- unsigned char causecode; /* Numerical cause (DUNDI_CAUSE_*) */
- char desc[0]; /* Textual description */
+ unsigned char causecode; /*!< Numerical cause (DUNDI_CAUSE_*) */
+ char desc[0]; /*!< Textual description */
} __attribute__ ((__packed__));
struct dundi_peer_status {
dundi_eid peereid;
} __attribute__ ((__packed__));
-#define DUNDI_PEER_PRIMARY (1 << 0)
+#define DUNDI_PEER_PRIMARY (1 << 0)
#define DUNDI_PEER_SECONDARY (1 << 1)
#define DUNDI_PEER_UNAVAILABLE (1 << 2)
#define DUNDI_PEER_REGISTERED (1 << 3)
#define DUNDI_PEER_PCMOD_OUTBOUND (1 << 6)
#define DUNDI_PEER_PCMOD_INBOUND (1 << 7)
-#define DUNDI_COMMAND_FINAL (0x80) /* Or'd with other flags */
-
-#define DUNDI_COMMAND_ACK (0 | 0x40) /* Ack a message */
-#define DUNDI_COMMAND_DPDISCOVER 1 /* Request discovery */
-#define DUNDI_COMMAND_DPRESPONSE (2 | 0x40) /* Respond to a discovery request */
-#define DUNDI_COMMAND_EIDQUERY 3 /* Request information for a peer */
-#define DUNDI_COMMAND_EIDRESPONSE (4 | 0x40) /* Response to a peer query */
-#define DUNDI_COMMAND_PRECACHERQ 5 /* Pre-cache Request */
-#define DUNDI_COMMAND_PRECACHERP (6 | 0x40) /* Pre-cache Response */
-#define DUNDI_COMMAND_INVALID (7 | 0x40) /* Invalid dialog state (does not require ack) */
-#define DUNDI_COMMAND_UNKNOWN (8 | 0x40) /* Unknown command */
-#define DUNDI_COMMAND_NULL 9 /* No-op */
-#define DUNDI_COMMAND_REGREQ (10) /* Register Request */
-#define DUNDI_COMMAND_REGRESPONSE (11 | 0x40) /* Register Response */
-#define DUNDI_COMMAND_CANCEL (12) /* Cancel transaction entirely */
-#define DUNDI_COMMAND_ENCRYPT (13) /* Send an encrypted message */
-#define DUNDI_COMMAND_ENCREJ (14 | 0x40) /* Reject an encrypted message */
-
-#define DUNDI_COMMAND_STATUS 15 /* Status command */
+#define DUNDI_COMMAND_FINAL (0x80) /*!< Or'd with other flags */
+
+#define DUNDI_COMMAND_ACK (0 | 0x40) /*!< Ack a message */
+#define DUNDI_COMMAND_DPDISCOVER 1 /*!< Request discovery */
+#define DUNDI_COMMAND_DPRESPONSE (2 | 0x40) /*!< Respond to a discovery request */
+#define DUNDI_COMMAND_EIDQUERY 3 /*!< Request information for a peer */
+#define DUNDI_COMMAND_EIDRESPONSE (4 | 0x40) /*!< Response to a peer query */
+#define DUNDI_COMMAND_PRECACHERQ 5 /*!< Pre-cache Request */
+#define DUNDI_COMMAND_PRECACHERP (6 | 0x40) /*!< Pre-cache Response */
+#define DUNDI_COMMAND_INVALID (7 | 0x40) /*!< Invalid dialog state (does not require ack) */
+#define DUNDI_COMMAND_UNKNOWN (8 | 0x40) /*!< Unknown command */
+#define DUNDI_COMMAND_NULL 9 /*!< No-op */
+#define DUNDI_COMMAND_REGREQ (10) /*!< Register Request */
+#define DUNDI_COMMAND_REGRESPONSE (11 | 0x40) /*!< Register Response */
+#define DUNDI_COMMAND_CANCEL (12) /*!< Cancel transaction entirely */
+#define DUNDI_COMMAND_ENCRYPT (13) /*!< Send an encrypted message */
+#define DUNDI_COMMAND_ENCREJ (14 | 0x40) /*!< Reject an encrypted message */
+
+#define DUNDI_COMMAND_STATUS 15 /*!< Status command */
/*
* Remember that some information elements may occur
* more than one time within a message
*/
-#define DUNDI_IE_EID 1 /* Entity identifier (dundi_eid) */
-#define DUNDI_IE_CALLED_CONTEXT 2 /* DUNDi Context (string) */
-#define DUNDI_IE_CALLED_NUMBER 3 /* Number of equivalent (string) */
-#define DUNDI_IE_EID_DIRECT 4 /* Entity identifier (dundi_eid), direct connect */
-#define DUNDI_IE_ANSWER 5 /* An answer (struct dundi_answer) */
-#define DUNDI_IE_TTL 6 /* Max TTL for this request / Remaining TTL for the response (short)*/
-#define DUNDI_IE_VERSION 10 /* DUNDi version (should be 1) (short) */
-#define DUNDI_IE_EXPIRATION 11 /* Recommended expiration (short) */
-#define DUNDI_IE_UNKNOWN 12 /* Unknown command (byte) */
-#define DUNDI_IE_CAUSE 14 /* Success or cause of failure */
-#define DUNDI_IE_REQEID 15 /* EID being requested for EIDQUERY*/
-#define DUNDI_IE_ENCDATA 16 /* AES-128 encrypted data */
-#define DUNDI_IE_SHAREDKEY 17 /* RSA encrypted AES-128 key */
-#define DUNDI_IE_SIGNATURE 18 /* RSA Signature of encrypted shared key */
-#define DUNDI_IE_KEYCRC32 19 /* CRC32 of encrypted key (int) */
-#define DUNDI_IE_HINT 20 /* Answer hints (struct ast_hint) */
-
-#define DUNDI_IE_DEPARTMENT 21 /* Department, for EIDQUERY (string) */
-#define DUNDI_IE_ORGANIZATION 22 /* Organization, for EIDQUERY (string) */
-#define DUNDI_IE_LOCALITY 23 /* City/Locality, for EIDQUERY (string) */
-#define DUNDI_IE_STATE_PROV 24 /* State/Province, for EIDQUERY (string) */
-#define DUNDI_IE_COUNTRY 25 /* Country, for EIDQUERY (string) */
-#define DUNDI_IE_EMAIL 26 /* E-mail addy, for EIDQUERY (string) */
-#define DUNDI_IE_PHONE 27 /* Contact Phone, for EIDQUERY (string) */
-#define DUNDI_IE_IPADDR 28 /* IP Address, for EIDQUERY (string) */
-#define DUNDI_IE_CACHEBYPASS 29 /* Bypass cache (empty) */
-
-#define DUNDI_IE_PEERSTATUS 30 /* Peer/peer status (struct dundi_peer_status) */
-
-#define DUNDI_FLUFF_TIME 2000 /* Amount of time for answer */
-#define DUNDI_TTL_TIME 200 /* Incremental average time */
+#define DUNDI_IE_EID 1 /*!< Entity identifier (dundi_eid) */
+#define DUNDI_IE_CALLED_CONTEXT 2 /*!< DUNDi Context (string) */
+#define DUNDI_IE_CALLED_NUMBER 3 /*!< Number of equivalent (string) */
+#define DUNDI_IE_EID_DIRECT 4 /*!< Entity identifier (dundi_eid), direct connect */
+#define DUNDI_IE_ANSWER 5 /*!< An answer (struct dundi_answer) */
+#define DUNDI_IE_TTL 6 /*!< Max TTL for this request / Remaining TTL for the response (short)*/
+#define DUNDI_IE_VERSION 10 /*!< DUNDi version (should be 1) (short) */
+#define DUNDI_IE_EXPIRATION 11 /*!< Recommended expiration (short) */
+#define DUNDI_IE_UNKNOWN 12 /*!< Unknown command (byte) */
+#define DUNDI_IE_CAUSE 14 /*!< Success or cause of failure */
+#define DUNDI_IE_REQEID 15 /*!< EID being requested for EIDQUERY*/
+#define DUNDI_IE_ENCDATA 16 /*!< AES-128 encrypted data */
+#define DUNDI_IE_SHAREDKEY 17 /*!< RSA encrypted AES-128 key */
+#define DUNDI_IE_SIGNATURE 18 /*!< RSA Signature of encrypted shared key */
+#define DUNDI_IE_KEYCRC32 19 /*!< CRC32 of encrypted key (int) */
+#define DUNDI_IE_HINT 20 /*!< Answer hints (struct ast_hint) */
+
+#define DUNDI_IE_DEPARTMENT 21 /*!< Department, for EIDQUERY (string) */
+#define DUNDI_IE_ORGANIZATION 22 /*!< Organization, for EIDQUERY (string) */
+#define DUNDI_IE_LOCALITY 23 /*!< City/Locality, for EIDQUERY (string) */
+#define DUNDI_IE_STATE_PROV 24 /*!< State/Province, for EIDQUERY (string) */
+#define DUNDI_IE_COUNTRY 25 /*!< Country, for EIDQUERY (string) */
+#define DUNDI_IE_EMAIL 26 /*!< E-mail addy, for EIDQUERY (string) */
+#define DUNDI_IE_PHONE 27 /*!< Contact Phone, for EIDQUERY (string) */
+#define DUNDI_IE_IPADDR 28 /*!< IP Address, for EIDQUERY (string) */
+#define DUNDI_IE_CACHEBYPASS 29 /*!< Bypass cache (empty) */
+
+#define DUNDI_IE_PEERSTATUS 30 /*!< Peer/peer status (struct dundi_peer_status) */
+
+#define DUNDI_FLUFF_TIME 2000 /*!< Amount of time for answer */
+#define DUNDI_TTL_TIME 200 /*!< Incremental average time */
#define DUNDI_DEFAULT_RETRANS 5
#define DUNDI_DEFAULT_RETRANS_TIMER 1000
-#define DUNDI_DEFAULT_TTL 120 /* In seconds/hops like TTL */
+#define DUNDI_DEFAULT_TTL 120 /*!< In seconds/hops like TTL */
#define DUNDI_DEFAULT_VERSION 1
-#define DUNDI_DEFAULT_CACHE_TIME 3600 /* In seconds */
-#define DUNDI_DEFAULT_KEY_EXPIRE 3600 /* Life of shared key In seconds */
-#define DUNDI_DEF_EMPTY_CACHE_TIME 60 /* In seconds, cache of empty answer */
-#define DUNDI_WINDOW 1 /* Max 1 message in window */
+#define DUNDI_DEFAULT_CACHE_TIME 3600 /*!< In seconds */
+#define DUNDI_DEFAULT_KEY_EXPIRE 3600 /*!< Life of shared key In seconds */
+#define DUNDI_DEF_EMPTY_CACHE_TIME 60 /*!< In seconds, cache of empty answer */
+#define DUNDI_WINDOW 1 /*!< Max 1 message in window */
-#define DEFAULT_MAXMS 2000
+#define DEFAULT_MAXMS 2000
struct dundi_result {
unsigned int flags;
char ipaddr[80];
};
-/* Lookup the given number in the given dundi context (or e164 if unspecified) using the given callerid (if specified) and return up to maxret results in the array specified.
+/*! \brief Lookup the given number in the given dundi context (or e164 if unspecified) using the given callerid (if specified) and return up to maxret results in the array specified.
returns the number of results found or -1 on a hangup of teh channel. */
int dundi_lookup(struct dundi_result *result, int maxret, struct ast_channel *chan, const char *dcontext, const char *number, int nocache);
-/* Retrieve information on a specific EID */
+/*! \brief Retrieve information on a specific EID */
int dundi_query_eid(struct dundi_entity_info *dei, const char *dcontext, dundi_eid eid);
-/* Pre-cache to push upstream peers */
+/*! \brief Pre-cache to push upstream peers */
int dundi_precache(const char *dcontext, const char *number);
#endif /* _ASTERISK_DUNDI_H */
* at the top of the source tree.
*/
-/*
- * Asterisk architecture endianess compatibility definitions
+/*! \file
+ * \brief Asterisk architecture endianess compatibility definitions
*/
#ifndef _ASTERISK_ENDIAN_H
* at the top of the source tree.
*/
-/*
- * ENUM support
- */
-
/*! \file enum.h
\brief DNS and ENUM functions
*/
*/
extern int ast_get_enum(struct ast_channel *chan, const char *number, char *location, int maxloc, char *technology, int maxtech, char* suffix, char* options);
+
/*! \brief Lookup DNS TXT record (used by app TXTCIDnum
\param chan Channel
\param number E164 number with or without the leading +
* at the top of the source tree.
*/
-/*
- * Call Parking and Pickup API
+/*! \file
+ * \brief Call Parking and Pickup API
* Includes code and algorithms from the Zapata library.
*/
#define FEATURE_SNAME_LEN 32
#define FEATURE_EXTEN_LEN 32
-/* main call feature structure */
+/*! \brief main call feature structure */
struct ast_call_feature {
int feature_mask;
char *fname;
-/*! Park a call and read back parked location */
-/*! \param chan the channel to actually be parked
+/*! \brief Park a call and read back parked location
+ * \param chan the channel to actually be parked
\param host the channel which will have the parked location read to
Park the channel chan, and read back the parked location to the
host. If the call is not picked up within a specified period of
\param extout is a parameter to an int that will hold the parked location, or NULL if you want
*/
extern int ast_park_call(struct ast_channel *chan, struct ast_channel *host, int timeout, int *extout);
-/*! Park a call via a masqueraded channel */
-/*! \param rchan the real channel to be parked
+
+/*! \brief Park a call via a masqueraded channel
+ * \param rchan the real channel to be parked
\param host the channel to have the parking read to
Masquerade the channel rchan into a new, empty channel which is then
parked with ast_park_call
*/
extern int ast_masq_park_call(struct ast_channel *rchan, struct ast_channel *host, int timeout, int *extout);
-/*! Determine system parking extension */
-/*! Returns the call parking extension for drivers that provide special
+/*! \brief Determine system parking extension
+ * Returns the call parking extension for drivers that provide special
call parking help */
extern char *ast_parking_ext(void);
-extern char *ast_pickup_ext(void);
-/*! Bridge a call, optionally allowing redirection */
+/*! \brief Determine system call pickup extension */
+extern char *ast_pickup_ext(void);
+/*! \brief Bridge a call, optionally allowing redirection */
extern int ast_bridge_call(struct ast_channel *chan, struct ast_channel *peer,struct ast_bridge_config *config);
+/*! \brief Pickup a call */
extern int ast_pickup_call(struct ast_channel *chan);
-/*! register new feature into feature_set
+/*! \brief register new feature into feature_set
\param feature an ast_call_feature object which contains a keysequence
and a callback function which is called when this keysequence is pressed
during a call. */
extern void ast_register_feature(struct ast_call_feature *feature);
-/*! unregister feature from feature_set
+/*! \brief unregister feature from feature_set
\param feature the ast_call_feature object which was registered before*/
extern void ast_unregister_feature(struct ast_call_feature *feature);
* at the top of the source tree.
*/
-/*
- * Generic File Format Support.
+/*! \file
+ * \brief Generic File Format Support.
*/
#ifndef _ASTERISK_FILE_H
* at the top of the source tree.
*/
-/*
- * Asterisk internal frame definitions.
+/*! \file
+ * \brief Asterisk internal frame definitions.
*/
#ifndef _ASTERISK_FRAME_H
* at the top of the source tree.
*/
-/*
- * FSK Modem Support
- * Includes code and algorithms from the Zapata library.
+/*! \file
+ * \brief FSK Modem Support
+ * \note Includes code and algorithms from the Zapata library.
*/
#ifndef _ASTERISK_FSKMODEM_H
float cola_demod[NCOLA]; /* Cola de muestras demoduladas */
} fsk_data;
-/* Retrieve a serial byte into outbyte. Buffer is a pointer into a series of
+/* \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:
* at the top of the source tree.
*/
-/*
- * General Asterisk channel definitions.
+/*! \file
+ * \brief General Asterisk channel definitions for image handling
*/
#ifndef _ASTERISK_IMAGE_H
#define _ASTERISK_IMAGE_H
-/*! structure associated with registering an image format */
+/*! \brief structure associated with registering an image format */
struct ast_imager {
/*! Name */
char *name;
* channels for your use.
*/
-/*
- * BSD Telephony Of Mexico "Tormenta" Tone Zone Support 2/22/01
+/*! \file
+ * \brief BSD Telephony Of Mexico "Tormenta" Tone Zone Support 2/22/01
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* at the top of the source tree.
*/
-/*
- * Inlinable API function macro
- */
-
#ifndef __ASTERISK_INLINEAPI_H
#define __ASTERISK_INLINEAPI_H
-/*
+/*! \file
+ * \brief Inlinable API function macro
+
Small API functions that are candidates for inlining need to be specially
declared and defined, to ensure that the 'right thing' always happens.
For example:
* at the top of the source tree.
*/
-/*
- * I/O Management (derived from Cheops-NG)
+/*! \file
+ * \brief I/O Management (derived from Cheops-NG)
*/
#ifndef _ASTERISK_IO_H
* at the top of the source tree.
*/
-/*
- * Custom localtime functions for multiple timezones
+/*! \file
+ * \brief Custom localtime functions for multiple timezones
*/
#ifndef _ASTERISK_LOCALTIME_H
* at the top of the source tree.
*/
-/*
- * General Asterisk channel definitions.
+/*! \file
+ * \brief General Asterisk channel locking definitions.
*/
#ifndef _ASTERISK_LOCK_H
#ifdef __APPLE__
/* Provide the Linux initializers for MacOS X */
-#define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE
+#define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE
#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { 0x4d555458, \
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0x20 } }
* at the top of the source tree.
*/
-/*
- * AMI - Asterisk Management Interface
+/*! \file
+ * \brief AMI - Asterisk Management Interface
* External call management support
*/
* at the top of the source tree.
*/
+/*!\file
+ * \brief MD5 digest functions
+ */
+
#ifndef _ASTERISK_MD5_H
#define _ASTERISK_MD5_H
* at the top of the source tree.
*/
-/*
- * Channel monitoring
+/*! \file
+ * \brief Channel monitoring
*/
#ifndef _ASTERISK_MONITOR_H
* at the top of the source tree.
*/
-/*
- * Music on hold handling
+/*! \file
+ * \brief Music on hold handling
*/
#ifndef _ASTERISK_MOH_H
* at the top of the source tree.
*/
-/*
- * Network socket handling
+/*! \file
+ * \brief Network socket handling
*/
#ifndef _ASTERISK_NETSOCK_H
* at the top of the source tree.
*/
-/*
- * Options provided by main asterisk program
+/*! \file
+ * \brief Options provided by main asterisk program
*/
#ifndef _ASTERISK_OPTIONS_H
* at the top of the source tree.
*/
-/*
- * Core PBX routines and definitions.
+/*! \file
+ * \brief Core PBX routines and definitions.
*/
#ifndef _ASTERISK_PBX_H
-/*
- * SpanDSP - a series of DSP components for telephony
+/*! \file
+ * \brief SpanDSP - a series of DSP components for telephony
*
* plc.h
*
- * Written by Steve Underwood <steveu@coppice.org>
+ * \author Steve Underwood <steveu@coppice.org>
*
* Copyright (C) 2004 Steve Underwood
*
* This version is disclaimed to DIGIUM for inclusion in the Asterisk project.
*/
-/*! \file */
#if !defined(_PLC_H_)
#define _PLC_H_
* at the top of the source tree.
*/
-/*
- * Persistant data storage (akin to *doze registry)
+/*! \file
+ * \brief Persistant data storage (akin to *doze registry)
*/
#ifndef _ASTERISK_PRIVACY_H
* at the top of the source tree.
*/
-/*
- * ODBC resource manager
+/*! \file
+ * \brief ODBC resource manager
*/
#ifndef _ASTERISK_RES_ODBC_H
* \file rtp.h
* \brief Supports RTP and RTCP with Symmetric RTP support for NAT traversal.
*
- * RTP is deffined in RFC 3550.
+ * RTP is defined in RFC 3550.
*/
#ifndef _ASTERISK_RTP_H
* at the top of the source tree.
*/
-/*
- * Say numbers and dates (maybe words one day too)
+/*! \file
+ * \brief Say numbers and dates (maybe words one day too)
*/
#ifndef _ASTERISK_SAY_H
* at the top of the source tree.
*/
-/*
- * Scheduler Routines (derived from cheops)
+/*! \file
+ * \brief Scheduler Routines (derived from cheops)
*/
#ifndef _ASTERISK_SCHED_H
* at the top of the source tree.
*/
-/*
- * A machine to gather up arbitrary frames and convert them
+/*! \file
+ * \brief A machine to gather up arbitrary frames and convert them
* to raw slinear on demand.
*/
/*!
\file srv.h
\brief Support for DNS SRV records, used in to locate SIP services.
- Note: The Asterisk DNS SRV record support is broken, it only
+ \note Note: The Asterisk DNS SRV record support is broken, it only
supports the first DNS SRV record and will give no load
balancing or failover support.
*/
* at the top of the source tree.
*/
-/*
- * String manipulation functions
+/*! \file
+ * \brief String manipulation functions
*/
#ifndef _ASTERISK_STRINGS_H
* at the top of the source tree.
*/
-/*
- * TTY/TDD Generation support
- * Includes code and algorithms from the Zapata library.
+/*! \file
+ * \brief TTY/TDD Generation support
+ * \note Includes code and algorithms from the Zapata library.
*/
#ifndef _ASTERISK_TDD_H
* at the top of the source tree.
*/
-/*
- * Handy terminal functions for vt* terms
+/*! \file
+ * \brief Handy terminal functions for vt* terms
*/
#ifndef _ASTERISK_TERM_H
#define ESC 0x1b
#define ATTR_RESET 0
-#define ATTR_BRIGHT 1
+#define ATTR_BRIGHT 1
#define ATTR_DIM 2
#define ATTR_UNDER 4
#define ATTR_BLINK 5
#define ATTR_REVER 7
-#define ATTR_HIDDEN 8
+#define ATTR_HIDDEN 8
#define COLOR_BLACK 30
#define COLOR_GRAY 30 | 128
-#define COLOR_RED 31
-#define COLOR_BRRED 31 | 128
-#define COLOR_GREEN 32
+#define COLOR_RED 31
+#define COLOR_BRRED 31 | 128
+#define COLOR_GREEN 32
#define COLOR_BRGREEN 32 | 128
-#define COLOR_BROWN 33
+#define COLOR_BROWN 33
#define COLOR_YELLOW 33 | 128
-#define COLOR_BLUE 34
+#define COLOR_BLUE 34
#define COLOR_BRBLUE 34 | 128
#define COLOR_MAGENTA 35
#define COLOR_BRMAGENTA 35 | 128
* at the top of the source tree.
*/
-/*
- * Time-related functions and macros
+/*! \file
+ * \brief Time-related functions and macros
*/
#ifndef _ASTERISK_TIME_H
* at the top of the source tree.
*/
-/*
- * General Asterisk channel definitions.
+/*! \file
+ * \brief General Asterisk channel transcoding definitions.
*/
#ifndef _ASTERISK_TRANSCAP_H
* at the top of the source tree.
*/
-/*
- * Translate via the use of pseudo channels
+/*! \file
+ * \brief Translate via the use of pseudo channels
*/
#ifndef _ASTERISK_TRANSLATE_H
* at the top of the source tree.
*/
-/*
- * u-Law to Signed linear conversion
+/*! \file
+ * \brief u-Law to Signed linear conversion
*/
#ifndef _ASTERISK_ULAW_H
* at the top of the source tree.
*/
-/*
- * Handle unaligned data access
+/*! \file
+ * \brief Handle unaligned data access
*/
#ifndef _ASTERISK_UNALIGNED_H
* at the top of the source tree.
*/
-/*
- * Utility functions
+/*! \file
+ * \brief Utility functions
*/
#ifndef _ASTERISK_UTILS_H
#include "asterisk/time.h"
#include "asterisk/strings.h"
-/* Note:
+/*! \note
+ \verbatim
+ Note:
It is very important to use only unsigned variables to hold
bit flags, as otherwise you can fall prey to the compiler's
sign-extension antics if you try to use the top two bits in
type of variable, a warning message similar to this:
warning: comparison of distinct pointer types lacks cast
-
will be generated.
The "dummy" variable below is used to make these comparisons.
Also note that at -O2 or above, this type-safety checking
does _not_ produce any additional object code at all.
+ \endverbatim
*/
extern unsigned int __unsigned_int_flags_dummy;
* at the top of the source tree.
*/
-/*
- * Voice Modem Definitions
+/*! \file
+ * \brief Voice Modem Definitions
*/
#ifndef _ASTERISK_VMODEM_H
#define MODEM_DEV_SPKRPHONE 6
#define MODEM_DEV_HANDSET 9
-#define MODEM_DTMF_NONE (1 << 0)
-#define MODEM_DTMF_AST (1 << 1)
-#define MODEM_DTMF_I4L (1 << 2)
+#define MODEM_DTMF_NONE (1 << 0)
+#define MODEM_DTMF_AST (1 << 1)
+#define MODEM_DTMF_I4L (1 << 2)
/* Thirty millisecond sections */
-#define MODEM_MAX_LEN 30
-#define MODEM_MAX_BUF MODEM_MAX_LEN * 16
+#define MODEM_MAX_LEN 30
+#define MODEM_MAX_BUF MODEM_MAX_LEN * 16
#define AST_MAX_INIT_STR 256
*
* Copyright (C) 2002, Pauline Middelink
*
- * Pauline Middelink <middelink@polyware.nl>
*
* See http://www.asterisk.org for more information about
* the Asterisk project. Please do not directly contact
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Tone Management
+ * \brief Tone Management
*
+ * \author Pauline Middelink <middelink@polyware.nl>
+ *
* This set of function allow us to play a list of tones on a channel.
* Each element has two frequencies, which are mixed together and a
* duration. For silence both frequencies can be set to 0.
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * I/O Managment (Derived from Cheops-NG)
+ * \brief I/O Managment (Derived from Cheops-NG)
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * jitterbuf: an application-independent jitterbuffer
+ * \brief jitterbuf: an application-independent jitterbuffer
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Module Loader
+ * \brief Module Loader
*
*/
* at the top of the source tree.
*/
-/*
- * Asterisk Logger
+/*! \file
+ * \brief Asterisk Logger
*
* Logging routines
*
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * The Asterisk Management Interface - AMI
+ * \brief The Asterisk Management Interface - AMI
*
* Channel Management and more
*
+ * \ref manconf
*/
#include <stdio.h>
static struct manager_action *first_action = NULL;
AST_MUTEX_DEFINE_STATIC(actionlock);
-/* If you are calling carefulwrite, it is assumed that you are calling
+/*! If you are calling ast_carefulwrite, it is assumed that you are calling
it on a file descriptor that _DOES_ have NONBLOCK set. This way,
there is only one system call made to do a write, unless we actually
have a need to wait. This way, we get better performance. */
return res;
}
-/*--- authority_to_str: Convert authority code to string with serveral options */
+/*! authority_to_str: Convert authority code to string with serveral options */
static char *authority_to_str(int authority, char *res, int reslen)
{
int running_total = 0, i;
return head;
}
-/* NOTE:
+/*! NOTE:
Callers of astman_send_error(), astman_send_response() or astman_send_ack() must EITHER
hold the session lock _or_ be running in an action callback (in which case s->busy will
be non-zero). In either of these cases, there is no need to lock-protect the session's
be read until either the current action finishes or get_input() obtains the session
lock.
*/
-
void astman_send_error(struct mansession *s, struct message *m, char *error)
{
char *id = astman_get_header(m,"ActionID");
astman_send_response(s, m, "Success", msg);
}
-/* Tells you if smallstr exists inside bigstr
+/*! Tells you if smallstr exists inside bigstr
which is delim by delim and uses no buf or stringsep
ast_instring("this|that|more","this",',') == 1;
return ret;
}
-/*
+/*!
Rather than braindead on,off this now can also accept a specific int mask value
or a ',' delim list of mask strings (the same as manager.conf) -anthm
*/
-/* MD5 checksum routines used for authentication. Not covered by GPL, but
+
+/*!\file
+\brief MD5 checksum routines used for authentication. Not covered by GPL, but
in the public domain as per the copyright below */
/*
* at the top of the source tree.
*/
-/*
- * Mute Daemon
+/*! \file
+ * \brief Mute Daemon
*
* Specially written for Malcolm Davenport, but I think I'll use it too
*
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Network socket handling
+ * \brief Network socket handling
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Core PBX routines.
+ * \brief Core PBX routines.
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Distributed Universal Number Discovery (DUNDi)
+ * \brief Distributed Universal Number Discovery (DUNDi)
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Compile symbolic Asterisk Extension Logic into Asterisk extensions
+ * \brief Compile symbolic Asterisk Extension Logic into Asterisk extensions
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Populate and remember extensions from static config file
+ * \brief Populate and remember extensions from static config file
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Distributed Universal Number Discovery (DUNDi)
+ * \brief Distributed Universal Number Discovery (DUNDi)
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * GTK Console monitor -- very kludgy right now
+ * \brief GTK Console monitor -- very kludgy right now
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Loopback PBX Module
+ * \brief Loopback PBX Module
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Realtime PBX Module
+ * \brief Realtime PBX Module
*
+ * \arg See also: \ref AstARA
*/
#include <stdlib.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Full-featured outgoing call spool support
+ * \brief Full-featured outgoing call spool support
*
*/
* This version is disclaimed to DIGIUM for inclusion in the Asterisk project.
*/
-/*
+/*! \file
*
- * SpanDSP - a series of DSP components for telephony
+ * \brief SpanDSP - a series of DSP components for telephony
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Privacy Routines
+ * \brief Privacy Routines
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * ADSI support
+ * \brief ADSI support
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Asterisk Gateway Interface
+ * \brief AGI - the Asterisk Gateway Interface
*
*/
*
* Mark Spencer <markster@digium.com>
*
- * res_config_odbc.c <odbc+odbc plugin for portable configuration engine >
* Copyright (C) 2004 - 2005 Anthony Minessale II <anthmct@yahoo.com>
*
* See http://www.asterisk.org for more information about
* at the top of the source tree.
*/
-/*
- *
+/*! \file
*
+ * \brief odbc+odbc plugin for portable configuration engine
*
+ * http://www.unixodbc.org
*/
#include <stdlib.h>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Provide Cryptographic Signature capability
+ * \brief Provide Cryptographic Signature capability
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Routines implementing call parking
+ * \brief Routines implementing call parking
*
*/
*
* Copyright (C) 2002, Pauline Middelink
*
- * Pauline Middelink <middelink@polyware.nl>
*
* See http://www.asterisk.org for more information about
* the Asterisk project. Please do not directly contact
* at the top of the source tree.
*/
-/** @file res_indications.c
+/*! \file res_indications.c
*
- * Load the indications
+ * \brief Load the indications
*
+ * \author Pauline Middelink <middelink@polyware.nl>
+ *
* Load the country specific dialtones into the asterisk PBX.
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * res_monitor.c
+ * \brief PBX channel monitoring
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
+ *
+ * \brief Routines implementing music on hold
*
- * Routines implementing music on hold
+ * \arg See also \ref Config_moh
*
*/
*/
-/*
- *
+/*! \file
*
+ * \brief ODBC resource manager
+ *
+ * \arg See also: \ref cdrodbc
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Provide Open Settlement Protocol capability
+ * \brief Provide Open Settlement Protocol capability
*
+ * \arg See also: \ref chan_sip.c
*/
#include <sys/types.h>
*/
/*!
- * \file rtp.c
+ * \file
* \brief Supports RTP and RTCP with Symmetric RTP support for NAT traversal.
*
* RTP is deffined in RFC 3550.
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Say numbers and dates (maybe words one day too)
+ * \brief Say numbers and dates (maybe words one day too)
*
* 12-16-2004 : Support for Greek added by InAccess Networks (work funded by HOL, www.hol.gr)
* George Konstantoulakis <gkon@inaccessnetworks.com>
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Scheduler Routines (from cheops-NG)
+ * \brief Scheduler Routines (from cheops-NG)
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * A machine to gather up arbitrary frames and convert them
+ * \brief A machine to gather up arbitrary frames and convert them
* to raw slinear on demand.
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * ENUM Support for Asterisk
+ * \brief DNS SRV Record Lookup Support for Asterisk
+ *
+ * \arg See also \ref AstENUM
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * TTY/TDD Generation support
+ * \brief TTY/TDD Generation support
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Terminal Routines
+ * \brief Terminal Routines
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Translate via the use of pseudo channels
+ * \brief Translate via the use of pseudo channels
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * u-Law to Signed linear conversion
+ * \brief u-Law to Signed linear conversion
*
*/
* at the top of the source tree.
*/
-/*
+/*! \file
*
- * Utility functions
+ * \brief Utility functions
*
+ * \note These are important for portability and security,
+ * so please use them in favour of other routines.
+ * Please consult the CODING GUIDELINES for more information.
*/
#include <ctype.h>