From 6324072247d51667765555856ea10f5045ef90c9 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Wed, 26 Oct 2005 13:03:17 +0000 Subject: [PATCH] more doxygenification (issue #5513) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6852 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- cdr/cdr_csv.c | 5 +- cdr/cdr_custom.c | 7 +- cdr/cdr_manager.c | 8 +- cdr/cdr_odbc.c | 9 +- cdr/cdr_pgsql.c | 9 +- cdr/cdr_sqlite.c | 13 +- cdr/cdr_tds.c | 12 +- channels/answer.h | 6 +- channels/chan_sip.c | 1129 +++++++++++++++++------------------ channels/iax2-parser.c | 4 +- channels/iax2-parser.h | 4 + channels/iax2-provision.c | 5 +- channels/iax2-provision.h | 4 + channels/ring10.h | 6 +- codecs/adpcm_slin_ex.h | 6 +- codecs/codec_a_mu.c | 4 +- codecs/codec_adpcm.c | 4 +- codecs/codec_alaw.c | 107 ++-- codecs/codec_g723_1.c | 4 +- codecs/codec_g726.c | 4 +- codecs/codec_gsm.c | 4 +- codecs/codec_ilbc.c | 4 +- codecs/codec_lpc10.c | 4 +- codecs/codec_speex.c | 9 +- codecs/codec_ulaw.c | 4 +- codecs/g723_slin_ex.h | 6 +- codecs/g726_slin_ex.h | 6 +- codecs/gsm_slin_ex.h | 6 +- codecs/ilbc_slin_ex.h | 6 +- codecs/log2comp.h | 6 +- codecs/lpc10_slin_ex.h | 6 +- codecs/slin_adpcm_ex.h | 6 +- codecs/slin_g723_ex.h | 6 +- codecs/slin_g726_ex.h | 6 +- codecs/slin_gsm_ex.h | 6 +- codecs/slin_ilbc_ex.h | 6 +- codecs/slin_lpc10_ex.h | 6 +- codecs/slin_speex_ex.h | 6 +- codecs/slin_ulaw_ex.h | 6 +- codecs/speex_slin_ex.h | 6 +- codecs/ulaw_slin_ex.h | 6 +- formats/format_au.c | 4 +- formats/format_g723.c | 4 +- formats/format_g726.c | 4 +- formats/format_g729.c | 4 +- formats/format_gsm.c | 4 +- formats/format_h263.c | 4 +- formats/format_ilbc.c | 4 +- formats/format_jpeg.c | 4 +- formats/format_ogg_vorbis.c | 4 +- formats/format_pcm.c | 4 +- formats/format_pcm_alaw.c | 4 +- formats/format_sln.c | 4 +- formats/format_vox.c | 4 +- formats/format_wav.c | 4 +- formats/format_wav_gsm.c | 4 +- include/asterisk.h | 4 + include/asterisk/doxyref.h | 49 +- manager.c | 12 +- pbx.c | 32 +- say.c | 46 +- utils.c | 16 +- 62 files changed, 880 insertions(+), 810 deletions(-) diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c index 3f2b9641b1..958eb79134 100755 --- a/cdr/cdr_csv.c +++ b/cdr/cdr_csv.c @@ -18,10 +18,11 @@ * at the top of the source tree. */ -/* +/*! \file * - * Comma Separated Value CDR records. + * \brief Comma Separated Value CDR records. * + * \arg See also \ref AstCDR */ #include diff --git a/cdr/cdr_custom.c b/cdr/cdr_custom.c index 35e1dc18aa..34c47b962f 100755 --- a/cdr/cdr_custom.c +++ b/cdr/cdr_custom.c @@ -18,10 +18,13 @@ * at the top of the source tree. */ -/* +/*! \file * - * Comma Separated Value CDR records. + * \brief Custom Comma Separated Value CDR records. * + * \arg See also \ref AstCDR + * + * Logs in LOG_DIR/cdr_custom */ #include diff --git a/cdr/cdr_manager.c b/cdr/cdr_manager.c index 7acc07de16..71546b120b 100755 --- a/cdr/cdr_manager.c +++ b/cdr/cdr_manager.c @@ -14,10 +14,14 @@ * at the top of the source tree. */ -/* +/*! \file * - * Asterisk Call Manager CDR records. + * \brief Asterisk Call Manager CDR records. * + * See also + * \arg \ref AstCDR + * \arg \ref AstAMI + * \arg \ref Config_ami */ #include diff --git a/cdr/cdr_odbc.c b/cdr/cdr_odbc.c index 87c58ee2df..3fc4ca926a 100755 --- a/cdr/cdr_odbc.c +++ b/cdr/cdr_odbc.c @@ -16,10 +16,15 @@ * at the top of the source tree. */ -/* +/*! \file * - * ODBC CDR Backend + * \brief ODBC CDR Backend * + * \author Brian K. West + * + * See also: + * \arg http://www.unixodbc.org + * \arg \ref Config_cdr */ #include diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c index 6bd5a149a5..01d6dbb0a1 100755 --- a/cdr/cdr_pgsql.c +++ b/cdr/cdr_pgsql.c @@ -20,10 +20,15 @@ * at the top of the source tree. */ -/* +/*! \file * - * PostgreSQL CDR logger + * \brief PostgreSQL CDR logger + * + * \author Matthew D. Hardeman * + * See also + * \arg \ref Config_cdr + * \arg http://www.postgresql.org/ */ #include diff --git a/cdr/cdr_sqlite.c b/cdr/cdr_sqlite.c index 6bab3bd88a..74f3078e3d 100755 --- a/cdr/cdr_sqlite.c +++ b/cdr/cdr_sqlite.c @@ -3,7 +3,6 @@ * * Copyright (C) 2004 - 2005, Holger Schurig * - * Holger Schurig * * Ideas taken from other cdr_*.c files * @@ -18,10 +17,17 @@ * at the top of the source tree. */ -/* +/*! \file * - * Store CDR records in a SQLite database. + * \brief Store CDR records in a SQLite database. * + * \author Holger Schurig + * + * See also + * \arg \ref Config_cdr + * \arg http://www.sqlite.org/ + * + * Creates the database and table on-the-fly */ #include @@ -52,6 +58,7 @@ static sqlite* db = NULL; AST_MUTEX_DEFINE_STATIC(sqlite_lock); +/*! \brief SQL table format */ static char sql_create_table[] = "CREATE TABLE cdr (" " AcctId INTEGER PRIMARY KEY," " clid VARCHAR(80)," diff --git a/cdr/cdr_tds.c b/cdr/cdr_tds.c index 69785ff114..55a0053e05 100755 --- a/cdr/cdr_tds.c +++ b/cdr/cdr_tds.c @@ -14,10 +14,16 @@ * at the top of the source tree. */ -/* +/*! \file * - * FreeTDS CDR logger + * \brief FreeTDS CDR logger * + * See also + * \arg \ref Config_cdr + * \arg http://www.freetds.org/ + */ + +/*! \verbatim * * Table Structure for `cdr` * @@ -44,6 +50,8 @@ CREATE TABLE [dbo].[cdr] ( [uniqueid] [varchar] (32) NULL ) ON [PRIMARY] +\endverbatim + */ #include diff --git a/channels/answer.h b/channels/answer.h index 2a034204cf..4168c50125 100755 --- a/channels/answer.h +++ b/channels/answer.h @@ -1,9 +1,9 @@ -/* - * Signed 16-bit audio data +/*!\file + * \brief Signed 16-bit audio data * * Source: answer.raw * - * Copyright (C) 1999, Mark Spencer and Linux Support Services + * Copyright (C) 1999-2005, Digium, Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/channels/chan_sip.c b/channels/chan_sip.c index c5177fe3b9..afefb5032d 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -21,7 +21,7 @@ * \brief Implementation of Session Initiation Protocol * * Implementation of RFC 3261 - without S/MIME, TCP and TLS support - * Configuration file \link page20sip sip.conf \endlink + * Configuration file \link Config_sip sip.conf \endlink * * \todo SIP over TCP * \todo SIP over TLS @@ -204,7 +204,7 @@ enum sip_auth_type { static const struct cfsip_methods { enum sipmethod id; - int need_rtp; /* when this is the 'primary' use for a pvt structure, does it need RTP? */ + int need_rtp; /*!< when this is the 'primary' use for a pvt structure, does it need RTP? */ char * const text; } sip_methods[] = { { SIP_UNKNOWN, RTP, "-UNKNOWN-" }, @@ -225,7 +225,7 @@ static const struct cfsip_methods { { SIP_PUBLISH, NO_RTP, "PUBLISH" } }; -/* Structure for conversion between compressed SIP and "normal" SIP */ +/*! \brief Structure for conversion between compressed SIP and "normal" SIP */ static const struct cfalias { char * const fullname; char * const shortname; @@ -250,8 +250,8 @@ static const struct cfalias { { "Session-Expires", "x" }, }; -/* Define SIP option tags, used in Require: and Supported: headers */ -/* We need to be aware of these properties in the phones to use +/*! Define SIP option tags, used in Require: and Supported: headers + We need to be aware of these properties in the phones to use the replace: header. We should not do that without knowing that the other end supports it... This is nothing we can configure, we learn by the dialog @@ -278,12 +278,12 @@ static const struct cfalias { #define SIP_OPT_GRUU (1 << 12) #define SIP_OPT_TARGET_DIALOG (1 << 13) -/* List of well-known SIP options. If we get this in a require, +/*! \brief List of well-known SIP options. If we get this in a require, we should check the list and answer accordingly. */ static const struct cfsip_options { - int id; /* Bitmap ID */ - int supported; /* Supported by Asterisk ? */ - char * const text; /* Text id, as in standard */ + int id; /*!< Bitmap ID */ + int supported; /*!< Supported by Asterisk ? */ + char * const text; /*!< Text id, as in standard */ } sip_options[] = { /* Replaces: header for transfer */ { SIP_OPT_REPLACES, SUPPORTED, "replaces" }, @@ -316,14 +316,14 @@ static const struct cfsip_options { }; -/* SIP Methods we support */ +/*! \brief SIP Methods we support */ #define ALLOWED_METHODS "INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY" -/* SIP Extensions we support */ +/*! \brief SIP Extensions we support */ #define SUPPORTED_EXTENSIONS "replaces" -#define DEFAULT_SIP_PORT 5060 /* From RFC 3261 (former 2543) */ -#define SIP_MAX_PACKET 4096 /* Also from RFC 3261 (2543), should sub headers tho */ +#define DEFAULT_SIP_PORT 5060 /*!< From RFC 3261 (former 2543) */ +#define SIP_MAX_PACKET 4096 /*!< Also from RFC 3261 (2543), should sub headers tho */ static char default_useragent[AST_MAX_EXTENSION] = DEFAULT_USERAGENT; @@ -344,18 +344,18 @@ static char default_fromdomain[AST_MAX_EXTENSION] = ""; #define DEFAULT_NOTIFYMIME "application/simple-message-summary" static char default_notifymime[AST_MAX_EXTENSION] = DEFAULT_NOTIFYMIME; -static int global_notifyringing = 1; /* Send notifications on ringing */ +static int global_notifyringing = 1; /*!< Send notifications on ringing */ -static int default_qualify = 0; /* Default Qualify= setting */ +static int default_qualify = 0; /*!< Default Qualify= setting */ -static struct ast_flags global_flags = {0}; /* global SIP_ flags */ -static struct ast_flags global_flags_page2 = {0}; /* more global SIP_ flags */ +static struct ast_flags global_flags = {0}; /*!< global SIP_ flags */ +static struct ast_flags global_flags_page2 = {0}; /*!< more global SIP_ flags */ -static int srvlookup = 0; /* SRV Lookup on or off. Default is off, RFC behavior is on */ +static int srvlookup = 0; /*!< SRV Lookup on or off. Default is off, RFC behavior is on */ -static int pedanticsipchecking = 0; /* Extra checking ? Default off */ +static int pedanticsipchecking = 0; /*!< Extra checking ? Default off */ -static int autocreatepeer = 0; /* Auto creation of peers at registration? Default off. */ +static int autocreatepeer = 0; /*!< Auto creation of peers at registration? Default off. */ static int relaxdtmf = 0; @@ -376,31 +376,31 @@ static int rpeerobjs = 0; static int apeerobjs = 0; static int regobjs = 0; -static int global_allowguest = 1; /* allow unauthenticated users/peers to connect? */ +static int global_allowguest = 1; /*!< allow unauthenticated users/peers to connect? */ #define DEFAULT_MWITIME 10 -static int global_mwitime = DEFAULT_MWITIME; /* Time between MWI checks for peers */ +static int global_mwitime = DEFAULT_MWITIME; /*!< Time between MWI checks for peers */ static int usecnt =0; AST_MUTEX_DEFINE_STATIC(usecnt_lock); -/* Protect the interface list (of sip_pvt's) */ +/*! \brief Protect the interface list (of sip_pvt's) */ AST_MUTEX_DEFINE_STATIC(iflock); -/* Protect the monitoring thread, so only one process can kill or start it, and not +/*! \brief Protect the monitoring thread, so only one process can kill or start it, and not when it's doing something critical. */ AST_MUTEX_DEFINE_STATIC(netlock); AST_MUTEX_DEFINE_STATIC(monlock); -/* This is the thread for the monitor which checks for input on the channels +/*! \brief This is the thread for the monitor which checks for input on the channels which are not currently in use. */ static pthread_t monitor_thread = AST_PTHREADT_NULL; static int restart_monitor(void); -/* Codecs that we support by default: */ +/*! \brief Codecs that we support by default: */ static int global_capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263; static int noncodeccapability = AST_RTP_DTMF; @@ -417,27 +417,24 @@ static int tos = 0; static int videosupport = 0; -static int compactheaders = 0; /* send compact sip headers */ +static int compactheaders = 0; /*!< send compact sip headers */ -static int recordhistory = 0; /* Record SIP history. Off by default */ -static int dumphistory = 0; /* Dump history to verbose before destroying SIP dialog */ +static int recordhistory = 0; /*!< Record SIP history. Off by default */ +static int dumphistory = 0; /*!< Dump history to verbose before destroying SIP dialog */ -static char global_musicclass[MAX_MUSICCLASS] = ""; /* Global music on hold class */ +static char global_musicclass[MAX_MUSICCLASS] = ""; /*!< Global music on hold class */ #define DEFAULT_REALM "asterisk" -static char global_realm[MAXHOSTNAMELEN] = DEFAULT_REALM; /* Default realm */ -static char regcontext[AST_MAX_CONTEXT] = ""; /* Context for auto-extensions */ +static char global_realm[MAXHOSTNAMELEN] = DEFAULT_REALM; /*!< Default realm */ +static char regcontext[AST_MAX_CONTEXT] = ""; /*!< Context for auto-extensions */ -/* Expire slowly */ -#define DEFAULT_EXPIRY 900 +#define DEFAULT_EXPIRY 900 /*!< Expire slowly */ static int expiry = DEFAULT_EXPIRY; static struct sched_context *sched; static struct io_context *io; -/* The private structures of the sip channels are linked for - selecting outgoing channels */ - -#define SIP_MAX_HEADERS 64 -#define SIP_MAX_LINES 64 + +#define SIP_MAX_HEADERS 64 /*!< Max amount of SIP headers to read */ +#define SIP_MAX_LINES 64 /*!< Max amount of lines in SIP attachment (like SDP) */ #define DEC_CALL_LIMIT 0 #define INC_CALL_LIMIT 1 @@ -445,33 +442,33 @@ static struct io_context *io; static struct ast_codec_pref prefs; -/* sip_request: The data grabbed from the UDP socket */ +/*! \brief sip_request: The data grabbed from the UDP socket */ struct sip_request { - char *rlPart1; /* SIP Method Name or "SIP/2.0" protocol version */ - char *rlPart2; /* The Request URI or Response Status */ - int len; /* Length */ - int headers; /* # of SIP Headers */ - int method; /* Method of this request */ + char *rlPart1; /*!< SIP Method Name or "SIP/2.0" protocol version */ + char *rlPart2; /*!< The Request URI or Response Status */ + int len; /*!< Length */ + int headers; /*!< # of SIP Headers */ + int method; /*!< Method of this request */ char *header[SIP_MAX_HEADERS]; - int lines; /* SDP Content */ + int lines; /*!< SDP Content */ char *line[SIP_MAX_LINES]; char data[SIP_MAX_PACKET]; - int debug; /* Debug flag for this packet */ - unsigned int flags; /* SIP_PKT Flags for this packet */ + int debug; /*!< Debug flag for this packet */ + unsigned int flags; /*!< SIP_PKT Flags for this packet */ }; struct sip_pkt; -/* Parameters to the transmit_invite function */ +/*! \brief Parameters to the transmit_invite function */ struct sip_invite_param { - char *distinctive_ring; - char *osptoken; - int addsipheaders; - char *uri_options; - char *vxml_url; - char *auth; - char *authheader; - enum sip_auth_type auth_type; + char *distinctive_ring; /*!< Distinctive ring header */ + char *osptoken; /*!< OSP token for this call */ + int addsipheaders; /*!< Add extra SIP headers */ + char *uri_options; /*!< URI options to add to the URI */ + char *vxml_url; /*!< VXML url for Cisco phones */ + char *auth; /*!< Authentication */ + char *authheader; /*!< Auth header */ + enum sip_auth_type auth_type; /*!< Authentication type */ }; struct sip_route { @@ -480,78 +477,78 @@ struct sip_route { }; enum domain_mode { - SIP_DOMAIN_AUTO, - SIP_DOMAIN_CONFIG, + SIP_DOMAIN_AUTO, /*!< This domain is auto-configured */ + SIP_DOMAIN_CONFIG, /*!< This domain is from configuration */ }; struct domain { - char domain[MAXHOSTNAMELEN]; - char context[AST_MAX_EXTENSION]; - enum domain_mode mode; - AST_LIST_ENTRY(domain) list; + char domain[MAXHOSTNAMELEN]; /*!< SIP domain we are responsible for */ + char context[AST_MAX_EXTENSION]; /*!< Incoming context for this domain */ + enum domain_mode mode; /*!< How did we find this domain? */ + AST_LIST_ENTRY(domain) list; /*!< List mechanics */ }; -static AST_LIST_HEAD_STATIC(domain_list, domain); +static AST_LIST_HEAD_STATIC(domain_list, domain); /*!< The SIP domain list */ -int allow_external_domains; +int allow_external_domains; /*!< Accept calls to external SIP domains? */ -/* sip_history: Structure for saving transactions within a SIP dialog */ +/*! \brief sip_history: Structure for saving transactions within a SIP dialog */ struct sip_history { char event[80]; struct sip_history *next; }; -/* sip_auth: Creadentials for authentication to other SIP services */ +/*! \brief sip_auth: Creadentials for authentication to other SIP services */ struct sip_auth { - char realm[AST_MAX_EXTENSION]; /* Realm in which these credentials are valid */ - char username[256]; /* Username */ - char secret[256]; /* Secret */ - char md5secret[256]; /* MD5Secret */ - struct sip_auth *next; /* Next auth structure in list */ + char realm[AST_MAX_EXTENSION]; /*!< Realm in which these credentials are valid */ + char username[256]; /*!< Username */ + char secret[256]; /*!< Secret */ + char md5secret[256]; /*!< MD5Secret */ + struct sip_auth *next; /*!< Next auth structure in list */ }; -#define SIP_ALREADYGONE (1 << 0) /* Whether or not we've already been destroyed by our peer */ -#define SIP_NEEDDESTROY (1 << 1) /* if we need to be destroyed */ -#define SIP_NOVIDEO (1 << 2) /* Didn't get video in invite, don't offer */ -#define SIP_RINGING (1 << 3) /* Have sent 180 ringing */ -#define SIP_PROGRESS_SENT (1 << 4) /* Have sent 183 message progress */ -#define SIP_NEEDREINVITE (1 << 5) /* Do we need to send another reinvite? */ -#define SIP_PENDINGBYE (1 << 6) /* Need to send bye after we ack? */ -#define SIP_GOTREFER (1 << 7) /* Got a refer? */ -#define SIP_PROMISCREDIR (1 << 8) /* Promiscuous redirection */ -#define SIP_TRUSTRPID (1 << 9) /* Trust RPID headers? */ -#define SIP_USEREQPHONE (1 << 10) /* Add user=phone to numeric URI. Default off */ -#define SIP_REALTIME (1 << 11) /* Flag for realtime users */ -#define SIP_USECLIENTCODE (1 << 12) /* Trust X-ClientCode info message */ -#define SIP_OUTGOING (1 << 13) /* Is this an outgoing call? */ +#define SIP_ALREADYGONE (1 << 0) /*!< Whether or not we've already been destroyed by our peer */ +#define SIP_NEEDDESTROY (1 << 1) /*!< if we need to be destroyed */ +#define SIP_NOVIDEO (1 << 2) /*!< Didn't get video in invite, don't offer */ +#define SIP_RINGING (1 << 3) /*!< Have sent 180 ringing */ +#define SIP_PROGRESS_SENT (1 << 4) /*!< Have sent 183 message progress */ +#define SIP_NEEDREINVITE (1 << 5) /*!< Do we need to send another reinvite? */ +#define SIP_PENDINGBYE (1 << 6) /*!< Need to send bye after we ack? */ +#define SIP_GOTREFER (1 << 7) /*!< Got a refer? */ +#define SIP_PROMISCREDIR (1 << 8) /*!< Promiscuous redirection */ +#define SIP_TRUSTRPID (1 << 9) /*!< Trust RPID headers? */ +#define SIP_USEREQPHONE (1 << 10) /*!< Add user=phone to numeric URI. Default off */ +#define SIP_REALTIME (1 << 11) /*!< Flag for realtime users */ +#define SIP_USECLIENTCODE (1 << 12) /*!< Trust X-ClientCode info message */ +#define SIP_OUTGOING (1 << 13) /*!< Is this an outgoing call? */ #define SIP_SELFDESTRUCT (1 << 14) -#define SIP_DYNAMIC (1 << 15) /* Is this a dynamic peer? */ +#define SIP_DYNAMIC (1 << 15) /*!< Is this a dynamic peer? */ /* --- Choices for DTMF support in SIP channel */ -#define SIP_DTMF (3 << 16) /* three settings, uses two bits */ -#define SIP_DTMF_RFC2833 (0 << 16) /* RTP DTMF */ -#define SIP_DTMF_INBAND (1 << 16) /* Inband audio, only for ULAW/ALAW */ -#define SIP_DTMF_INFO (2 << 16) /* SIP Info messages */ -#define SIP_DTMF_AUTO (3 << 16) /* AUTO switch between rfc2833 and in-band DTMF */ +#define SIP_DTMF (3 << 16) /*!< three settings, uses two bits */ +#define SIP_DTMF_RFC2833 (0 << 16) /*!< RTP DTMF */ +#define SIP_DTMF_INBAND (1 << 16) /*!< Inband audio, only for ULAW/ALAW */ +#define SIP_DTMF_INFO (2 << 16) /*!< SIP Info messages */ +#define SIP_DTMF_AUTO (3 << 16) /*!< AUTO switch between rfc2833 and in-band DTMF */ /* NAT settings */ -#define SIP_NAT (3 << 18) /* four settings, uses two bits */ -#define SIP_NAT_NEVER (0 << 18) /* No nat support */ +#define SIP_NAT (3 << 18) /*!< four settings, uses two bits */ +#define SIP_NAT_NEVER (0 << 18) /*!< No nat support */ #define SIP_NAT_RFC3581 (1 << 18) #define SIP_NAT_ROUTE (2 << 18) #define SIP_NAT_ALWAYS (3 << 18) /* re-INVITE related settings */ -#define SIP_REINVITE (3 << 20) /* two bits used */ -#define SIP_CAN_REINVITE (1 << 20) /* allow peers to be reinvited to send media directly p2p */ -#define SIP_REINVITE_UPDATE (2 << 20) /* use UPDATE (RFC3311) when reinviting this peer */ +#define SIP_REINVITE (3 << 20) /*!< two bits used */ +#define SIP_CAN_REINVITE (1 << 20) /*!< allow peers to be reinvited to send media directly p2p */ +#define SIP_REINVITE_UPDATE (2 << 20) /*!< use UPDATE (RFC3311) when reinviting this peer */ /* "insecure" settings */ -#define SIP_INSECURE_PORT (1 << 22) /* don't require matching port for incoming requests */ -#define SIP_INSECURE_INVITE (1 << 23) /* don't require authentication for incoming INVITEs */ +#define SIP_INSECURE_PORT (1 << 22) /*!< don't require matching port for incoming requests */ +#define SIP_INSECURE_INVITE (1 << 23) /*!< don't require authentication for incoming INVITEs */ /* Sending PROGRESS in-band settings */ -#define SIP_PROG_INBAND (3 << 24) /* three settings, uses two bits */ +#define SIP_PROG_INBAND (3 << 24) /*!< three settings, uses two bits */ #define SIP_PROG_INBAND_NEVER (0 << 24) #define SIP_PROG_INBAND_NO (1 << 24) #define SIP_PROG_INBAND_YES (2 << 24) /* Open Settlement Protocol authentication */ -#define SIP_OSPAUTH (3 << 26) /* four settings, uses two bits */ +#define SIP_OSPAUTH (3 << 26) /*!< four settings, uses two bits */ #define SIP_OSPAUTH_NO (0 << 26) #define SIP_OSPAUTH_GATEWAY (1 << 26) #define SIP_OSPAUTH_PROXY (2 << 26) @@ -574,222 +571,222 @@ struct sip_auth { #define SIP_PAGE2_RTIGNOREREGEXPIRE (1 << 3) /* SIP packet flags */ -#define SIP_PKT_DEBUG (1 << 0) /* Debug this packet */ -#define SIP_PKT_WITH_TOTAG (1 << 1) /* This packet has a to-tag */ +#define SIP_PKT_DEBUG (1 << 0) /*!< Debug this packet */ +#define SIP_PKT_WITH_TOTAG (1 << 1) /*!< This packet has a to-tag */ static int global_rtautoclear = 120; -/* sip_pvt: PVT structures are used for each SIP conversation, ie. a call */ +/*! \brief sip_pvt: PVT structures are used for each SIP conversation, ie. a call */ static struct sip_pvt { - ast_mutex_t lock; /* Channel private lock */ - int method; /* SIP method of this packet */ - char callid[80]; /* Global CallID */ - char randdata[80]; /* Random data */ - struct ast_codec_pref prefs; /* codec prefs */ - unsigned int ocseq; /* Current outgoing seqno */ - unsigned int icseq; /* Current incoming seqno */ - ast_group_t callgroup; /* Call group */ - ast_group_t pickupgroup; /* Pickup group */ - int lastinvite; /* Last Cseq of invite */ - unsigned int flags; /* SIP_ flags */ - int timer_t1; /* SIP timer T1, ms rtt */ - unsigned int sipoptions; /* Supported SIP sipoptions on the other end */ - int capability; /* Special capability (codec) */ - int jointcapability; /* Supported capability at both ends (codecs ) */ - int peercapability; /* Supported peer capability */ - int prefcodec; /* Preferred codec (outbound only) */ + ast_mutex_t lock; /*!< Channel private lock */ + int method; /*!< SIP method of this packet */ + char callid[80]; /*!< Global CallID */ + char randdata[80]; /*!< Random data */ + struct ast_codec_pref prefs; /*!< codec prefs */ + unsigned int ocseq; /*!< Current outgoing seqno */ + unsigned int icseq; /*!< Current incoming seqno */ + ast_group_t callgroup; /*!< Call group */ + ast_group_t pickupgroup; /*!< Pickup group */ + int lastinvite; /*!< Last Cseq of invite */ + unsigned int flags; /*!< SIP_ flags */ + int timer_t1; /*!< SIP timer T1, ms rtt */ + unsigned int sipoptions; /*!< Supported SIP sipoptions on the other end */ + int capability; /*!< Special capability (codec) */ + int jointcapability; /*!< Supported capability at both ends (codecs ) */ + int peercapability; /*!< Supported peer capability */ + int prefcodec; /*!< Preferred codec (outbound only) */ int noncodeccapability; - int callingpres; /* Calling presentation */ - int authtries; /* Times we've tried to authenticate */ - int expiry; /* How long we take to expire */ - int branch; /* One random number */ - char tag[11]; /* Another random number */ - int sessionid; /* SDP Session ID */ - int sessionversion; /* SDP Session Version */ - struct sockaddr_in sa; /* Our peer */ - struct sockaddr_in redirip; /* Where our RTP should be going if not to us */ - struct sockaddr_in vredirip; /* Where our Video RTP should be going if not to us */ - int redircodecs; /* Redirect codecs */ - struct sockaddr_in recv; /* Received as */ - struct in_addr ourip; /* Our IP */ - struct ast_channel *owner; /* Who owns us */ - char exten[AST_MAX_EXTENSION]; /* Extension where to start */ - char refer_to[AST_MAX_EXTENSION]; /* Place to store REFER-TO extension */ - char referred_by[AST_MAX_EXTENSION]; /* Place to store REFERRED-BY extension */ - char refer_contact[AST_MAX_EXTENSION]; /* Place to store Contact info from a REFER extension */ - struct sip_pvt *refer_call; /* Call we are referring */ - struct sip_route *route; /* Head of linked list of routing steps (fm Record-Route) */ - int route_persistant; /* Is this the "real" route? */ - char from[256]; /* The From: header */ - char useragent[256]; /* User agent in SIP request */ - char context[AST_MAX_CONTEXT]; /* Context for this call */ - char subscribecontext[AST_MAX_CONTEXT]; /* Subscribecontext */ - char fromdomain[MAXHOSTNAMELEN]; /* Domain to show in the from field */ - char fromuser[AST_MAX_EXTENSION]; /* User to show in the user field */ - char fromname[AST_MAX_EXTENSION]; /* Name to show in the user field */ - char tohost[MAXHOSTNAMELEN]; /* Host we should put in the "to" field */ - char language[MAX_LANGUAGE]; /* Default language for this call */ - char musicclass[MAX_MUSICCLASS]; /* Music on Hold class */ - char rdnis[256]; /* Referring DNIS */ - char theirtag[256]; /* Their tag */ - char username[256]; /* [user] name */ - char peername[256]; /* [peer] name, not set if [user] */ - char authname[256]; /* Who we use for authentication */ - char uri[256]; /* Original requested URI */ - char okcontacturi[256]; /* URI from the 200 OK on INVITE */ - char peersecret[256]; /* Password */ + int callingpres; /*!< Calling presentation */ + int authtries; /*!< Times we've tried to authenticate */ + int expiry; /*!< How long we take to expire */ + int branch; /*!< One random number */ + char tag[11]; /*!< Another random number */ + int sessionid; /*!< SDP Session ID */ + int sessionversion; /*!< SDP Session Version */ + struct sockaddr_in sa; /*!< Our peer */ + struct sockaddr_in redirip; /*!< Where our RTP should be going if not to us */ + struct sockaddr_in vredirip; /*!< Where our Video RTP should be going if not to us */ + int redircodecs; /*!< Redirect codecs */ + struct sockaddr_in recv; /*!< Received as */ + struct in_addr ourip; /*!< Our IP */ + struct ast_channel *owner; /*!< Who owns us */ + char exten[AST_MAX_EXTENSION]; /*!< Extension where to start */ + char refer_to[AST_MAX_EXTENSION]; /*!< Place to store REFER-TO extension */ + char referred_by[AST_MAX_EXTENSION]; /*!< Place to store REFERRED-BY extension */ + char refer_contact[AST_MAX_EXTENSION]; /*!< Place to store Contact info from a REFER extension */ + struct sip_pvt *refer_call; /*!< Call we are referring */ + struct sip_route *route; /*!< Head of linked list of routing steps (fm Record-Route) */ + int route_persistant; /*!< Is this the "real" route? */ + char from[256]; /*!< The From: header */ + char useragent[256]; /*!< User agent in SIP request */ + char context[AST_MAX_CONTEXT]; /*!< Context for this call */ + char subscribecontext[AST_MAX_CONTEXT]; /*!< Subscribecontext */ + char fromdomain[MAXHOSTNAMELEN]; /*!< Domain to show in the from field */ + char fromuser[AST_MAX_EXTENSION]; /*!< User to show in the user field */ + char fromname[AST_MAX_EXTENSION]; /*!< Name to show in the user field */ + char tohost[MAXHOSTNAMELEN]; /*!< Host we should put in the "to" field */ + char language[MAX_LANGUAGE]; /*!< Default language for this call */ + char musicclass[MAX_MUSICCLASS]; /*!< Music on Hold class */ + char rdnis[256]; /*!< Referring DNIS */ + char theirtag[256]; /*!< Their tag */ + char username[256]; /*!< [user] name */ + char peername[256]; /*!< [peer] name, not set if [user] */ + char authname[256]; /*!< Who we use for authentication */ + char uri[256]; /*!< Original requested URI */ + char okcontacturi[256]; /*!< URI from the 200 OK on INVITE */ + char peersecret[256]; /*!< Password */ char peermd5secret[256]; - struct sip_auth *peerauth; /* Realm authentication */ - char cid_num[256]; /* Caller*ID */ - char cid_name[256]; /* Caller*ID */ - char via[256]; /* Via: header */ - char fullcontact[128]; /* The Contact: that the UA registers with us */ - char accountcode[AST_MAX_ACCOUNT_CODE]; /* Account code */ - char our_contact[256]; /* Our contact header */ - char *rpid; /* Our RPID header */ - char *rpid_from; /* Our RPID From header */ - char realm[MAXHOSTNAMELEN]; /* Authorization realm */ - char nonce[256]; /* Authorization nonce */ - int noncecount; /* Nonce-count */ - char opaque[256]; /* Opaque nonsense */ - char qop[80]; /* Quality of Protection, since SIP wasn't complicated enough yet. */ - char domain[MAXHOSTNAMELEN]; /* Authorization domain */ - char lastmsg[256]; /* Last Message sent/received */ - int amaflags; /* AMA Flags */ - int pendinginvite; /* Any pending invite */ + struct sip_auth *peerauth; /*!< Realm authentication */ + char cid_num[256]; /*!< Caller*ID */ + char cid_name[256]; /*!< Caller*ID */ + char via[256]; /*!< Via: header */ + char fullcontact[128]; /*!< The Contact: that the UA registers with us */ + char accountcode[AST_MAX_ACCOUNT_CODE]; /*!< Account code */ + char our_contact[256]; /*!< Our contact header */ + char *rpid; /*!< Our RPID header */ + char *rpid_from; /*!< Our RPID From header */ + char realm[MAXHOSTNAMELEN]; /*!< Authorization realm */ + char nonce[256]; /*!< Authorization nonce */ + int noncecount; /*!< Nonce-count */ + char opaque[256]; /*!< Opaque nonsense */ + char qop[80]; /*!< Quality of Protection, since SIP wasn't complicated enough yet. */ + char domain[MAXHOSTNAMELEN]; /*!< Authorization domain */ + char lastmsg[256]; /*!< Last Message sent/received */ + int amaflags; /*!< AMA Flags */ + int pendinginvite; /*!< Any pending invite */ #ifdef OSP_SUPPORT - int osphandle; /* OSP Handle for call */ - time_t ospstart; /* OSP Start time */ - unsigned int osptimelimit; /* OSP call duration limit */ + int osphandle; /*!< OSP Handle for call */ + time_t ospstart; /*!< OSP Start time */ + unsigned int osptimelimit; /*!< OSP call duration limit */ #endif - struct sip_request initreq; /* Initial request */ + struct sip_request initreq; /*!< Initial request */ - int maxtime; /* Max time for first response */ - int initid; /* Auto-congest ID if appropriate */ - int autokillid; /* Auto-kill ID */ - time_t lastrtprx; /* Last RTP received */ - time_t lastrtptx; /* Last RTP sent */ - int rtptimeout; /* RTP timeout time */ - int rtpholdtimeout; /* RTP timeout when on hold */ - int rtpkeepalive; /* Send RTP packets for keepalive */ - enum subscriptiontype subscribed; /* Is this call a subscription? */ + int maxtime; /*!< Max time for first response */ + int initid; /*!< Auto-congest ID if appropriate */ + int autokillid; /*!< Auto-kill ID */ + time_t lastrtprx; /*!< Last RTP received */ + time_t lastrtptx; /*!< Last RTP sent */ + int rtptimeout; /*!< RTP timeout time */ + int rtpholdtimeout; /*!< RTP timeout when on hold */ + int rtpkeepalive; /*!< Send RTP packets for keepalive */ + enum subscriptiontype subscribed; /*!< Is this call a subscription? */ int stateid; - int laststate; /* Last known extension state */ + int laststate; /*!< Last known extension state */ int dialogver; - struct ast_dsp *vad; /* Voice Activation Detection dsp */ + struct ast_dsp *vad; /*!< Voice Activation Detection dsp */ - struct sip_peer *peerpoke; /* If this calls is to poke a peer, which one */ - struct sip_registry *registry; /* If this is a REGISTER call, to which registry */ - struct ast_rtp *rtp; /* RTP Session */ - struct ast_rtp *vrtp; /* Video RTP session */ - struct sip_pkt *packets; /* Packets scheduled for re-transmission */ - struct sip_history *history; /* History of this SIP dialog */ - struct ast_variable *chanvars; /* Channel variables to set for call */ - struct sip_pvt *next; /* Next call in chain */ - struct sip_invite_param *options; /* Options for INVITE */ + struct sip_peer *peerpoke; /*!< If this calls is to poke a peer, which one */ + struct sip_registry *registry; /*!< If this is a REGISTER call, to which registry */ + struct ast_rtp *rtp; /*!< RTP Session */ + struct ast_rtp *vrtp; /*!< Video RTP session */ + struct sip_pkt *packets; /*!< Packets scheduled for re-transmission */ + struct sip_history *history; /*!< History of this SIP dialog */ + struct ast_variable *chanvars; /*!< Channel variables to set for call */ + struct sip_pvt *next; /*!< Next call in chain */ + struct sip_invite_param *options; /*!< Options for INVITE */ } *iflist = NULL; #define FLAG_RESPONSE (1 << 0) #define FLAG_FATAL (1 << 1) -/* sip packet - read in sipsock_read, transmitted in send_request */ +/*! \brief sip packet - read in sipsock_read, transmitted in send_request */ struct sip_pkt { - struct sip_pkt *next; /* Next packet */ - int retrans; /* Retransmission number */ - int method; /* SIP method for this packet */ - int seqno; /* Sequence number */ - unsigned int flags; /* non-zero if this is a response packet (e.g. 200 OK) */ - struct sip_pvt *owner; /* Owner call */ - int retransid; /* Retransmission ID */ - int timer_a; /* SIP timer A, retransmission timer */ - int timer_t1; /* SIP Timer T1, estimated RTT or 500 ms */ - int packetlen; /* Length of packet */ + struct sip_pkt *next; /*!< Next packet */ + int retrans; /*!< Retransmission number */ + int method; /*!< SIP method for this packet */ + int seqno; /*!< Sequence number */ + unsigned int flags; /*!< non-zero if this is a response packet (e.g. 200 OK) */ + struct sip_pvt *owner; /*!< Owner call */ + int retransid; /*!< Retransmission ID */ + int timer_a; /*!< SIP timer A, retransmission timer */ + int timer_t1; /*!< SIP Timer T1, estimated RTT or 500 ms */ + int packetlen; /*!< Length of packet */ char data[0]; }; -/* Structure for SIP user data. User's place calls to us */ +/*! \brief Structure for SIP user data. User's place calls to us */ struct sip_user { /* Users who can access various contexts */ ASTOBJ_COMPONENTS(struct sip_user); - char secret[80]; /* Password */ - char md5secret[80]; /* Password in md5 */ - char context[AST_MAX_CONTEXT]; /* Default context for incoming calls */ + char secret[80]; /*!< Password */ + char md5secret[80]; /*!< Password in md5 */ + char context[AST_MAX_CONTEXT]; /*!< Default context for incoming calls */ char subscribecontext[AST_MAX_CONTEXT]; /* Default context for subscriptions */ - char cid_num[80]; /* Caller ID num */ - char cid_name[80]; /* Caller ID name */ + char cid_num[80]; /*!< Caller ID num */ + char cid_name[80]; /*!< Caller ID name */ char accountcode[AST_MAX_ACCOUNT_CODE]; /* Account code */ - char language[MAX_LANGUAGE]; /* Default language for this user */ - char musicclass[MAX_MUSICCLASS];/* Music on Hold class */ - char useragent[256]; /* User agent in SIP request */ - struct ast_codec_pref prefs; /* codec prefs */ - ast_group_t callgroup; /* Call group */ - ast_group_t pickupgroup; /* Pickup Group */ - unsigned int flags; /* SIP flags */ - unsigned int sipoptions; /* Supported SIP options */ - struct ast_flags flags_page2; /* SIP_PAGE2 flags */ - int amaflags; /* AMA flags for billing */ - int callingpres; /* Calling id presentation */ - int capability; /* Codec capability */ - int inUse; /* Number of calls in use */ - int call_limit; /* Limit of concurrent calls */ - struct ast_ha *ha; /* ACL setting */ - struct ast_variable *chanvars; /* Variables to set for channel created by user */ + char language[MAX_LANGUAGE]; /*!< Default language for this user */ + char musicclass[MAX_MUSICCLASS];/*!< Music on Hold class */ + char useragent[256]; /*!< User agent in SIP request */ + struct ast_codec_pref prefs; /*!< codec prefs */ + ast_group_t callgroup; /*!< Call group */ + ast_group_t pickupgroup; /*!< Pickup Group */ + unsigned int flags; /*!< SIP flags */ + unsigned int sipoptions; /*!< Supported SIP options */ + struct ast_flags flags_page2; /*!< SIP_PAGE2 flags */ + int amaflags; /*!< AMA flags for billing */ + int callingpres; /*!< Calling id presentation */ + int capability; /*!< Codec capability */ + int inUse; /*!< Number of calls in use */ + int call_limit; /*!< Limit of concurrent calls */ + struct ast_ha *ha; /*!< ACL setting */ + struct ast_variable *chanvars; /*!< Variables to set for channel created by user */ }; /* Structure for SIP peer data, we place calls to peers if registered or fixed IP address (host) */ struct sip_peer { - ASTOBJ_COMPONENTS(struct sip_peer); /* name, refcount, objflags, object pointers */ - /* peer->name is the unique name of this object */ - char secret[80]; /* Password */ - char md5secret[80]; /* Password in MD5 */ - struct sip_auth *auth; /* Realm authentication list */ - char context[AST_MAX_CONTEXT]; /* Default context for incoming calls */ - char subscribecontext[AST_MAX_CONTEXT]; /* Default context for subscriptions */ - char username[80]; /* Temporary username until registration */ - char accountcode[AST_MAX_ACCOUNT_CODE]; /* Account code */ - int amaflags; /* AMA Flags (for billing) */ - char tohost[MAXHOSTNAMELEN]; /* If not dynamic, IP address */ - char regexten[AST_MAX_EXTENSION]; /* Extension to register (if regcontext is used) */ - char fromuser[80]; /* From: user when calling this peer */ - char fromdomain[MAXHOSTNAMELEN]; /* From: domain when calling this peer */ - char fullcontact[256]; /* Contact registered with us (not in sip.conf) */ - char cid_num[80]; /* Caller ID num */ - char cid_name[80]; /* Caller ID name */ - int callingpres; /* Calling id presentation */ - int inUse; /* Number of calls in use */ - int call_limit; /* Limit of concurrent calls */ - char vmexten[AST_MAX_EXTENSION]; /* Dialplan extension for MWI notify message*/ - char mailbox[AST_MAX_EXTENSION]; /* Mailbox setting for MWI checks */ - char language[MAX_LANGUAGE]; /* Default language for prompts */ - char musicclass[MAX_MUSICCLASS];/* Music on Hold class */ - char useragent[256]; /* User agent in SIP request (saved from registration) */ - struct ast_codec_pref prefs; /* codec prefs */ + ASTOBJ_COMPONENTS(struct sip_peer); /*!< name, refcount, objflags, object pointers */ + /*!< peer->name is the unique name of this object */ + char secret[80]; /*!< Password */ + char md5secret[80]; /*!< Password in MD5 */ + struct sip_auth *auth; /*!< Realm authentication list */ + char context[AST_MAX_CONTEXT]; /*!< Default context for incoming calls */ + char subscribecontext[AST_MAX_CONTEXT]; /*!< Default context for subscriptions */ + char username[80]; /*!< Temporary username until registration */ + char accountcode[AST_MAX_ACCOUNT_CODE]; /*!< Account code */ + int amaflags; /*!< AMA Flags (for billing) */ + char tohost[MAXHOSTNAMELEN]; /*!< If not dynamic, IP address */ + char regexten[AST_MAX_EXTENSION]; /*!< Extension to register (if regcontext is used) */ + char fromuser[80]; /*!< From: user when calling this peer */ + char fromdomain[MAXHOSTNAMELEN]; /*!< From: domain when calling this peer */ + char fullcontact[256]; /*!< Contact registered with us (not in sip.conf) */ + char cid_num[80]; /*!< Caller ID num */ + char cid_name[80]; /*!< Caller ID name */ + int callingpres; /*!< Calling id presentation */ + int inUse; /*!< Number of calls in use */ + int call_limit; /*!< Limit of concurrent calls */ + char vmexten[AST_MAX_EXTENSION]; /*!< Dialplan extension for MWI notify message*/ + char mailbox[AST_MAX_EXTENSION]; /*!< Mailbox setting for MWI checks */ + char language[MAX_LANGUAGE]; /*!< Default language for prompts */ + char musicclass[MAX_MUSICCLASS];/*!< Music on Hold class */ + char useragent[256]; /*!< User agent in SIP request (saved from registration) */ + struct ast_codec_pref prefs; /*!< codec prefs */ int lastmsgssent; - time_t lastmsgcheck; /* Last time we checked for MWI */ - unsigned int flags; /* SIP flags */ - unsigned int sipoptions; /* Supported SIP options */ - struct ast_flags flags_page2; /* SIP_PAGE2 flags */ - int expire; /* When to expire this peer registration */ - int capability; /* Codec capability */ - int rtptimeout; /* RTP timeout */ - int rtpholdtimeout; /* RTP Hold Timeout */ - int rtpkeepalive; /* Send RTP packets for keepalive */ - ast_group_t callgroup; /* Call group */ - ast_group_t pickupgroup; /* Pickup group */ - struct ast_dnsmgr_entry *dnsmgr;/* DNS refresh manager for peer */ - struct sockaddr_in addr; /* IP address of peer */ + time_t lastmsgcheck; /*!< Last time we checked for MWI */ + unsigned int flags; /*!< SIP flags */ + unsigned int sipoptions; /*!< Supported SIP options */ + struct ast_flags flags_page2; /*!< SIP_PAGE2 flags */ + int expire; /*!< When to expire this peer registration */ + int capability; /*!< Codec capability */ + int rtptimeout; /*!< RTP timeout */ + int rtpholdtimeout; /*!< RTP Hold Timeout */ + int rtpkeepalive; /*!< Send RTP packets for keepalive */ + ast_group_t callgroup; /*!< Call group */ + ast_group_t pickupgroup; /*!< Pickup group */ + struct ast_dnsmgr_entry *dnsmgr;/*!< DNS refresh manager for peer */ + struct sockaddr_in addr; /*!< IP address of peer */ /* Qualification */ - struct sip_pvt *call; /* Call pointer */ - int pokeexpire; /* When to expire poke (qualify= checking) */ - int lastms; /* How long last response took (in ms), or -1 for no response */ - int maxms; /* Max ms we will accept for the host to be up, 0 to not monitor */ - struct timeval ps; /* Ping send time */ + struct sip_pvt *call; /*!< Call pointer */ + int pokeexpire; /*!< When to expire poke (qualify= checking) */ + int lastms; /*!< How long last response took (in ms), or -1 for no response */ + int maxms; /*!< Max ms we will accept for the host to be up, 0 to not monitor */ + struct timeval ps; /*!< Ping send time */ - struct sockaddr_in defaddr; /* Default IP address, used until registration */ - struct ast_ha *ha; /* Access control list */ - struct ast_variable *chanvars; /* Variables to set for channel created by user */ + struct sockaddr_in defaddr; /*!< Default IP address, used until registration */ + struct ast_ha *ha; /*!< Access control list */ + struct ast_variable *chanvars; /*!< Variables to set for channel created by user */ int lastmsg; }; @@ -807,50 +804,50 @@ static int sip_reloading = 0; #define REG_STATE_FAILED 7 -/* sip_registry: Registrations with other SIP proxies */ +/*! \brief sip_registry: Registrations with other SIP proxies */ struct sip_registry { ASTOBJ_COMPONENTS_FULL(struct sip_registry,1,1); - int portno; /* Optional port override */ - char username[80]; /* Who we are registering as */ - char authuser[80]; /* Who we *authenticate* as */ - char hostname[MAXHOSTNAMELEN]; /* Domain or host we register to */ - char secret[80]; /* Password or key name in []'s */ - char md5secret[80]; - char contact[256]; /* Contact extension */ + int portno; /*!< Optional port override */ + char username[80]; /*!< Who we are registering as */ + char authuser[80]; /*!< Who we *authenticate* as */ + char hostname[MAXHOSTNAMELEN]; /*!< Domain or host we register to */ + char secret[80]; /*!< Password in clear text */ + char md5secret[80]; /*!< Password in md5 */ + char contact[256]; /*!< Contact extension */ char random[80]; - int expire; /* Sched ID of expiration */ - int regattempts; /* Number of attempts (since the last success) */ - int timeout; /* sched id of sip_reg_timeout */ - int refresh; /* How often to refresh */ - struct sip_pvt *call; /* create a sip_pvt structure for each outbound "registration call" in progress */ - int regstate; /* Registration state (see above) */ - int callid_valid; /* 0 means we haven't chosen callid for this registry yet. */ - char callid[80]; /* Global CallID for this registry */ - unsigned int ocseq; /* Sequence number we got to for REGISTERs for this registry */ - struct sockaddr_in us; /* Who the server thinks we are */ + int expire; /*!< Sched ID of expiration */ + int regattempts; /*!< Number of attempts (since the last success) */ + int timeout; /*!< sched id of sip_reg_timeout */ + int refresh; /*!< How often to refresh */ + struct sip_pvt *call; /*!< create a sip_pvt structure for each outbound "registration call" in progress */ + int regstate; /*!< Registration state (see above) */ + int callid_valid; /*!< 0 means we haven't chosen callid for this registry yet. */ + char callid[80]; /*!< Global CallID for this registry */ + unsigned int ocseq; /*!< Sequence number we got to for REGISTERs for this registry */ + struct sockaddr_in us; /*!< Who the server thinks we are */ /* Saved headers */ - char realm[MAXHOSTNAMELEN]; /* Authorization realm */ - char nonce[256]; /* Authorization nonce */ - char domain[MAXHOSTNAMELEN]; /* Authorization domain */ - char opaque[256]; /* Opaque nonsense */ - char qop[80]; /* Quality of Protection. */ - int noncecount; /* Nonce-count */ + char realm[MAXHOSTNAMELEN]; /*!< Authorization realm */ + char nonce[256]; /*!< Authorization nonce */ + char domain[MAXHOSTNAMELEN]; /*!< Authorization domain */ + char opaque[256]; /*!< Opaque nonsense */ + char qop[80]; /*!< Quality of Protection. */ + int noncecount; /*!< Nonce-count */ - char lastmsg[256]; /* Last Message sent/received */ + char lastmsg[256]; /*!< Last Message sent/received */ }; -/*--- The user list: Users and friends ---*/ +/*! \brief The user list: Users and friends ---*/ static struct ast_user_list { ASTOBJ_CONTAINER_COMPONENTS(struct sip_user); } userl; -/*--- The peer list: Peers and Friends ---*/ +/*! \brief The peer list: Peers and Friends ---*/ static struct ast_peer_list { ASTOBJ_CONTAINER_COMPONENTS(struct sip_peer); } peerl; -/*--- The register list: Other SIP proxys we register with and call ---*/ +/*! \brief The register list: Other SIP proxys we register with and call ---*/ static struct ast_register_list { ASTOBJ_CONTAINER_COMPONENTS(struct sip_registry); int recheck; @@ -872,7 +869,7 @@ static struct ast_ha *localaddr; /* The list of manual NOTIFY types we know how to send */ struct ast_config *notify_types; -static struct sip_auth *authl; /* Authentication list */ +static struct sip_auth *authl; /*!< Authentication list */ static struct ast_frame *sip_read(struct ast_channel *ast); @@ -923,7 +920,7 @@ static const struct cfsubscription_types *find_subscription_type(enum subscripti static int transmit_state_notify(struct sip_pvt *p, int state, int full, int substate); static char *gettag(struct sip_request *req, char *header, char *tagbuf, int tagbufsize); -/* Definition of this channel for channel registration */ +/*! \brief Definition of this channel for PBX channel registration */ static const struct ast_channel_tech sip_tech = { .type = channeltype, .description = "Session Initiation Protocol (SIP)", @@ -945,7 +942,9 @@ static const struct ast_channel_tech sip_tech = { .send_text = sip_sendtext, }; -/*--- find_sip_method: Find SIP method from header */ +/*! \brief find_sip_method: Find SIP method from header + * Strictly speaking, SIP methods are case SENSITIVE, but we don't check + * following Jon Postel's rule: Be gentle in what you accept, strict with what you send */ int find_sip_method(char *msg) { int i, res = 0; @@ -953,8 +952,6 @@ int find_sip_method(char *msg) if (!msg || ast_strlen_zero(msg)) return 0; - /* Strictly speaking, SIP methods are case SENSITIVE, but we don't check */ - /* following Jon Postel's rule: Be gentle in what you accept, strict with what you send */ for (i = 1; (i < (sizeof(sip_methods) / sizeof(sip_methods[0]))) && !res; i++) { if (!strcasecmp(sip_methods[i].text, msg)) res = sip_methods[i].id; @@ -962,7 +959,7 @@ int find_sip_method(char *msg) return res; } -/*--- parse_sip_options: Parse supported header in incoming packet */ +/*! \brief parse_sip_options: Parse supported header in incoming packet */ unsigned int parse_sip_options(struct sip_pvt *pvt, char *supported) { char *next = NULL; @@ -1009,7 +1006,7 @@ unsigned int parse_sip_options(struct sip_pvt *pvt, char *supported) return profile; } -/*--- sip_debug_test_addr: See if we pass debug IP filter */ +/*! \brief sip_debug_test_addr: See if we pass debug IP filter */ static inline int sip_debug_test_addr(struct sockaddr_in *addr) { if (sipdebug == 0) @@ -1023,7 +1020,7 @@ static inline int sip_debug_test_addr(struct sockaddr_in *addr) return 1; } -/*--- sip_debug_test_pvt: Test PVT for debugging output */ +/*! \brief sip_debug_test_pvt: Test PVT for debugging output */ static inline int sip_debug_test_pvt(struct sip_pvt *p) { if (sipdebug == 0) @@ -1032,7 +1029,7 @@ static inline int sip_debug_test_pvt(struct sip_pvt *p) } -/*--- __sip_xmit: Transmit SIP message ---*/ +/*! \brief __sip_xmit: Transmit SIP message ---*/ static int __sip_xmit(struct sip_pvt *p, char *data, int len) { int res; @@ -1050,7 +1047,7 @@ static int __sip_xmit(struct sip_pvt *p, char *data, int len) static void sip_destroy(struct sip_pvt *p); -/*--- build_via: Build a Via header for a request ---*/ +/*! \brief build_via: Build a Via header for a request ---*/ static void build_via(struct sip_pvt *p, char *buf, int len) { char iabuf[INET_ADDRSTRLEN]; @@ -1062,7 +1059,7 @@ static void build_via(struct sip_pvt *p, char *buf, int len) snprintf(buf, len, "SIP/2.0/UDP %s:%d;branch=z9hG4bK%08x", ast_inet_ntoa(iabuf, sizeof(iabuf), p->ourip), ourport, p->branch); } -/*--- ast_sip_ouraddrfor: NAT fix - decide which IP address to use for ASterisk server? ---*/ +/*! \brief ast_sip_ouraddrfor: NAT fix - decide which IP address to use for ASterisk server? ---*/ /* Only used for outbound registrations */ static int ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *us) { @@ -1097,7 +1094,7 @@ static int ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *us) return 0; } -/*--- append_history: Append to SIP dialog history */ +/*! \brief append_history: Append to SIP dialog history */ /* Always returns 0 */ static int append_history(struct sip_pvt *p, const char *event, const char *data) { @@ -1133,7 +1130,7 @@ static int append_history(struct sip_pvt *p, const char *event, const char *data return 0; } -/*--- retrans_pkt: Retransmit SIP message if no answer ---*/ +/*! \brief retrans_pkt: Retransmit SIP message if no answer ---*/ static int retrans_pkt(void *data) { struct sip_pkt *pkt=data, *prev, *cur = NULL; @@ -1236,7 +1233,7 @@ static int retrans_pkt(void *data) return 0; } -/*--- __sip_reliable_xmit: transmit packet with retransmits ---*/ +/*! \brief __sip_reliable_xmit: transmit packet with retransmits ---*/ static int __sip_reliable_xmit(struct sip_pvt *p, int seqno, int resp, char *data, int len, int fatal, int sipmethod) { struct sip_pkt *pkt; @@ -1275,7 +1272,7 @@ static int __sip_reliable_xmit(struct sip_pvt *p, int seqno, int resp, char *dat return 0; } -/*--- __sip_autodestruct: Kill a call (called by scheduler) ---*/ +/*! \brief __sip_autodestruct: Kill a call (called by scheduler) ---*/ static int __sip_autodestruct(void *data) { struct sip_pvt *p = data; @@ -1301,7 +1298,7 @@ static int __sip_autodestruct(void *data) return 0; } -/*--- sip_scheddestroy: Schedule destruction of SIP call ---*/ +/*! \brief sip_scheddestroy: Schedule destruction of SIP call ---*/ static int sip_scheddestroy(struct sip_pvt *p, int ms) { char tmp[80]; @@ -1318,7 +1315,7 @@ static int sip_scheddestroy(struct sip_pvt *p, int ms) return 0; } -/*--- sip_cancel_destroy: Cancel destruction of SIP call ---*/ +/*! \brief sip_cancel_destroy: Cancel destruction of SIP call ---*/ static int sip_cancel_destroy(struct sip_pvt *p) { if (p->autokillid > -1) @@ -1328,7 +1325,7 @@ static int sip_cancel_destroy(struct sip_pvt *p) return 0; } -/*--- __sip_ack: Acknowledges receipt of a packet and stops retransmission ---*/ +/*! \brief __sip_ack: Acknowledges receipt of a packet and stops retransmission ---*/ static int __sip_ack(struct sip_pvt *p, int seqno, int resp, int sipmethod) { struct sip_pkt *cur, *prev = NULL; @@ -1397,7 +1394,7 @@ static int __sip_pretend_ack(struct sip_pvt *p) return 0; } -/*--- __sip_semi_ack: Acks receipt of packet, keep it around (used for provisional responses) ---*/ +/*! \brief __sip_semi_ack: Acks receipt of packet, keep it around (used for provisional responses) ---*/ static int __sip_semi_ack(struct sip_pvt *p, int seqno, int resp, int sipmethod) { struct sip_pkt *cur; @@ -1429,7 +1426,7 @@ static void parse_request(struct sip_request *req); static char *get_header(struct sip_request *req, char *name); static void copy_request(struct sip_request *dst,struct sip_request *src); -/*--- parse_copy: Copy SIP request, parse it */ +/*! \brief parse_copy: Copy SIP request, parse it */ static void parse_copy(struct sip_request *dst, struct sip_request *src) { memset(dst, 0, sizeof(*dst)); @@ -1438,7 +1435,7 @@ static void parse_copy(struct sip_request *dst, struct sip_request *src) parse_request(dst); } -/*--- send_response: Transmit response on SIP request---*/ +/*! \brief send_response: Transmit response on SIP request---*/ static int send_response(struct sip_pvt *p, struct sip_request *req, int reliable, int seqno) { int res; @@ -1472,7 +1469,7 @@ static int send_response(struct sip_pvt *p, struct sip_request *req, int reliabl return res; } -/*--- send_request: Send SIP Request to the other part of the dialogue ---*/ +/*! \brief send_request: Send SIP Request to the other part of the dialogue ---*/ static int send_request(struct sip_pvt *p, struct sip_request *req, int reliable, int seqno) { int res; @@ -1504,7 +1501,7 @@ static int send_request(struct sip_pvt *p, struct sip_request *req, int reliable return res; } -/*--- get_in_brackets: Pick out text in brackets from character string ---*/ +/*! \brief get_in_brackets: Pick out text in brackets from character string ---*/ /* returns pointer to terminated stripped string. modifies input string. */ static char *get_in_brackets(char *tmp) { @@ -1546,7 +1543,7 @@ static char *get_in_brackets(char *tmp) } } -/*--- sip_sendtext: Send SIP MESSAGE text within a call ---*/ +/*! \brief sip_sendtext: Send SIP MESSAGE text within a call ---*/ /* Called from PBX core text message functions */ static int sip_sendtext(struct ast_channel *ast, const char *text) { @@ -1565,7 +1562,7 @@ static int sip_sendtext(struct ast_channel *ast, const char *text) return 0; } -/*--- realtime_update_peer: Update peer object in realtime storage ---*/ +/*! \brief realtime_update_peer: Update peer object in realtime storage ---*/ static void realtime_update_peer(const char *peername, struct sockaddr_in *sin, const char *username, int expirey) { char port[10]; @@ -1583,7 +1580,7 @@ static void realtime_update_peer(const char *peername, struct sockaddr_in *sin, ast_update_realtime("sippeers", "name", peername, "ipaddr", ipaddr, "port", port, "regseconds", regseconds, "username", username, NULL); } -/*--- register_peer_exten: Automatically add peer extension to dial plan ---*/ +/*! \brief register_peer_exten: Automatically add peer extension to dial plan ---*/ static void register_peer_exten(struct sip_peer *peer, int onoff) { char multi[256]; @@ -1600,7 +1597,7 @@ static void register_peer_exten(struct sip_peer *peer, int onoff) } } -/*--- sip_destroy_peer: Destroy peer object from memory */ +/*! \brief sip_destroy_peer: Destroy peer object from memory */ static void sip_destroy_peer(struct sip_peer *peer) { /* Delete it, it needs to disappear */ @@ -1629,7 +1626,7 @@ static void sip_destroy_peer(struct sip_peer *peer) free(peer); } -/*--- update_peer: Update peer data in database (if used) ---*/ +/*! \brief update_peer: Update peer data in database (if used) ---*/ static void update_peer(struct sip_peer *p, int expiry) { if (ast_test_flag((&global_flags_page2), SIP_PAGE2_RTUPDATE) && @@ -1640,8 +1637,8 @@ static void update_peer(struct sip_peer *p, int expiry) } -/*--- realtime_peer: Get peer from realtime storage ---*/ -/* Checks the "sippeers" realtime family from extconfig.conf */ +/*! \brief realtime_peer: Get peer from realtime storage + * Checks the "sippeers" realtime family from extconfig.conf */ static struct sip_peer *realtime_peer(const char *peername, struct sockaddr_in *sin) { struct sip_peer *peer=NULL; @@ -1705,7 +1702,7 @@ static struct sip_peer *realtime_peer(const char *peername, struct sockaddr_in * return peer; } -/*--- sip_addrcmp: Support routine for find_peer ---*/ +/*! \brief sip_addrcmp: Support routine for find_peer ---*/ static int sip_addrcmp(char *name, struct sockaddr_in *sin) { /* We know name is the first field, so we can cast */ @@ -1715,8 +1712,8 @@ static int sip_addrcmp(char *name, struct sockaddr_in *sin) (p->addr.sin_addr.s_addr == sin->sin_addr.s_addr))); } -/*--- find_peer: Locate peer by name or ip address */ -/* This is used on incoming SIP message to find matching peer on ip +/*! \brief find_peer: Locate peer by name or ip address + * This is used on incoming SIP message to find matching peer on ip or outgoing message to find matching peer on name */ static struct sip_peer *find_peer(const char *peer, struct sockaddr_in *sin, int realtime) { @@ -1734,7 +1731,7 @@ static struct sip_peer *find_peer(const char *peer, struct sockaddr_in *sin, int return p; } -/*--- sip_destroy_user: Remove user object from in-memory storage ---*/ +/*! \brief sip_destroy_user: Remove user object from in-memory storage ---*/ static void sip_destroy_user(struct sip_user *user) { ast_free_ha(user->ha); @@ -1749,9 +1746,9 @@ static void sip_destroy_user(struct sip_user *user) free(user); } -/*--- realtime_user: Load user from realtime storage ---*/ -/* Loads user from "sipusers" category in realtime (extconfig.conf) */ -/* Users are matched on From: user name (the domain in skipped) */ +/*! \brief realtime_user: Load user from realtime storage + * Loads user from "sipusers" category in realtime (extconfig.conf) + * Users are matched on From: user name (the domain in skipped) */ static struct sip_user *realtime_user(const char *username) { struct ast_variable *var; @@ -1796,10 +1793,10 @@ static struct sip_user *realtime_user(const char *username) return user; } -/*--- find_user: Locate user by name ---*/ -/* Locates user by name (From: sip uri user name part) first - from in-memory list (static configuration) then from - realtime storage (defined in extconfig.conf) */ +/*! \brief find_user: Locate user by name + * Locates user by name (From: sip uri user name part) first + * from in-memory list (static configuration) then from + * realtime storage (defined in extconfig.conf) */ static struct sip_user *find_user(const char *name, int realtime) { struct sip_user *u = NULL; @@ -1810,7 +1807,7 @@ static struct sip_user *find_user(const char *name, int realtime) return u; } -/*--- create_addr_from_peer: create address structure from peer reference ---*/ +/*! \brief create_addr_from_peer: create address structure from peer reference ---*/ static int create_addr_from_peer(struct sip_pvt *r, struct sip_peer *peer) { char *callhost; @@ -1884,9 +1881,9 @@ static int create_addr_from_peer(struct sip_pvt *r, struct sip_peer *peer) return 0; } -/*--- create_addr: create address structure from peer name ---*/ -/* Or, if peer not found, find it in the global DNS */ -/* returns TRUE (-1) on failure, FALSE on success */ +/*! \brief create_addr: create address structure from peer name + * Or, if peer not found, find it in the global DNS + * returns TRUE (-1) on failure, FALSE on success */ static int create_addr(struct sip_pvt *dialog, char *opeer) { struct hostent *hp; @@ -1950,7 +1947,7 @@ static int create_addr(struct sip_pvt *dialog, char *opeer) } } -/*--- auto_congest: Scheduled congestion on a call ---*/ +/*! \brief auto_congest: Scheduled congestion on a call ---*/ static int auto_congest(void *nothing) { struct sip_pvt *p = nothing; @@ -1970,8 +1967,8 @@ static int auto_congest(void *nothing) -/*--- sip_call: Initiate SIP call from PBX ---*/ -/* used from the dial() application */ +/*! \brief sip_call: Initiate SIP call from PBX + * used from the dial() application */ static int sip_call(struct ast_channel *ast, char *dest, int timeout) { int res; @@ -2043,7 +2040,7 @@ static int sip_call(struct ast_channel *ast, char *dest, int timeout) return res; } -/*--- sip_registry_destroy: Destroy registry object ---*/ +/*! \brief sip_registry_destroy: Destroy registry object ---*/ /* Objects created with the register= statement in static configuration */ static void sip_registry_destroy(struct sip_registry *reg) { @@ -2063,7 +2060,7 @@ static void sip_registry_destroy(struct sip_registry *reg) } -/*--- __sip_destroy: Execute destrucion of call structure, release memory---*/ +/*! \brief __sip_destroy: Execute destrucion of call structure, release memory---*/ static void __sip_destroy(struct sip_pvt *p, int lockowner) { struct sip_pvt *cur, *prev = NULL; @@ -2158,9 +2155,9 @@ static void __sip_destroy(struct sip_pvt *p, int lockowner) free(p); } -/*--- update_call_counter: Handle call_limit for SIP users ---*/ -/* Note: This is going to be replaced by app_groupcount */ -/* Thought: For realtime, we should propably update storage with inuse counter... */ +/*! \brief update_call_counter: Handle call_limit for SIP users + * Note: This is going to be replaced by app_groupcount + * Thought: For realtime, we should propably update storage with inuse counter... */ static int update_call_counter(struct sip_pvt *fup, int event) { char name[256]; @@ -2240,7 +2237,7 @@ static int update_call_counter(struct sip_pvt *fup, int event) return 0; } -/*--- sip_destroy: Destroy SIP call structure ---*/ +/*! \brief sip_destroy: Destroy SIP call structure ---*/ static void sip_destroy(struct sip_pvt *p) { ast_mutex_lock(&iflock); @@ -2251,7 +2248,7 @@ static void sip_destroy(struct sip_pvt *p) static int transmit_response_reliable(struct sip_pvt *p, char *msg, struct sip_request *req, int fatal); -/*--- hangup_sip2cause: Convert SIP hangup causes to Asterisk hangup causes ---*/ +/*! \brief hangup_sip2cause: Convert SIP hangup causes to Asterisk hangup causes ---*/ static int hangup_sip2cause(int cause) { /* Possible values taken from causes.h */ @@ -2287,8 +2284,9 @@ static int hangup_sip2cause(int cause) } -/*--- hangup_cause2sip: Convert Asterisk hangup causes to SIP codes ---*/ -/* Possible values from causes.h +/*! \brief hangup_cause2sip: Convert Asterisk hangup causes to SIP codes +\verbatim + Possible values from causes.h AST_CAUSE_NOTDEFINED AST_CAUSE_NORMAL AST_CAUSE_BUSY AST_CAUSE_FAILURE AST_CAUSE_CONGESTION AST_CAUSE_UNALLOCATED @@ -2316,6 +2314,7 @@ static int hangup_sip2cause(int cause) 28 address incomplete 484 Address incomplete 29 facility rejected 501 Not implemented 31 normal unspecified 480 Temporarily unavailable +\endverbatim */ static char *hangup_cause2sip(int cause) { @@ -2365,8 +2364,8 @@ static char *hangup_cause2sip(int cause) } -/*--- sip_hangup: Hangup SIP call ---*/ -/* Part of PBX interface */ +/*! \brief sip_hangup: Hangup SIP call + * Part of PBX interface, called from ast_hangup */ static int sip_hangup(struct ast_channel *ast) { struct sip_pvt *p = ast->tech_pvt; @@ -2453,8 +2452,8 @@ static int sip_hangup(struct ast_channel *ast) return 0; } -/*--- sip_answer: Answer SIP call , send 200 OK on Invite ---*/ -/* Part of PBX interface */ +/*! \brief sip_answer: Answer SIP call , send 200 OK on Invite + * Part of PBX interface */ static int sip_answer(struct ast_channel *ast) { int res = 0,fmt; @@ -2489,7 +2488,7 @@ static int sip_answer(struct ast_channel *ast) return res; } -/*--- sip_write: Send frame to media channel (rtp) ---*/ +/*! \brief sip_write: Send frame to media channel (rtp) ---*/ static int sip_write(struct ast_channel *ast, struct ast_frame *frame) { struct sip_pvt *p = ast->tech_pvt; @@ -2541,7 +2540,7 @@ static int sip_write(struct ast_channel *ast, struct ast_frame *frame) return res; } -/*--- sip_fixup: Fix up a channel: If a channel is consumed, this is called. +/*! \brief sip_fixup: Fix up a channel: If a channel is consumed, this is called. Basically update any ->owner links ----*/ static int sip_fixup(struct ast_channel *oldchan, struct ast_channel *newchan) { @@ -2557,7 +2556,7 @@ static int sip_fixup(struct ast_channel *oldchan, struct ast_channel *newchan) return 0; } -/*--- sip_senddigit: Send DTMF character on SIP channel */ +/*! \brief sip_senddigit: Send DTMF character on SIP channel */ /* within one call, we're able to transmit in many methods simultaneously */ static int sip_senddigit(struct ast_channel *ast, char digit) { @@ -2582,7 +2581,7 @@ static int sip_senddigit(struct ast_channel *ast, char digit) -/*--- sip_transfer: Transfer SIP call */ +/*! \brief sip_transfer: Transfer SIP call */ static int sip_transfer(struct ast_channel *ast, const char *dest) { struct sip_pvt *p = ast->tech_pvt; @@ -2597,8 +2596,8 @@ static int sip_transfer(struct ast_channel *ast, const char *dest) return res; } -/*--- sip_indicate: Play indication to user */ -/* With SIP a lot of indications is sent as messages, letting the device play +/*! \brief sip_indicate: Play indication to user + * With SIP a lot of indications is sent as messages, letting the device play the indication - busy signal, congestion etc */ static int sip_indicate(struct ast_channel *ast, int condition) { @@ -2686,7 +2685,7 @@ static int sip_indicate(struct ast_channel *ast, int condition) -/*--- sip_new: Initiate a call in the SIP channel */ +/*! \brief sip_new: Initiate a call in the SIP channel */ /* called from sip_request_call (calls from the pbx ) */ static struct ast_channel *sip_new(struct sip_pvt *i, int state, char *title) { @@ -2807,7 +2806,7 @@ static struct ast_channel *sip_new(struct sip_pvt *i, int state, char *title) return tmp; } -/*--- get_sdp_by_line: Reads one line of SIP message body */ +/*! \brief get_sdp_by_line: Reads one line of SIP message body */ static char* get_sdp_by_line(char* line, char *name, int nameLen) { if (strncasecmp(line, name, nameLen) == 0 && line[nameLen] == '=') { @@ -2816,7 +2815,7 @@ static char* get_sdp_by_line(char* line, char *name, int nameLen) return ""; } -/*--- get_sdp: Gets all kind of SIP message bodies, including SDP, +/*! \brief get_sdp: Gets all kind of SIP message bodies, including SDP, but the name wrongly applies _only_ sdp */ static char *get_sdp(struct sip_request *req, char *name) { @@ -2896,14 +2895,14 @@ static char *__get_header(struct sip_request *req, char *name, int *start) return ""; } -/*--- get_header: Get header from SIP request ---*/ +/*! \brief get_header: Get header from SIP request ---*/ static char *get_header(struct sip_request *req, char *name) { int start = 0; return __get_header(req, name, &start); } -/*--- sip_rtp_read: Read RTP from network ---*/ +/*! \brief sip_rtp_read: Read RTP from network ---*/ static struct ast_frame *sip_rtp_read(struct ast_channel *ast, struct sip_pvt *p) { /* Retrieve audio/etc from channel. Assumes p->lock is already held. */ @@ -2953,7 +2952,7 @@ static struct ast_frame *sip_rtp_read(struct ast_channel *ast, struct sip_pvt *p return f; } -/*--- sip_read: Read SIP RTP from channel */ +/*! \brief sip_read: Read SIP RTP from channel */ static struct ast_frame *sip_read(struct ast_channel *ast) { struct ast_frame *fr; @@ -2965,7 +2964,7 @@ static struct ast_frame *sip_read(struct ast_channel *ast) return fr; } -/*--- build_callid: Build SIP CALLID header ---*/ +/*! \brief build_callid: Build SIP CALLID header ---*/ static void build_callid(char *callid, int len, struct in_addr ourip, char *fromdomain) { int res; @@ -2990,7 +2989,7 @@ static void make_our_tag(char *tagbuf, size_t len) snprintf(tagbuf, len, "as%08x", rand()); } -/*--- sip_alloc: Allocate SIP_PVT structure and set defaults ---*/ +/*! \brief sip_alloc: Allocate SIP_PVT structure and set defaults ---*/ static struct sip_pvt *sip_alloc(char *callid, struct sockaddr_in *sin, int useglobal_nat, const int intended_method) { struct sip_pvt *p; @@ -3082,7 +3081,7 @@ static struct sip_pvt *sip_alloc(char *callid, struct sockaddr_in *sin, int useg return p; } -/*--- find_call: Connect incoming SIP message to current dialog or create new dialog structure */ +/*! \brief find_call: Connect incoming SIP message to current dialog or create new dialog structure */ /* Called by handle_request, sipsock_read */ static struct sip_pvt *find_call(struct sip_request *req, struct sockaddr_in *sin, const int intended_method) { @@ -3158,7 +3157,7 @@ static struct sip_pvt *find_call(struct sip_request *req, struct sockaddr_in *si return p; } -/*--- sip_register: Parse register=> line in sip.conf and add to registry */ +/*! \brief sip_register: Parse register=> line in sip.conf and add to registry */ static int sip_register(char *value, int lineno) { struct sip_registry *reg; @@ -3231,7 +3230,7 @@ static int sip_register(char *value, int lineno) return 0; } -/*--- lws2sws: Parse multiline SIP headers into one header */ +/*! \brief lws2sws: Parse multiline SIP headers into one header */ /* This is enabled if pedanticsipchecking is enabled */ static int lws2sws(char *msgbuf, int len) { @@ -3277,7 +3276,7 @@ static int lws2sws(char *msgbuf, int len) return t; } -/*--- parse_request: Parse a SIP message ----*/ +/*! \brief parse_request: Parse a SIP message ----*/ static void parse_request(struct sip_request *req) { /* Divide fields by NULL's */ @@ -3345,7 +3344,7 @@ static void parse_request(struct sip_request *req) determine_firstline_parts(req); } -/*--- process_sdp: Process SIP SDP and activate RTP channels---*/ +/*! \brief process_sdp: Process SIP SDP and activate RTP channels---*/ static int process_sdp(struct sip_pvt *p, struct sip_request *req) { char *m; @@ -3629,7 +3628,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) return 0; } -/*--- add_header: Add header to SIP message */ +/*! \brief add_header: Add header to SIP message */ static int add_header(struct sip_request *req, const char *var, const char *value) { int x = 0; @@ -3664,7 +3663,7 @@ static int add_header(struct sip_request *req, const char *var, const char *valu return 0; } -/*--- add_header_contentLen: Add 'Content-Length' header to SIP message */ +/*! \brief add_header_contentLen: Add 'Content-Length' header to SIP message */ static int add_header_contentLength(struct sip_request *req, int len) { char clen[10]; @@ -3673,7 +3672,7 @@ static int add_header_contentLength(struct sip_request *req, int len) return add_header(req, "Content-Length", clen); } -/*--- add_blank_header: Add blank header to SIP message */ +/*! \brief add_blank_header: Add blank header to SIP message */ static int add_blank_header(struct sip_request *req) { if (req->headers == SIP_MAX_HEADERS) { @@ -3695,7 +3694,7 @@ static int add_blank_header(struct sip_request *req) return 0; } -/*--- add_line: Add content (not header) to SIP message */ +/*! \brief add_line: Add content (not header) to SIP message */ static int add_line(struct sip_request *req, const char *line) { if (req->lines == SIP_MAX_LINES) { @@ -3718,7 +3717,7 @@ static int add_line(struct sip_request *req, const char *line) return 0; } -/*--- copy_header: Copy one header field from one request to another */ +/*! \brief copy_header: Copy one header field from one request to another */ static int copy_header(struct sip_request *req, struct sip_request *orig, char *field) { char *tmp; @@ -3731,7 +3730,7 @@ static int copy_header(struct sip_request *req, struct sip_request *orig, char * return -1; } -/*--- copy_all_header: Copy all headers from one request to another ---*/ +/*! \brief copy_all_header: Copy all headers from one request to another ---*/ static int copy_all_header(struct sip_request *req, struct sip_request *orig, char *field) { char *tmp; @@ -3749,7 +3748,7 @@ static int copy_all_header(struct sip_request *req, struct sip_request *orig, ch return copied ? 0 : -1; } -/*--- copy_via_headers: Copy SIP VIA Headers from the request to the response ---*/ +/*! \brief copy_via_headers: Copy SIP VIA Headers from the request to the response ---*/ /* If the client indicates that it wishes to know the port we received from, it adds ;rport without an argument to the topmost via header. We need to add the port number (from our point of view) to that parameter. @@ -3813,7 +3812,7 @@ static int copy_via_headers(struct sip_pvt *p, struct sip_request *req, struct s return 0; } -/*--- add_route: Add route header into request per learned route ---*/ +/*! \brief add_route: Add route header into request per learned route ---*/ static void add_route(struct sip_request *req, struct sip_route *route) { char r[256], *p; @@ -3839,7 +3838,7 @@ static void add_route(struct sip_request *req, struct sip_route *route) add_header(req, "Route", r); } -/*--- set_destination: Set destination from SIP URI ---*/ +/*! \brief set_destination: Set destination from SIP URI ---*/ static void set_destination(struct sip_pvt *p, char *uri) { char *h, *maddr, hostname[256]; @@ -3902,7 +3901,7 @@ static void set_destination(struct sip_pvt *p, char *uri) ast_verbose("set_destination: set destination to %s, port %d\n", ast_inet_ntoa(iabuf, sizeof(iabuf), p->sa.sin_addr), port); } -/*--- init_resp: Initialize SIP response, based on SIP request ---*/ +/*! \brief init_resp: Initialize SIP response, based on SIP request ---*/ static int init_resp(struct sip_request *req, char *resp, struct sip_request *orig) { /* Initialize a response */ @@ -3918,7 +3917,7 @@ static int init_resp(struct sip_request *req, char *resp, struct sip_request *or return 0; } -/*--- init_req: Initialize SIP request ---*/ +/*! \brief init_req: Initialize SIP request ---*/ static int init_req(struct sip_request *req, int sipmethod, char *recip) { /* Initialize a response */ @@ -3935,7 +3934,7 @@ static int init_req(struct sip_request *req, int sipmethod, char *recip) } -/*--- respprep: Prepare SIP response packet ---*/ +/*! \brief respprep: Prepare SIP response packet ---*/ static int respprep(struct sip_request *resp, struct sip_pvt *p, char *msg, struct sip_request *req) { char newto[256], *ot; @@ -3984,7 +3983,7 @@ static int respprep(struct sip_request *resp, struct sip_pvt *p, char *msg, stru return 0; } -/*--- reqprep: Initialize a SIP request response packet ---*/ +/*! \brief reqprep: Initialize a SIP request response packet ---*/ static int reqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, int seqno, int newbranch) { struct sip_request *orig = &p->initreq; @@ -4085,7 +4084,7 @@ static int reqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, in return 0; } -/*--- __transmit_response: Base transmit response function */ +/*! \brief __transmit_response: Base transmit response function */ static int __transmit_response(struct sip_pvt *p, char *msg, struct sip_request *req, int reliable) { struct sip_request resp; @@ -4106,13 +4105,13 @@ static int __transmit_response(struct sip_pvt *p, char *msg, struct sip_request return send_response(p, &resp, reliable, seqno); } -/*--- transmit_response: Transmit response, no retransmits */ +/*! \brief transmit_response: Transmit response, no retransmits */ static int transmit_response(struct sip_pvt *p, char *msg, struct sip_request *req) { return __transmit_response(p, msg, req, 0); } -/*--- transmit_response_with_unsupported: Transmit response, no retransmits */ +/*! \brief transmit_response_with_unsupported: Transmit response, no retransmits */ static int transmit_response_with_unsupported(struct sip_pvt *p, char *msg, struct sip_request *req, char *unsupported) { struct sip_request resp; @@ -4122,13 +4121,13 @@ static int transmit_response_with_unsupported(struct sip_pvt *p, char *msg, stru return send_response(p, &resp, 0, 0); } -/*--- transmit_response_reliable: Transmit response, Make sure you get a reply */ +/*! \brief transmit_response_reliable: Transmit response, Make sure you get a reply */ static int transmit_response_reliable(struct sip_pvt *p, char *msg, struct sip_request *req, int fatal) { return __transmit_response(p, msg, req, fatal ? 2 : 1); } -/*--- append_date: Append date to SIP message ---*/ +/*! \brief append_date: Append date to SIP message ---*/ static void append_date(struct sip_request *req) { char tmpdat[256]; @@ -4141,7 +4140,7 @@ static void append_date(struct sip_request *req) add_header(req, "Date", tmpdat); } -/*--- transmit_response_with_date: Append date and content length before transmitting response ---*/ +/*! \brief transmit_response_with_date: Append date and content length before transmitting response ---*/ static int transmit_response_with_date(struct sip_pvt *p, char *msg, struct sip_request *req) { struct sip_request resp; @@ -4152,7 +4151,7 @@ static int transmit_response_with_date(struct sip_pvt *p, char *msg, struct sip_ return send_response(p, &resp, 0, 0); } -/*--- transmit_response_with_allow: Append Accept header, content length before transmitting response ---*/ +/*! \brief transmit_response_with_allow: Append Accept header, content length before transmitting response ---*/ static int transmit_response_with_allow(struct sip_pvt *p, char *msg, struct sip_request *req, int reliable) { struct sip_request resp; @@ -4184,7 +4183,7 @@ static int transmit_response_with_auth(struct sip_pvt *p, char *msg, struct sip_ return send_response(p, &resp, reliable, seqno); } -/*--- add_text: Add text body to SIP message ---*/ +/*! \brief add_text: Add text body to SIP message ---*/ static int add_text(struct sip_request *req, const char *text) { /* XXX Convert \n's to \r\n's XXX */ @@ -4194,7 +4193,7 @@ static int add_text(struct sip_request *req, const char *text) return 0; } -/*--- add_digit: add DTMF INFO tone to sip message ---*/ +/*! \brief add_digit: add DTMF INFO tone to sip message ---*/ /* Always adds default duration 250 ms, regardless of what came in over the line */ static int add_digit(struct sip_request *req, char digit) { @@ -4207,7 +4206,7 @@ static int add_digit(struct sip_request *req, char digit) return 0; } -/*--- add_vidupdate: add XML encoded media control with update ---*/ +/*! \brief add_vidupdate: add XML encoded media control with update ---*/ /* XML: The only way to turn 0 bits of information into a few hundred. */ static int add_vidupdate(struct sip_request *req) { @@ -4264,7 +4263,7 @@ static void add_noncodec_to_sdp(const struct sip_pvt *p, int format, int sample_ ast_build_string(a_buf, a_size, "a=fmtp:%d 0-16\r\n", rtp_code); } -/*--- add_sdp: Add Session Description Protocol message ---*/ +/*! \brief add_sdp: Add Session Description Protocol message ---*/ static int add_sdp(struct sip_request *resp, struct sip_pvt *p) { int len = 0; @@ -4454,7 +4453,7 @@ static int add_sdp(struct sip_request *resp, struct sip_pvt *p) return 0; } -/*--- copy_request: copy SIP request (mostly used to save request for responses) ---*/ +/*! \brief copy_request: copy SIP request (mostly used to save request for responses) ---*/ static void copy_request(struct sip_request *dst, struct sip_request *src) { long offset; @@ -4469,7 +4468,7 @@ static void copy_request(struct sip_request *dst, struct sip_request *src) dst->line[x] += offset; } -/*--- transmit_response_with_sdp: Used for 200 OK and 183 early media ---*/ +/*! \brief transmit_response_with_sdp: Used for 200 OK and 183 early media ---*/ static int transmit_response_with_sdp(struct sip_pvt *p, char *msg, struct sip_request *req, int retrans) { struct sip_request resp; @@ -4488,7 +4487,7 @@ static int transmit_response_with_sdp(struct sip_pvt *p, char *msg, struct sip_r return send_response(p, &resp, retrans, seqno); } -/*--- determine_firstline_parts: parse first line of incoming SIP request */ +/*! \brief determine_firstline_parts: parse first line of incoming SIP request */ static int determine_firstline_parts( struct sip_request *req ) { char *e, *cmd; @@ -4537,7 +4536,7 @@ static int determine_firstline_parts( struct sip_request *req ) return 1; } -/*--- transmit_reinvite_with_sdp: Transmit reinvite with SDP :-) ---*/ +/*! \brief transmit_reinvite_with_sdp: Transmit reinvite with SDP :-) ---*/ /* A re-invite is basically a new INVITE with the same CALL-ID and TAG as the INVITE that opened the SIP dialogue We reinvite so that the audio stream (RTP) go directly between @@ -4566,7 +4565,7 @@ static int transmit_reinvite_with_sdp(struct sip_pvt *p) return send_request(p, &req, 1, p->ocseq); } -/*--- extract_uri: Check Contact: URI of SIP message ---*/ +/*! \brief extract_uri: Check Contact: URI of SIP message ---*/ static void extract_uri(struct sip_pvt *p, struct sip_request *req) { char stripped[256]; @@ -4580,7 +4579,7 @@ static void extract_uri(struct sip_pvt *p, struct sip_request *req) ast_copy_string(p->uri, c, sizeof(p->uri)); } -/*--- build_contact: Build contact header - the contact header we send out ---*/ +/*! \brief build_contact: Build contact header - the contact header we send out ---*/ static void build_contact(struct sip_pvt *p) { char iabuf[INET_ADDRSTRLEN]; @@ -4592,7 +4591,7 @@ static void build_contact(struct sip_pvt *p) snprintf(p->our_contact, sizeof(p->our_contact), "", p->exten, ast_strlen_zero(p->exten) ? "" : "@", ast_inet_ntoa(iabuf, sizeof(iabuf), p->ourip)); } -/*--- build_rpid: Build the Remote Party-ID & From using callingpres options ---*/ +/*! \brief build_rpid: Build the Remote Party-ID & From using callingpres options ---*/ static void build_rpid(struct sip_pvt *p) { int send_pres_tags = 1; @@ -4676,7 +4675,7 @@ static void build_rpid(struct sip_pvt *p) p->rpid_from = strdup(buf); } -/*--- initreqprep: Initiate new SIP request to peer/user ---*/ +/*! \brief initreqprep: Initiate new SIP request to peer/user ---*/ static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod) { char invite_buf[256] = ""; @@ -4814,7 +4813,7 @@ static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmetho add_header(req, "Remote-Party-ID", p->rpid); } -/*--- transmit_invite: Build REFER/INVITE/OPTIONS message and transmit it ---*/ +/*! \brief transmit_invite: Build REFER/INVITE/OPTIONS message and transmit it ---*/ static int transmit_invite(struct sip_pvt *p, int sipmethod, int sdp, int init) { struct sip_request req; @@ -4915,7 +4914,7 @@ static int transmit_invite(struct sip_pvt *p, int sipmethod, int sdp, int init) return send_request(p, &req, init ? 2 : 1, p->ocseq); } -/*--- transmit_state_notify: Used in the SUBSCRIBE notification subsystem ----*/ +/*! \brief transmit_state_notify: Used in the SUBSCRIBE notification subsystem ----*/ static int transmit_state_notify(struct sip_pvt *p, int state, int full, int substate) { char tmp[4000], from[256], to[256]; @@ -5082,7 +5081,7 @@ static int transmit_state_notify(struct sip_pvt *p, int state, int full, int sub return send_request(p, &req, 1, p->ocseq); } -/*--- transmit_notify_with_mwi: Notify user of messages waiting in voicemail ---*/ +/*! \brief transmit_notify_with_mwi: Notify user of messages waiting in voicemail ---*/ /* Notification only works for registered peers with mailbox= definitions * in sip.conf * We use the SIP Event package message-summary @@ -5120,7 +5119,7 @@ static int transmit_notify_with_mwi(struct sip_pvt *p, int newmsgs, int oldmsgs, return send_request(p, &req, 1, p->ocseq); } -/*--- transmit_sip_request: Transmit SIP request */ +/*! \brief transmit_sip_request: Transmit SIP request */ static int transmit_sip_request(struct sip_pvt *p,struct sip_request *req) { if (!p->initreq.headers) { @@ -5135,7 +5134,7 @@ static int transmit_sip_request(struct sip_pvt *p,struct sip_request *req) return send_request(p, req, 0, p->ocseq); } -/*--- transmit_notify_with_sipfrag: Notify a transferring party of the status of trasnfer ---*/ +/*! \brief transmit_notify_with_sipfrag: Notify a transferring party of the status of trasnfer ---*/ /* Apparently the draft SIP REFER structure was too simple, so it was decided that the * status of transfers also needed to be sent via NOTIFY instead of just the 202 Accepted * that had worked heretofore. @@ -5192,7 +5191,7 @@ static char *regstate2str(int regstate) static int transmit_register(struct sip_registry *r, int sipmethod, char *auth, char *authheader); -/*--- sip_reregister: Update registration with SIP Proxy---*/ +/*! \brief sip_reregister: Update registration with SIP Proxy---*/ static int sip_reregister(void *data) { /* if we are here, we know that we need to reregister. */ @@ -5218,7 +5217,7 @@ static int sip_reregister(void *data) return 0; } -/*--- __sip_do_register: Register with SIP proxy ---*/ +/*! \brief __sip_do_register: Register with SIP proxy ---*/ static int __sip_do_register(struct sip_registry *r) { int res; @@ -5227,7 +5226,7 @@ static int __sip_do_register(struct sip_registry *r) return res; } -/*--- sip_reg_timeout: Registration timeout, register again */ +/*! \brief sip_reg_timeout: Registration timeout, register again */ static int sip_reg_timeout(void *data) { @@ -5269,7 +5268,7 @@ static int sip_reg_timeout(void *data) return 0; } -/*--- transmit_register: Transmit register to SIP proxy or UA ---*/ +/*! \brief transmit_register: Transmit register to SIP proxy or UA ---*/ static int transmit_register(struct sip_registry *r, int sipmethod, char *auth, char *authheader) { struct sip_request req; @@ -5459,7 +5458,7 @@ static int transmit_register(struct sip_registry *r, int sipmethod, char *auth, return send_request(p, &req, 2, p->ocseq); } -/*--- transmit_message_with_text: Transmit text with SIP MESSAGE method ---*/ +/*! \brief transmit_message_with_text: Transmit text with SIP MESSAGE method ---*/ static int transmit_message_with_text(struct sip_pvt *p, const char *text) { struct sip_request req; @@ -5468,7 +5467,7 @@ static int transmit_message_with_text(struct sip_pvt *p, const char *text) return send_request(p, &req, 1, p->ocseq); } -/*--- transmit_refer: Transmit SIP REFER message ---*/ +/*! \brief transmit_refer: Transmit SIP REFER message ---*/ static int transmit_refer(struct sip_pvt *p, const char *dest) { struct sip_request req; @@ -5512,7 +5511,7 @@ static int transmit_refer(struct sip_pvt *p, const char *dest) return send_request(p, &req, 1, p->ocseq); } -/*--- transmit_info_with_digit: Send SIP INFO dtmf message, see Cisco documentation on cisco.co +/*! \brief transmit_info_with_digit: Send SIP INFO dtmf message, see Cisco documentation on cisco.co m ---*/ static int transmit_info_with_digit(struct sip_pvt *p, char digit) { @@ -5522,7 +5521,7 @@ static int transmit_info_with_digit(struct sip_pvt *p, char digit) return send_request(p, &req, 1, p->ocseq); } -/*--- transmit_info_with_vidupdate: Send SIP INFO with video update request ---*/ +/*! \brief transmit_info_with_vidupdate: Send SIP INFO with video update request ---*/ static int transmit_info_with_vidupdate(struct sip_pvt *p) { struct sip_request req; @@ -5531,7 +5530,7 @@ static int transmit_info_with_vidupdate(struct sip_pvt *p) return send_request(p, &req, 1, p->ocseq); } -/*--- transmit_request: transmit generic SIP request ---*/ +/*! \brief transmit_request: transmit generic SIP request ---*/ static int transmit_request(struct sip_pvt *p, int sipmethod, int seqno, int reliable, int newbranch) { struct sip_request resp; @@ -5541,7 +5540,7 @@ static int transmit_request(struct sip_pvt *p, int sipmethod, int seqno, int rel return send_request(p, &resp, reliable, seqno ? seqno : p->ocseq); } -/*--- transmit_request_with_auth: Transmit SIP request, auth added ---*/ +/*! \brief transmit_request_with_auth: Transmit SIP request, auth added ---*/ static int transmit_request_with_auth(struct sip_pvt *p, int sipmethod, int seqno, int reliable, int newbranch) { struct sip_request resp; @@ -5574,7 +5573,7 @@ static int transmit_request_with_auth(struct sip_pvt *p, int sipmethod, int seqn return send_request(p, &resp, reliable, seqno ? seqno : p->ocseq); } -/*--- expire_register: Expire registration of SIP peer ---*/ +/*! \brief expire_register: Expire registration of SIP peer ---*/ static int expire_register(void *data) { struct sip_peer *peer = data; @@ -5603,7 +5602,7 @@ static int sip_poke_peer_s(void *data) return 0; } -/*--- reg_source_db: Get registration details from Asterisk DB ---*/ +/*! \brief reg_source_db: Get registration details from Asterisk DB ---*/ static void reg_source_db(struct sip_peer *peer) { char data[256]; @@ -5662,7 +5661,7 @@ static void reg_source_db(struct sip_peer *peer) register_peer_exten(peer, 1); } -/*--- parse_ok_contact: Parse contact header for 200 OK on INVITE ---*/ +/*! \brief parse_ok_contact: Parse contact header for 200 OK on INVITE ---*/ static int parse_ok_contact(struct sip_pvt *pvt, struct sip_request *req) { char contact[250]; @@ -5738,7 +5737,7 @@ enum parse_register_result { PARSE_REGISTER_QUERY, }; -/*--- parse_register_contact: Parse contact header and save registration ---*/ +/*! \brief parse_register_contact: Parse contact header and save registration ---*/ static enum parse_register_result parse_register_contact(struct sip_pvt *pvt, struct sip_peer *p, struct sip_request *req) { char contact[80]; @@ -5890,7 +5889,7 @@ static enum parse_register_result parse_register_contact(struct sip_pvt *pvt, st return PARSE_REGISTER_UPDATE; } -/*--- free_old_route: Remove route from route list ---*/ +/*! \brief free_old_route: Remove route from route list ---*/ static void free_old_route(struct sip_route *route) { struct sip_route *next; @@ -5901,7 +5900,7 @@ static void free_old_route(struct sip_route *route) } } -/*--- list_route: List all routes - mostly for debugging ---*/ +/*! \brief list_route: List all routes - mostly for debugging ---*/ static void list_route(struct sip_route *route) { if (!route) { @@ -5914,7 +5913,7 @@ static void list_route(struct sip_route *route) } } -/*--- build_route: Build route list from Record-Route header ---*/ +/*! \brief build_route: Build route list from Record-Route header ---*/ static void build_route(struct sip_pvt *p, struct sip_request *req, int backwards) { struct sip_route *thishop, *head, *tail; @@ -6015,7 +6014,7 @@ static void build_route(struct sip_pvt *p, struct sip_request *req, int backward } #ifdef OSP_SUPPORT -/*--- check_osptoken: Validate OSP token for user authrroization ---*/ +/*! \brief check_osptoken: Validate OSP token for user authrroization ---*/ static int check_osptoken (struct sip_pvt *p, char *token) { char tmp[80]; @@ -6030,7 +6029,7 @@ static int check_osptoken (struct sip_pvt *p, char *token) } #endif -/*--- check_auth: Check user authorization from peer definition ---*/ +/*! \brief check_auth: Check user authorization from peer definition ---*/ /* Some actions, like REGISTER and INVITEs from peers require authentication (if peer have secret set) */ static int check_auth(struct sip_pvt *p, struct sip_request *req, char *randdata, int randlen, char *username, char *secret, char *md5secret, int sipmethod, char *uri, int reliable, int ignore) @@ -6255,7 +6254,7 @@ static int check_auth(struct sip_pvt *p, struct sip_request *req, char *randdata return res; } -/*--- cb_extensionstate: Callback for the devicestate notification (SUBSCRIBE) support subsystem ---*/ +/*! \brief cb_extensionstate: Callback for the devicestate notification (SUBSCRIBE) support subsystem ---*/ /* If you add an "hint" priority to the extension in the dial plan, you will get notifications on device state changes */ static int cb_extensionstate(char *context, char* exten, int state, void *data) @@ -6284,7 +6283,7 @@ static int cb_extensionstate(char *context, char* exten, int state, void *data) return 0; } -/*--- register_verify: Verify registration of user */ +/*! \brief register_verify: Verify registration of user */ static int register_verify(struct sip_pvt *p, struct sockaddr_in *sin, struct sip_request *req, char *uri, int ignore) { int res = -3; @@ -6428,7 +6427,7 @@ static int register_verify(struct sip_pvt *p, struct sockaddr_in *sin, struct si return res; } -/*--- get_rdnis: get referring dnis ---*/ +/*! \brief get_rdnis: get referring dnis ---*/ static int get_rdnis(struct sip_pvt *p, struct sip_request *oreq) { char tmp[256], *c, *a; @@ -6456,7 +6455,7 @@ static int get_rdnis(struct sip_pvt *p, struct sip_request *oreq) return 0; } -/*--- get_destination: Find out who the call is for --*/ +/*! \brief get_destination: Find out who the call is for --*/ static int get_destination(struct sip_pvt *p, struct sip_request *oreq) { char tmp[256] = "", *uri, *a; @@ -6552,7 +6551,7 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq) return -1; } -/*--- get_sip_pvt_byid_locked: Lock interface lock and find matching pvt lock ---*/ +/*! \brief get_sip_pvt_byid_locked: Lock interface lock and find matching pvt lock ---*/ static struct sip_pvt *get_sip_pvt_byid_locked(char *callid) { struct sip_pvt *sip_pvt_ptr = NULL; @@ -6581,7 +6580,7 @@ static struct sip_pvt *get_sip_pvt_byid_locked(char *callid) return sip_pvt_ptr; } -/*--- get_refer_info: Call transfer support (the REFER method) ---*/ +/*! \brief get_refer_info: Call transfer support (the REFER method) ---*/ static int get_refer_info(struct sip_pvt *sip_pvt, struct sip_request *outgoing_req) { @@ -6718,7 +6717,7 @@ static int get_refer_info(struct sip_pvt *sip_pvt, struct sip_request *outgoing_ return -1; } -/*--- get_also_info: Call transfer support (old way, depreciated)--*/ +/*! \brief get_also_info: Call transfer support (old way, depreciated)--*/ static int get_also_info(struct sip_pvt *p, struct sip_request *oreq) { char tmp[256], *c, *a; @@ -6760,7 +6759,7 @@ static int get_also_info(struct sip_pvt *p, struct sip_request *oreq) return -1; } -/*--- check_via: check Via: headers ---*/ +/*! \brief check_via: check Via: headers ---*/ static int check_via(struct sip_pvt *p, struct sip_request *req) { char via[256]; @@ -6804,7 +6803,7 @@ static int check_via(struct sip_pvt *p, struct sip_request *req) return 0; } -/*--- get_calleridname: Get caller id name from SIP headers ---*/ +/*! \brief get_calleridname: Get caller id name from SIP headers ---*/ static char *get_calleridname(char *input, char *output, size_t outputsize) { char *end = strchr(input,'<'); @@ -6845,7 +6844,7 @@ static char *get_calleridname(char *input, char *output, size_t outputsize) return output; } -/*--- get_rpid_num: Get caller id number from Remote-Party-ID header field +/*! \brief get_rpid_num: Get caller id number from Remote-Party-ID header field * Returns true if number should be restricted (privacy setting found) * output is set to NULL if no number found */ @@ -6877,7 +6876,7 @@ static int get_rpid_num(char *input,char *output, int maxlen) } -/*--- check_user_full: Check if matching user or peer is defined ---*/ +/*! \brief check_user_full: Check if matching user or peer is defined ---*/ /* Match user on From: user name and peer on IP/port */ /* This is used on first invite (not re-invites) and subscribe requests */ static int check_user_full(struct sip_pvt *p, struct sip_request *req, int sipmethod, char *uri, int reliable, struct sockaddr_in *sin, int ignore, char *mailbox, int mailboxlen) @@ -7142,13 +7141,13 @@ static int check_user_full(struct sip_pvt *p, struct sip_request *req, int sipme return res; } -/*--- check_user: Find user ---*/ +/*! \brief check_user: Find user ---*/ static int check_user(struct sip_pvt *p, struct sip_request *req, int sipmethod, char *uri, int reliable, struct sockaddr_in *sin, int ignore) { return check_user_full(p, req, sipmethod, uri, reliable, sin, ignore, NULL, 0); } -/*--- get_msg_text: Get text out of a SIP MESSAGE packet ---*/ +/*! \brief get_msg_text: Get text out of a SIP MESSAGE packet ---*/ static int get_msg_text(char *buf, int len, struct sip_request *req) { int x; @@ -7170,7 +7169,7 @@ static int get_msg_text(char *buf, int len, struct sip_request *req) } -/*--- receive_message: Receive SIP MESSAGE method messages ---*/ +/*! \brief receive_message: Receive SIP MESSAGE method messages ---*/ /* We only handle messages within current calls currently */ /* Reference: RFC 3428 */ static void receive_message(struct sip_pvt *p, struct sip_request *req) @@ -7212,7 +7211,7 @@ static void receive_message(struct sip_pvt *p, struct sip_request *req) return; } -/*--- sip_show_inuse: CLI Command to show calls within limits set by +/*! \brief sip_show_inuse: CLI Command to show calls within limits set by call_limit ---*/ static int sip_show_inuse(int fd, int argc, char *argv[]) { #define FORMAT "%-25.25s %-15.15s %-15.15s \n" @@ -7259,7 +7258,7 @@ static int sip_show_inuse(int fd, int argc, char *argv[]) { #undef FORMAT2 } -/*--- nat2str: Convert NAT setting to text string */ +/*! \brief nat2str: Convert NAT setting to text string */ static char *nat2str(int nat) { switch(nat) { @@ -7276,7 +7275,7 @@ static char *nat2str(int nat) } } -/*--- peer_status: Report Peer status in character string */ +/*! \brief peer_status: Report Peer status in character string */ /* returns 1 if peer is online, -1 if unmonitored */ static int peer_status(struct sip_peer *peer, char *status, int statuslen) { @@ -7301,7 +7300,7 @@ static int peer_status(struct sip_peer *peer, char *status, int statuslen) return res; } -/*--- sip_show_users: CLI Command 'SIP Show Users' ---*/ +/*! \brief sip_show_users: CLI Command 'SIP Show Users' ---*/ static int sip_show_users(int fd, int argc, char *argv[]) { regex_t regexbuf; @@ -7356,7 +7355,7 @@ static char mandescr_show_peers[] = static int _sip_show_peers(int fd, int *total, struct mansession *s, struct message *m, int argc, char *argv[]); -/*--- manager_sip_show_peers: Show SIP peers in the manager API ---*/ +/*! \brief manager_sip_show_peers: Show SIP peers in the manager API ---*/ /* Inspired from chan_iax2 */ static int manager_sip_show_peers( struct mansession *s, struct message *m ) { @@ -7380,13 +7379,13 @@ static int manager_sip_show_peers( struct mansession *s, struct message *m ) return 0; } -/*--- sip_show_peers: CLI Show Peers command */ +/*! \brief sip_show_peers: CLI Show Peers command */ static int sip_show_peers(int fd, int argc, char *argv[]) { return _sip_show_peers(fd, NULL, NULL, NULL, argc, argv); } -/*--- _sip_show_peers: Execute sip show peers command */ +/*! \brief _sip_show_peers: Execute sip show peers command */ static int _sip_show_peers(int fd, int *total, struct mansession *s, struct message *m, int argc, char *argv[]) { regex_t regexbuf; @@ -7519,7 +7518,7 @@ static int _sip_show_peers(int fd, int *total, struct mansession *s, struct mess #undef FORMAT2 } -/*--- sip_show_objects: List all allocated SIP Objects ---*/ +/*! \brief sip_show_objects: List all allocated SIP Objects ---*/ static int sip_show_objects(int fd, int argc, char *argv[]) { char tmp[256]; @@ -7533,14 +7532,14 @@ static int sip_show_objects(int fd, int argc, char *argv[]) ASTOBJ_CONTAINER_DUMP(fd, tmp, sizeof(tmp), ®l); return RESULT_SUCCESS; } -/*--- print_group: Print call group and pickup group ---*/ +/*! \brief print_group: Print call group and pickup group ---*/ static void print_group(int fd, unsigned int group, int crlf) { char buf[256]; ast_cli(fd, crlf ? "%s\r\n" : "%s\n", ast_print_group(buf, sizeof(buf), group) ); } -/*--- dtmfmode2str: Convert DTMF mode to printable string ---*/ +/*! \brief dtmfmode2str: Convert DTMF mode to printable string ---*/ static const char *dtmfmode2str(int mode) { switch (mode) { @@ -7556,7 +7555,7 @@ static const char *dtmfmode2str(int mode) return ""; } -/*--- insecure2str: Convert Insecure setting to printable string ---*/ +/*! \brief insecure2str: Convert Insecure setting to printable string ---*/ static const char *insecure2str(int port, int invite) { if (port && invite) @@ -7569,7 +7568,7 @@ static const char *insecure2str(int port, int invite) return "no"; } -/*--- sip_prune_realtime: Remove temporary realtime objects from memory (CLI) ---*/ +/*! \brief sip_prune_realtime: Remove temporary realtime objects from memory (CLI) ---*/ static int sip_prune_realtime(int fd, int argc, char *argv[]) { struct sip_peer *peer; @@ -7716,7 +7715,7 @@ static int sip_prune_realtime(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- print_codec_to_cli: Print codec list from preference to CLI/manager */ +/*! \brief print_codec_to_cli: Print codec list from preference to CLI/manager */ static void print_codec_to_cli(int fd, struct ast_codec_pref *pref) { int x, codec; @@ -7745,7 +7744,7 @@ static const char *domain_mode_to_text(const enum domain_mode mode) return ""; } -/*--- sip_show_domains: CLI command to list local domains */ +/*! \brief sip_show_domains: CLI command to list local domains */ #define FORMAT "%-40.40s %-20.20s %-16.16s\n" static int sip_show_domains(int fd, int argc, char *argv[]) { @@ -7776,7 +7775,7 @@ static char mandescr_show_peer[] = static int _sip_show_peer(int type, int fd, struct mansession *s, struct message *m, int argc, char *argv[]); -/*--- manager_sip_show_peer: Show SIP peers in the manager API ---*/ +/*! \brief manager_sip_show_peer: Show SIP peers in the manager API ---*/ static int manager_sip_show_peer( struct mansession *s, struct message *m ) { char *id = astman_get_header(m,"ActionID"); @@ -7803,7 +7802,7 @@ static int manager_sip_show_peer( struct mansession *s, struct message *m ) -/*--- sip_show_peer: Show one peer in detail ---*/ +/*! \brief sip_show_peer: Show one peer in detail ---*/ static int sip_show_peer(int fd, int argc, char *argv[]) { return _sip_show_peer(0, fd, NULL, NULL, argc, argv); @@ -7995,7 +7994,7 @@ static int _sip_show_peer(int type, int fd, struct mansession *s, struct message return RESULT_SUCCESS; } -/*--- sip_show_user: Show one user in detail ---*/ +/*! \brief sip_show_user: Show one user in detail ---*/ static int sip_show_user(int fd, int argc, char *argv[]) { char cbuf[256]; @@ -8059,7 +8058,7 @@ static int sip_show_user(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- sip_show_registry: Show SIP Registry (registrations with other SIP proxies ---*/ +/*! \brief sip_show_registry: Show SIP Registry (registrations with other SIP proxies ---*/ static int sip_show_registry(int fd, int argc, char *argv[]) { #define FORMAT2 "%-30.30s %-12.12s %8.8s %-20.20s\n" @@ -8080,7 +8079,7 @@ static int sip_show_registry(int fd, int argc, char *argv[]) #undef FORMAT2 } -/*--- sip_show_settings: List global settings for the SIP channel ---*/ +/*! \brief sip_show_settings: List global settings for the SIP channel ---*/ static int sip_show_settings(int fd, int argc, char *argv[]) { char tmp[BUFSIZ]; @@ -8167,7 +8166,7 @@ static int sip_show_settings(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- subscription_type2str: Show subscription type in string format */ +/*! \brief subscription_type2str: Show subscription type in string format */ static const char *subscription_type2str(enum subscriptiontype subtype) { int i; @@ -8179,7 +8178,7 @@ static const char *subscription_type2str(enum subscriptiontype subtype) { return subscription_types[0].text; } -/*--- find_subscription_type: Find subscription type in array */ +/*! \brief find_subscription_type: Find subscription type in array */ static const struct cfsubscription_types *find_subscription_type(enum subscriptiontype subtype) { int i; @@ -8194,13 +8193,13 @@ static const struct cfsubscription_types *find_subscription_type(enum subscripti /* Forward declaration */ static int __sip_show_channels(int fd, int argc, char *argv[], int subscriptions); -/*--- sip_show_channels: Show active SIP channels ---*/ +/*! \brief sip_show_channels: Show active SIP channels ---*/ static int sip_show_channels(int fd, int argc, char *argv[]) { return __sip_show_channels(fd, argc, argv, 0); } -/*--- sip_show_subscriptions: Show active SIP subscriptions ---*/ +/*! \brief sip_show_subscriptions: Show active SIP subscriptions ---*/ static int sip_show_subscriptions(int fd, int argc, char *argv[]) { return __sip_show_channels(fd, argc, argv, 1); @@ -8254,7 +8253,7 @@ static int __sip_show_channels(int fd, int argc, char *argv[], int subscriptions #undef FORMAT3 } -/*--- complete_sipch: Support routine for 'sip show channel' CLI ---*/ +/*! \brief complete_sipch: Support routine for 'sip show channel' CLI ---*/ static char *complete_sipch(char *line, char *word, int pos, int state) { int which=0; @@ -8276,7 +8275,7 @@ static char *complete_sipch(char *line, char *word, int pos, int state) return c; } -/*--- complete_sip_peer: Do completion on peer name ---*/ +/*! \brief complete_sip_peer: Do completion on peer name ---*/ static char *complete_sip_peer(char *word, int state, int flags2) { char *result = NULL; @@ -8296,7 +8295,7 @@ static char *complete_sip_peer(char *word, int state, int flags2) return result; } -/*--- complete_sip_show_peer: Support routine for 'sip show peer' CLI ---*/ +/*! \brief complete_sip_show_peer: Support routine for 'sip show peer' CLI ---*/ static char *complete_sip_show_peer(char *line, char *word, int pos, int state) { if (pos == 3) @@ -8305,7 +8304,7 @@ static char *complete_sip_show_peer(char *line, char *word, int pos, int state) return NULL; } -/*--- complete_sip_debug_peer: Support routine for 'sip debug peer' CLI ---*/ +/*! \brief complete_sip_debug_peer: Support routine for 'sip debug peer' CLI ---*/ static char *complete_sip_debug_peer(char *line, char *word, int pos, int state) { if (pos == 3) @@ -8314,7 +8313,7 @@ static char *complete_sip_debug_peer(char *line, char *word, int pos, int state) return NULL; } -/*--- complete_sip_user: Do completion on user name ---*/ +/*! \brief complete_sip_user: Do completion on user name ---*/ static char *complete_sip_user(char *word, int state, int flags2) { char *result = NULL; @@ -8334,7 +8333,7 @@ static char *complete_sip_user(char *word, int state, int flags2) return result; } -/*--- complete_sip_show_user: Support routine for 'sip show user' CLI ---*/ +/*! \brief complete_sip_show_user: Support routine for 'sip show user' CLI ---*/ static char *complete_sip_show_user(char *line, char *word, int pos, int state) { if (pos == 3) @@ -8343,7 +8342,7 @@ static char *complete_sip_show_user(char *line, char *word, int pos, int state) return NULL; } -/*--- complete_sipnotify: Support routine for 'sip notify' CLI ---*/ +/*! \brief complete_sipnotify: Support routine for 'sip notify' CLI ---*/ static char *complete_sipnotify(char *line, char *word, int pos, int state) { char *c = NULL; @@ -8376,7 +8375,7 @@ static char *complete_sipnotify(char *line, char *word, int pos, int state) return NULL; } -/*--- complete_sip_prune_realtime_peer: Support routine for 'sip prune realtime peer' CLI ---*/ +/*! \brief complete_sip_prune_realtime_peer: Support routine for 'sip prune realtime peer' CLI ---*/ static char *complete_sip_prune_realtime_peer(char *line, char *word, int pos, int state) { if (pos == 4) @@ -8384,7 +8383,7 @@ static char *complete_sip_prune_realtime_peer(char *line, char *word, int pos, i return NULL; } -/*--- complete_sip_prune_realtime_user: Support routine for 'sip prune realtime user' CLI ---*/ +/*! \brief complete_sip_prune_realtime_user: Support routine for 'sip prune realtime user' CLI ---*/ static char *complete_sip_prune_realtime_user(char *line, char *word, int pos, int state) { if (pos == 4) @@ -8393,7 +8392,7 @@ static char *complete_sip_prune_realtime_user(char *line, char *word, int pos, i return NULL; } -/*--- sip_show_channel: Show details of one call ---*/ +/*! \brief sip_show_channel: Show details of one call ---*/ static int sip_show_channel(int fd, int argc, char *argv[]) { struct sip_pvt *cur; @@ -8460,7 +8459,7 @@ static int sip_show_channel(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- sip_show_history: Show history details of one call ---*/ +/*! \brief sip_show_history: Show history details of one call ---*/ static int sip_show_history(int fd, int argc, char *argv[]) { struct sip_pvt *cur; @@ -8502,7 +8501,7 @@ static int sip_show_history(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- dump_history: Dump SIP history to debug log file at end of +/*! \brief dump_history: Dump SIP history to debug log file at end of lifespan for SIP dialog */ void sip_dump_history(struct sip_pvt *dialog) { @@ -8531,7 +8530,7 @@ void sip_dump_history(struct sip_pvt *dialog) } -/*--- handle_request_info: Receive SIP INFO Message ---*/ +/*! \brief handle_request_info: Receive SIP INFO Message ---*/ /* Doesn't read the duration of the DTMF signal */ static void handle_request_info(struct sip_pvt *p, struct sip_request *req) { @@ -8618,7 +8617,7 @@ static void handle_request_info(struct sip_pvt *p, struct sip_request *req) return; } -/*--- sip_do_debug: Enable SIP Debugging in CLI ---*/ +/*! \brief sip_do_debug: Enable SIP Debugging in CLI ---*/ static int sip_do_debug_ip(int fd, int argc, char *argv[]) { struct hostent *hp; @@ -8651,7 +8650,7 @@ static int sip_do_debug_ip(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- sip_do_debug_peer: Turn on SIP debugging with peer mask */ +/*! \brief sip_do_debug_peer: Turn on SIP debugging with peer mask */ static int sip_do_debug_peer(int fd, int argc, char *argv[]) { struct sip_peer *peer; @@ -8674,7 +8673,7 @@ static int sip_do_debug_peer(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- sip_do_debug: Turn on SIP debugging (CLI command) */ +/*! \brief sip_do_debug: Turn on SIP debugging (CLI command) */ static int sip_do_debug(int fd, int argc, char *argv[]) { int oldsipdebug = sipdebug & SIP_DEBUG_CONSOLE; @@ -8696,7 +8695,7 @@ static int sip_do_debug(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- sip_notify: Send SIP notify to peer */ +/*! \brief sip_notify: Send SIP notify to peer */ static int sip_notify(int fd, int argc, char *argv[]) { struct ast_variable *varlist; @@ -8753,7 +8752,7 @@ static int sip_notify(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- sip_do_history: Enable SIP History logging (CLI) ---*/ +/*! \brief sip_do_history: Enable SIP History logging (CLI) ---*/ static int sip_do_history(int fd, int argc, char *argv[]) { if (argc != 2) { @@ -8764,7 +8763,7 @@ static int sip_do_history(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- sip_no_history: Disable SIP History logging (CLI) ---*/ +/*! \brief sip_no_history: Disable SIP History logging (CLI) ---*/ static int sip_no_history(int fd, int argc, char *argv[]) { if (argc != 3) { @@ -8775,7 +8774,7 @@ static int sip_no_history(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- sip_no_debug: Disable SIP Debugging in CLI ---*/ +/*! \brief sip_no_debug: Disable SIP Debugging in CLI ---*/ static int sip_no_debug(int fd, int argc, char *argv[]) { @@ -8788,7 +8787,7 @@ static int sip_no_debug(int fd, int argc, char *argv[]) static int reply_digest(struct sip_pvt *p, struct sip_request *req, char *header, int sipmethod, char *digest, int digest_len); -/*--- do_register_auth: Authenticate for outbound registration ---*/ +/*! \brief do_register_auth: Authenticate for outbound registration ---*/ static int do_register_auth(struct sip_pvt *p, struct sip_request *req, char *header, char *respheader) { char digest[1024]; @@ -8812,7 +8811,7 @@ static int do_register_auth(struct sip_pvt *p, struct sip_request *req, char *he return transmit_register(p->registry, SIP_REGISTER, digest, respheader); } -/*--- do_proxy_auth: Add authentication on outbound SIP packet ---*/ +/*! \brief do_proxy_auth: Add authentication on outbound SIP packet ---*/ static int do_proxy_auth(struct sip_pvt *p, struct sip_request *req, char *header, char *respheader, int sipmethod, int init) { char digest[1024]; @@ -8839,7 +8838,7 @@ static int do_proxy_auth(struct sip_pvt *p, struct sip_request *req, char *heade return transmit_invite(p, sipmethod, sipmethod == SIP_INVITE, init); } -/*--- reply_digest: reply to authentication for outbound registrations ---*/ +/*! \brief reply_digest: reply to authentication for outbound registrations ---*/ /* This is used for register= servers in sip.conf, SIP proxies we register with for receiving calls from. */ /* Returns -1 if we have no auth */ @@ -8916,7 +8915,7 @@ static int reply_digest(struct sip_pvt *p, struct sip_request *req, return build_reply_digest(p, sipmethod, digest, digest_len); } -/*--- build_reply_digest: Build reply digest ---*/ +/*! \brief build_reply_digest: Build reply digest ---*/ /* Build digest challenge for authentication of peers (for registration) and users (for calls). Also used for authentication of CANCEL and BYE */ /* Returns -1 if we have no auth */ @@ -9082,7 +9081,7 @@ static char show_settings_usage[] = -/*--- func_header_read: Read SIP header (dialplan function) */ +/*! \brief func_header_read: Read SIP header (dialplan function) */ static char *func_header_read(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) { struct sip_pvt *p; @@ -9129,7 +9128,7 @@ static struct ast_custom_function sip_header_function = { .read = func_header_read, }; -/*--- function_check_sipdomain: Dial plan function to check if domain is local */ +/*! \brief function_check_sipdomain: Dial plan function to check if domain is local */ static char *func_check_sipdomain(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) { if (!data || ast_strlen_zero(data)) { @@ -9155,7 +9154,7 @@ static struct ast_custom_function checksipdomain_function = { }; -/*--- function_sippeer: ${SIPPEER()} Dialplan function - reads peer data */ +/*! \brief function_sippeer: ${SIPPEER()} Dialplan function - reads peer data */ static char *function_sippeer(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) { char *ret = NULL; @@ -9253,7 +9252,7 @@ struct ast_custom_function sippeer_function = { "\n" }; -/*--- function_sipchaninfo_read: ${SIPCHANINFO()} Dialplan function - reads sip channel data */ +/*! \brief function_sipchaninfo_read: ${SIPCHANINFO()} Dialplan function - reads sip channel data */ static char *function_sipchaninfo_read(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len) { struct sip_pvt *p; @@ -9320,7 +9319,7 @@ static struct ast_custom_function sipchaninfo_function = { -/*--- parse_moved_contact: Parse 302 Moved temporalily response */ +/*! \brief parse_moved_contact: Parse 302 Moved temporalily response */ static void parse_moved_contact(struct sip_pvt *p, struct sip_request *req) { char tmp[256]; @@ -9354,7 +9353,7 @@ static void parse_moved_contact(struct sip_pvt *p, struct sip_request *req) } } -/*--- check_pendings: Check pending actions on SIP call ---*/ +/*! \brief check_pendings: Check pending actions on SIP call ---*/ static void check_pendings(struct sip_pvt *p) { /* Go ahead and send bye at this point */ @@ -9370,7 +9369,7 @@ static void check_pendings(struct sip_pvt *p) } } -/*--- handle_response_invite: Handle SIP response in dialogue ---*/ +/*! \brief handle_response_invite: Handle SIP response in dialogue ---*/ static void handle_response_invite(struct sip_pvt *p, int resp, char *rest, struct sip_request *req, int ignore, int seqno) { int outgoing = ast_test_flag(p, SIP_OUTGOING); @@ -9503,7 +9502,7 @@ static void handle_response_invite(struct sip_pvt *p, int resp, char *rest, stru } } -/*--- handle_response_register: Handle responses on REGISTER to services ---*/ +/*! \brief handle_response_register: Handle responses on REGISTER to services ---*/ static int handle_response_register(struct sip_pvt *p, int resp, char *rest, struct sip_request *req, int ignore, int seqno) { int expires, expires_ms; @@ -9619,7 +9618,7 @@ static int handle_response_register(struct sip_pvt *p, int resp, char *rest, str return 1; } -/*--- handle_response_peerpoke: Handle qualification responses (OPTIONS) */ +/*! \brief handle_response_peerpoke: Handle qualification responses (OPTIONS) */ static int handle_response_peerpoke(struct sip_pvt *p, int resp, char *rest, struct sip_request *req, int ignore, int seqno, int sipmethod) { struct sip_peer *peer; @@ -9675,7 +9674,7 @@ static int handle_response_peerpoke(struct sip_pvt *p, int resp, char *rest, str return 1; } -/*--- handle_response: Handle SIP response in dialogue ---*/ +/*! \brief handle_response: Handle SIP response in dialogue ---*/ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_request *req, int ignore, int seqno) { char *msg, *c; @@ -9961,7 +9960,7 @@ struct sip_dual { struct sip_request req; }; -/*--- sip_park_thread: Park SIP call support function */ +/*! \brief sip_park_thread: Park SIP call support function */ static void *sip_park_thread(void *stuff) { struct ast_channel *chan1, *chan2; @@ -9984,7 +9983,7 @@ static void *sip_park_thread(void *stuff) return NULL; } -/*--- sip_park: Park a call ---*/ +/*! \brief sip_park: Park a call ---*/ static int sip_park(struct ast_channel *chan1, struct ast_channel *chan2, struct sip_request *req) { struct sip_dual *d; @@ -10042,7 +10041,7 @@ static int sip_park(struct ast_channel *chan1, struct ast_channel *chan2, struct return -1; } -/*--- ast_quiet_chan: Turn off generator data */ +/*! \brief ast_quiet_chan: Turn off generator data */ static void ast_quiet_chan(struct ast_channel *chan) { if (chan && chan->_state == AST_STATE_UP) { @@ -10051,7 +10050,7 @@ static void ast_quiet_chan(struct ast_channel *chan) } } -/*--- attempt_transfer: Attempt transfer of SIP call ---*/ +/*! \brief attempt_transfer: Attempt transfer of SIP call ---*/ static int attempt_transfer(struct sip_pvt *p1, struct sip_pvt *p2) { int res = 0; @@ -10122,7 +10121,7 @@ static int attempt_transfer(struct sip_pvt *p1, struct sip_pvt *p2) return 0; } -/*--- gettag: Get tag from packet */ +/*! \brief gettag: Get tag from packet */ static char *gettag(struct sip_request *req, char *header, char *tagbuf, int tagbufsize) { @@ -10144,7 +10143,7 @@ static char *gettag(struct sip_request *req, char *header, char *tagbuf, int tag return thetag; } -/*--- handle_request_options: Handle incoming OPTIONS request */ +/*! \brief handle_request_options: Handle incoming OPTIONS request */ static int handle_request_options(struct sip_pvt *p, struct sip_request *req, int debug) { int res; @@ -10168,7 +10167,7 @@ static int handle_request_options(struct sip_pvt *p, struct sip_request *req, in return res; } -/*--- handle_request_invite: Handle incoming INVITE request */ +/*! \brief handle_request_invite: Handle incoming INVITE request */ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int debug, int ignore, int seqno, struct sockaddr_in *sin, int *recount, char *e) { int res = 1; @@ -10427,7 +10426,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int return res; } -/*--- handle_request_refer: Handle incoming REFER request ---*/ +/*! \brief handle_request_refer: Handle incoming REFER request ---*/ static int handle_request_refer(struct sip_pvt *p, struct sip_request *req, int debug, int ignore, int seqno, int *nounlock) { struct ast_channel *c=NULL; @@ -10494,7 +10493,7 @@ static int handle_request_refer(struct sip_pvt *p, struct sip_request *req, int } return res; } -/*--- handle_request_cancel: Handle incoming CANCEL request ---*/ +/*! \brief handle_request_cancel: Handle incoming CANCEL request ---*/ static int handle_request_cancel(struct sip_pvt *p, struct sip_request *req, int debug, int ignore) { @@ -10523,7 +10522,7 @@ static int handle_request_cancel(struct sip_pvt *p, struct sip_request *req, int } } -/*--- handle_request_bye: Handle incoming BYE request ---*/ +/*! \brief handle_request_bye: Handle incoming BYE request ---*/ static int handle_request_bye(struct sip_pvt *p, struct sip_request *req, int debug, int ignore) { struct ast_channel *c=NULL; @@ -10575,7 +10574,7 @@ static int handle_request_bye(struct sip_pvt *p, struct sip_request *req, int de return 1; } -/*--- handle_request_message: Handle incoming MESSAGE request ---*/ +/*! \brief handle_request_message: Handle incoming MESSAGE request ---*/ static int handle_request_message(struct sip_pvt *p, struct sip_request *req, int debug, int ignore) { if (!ignore) { @@ -10587,7 +10586,7 @@ static int handle_request_message(struct sip_pvt *p, struct sip_request *req, in } return 1; } -/*--- handle_request_subscribe: Handle incoming SUBSCRIBE request ---*/ +/*! \brief handle_request_subscribe: Handle incoming SUBSCRIBE request ---*/ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req, int debug, int ignore, struct sockaddr_in *sin, int seqno, char *e) { int gotdest; @@ -10752,7 +10751,7 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req, return 1; } -/*--- handle_request_register: Handle incoming REGISTER request ---*/ +/*! \brief handle_request_register: Handle incoming REGISTER request ---*/ static int handle_request_register(struct sip_pvt *p, struct sip_request *req, int debug, int ignore, struct sockaddr_in *sin, char *e) { int res = 0; @@ -10773,7 +10772,7 @@ static int handle_request_register(struct sip_pvt *p, struct sip_request *req, i return res; } -/*--- handle_request: Handle SIP requests (methods) ---*/ +/*! \brief handle_request: Handle SIP requests (methods) ---*/ /* this is where all incoming requests go first */ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct sockaddr_in *sin, int *recount, int *nounlock) { @@ -10963,7 +10962,7 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc return res; } -/*--- sipsock_read: Read data from SIP socket ---*/ +/*! \brief sipsock_read: Read data from SIP socket ---*/ /* Successful messages is connected to SIP call and forwarded to handle_request() */ static int sipsock_read(int *id, int fd, short events, void *ignore) { @@ -11047,7 +11046,7 @@ retrylock: return 1; } -/*--- sip_send_mwi_to_peer: Send message waiting indication ---*/ +/*! \brief sip_send_mwi_to_peer: Send message waiting indication ---*/ static int sip_send_mwi_to_peer(struct sip_peer *peer) { /* Called with peerl lock, but releases it */ @@ -11087,7 +11086,7 @@ static int sip_send_mwi_to_peer(struct sip_peer *peer) return 0; } -/*--- do_monitor: The SIP monitoring thread ---*/ +/*! \brief do_monitor: The SIP monitoring thread ---*/ static void *do_monitor(void *data) { int res; @@ -11215,7 +11214,7 @@ restartsearch: } -/*--- restart_monitor: Start the channel monitor thread ---*/ +/*! \brief restart_monitor: Start the channel monitor thread ---*/ static int restart_monitor(void) { pthread_attr_t attr; @@ -11248,7 +11247,7 @@ static int restart_monitor(void) return 0; } -/*--- sip_poke_noanswer: No answer to Qualify poke ---*/ +/*! \brief sip_poke_noanswer: No answer to Qualify poke ---*/ static int sip_poke_noanswer(void *data) { struct sip_peer *peer = data; @@ -11268,7 +11267,7 @@ static int sip_poke_noanswer(void *data) return 0; } -/*--- sip_poke_peer: Check availability of peer, also keep NAT open ---*/ +/*! \brief sip_poke_peer: Check availability of peer, also keep NAT open ---*/ /* This is done with the interval in qualify= option in sip.conf */ /* Default is 2 seconds */ static int sip_poke_peer(struct sip_peer *peer) @@ -11329,7 +11328,7 @@ static int sip_poke_peer(struct sip_peer *peer) return 0; } -/*--- sip_devicestate: Part of PBX channel interface ---*/ +/*! \brief sip_devicestate: Part of PBX channel interface ---*/ /* Return values:--- If we have qualify on and the device is not reachable, regardless of registration @@ -11394,7 +11393,7 @@ static int sip_devicestate(void *data) return res; } -/*--- sip_request: PBX interface function -build SIP pvt structure ---*/ +/*! \brief sip_request: PBX interface function -build SIP pvt structure ---*/ /* SIP calls initiated by the PBX arrive here */ static struct ast_channel *sip_request_call(const char *type, int format, void *data, int *cause) { @@ -11476,7 +11475,7 @@ static struct ast_channel *sip_request_call(const char *type, int format, void * return tmpc; } -/*--- handle_common_options: Handle flag-type options common to users and peers ---*/ +/*! \brief handle_common_options: Handle flag-type options common to users and peers ---*/ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask, struct ast_variable *v) { int res = 0; @@ -11585,7 +11584,7 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask return res; } -/*--- add_sip_domain: Add SIP domain to list of domains we are responsible for */ +/*! \brief add_sip_domain: Add SIP domain to list of domains we are responsible for */ static int add_sip_domain(const char *domain, const enum domain_mode mode, const char *context) { struct domain *d; @@ -11618,7 +11617,7 @@ static int add_sip_domain(const char *domain, const enum domain_mode mode, const return 1; } -/*--- check_sip_domain: Check if domain part of uri is local to our server */ +/*! \brief check_sip_domain: Check if domain part of uri is local to our server */ static int check_sip_domain(const char *domain, char *context, size_t len) { struct domain *d; @@ -11640,7 +11639,7 @@ static int check_sip_domain(const char *domain, char *context, size_t len) return result; } -/*--- clear_sip_domains: Clear our domain list (at reload) */ +/*! \brief clear_sip_domains: Clear our domain list (at reload) */ static void clear_sip_domains(void) { struct domain *d; @@ -11652,7 +11651,7 @@ static void clear_sip_domains(void) } -/*--- add_realm_authentication: Add realm authentication in list ---*/ +/*! \brief add_realm_authentication: Add realm authentication in list ---*/ static struct sip_auth *add_realm_authentication(struct sip_auth *authlist, char *configuration, int lineno) { char authcopy[256]; @@ -11719,7 +11718,7 @@ static struct sip_auth *add_realm_authentication(struct sip_auth *authlist, char } -/*--- clear_realm_authentication: Clear realm authentication list (at reload) ---*/ +/*! \brief clear_realm_authentication: Clear realm authentication list (at reload) ---*/ static int clear_realm_authentication(struct sip_auth *authlist) { struct sip_auth *a = authlist; @@ -11734,7 +11733,7 @@ static int clear_realm_authentication(struct sip_auth *authlist) return 1; } -/*--- find_realm_authentication: Find authentication for a specific realm ---*/ +/*! \brief find_realm_authentication: Find authentication for a specific realm ---*/ static struct sip_auth *find_realm_authentication(struct sip_auth *authlist, char *realm) { struct sip_auth *a = authlist; /* First entry in auth list */ @@ -11749,7 +11748,7 @@ static struct sip_auth *find_realm_authentication(struct sip_auth *authlist, cha return a; } -/*--- build_user: Initiate a SIP user structure from sip.conf ---*/ +/*! \brief build_user: Initiate a SIP user structure from sip.conf ---*/ static struct sip_user *build_user(const char *name, struct ast_variable *v, int realtime) { struct sip_user *user; @@ -11847,7 +11846,7 @@ static struct sip_user *build_user(const char *name, struct ast_variable *v, int return user; } -/*--- temp_peer: Create temporary peer (used in autocreatepeer mode) ---*/ +/*! \brief temp_peer: Create temporary peer (used in autocreatepeer mode) ---*/ static struct sip_peer *temp_peer(const char *name) { struct sip_peer *peer; @@ -11882,7 +11881,7 @@ static struct sip_peer *temp_peer(const char *name) return peer; } -/*--- build_peer: Build peer from config file ---*/ +/*! \brief build_peer: Build peer from config file ---*/ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, int realtime) { struct sip_peer *peer = NULL; @@ -12136,7 +12135,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, int return peer; } -/*--- reload_config: Re-read SIP.conf config file ---*/ +/*! \brief reload_config: Re-read SIP.conf config file ---*/ /* This function reloads all config data, except for active peers (with registrations). They will only change configuration data at restart, not at reload. @@ -12537,7 +12536,7 @@ static int reload_config(void) return 0; } -/*--- sip_get_rtp_peer: Returns null if we can't reinvite (part of RTP interface) */ +/*! \brief sip_get_rtp_peer: Returns null if we can't reinvite (part of RTP interface) */ static struct ast_rtp *sip_get_rtp_peer(struct ast_channel *chan) { struct sip_pvt *p; @@ -12552,7 +12551,7 @@ static struct ast_rtp *sip_get_rtp_peer(struct ast_channel *chan) return rtp; } -/*--- sip_get_vrtp_peer: Returns null if we can't reinvite video (part of RTP interface) */ +/*! \brief sip_get_vrtp_peer: Returns null if we can't reinvite video (part of RTP interface) */ static struct ast_rtp *sip_get_vrtp_peer(struct ast_channel *chan) { struct sip_pvt *p; @@ -12568,7 +12567,7 @@ static struct ast_rtp *sip_get_vrtp_peer(struct ast_channel *chan) return rtp; } -/*--- sip_set_rtp_peer: Set the RTP peer for this call ---*/ +/*! \brief sip_set_rtp_peer: Set the RTP peer for this call ---*/ static int sip_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, struct ast_rtp *vrtp, int codecs, int nat_active) { struct sip_pvt *p; @@ -12633,7 +12632,7 @@ static char *descrip_sipgetheader = "" "Skips to priority+101 if header does not exist\n" "Otherwise returns 0\n"; -/*--- sip_dtmfmode: change the DTMFmode for a SIP call (application) ---*/ +/*! \brief sip_dtmfmode: change the DTMFmode for a SIP call (application) ---*/ static int sip_dtmfmode(struct ast_channel *chan, void *data) { struct sip_pvt *p; @@ -12683,7 +12682,7 @@ static int sip_dtmfmode(struct ast_channel *chan, void *data) return 0; } -/*--- sip_addheader: Add a SIP header ---*/ +/*! \brief sip_addheader: Add a SIP header ---*/ static int sip_addheader(struct ast_channel *chan, void *data) { int arglen; @@ -12719,7 +12718,7 @@ static int sip_addheader(struct ast_channel *chan, void *data) return 0; } -/*--- sip_getheader: Get a SIP header (dialplan app) ---*/ +/*! \brief sip_getheader: Get a SIP header (dialplan app) ---*/ static int sip_getheader(struct ast_channel *chan, void *data) { static int dep_warning = 0; @@ -12767,7 +12766,7 @@ static int sip_getheader(struct ast_channel *chan, void *data) return 0; } -/*--- sip_sipredirect: Transfer call before connect with a 302 redirect ---*/ +/*! \brief sip_sipredirect: Transfer call before connect with a 302 redirect ---*/ /* Called by the transfer() dialplan application through the sip_transfer() */ /* pbx interface function if the call is in ringing state */ /* coded by Martin Pycko (m78pl@yahoo.com) */ @@ -12834,14 +12833,14 @@ static int sip_sipredirect(struct sip_pvt *p, const char *dest) return -1; } -/*--- sip_get_codec: Return SIP UA's codec (part of the RTP interface) ---*/ +/*! \brief sip_get_codec: Return SIP UA's codec (part of the RTP interface) ---*/ static int sip_get_codec(struct ast_channel *chan) { struct sip_pvt *p = chan->tech_pvt; return p->peercapability; } -/*--- sip_rtp: Interface structure with callbacks used to connect to rtp module --*/ +/*! \brief sip_rtp: Interface structure with callbacks used to connect to rtp module --*/ static struct ast_rtp_protocol sip_rtp = { type: channeltype, get_rtp_info: sip_get_rtp_peer, @@ -12850,7 +12849,7 @@ static struct ast_rtp_protocol sip_rtp = { get_codec: sip_get_codec, }; -/*--- sip_poke_all_peers: Send a poke to all known peers */ +/*! \brief sip_poke_all_peers: Send a poke to all known peers */ static void sip_poke_all_peers(void) { ASTOBJ_CONTAINER_TRAVERSE(&peerl, 1, do { @@ -12861,7 +12860,7 @@ static void sip_poke_all_peers(void) ); } -/*--- sip_send_all_registers: Send all known registrations */ +/*! \brief sip_send_all_registers: Send all known registrations */ static void sip_send_all_registers(void) { int ms; @@ -12877,7 +12876,7 @@ static void sip_send_all_registers(void) ); } -/*--- sip_do_reload: Reload module */ +/*! \brief sip_do_reload: Reload module */ static int sip_do_reload(void) { clear_realm_authentication(authl); @@ -12897,7 +12896,7 @@ static int sip_do_reload(void) return 0; } -/*--- sip_reload: Force reload of module from cli ---*/ +/*! \brief sip_reload: Force reload of module from cli ---*/ static int sip_reload(int fd, int argc, char *argv[]) { @@ -12912,7 +12911,7 @@ static int sip_reload(int fd, int argc, char *argv[]) return 0; } -/*--- reload: Part of Asterisk module interface ---*/ +/*! \brief reload: Part of Asterisk module interface ---*/ int reload(void) { return sip_reload(0, 0, NULL); @@ -12948,7 +12947,7 @@ static struct ast_cli_entry my_clis[] = { { { "sip", "reload", NULL }, sip_reload, "Reload SIP configuration", sip_reload_usage }, }; -/*--- load_module: PBX load module - initialization ---*/ +/*! \brief load_module: PBX load module - initialization ---*/ int load_module() { ASTOBJ_CONTAINER_INIT(&userl); /* User object list */ diff --git a/channels/iax2-parser.c b/channels/iax2-parser.c index 716f85448b..bf93f46b91 100755 --- a/channels/iax2-parser.c +++ b/channels/iax2-parser.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Implementation of Inter-Asterisk eXchange + * \brief Implementation of Inter-Asterisk eXchange Protocol, v 2 * */ diff --git a/channels/iax2-parser.h b/channels/iax2-parser.h index 1ed8956bfd..dd90682c2c 100755 --- a/channels/iax2-parser.h +++ b/channels/iax2-parser.h @@ -10,6 +10,10 @@ * This program is free software, distributed under the terms of * the GNU General Public License */ + +/*!\file + * \brief Implementation of the IAX2 protocol + */ #ifndef _IAX2_PARSER_H #define _IAX2_PARSER_H diff --git a/channels/iax2-provision.c b/channels/iax2-provision.c index 0e2ff33971..04360f5f7a 100755 --- a/channels/iax2-provision.c +++ b/channels/iax2-provision.c @@ -16,9 +16,8 @@ * at the top of the source tree. */ -/* - * - * IAX Provisioning Protocol +/*! \file + * \brief IAX Provisioning Protocol * */ diff --git a/channels/iax2-provision.h b/channels/iax2-provision.h index efd775d633..343341fa3c 100755 --- a/channels/iax2-provision.h +++ b/channels/iax2-provision.h @@ -9,6 +9,10 @@ * */ +/*! \file + * \brief IAX2 Provisioning protocol + */ + #include "iax2-parser.h" #define PROV_IE_USEDHCP 1 /* Presense only */ diff --git a/channels/ring10.h b/channels/ring10.h index 13fce373e7..f45f8dbb97 100755 --- a/channels/ring10.h +++ b/channels/ring10.h @@ -1,9 +1,9 @@ -/* - * Signed 16-bit audio data +/*! \file + * \brief Signed 16-bit audio data * * Source: /home/markster/ring10.raw * - * Copyright (C) 1999, Mark Spencer and Linux Support Services + * Copyright (C) 1999-2005, Digium, Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/adpcm_slin_ex.h b/codecs/adpcm_slin_ex.h index 925391d179..c3f86c72d0 100755 --- a/codecs/adpcm_slin_ex.h +++ b/codecs/adpcm_slin_ex.h @@ -1,11 +1,11 @@ -/* +/*! \file * adpcm_slin_ex.h -- * - * 4-bit ADPCM data, 20 milliseconds worth at 8 kHz. + * \brief 4-bit ADPCM data, 20 milliseconds worth at 8 kHz. * * Source: g723.example * - * Copyright (C) 2001, Linux Support Services, Inc. + * Copyright (C) 2001-2005, Digium, Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/codec_a_mu.c b/codecs/codec_a_mu.c index 492f3f436a..d973bff3fb 100755 --- a/codecs/codec_a_mu.c +++ b/codecs/codec_a_mu.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * codec_a_mu.c - translate between alaw and ulaw directly + * \brief codec_a_mu.c - translate between alaw and ulaw directly * */ diff --git a/codecs/codec_adpcm.c b/codecs/codec_adpcm.c index 892847683d..f9a5faf60f 100755 --- a/codecs/codec_adpcm.c +++ b/codecs/codec_adpcm.c @@ -20,9 +20,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * codec_adpcm.c - translate between signed linear and Dialogic ADPCM + * \brief codec_adpcm.c - translate between signed linear and Dialogic ADPCM * */ diff --git a/codecs/codec_alaw.c b/codecs/codec_alaw.c index 5ada484fc8..13506721db 100755 --- a/codecs/codec_alaw.c +++ b/codecs/codec_alaw.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * codec_alaw.c - translate between signed linear and alaw + * \brief codec_alaw.c - translate between signed linear and alaw * */ @@ -56,22 +56,20 @@ static int useplc = 0; #include "slin_ulaw_ex.h" #include "ulaw_slin_ex.h" -/* - * Private workspace for translating signed linear signals to alaw. +/*! + * \brief Private workspace for translating signed linear signals to alaw. */ - struct alaw_encoder_pvt { struct ast_frame f; - char offset[AST_FRIENDLY_OFFSET]; /* Space to build offset */ - unsigned char outbuf[BUFFER_SIZE]; /* Encoded alaw, two nibbles to a word */ + char offset[AST_FRIENDLY_OFFSET]; /*!< Space to build offset */ + unsigned char outbuf[BUFFER_SIZE]; /*!< Encoded alaw, two nibbles to a word */ int tail; }; -/* - * Private workspace for translating alaw signals to signed linear. +/*! + * \brief Private workspace for translating alaw signals to signed linear. */ - struct alaw_decoder_pvt { struct ast_frame f; @@ -81,8 +79,8 @@ struct alaw_decoder_pvt plc_state_t plc; }; -/* - * alawToLin_New +/*! + * \brief alawToLin_New * Create a new instance of alaw_decoder_pvt. * * Results: @@ -92,8 +90,7 @@ struct alaw_decoder_pvt * None. */ -static struct ast_translator_pvt * -alawtolin_new (void) +static struct ast_translator_pvt * alawtolin_new (void) { struct alaw_decoder_pvt *tmp; tmp = malloc (sizeof (struct alaw_decoder_pvt)); @@ -108,8 +105,8 @@ alawtolin_new (void) return (struct ast_translator_pvt *) tmp; } -/* - * LinToalaw_New +/*! + * \brief LinToalaw_New * Create a new instance of alaw_encoder_pvt. * * Results: @@ -119,8 +116,7 @@ alawtolin_new (void) * None. */ -static struct ast_translator_pvt * -lintoalaw_new (void) +static struct ast_translator_pvt * lintoalaw_new (void) { struct alaw_encoder_pvt *tmp; tmp = malloc (sizeof (struct alaw_encoder_pvt)); @@ -134,8 +130,8 @@ lintoalaw_new (void) return (struct ast_translator_pvt *) tmp; } -/* - * alawToLin_FrameIn +/*! + * \brief alawToLin_FrameIn * Fill an input buffer with packed 4-bit alaw values if there is room * left. * @@ -181,8 +177,8 @@ alawtolin_framein (struct ast_translator_pvt *pvt, struct ast_frame *f) return 0; } -/* - * alawToLin_FrameOut +/*! + * \brief alawToLin_FrameOut * Convert 4-bit alaw encoded signals to 16-bit signed linear. * * Results: @@ -193,8 +189,7 @@ alawtolin_framein (struct ast_translator_pvt *pvt, struct ast_frame *f) * None. */ -static struct ast_frame * -alawtolin_frameout (struct ast_translator_pvt *pvt) +static struct ast_frame * alawtolin_frameout (struct ast_translator_pvt *pvt) { struct alaw_decoder_pvt *tmp = (struct alaw_decoder_pvt *) pvt; @@ -213,8 +208,8 @@ alawtolin_frameout (struct ast_translator_pvt *pvt) return &tmp->f; } -/* - * LinToalaw_FrameIn +/*! + * \brief LinToalaw_FrameIn * Fill an input buffer with 16-bit signed linear PCM values. * * Results: @@ -224,8 +219,7 @@ alawtolin_frameout (struct ast_translator_pvt *pvt) * tmp->tail is number of signal values in the input buffer. */ -static int -lintoalaw_framein (struct ast_translator_pvt *pvt, struct ast_frame *f) +static int lintoalaw_framein (struct ast_translator_pvt *pvt, struct ast_frame *f) { struct alaw_encoder_pvt *tmp = (struct alaw_encoder_pvt *) pvt; int x; @@ -242,8 +236,8 @@ lintoalaw_framein (struct ast_translator_pvt *pvt, struct ast_frame *f) return 0; } -/* - * LinToalaw_FrameOut +/*! + * \brief LinToalaw_FrameOut * Convert a buffer of raw 16-bit signed linear PCM to a buffer * of 4-bit alaw packed two to a byte (Big Endian). * @@ -254,8 +248,7 @@ lintoalaw_framein (struct ast_translator_pvt *pvt, struct ast_frame *f) * Leftover inbuf data gets packed, tail gets updated. */ -static struct ast_frame * -lintoalaw_frameout (struct ast_translator_pvt *pvt) +static struct ast_frame * lintoalaw_frameout (struct ast_translator_pvt *pvt) { struct alaw_encoder_pvt *tmp = (struct alaw_encoder_pvt *) pvt; @@ -274,12 +267,11 @@ lintoalaw_frameout (struct ast_translator_pvt *pvt) } -/* - * alawToLin_Sample +/*! + * \brief alawToLin_Sample */ -static struct ast_frame * -alawtolin_sample (void) +static struct ast_frame * alawtolin_sample (void) { static struct ast_frame f; f.frametype = AST_FRAME_VOICE; @@ -293,12 +285,11 @@ alawtolin_sample (void) return &f; } -/* - * LinToalaw_Sample +/*! + * \brief LinToalaw_Sample */ -static struct ast_frame * -lintoalaw_sample (void) +static struct ast_frame * lintoalaw_sample (void) { static struct ast_frame f; f.frametype = AST_FRAME_VOICE; @@ -313,8 +304,8 @@ lintoalaw_sample (void) return &f; } -/* - * alaw_Destroy +/*! + * \brief alaw_Destroy * Destroys a private workspace. * * Results: @@ -324,16 +315,15 @@ lintoalaw_sample (void) * None. */ -static void -alaw_destroy (struct ast_translator_pvt *pvt) +static void alaw_destroy (struct ast_translator_pvt *pvt) { free (pvt); localusecnt--; ast_update_use_count (); } -/* - * The complete translator for alawToLin. +/*! + * \brief The complete translator for alawToLin. */ static struct ast_translator alawtolin = { @@ -348,8 +338,8 @@ static struct ast_translator alawtolin = { alawtolin_sample }; -/* - * The complete translator for LinToalaw. +/*! + * \brief The complete translator for LinToalaw. */ static struct ast_translator lintoalaw = { @@ -364,8 +354,7 @@ static struct ast_translator lintoalaw = { lintoalaw_sample }; -static void -parse_config(void) +static void parse_config(void) { struct ast_config *cfg; struct ast_variable *var; @@ -385,15 +374,13 @@ parse_config(void) } } -int -reload(void) +int reload(void) { parse_config(); return 0; } -int -unload_module (void) +int unload_module (void) { int res; ast_mutex_lock (&localuser_lock); @@ -406,8 +393,7 @@ unload_module (void) return res; } -int -load_module (void) +int load_module (void) { int res; parse_config(); @@ -423,22 +409,19 @@ load_module (void) * Return a description of this module. */ -char * -description (void) +char * description (void) { return tdesc; } -int -usecount (void) +int usecount (void) { int res; STANDARD_USECOUNT (res); return res; } -char * -key () +char * key () { return ASTERISK_GPL_KEY; } diff --git a/codecs/codec_g723_1.c b/codecs/codec_g723_1.c index c7215f4118..327a7f5b53 100755 --- a/codecs/codec_g723_1.c +++ b/codecs/codec_g723_1.c @@ -20,9 +20,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Translate between signed linear and G.723.1 + * \brief Translate between signed linear and G.723.1 * */ diff --git a/codecs/codec_g726.c b/codecs/codec_g726.c index 1ac6ff4508..527363de1d 100755 --- a/codecs/codec_g726.c +++ b/codecs/codec_g726.c @@ -20,9 +20,9 @@ */ -/* +/*! \file * - * codec_g726.c - translate between signed linear and ITU G.726-32kbps + * \brief codec_g726.c - translate between signed linear and ITU G.726-32kbps * */ diff --git a/codecs/codec_gsm.c b/codecs/codec_gsm.c index 78ade004a8..4f52cc8725 100755 --- a/codecs/codec_gsm.c +++ b/codecs/codec_gsm.c @@ -19,9 +19,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Translate between signed linear and Global System for Mobile Communications (GSM) + * \brief Translate between signed linear and Global System for Mobile Communications (GSM) * */ diff --git a/codecs/codec_ilbc.c b/codecs/codec_ilbc.c index c669252cbe..cf6a1b0380 100755 --- a/codecs/codec_ilbc.c +++ b/codecs/codec_ilbc.c @@ -18,9 +18,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Translate between signed linear and Internet Low Bitrate Codec + * \brief Translate between signed linear and Internet Low Bitrate Codec * */ diff --git a/codecs/codec_lpc10.c b/codecs/codec_lpc10.c index be798198ca..599f1af4f3 100755 --- a/codecs/codec_lpc10.c +++ b/codecs/codec_lpc10.c @@ -20,9 +20,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Translate between signed linear and LPC10 (Linear Predictor Code) + * \brief Translate between signed linear and LPC10 (Linear Predictor Code) * */ diff --git a/codecs/codec_speex.c b/codecs/codec_speex.c index 5ec74dcfad..ea21780d63 100755 --- a/codecs/codec_speex.c +++ b/codecs/codec_speex.c @@ -5,8 +5,6 @@ * * Mark Spencer * - * This work was motivated by Jeremy McNamara - * hacked to be configurable by anthm and bkw 9/28/2004 * * See http://www.asterisk.org for more information about * the Asterisk project. Please do not directly contact @@ -19,10 +17,13 @@ * at the top of the source tree. */ -/* +/*! \file * - * Translate between signed linear and Speex (Open Codec) + * \brief Translate between signed linear and Speex (Open Codec) * + * http://www.speex.org + * \note This work was motivated by Jeremy McNamara + * hacked to be configurable by anthm and bkw 9/28/2004 */ #include diff --git a/codecs/codec_ulaw.c b/codecs/codec_ulaw.c index f1d10ef5d9..e437c47fd5 100755 --- a/codecs/codec_ulaw.c +++ b/codecs/codec_ulaw.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * codec_ulaw.c - translate between signed linear and ulaw + * \brief codec_ulaw.c - translate between signed linear and ulaw * */ diff --git a/codecs/g723_slin_ex.h b/codecs/g723_slin_ex.h index 61eab6523f..0bae82d381 100755 --- a/codecs/g723_slin_ex.h +++ b/codecs/g723_slin_ex.h @@ -1,9 +1,9 @@ -/* - * 8-bit raw data +/*! \file + * \brief 8-bit raw data * * Source: g723.example * - * Copyright (C) 1999, Mark Spencer + * Copyright (C) 1999-2005, Digium, Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/g726_slin_ex.h b/codecs/g726_slin_ex.h index b5bff5f800..80cbf00f44 100755 --- a/codecs/g726_slin_ex.h +++ b/codecs/g726_slin_ex.h @@ -1,11 +1,11 @@ -/* +/*! \file * adpcm_slin_ex.h -- * - * 4-bit G.726 data, 20 milliseconds worth at 8 kHz. + * \brief 4-bit G.726 data, 20 milliseconds worth at 8 kHz. * * Source: g726.example * - * Copyright (C) 2001, Linux Support Services, Inc. + * Copyright (C) 2001-2005, Digium, Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/gsm_slin_ex.h b/codecs/gsm_slin_ex.h index f22a633bf5..2f001abecd 100755 --- a/codecs/gsm_slin_ex.h +++ b/codecs/gsm_slin_ex.h @@ -1,9 +1,9 @@ -/* - * 8-bit raw data +/*! \file + * \brief 8-bit raw data * * Source: gsm.example * - * Copyright (C) 1999, Mark Spencer + * Copyright (C) 1999-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/ilbc_slin_ex.h b/codecs/ilbc_slin_ex.h index 5e8569d164..b9f4bd4e8d 100755 --- a/codecs/ilbc_slin_ex.h +++ b/codecs/ilbc_slin_ex.h @@ -1,9 +1,9 @@ -/* - * Raw 8-bit data +/*! \file + * \brief Raw 8-bit data * * Source: ilbc.out * - * Copyright (C) 1999, Mark Spencer and Linux Support Services + * Copyright (C) 1999-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/log2comp.h b/codecs/log2comp.h index 9a669c9c83..ba8d1a8a0f 100755 --- a/codecs/log2comp.h +++ b/codecs/log2comp.h @@ -1,10 +1,10 @@ -/* log2comp.h - various base 2 log computation versions +/*! \file \brief log2comp.h - various base 2 log computation versions * * Asterisk -- A telephony toolkit for Linux. * - * Implementation by Alex Volkov + * \author Alex Volkov * - * Copyright (c) 2004 - 2005, Digium + * Copyright (c) 2004 - 2005, Digium Inc. * * This program is free software, distributed under the terms of * the GNU General Public License diff --git a/codecs/lpc10_slin_ex.h b/codecs/lpc10_slin_ex.h index 802c3f7859..cf9f05999d 100755 --- a/codecs/lpc10_slin_ex.h +++ b/codecs/lpc10_slin_ex.h @@ -1,9 +1,9 @@ -/* - * 8-bit raw data +/*! \file + * \brief 8-bit raw data * * Source: example.lpc10 * - * Copyright (C) 1999, Mark Spencer and Linux Support Services + * Copyright (C) 1999-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/slin_adpcm_ex.h b/codecs/slin_adpcm_ex.h index fb3a77eda3..801549a3ca 100755 --- a/codecs/slin_adpcm_ex.h +++ b/codecs/slin_adpcm_ex.h @@ -1,11 +1,11 @@ -/* - * slin_adpcm_ex.h -- +/*! \file + * \brief slin_adpcm_ex.h -- * * Signed 16-bit audio data, 10 milliseconds worth at 8 kHz. * * Source: g723.example * - * Copyright (C) 2001, Linux Support Services, Inc. + * Copyright (C) 2001-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/slin_g723_ex.h b/codecs/slin_g723_ex.h index fedadd4091..c6dccd776f 100755 --- a/codecs/slin_g723_ex.h +++ b/codecs/slin_g723_ex.h @@ -1,9 +1,9 @@ -/* - * Signed 16-bit audio data +/*! \file + * \brief Signed 16-bit audio data * * Source: g723.example * - * Copyright (C) 1999, Mark Spencer + * Copyright (C) 1999-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/slin_g726_ex.h b/codecs/slin_g726_ex.h index efd516a11e..8dad39cbdc 100755 --- a/codecs/slin_g726_ex.h +++ b/codecs/slin_g726_ex.h @@ -1,11 +1,11 @@ -/* - * slin_adpcm_ex.h -- +/*! \file + * \brief slin_adpcm_ex.h -- * * Signed 16-bit audio data, 10 milliseconds worth at 8 kHz. * * Source: g726.example * - * Copyright (C) 2001, Linux Support Services, Inc. + * Copyright (C) 2001-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/slin_gsm_ex.h b/codecs/slin_gsm_ex.h index 26dd6d7e66..7ac2818000 100755 --- a/codecs/slin_gsm_ex.h +++ b/codecs/slin_gsm_ex.h @@ -1,9 +1,9 @@ -/* - * Signed 16-bit audio data +/*! \file + * \brief Signed 16-bit audio data * * Source: gsm.example * - * Copyright (C) 1999, Mark Spencer + * Copyright (C) 1999-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/slin_ilbc_ex.h b/codecs/slin_ilbc_ex.h index 1e2b5779ee..b89655c6b2 100755 --- a/codecs/slin_ilbc_ex.h +++ b/codecs/slin_ilbc_ex.h @@ -1,9 +1,9 @@ -/* - * Signed 16-bit audio data +/*! \file + * \brief Signed 16-bit audio data * * Source: gsm.example * - * Copyright (C) 1999, Mark Spencer + * Copyright (C) 1999-2005, Digium Inc * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/slin_lpc10_ex.h b/codecs/slin_lpc10_ex.h index d738ae41e3..169e9a9e16 100755 --- a/codecs/slin_lpc10_ex.h +++ b/codecs/slin_lpc10_ex.h @@ -1,9 +1,9 @@ -/* - * Signed 16-bit audio data +/*! \file + * \brief Signed 16-bit audio data * * Source: example.slin * - * Copyright (C) 1999, Mark Spencer and Linux Support Services + * Copyright (C) 1999-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/slin_speex_ex.h b/codecs/slin_speex_ex.h index 6f6e243a18..0c6258c37b 100755 --- a/codecs/slin_speex_ex.h +++ b/codecs/slin_speex_ex.h @@ -1,9 +1,9 @@ -/* - * Signed 16-bit audio data, 500ms of speech at 8kHz to ensure no DTX triggered +/*! \file + * \brief Signed 16-bit audio data, 500ms of speech at 8kHz to ensure no DTX triggered * * Source: speex.example * - * Copyright (C) 1999, Mark Spencer + * Copyright (C) 1999-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/slin_ulaw_ex.h b/codecs/slin_ulaw_ex.h index c9016aef07..9af79eba27 100755 --- a/codecs/slin_ulaw_ex.h +++ b/codecs/slin_ulaw_ex.h @@ -1,11 +1,11 @@ -/* - * slin_ulaw_ex.h -- +/*! \file + * \brief slin_ulaw_ex.h -- * * Signed 16-bit audio data, 10 milliseconds worth at 8 kHz. * * Source: g723.example * - * Copyright (C) 2001, Linux Support Services, Inc. + * Copyright (C) 2001-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/speex_slin_ex.h b/codecs/speex_slin_ex.h index 5fc228426e..4047437998 100755 --- a/codecs/speex_slin_ex.h +++ b/codecs/speex_slin_ex.h @@ -1,9 +1,9 @@ -/* - * Random Data data +/*! \file + * \brief Random Data data * * Source: speex.raw * - * Copyright (C) 1999, Mark Spencer and Linux Support Services + * Copyright (C) 1999-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/codecs/ulaw_slin_ex.h b/codecs/ulaw_slin_ex.h index 897808f249..9f0417a6be 100755 --- a/codecs/ulaw_slin_ex.h +++ b/codecs/ulaw_slin_ex.h @@ -1,11 +1,11 @@ -/* - * ulaw_slin_ex.h -- +/*! \file + * \brief ulaw_slin_ex.h -- * * 4-bit ADPCM data, 20 milliseconds worth at 8 kHz. * * Source: g723.example * - * Copyright (C) 2001, Linux Support Services, Inc. + * Copyright (C) 2001-2005, Digium Inc. * * Distributed under the terms of the GNU General Public License * diff --git a/formats/format_au.c b/formats/format_au.c index e707d5086b..bfa4cdadee 100755 --- a/formats/format_au.c +++ b/formats/format_au.c @@ -15,9 +15,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Work with Sun Microsystems AU format. + * \brief Work with Sun Microsystems AU format. * */ diff --git a/formats/format_g723.c b/formats/format_g723.c index 720f2e752e..e046b6b3ce 100755 --- a/formats/format_g723.c +++ b/formats/format_g723.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Old-style G.723 frame/timestamp format. + * \brief Old-style G.723 frame/timestamp format. * */ diff --git a/formats/format_g726.c b/formats/format_g726.c index 5705a574c3..cb1a3746eb 100755 --- a/formats/format_g726.c +++ b/formats/format_g726.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*!\file * - * Headerless G.726 (16/24/32/40kbps) data format for Asterisk. + * \brief Headerless G.726 (16/24/32/40kbps) data format for Asterisk. * */ diff --git a/formats/format_g729.c b/formats/format_g729.c index c23bffce37..39a6bc87c0 100755 --- a/formats/format_g729.c +++ b/formats/format_g729.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Save to raw, headerless G729 data. + * \brief Save to raw, headerless G729 data. * */ diff --git a/formats/format_gsm.c b/formats/format_gsm.c index ec92f71384..a3a6aaecb2 100755 --- a/formats/format_gsm.c +++ b/formats/format_gsm.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Save to raw, headerless GSM data. + * \brief Save to raw, headerless GSM data. * */ diff --git a/formats/format_h263.c b/formats/format_h263.c index 1fc36989d0..40d8c2eb13 100755 --- a/formats/format_h263.c +++ b/formats/format_h263.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Save to raw, headerless h263 data. + * \brief Save to raw, headerless h263 data. * */ diff --git a/formats/format_ilbc.c b/formats/format_ilbc.c index 94a85c71de..4aee8c94ec 100755 --- a/formats/format_ilbc.c +++ b/formats/format_ilbc.c @@ -18,9 +18,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Save to raw, headerless iLBC data. + * \brief Save to raw, headerless iLBC data. * */ diff --git a/formats/format_jpeg.c b/formats/format_jpeg.c index a3530cfc64..2a5dfc15fe 100755 --- a/formats/format_jpeg.c +++ b/formats/format_jpeg.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * JPEG File format support. + * \brief JPEG File format support. * */ diff --git a/formats/format_ogg_vorbis.c b/formats/format_ogg_vorbis.c index b39a7741ce..b1bbfa7fde 100755 --- a/formats/format_ogg_vorbis.c +++ b/formats/format_ogg_vorbis.c @@ -14,9 +14,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * OGG/Vorbis streams. + * \brief OGG/Vorbis streams. * */ diff --git a/formats/format_pcm.c b/formats/format_pcm.c index dcfc3ea776..13fef5ff75 100755 --- a/formats/format_pcm.c +++ b/formats/format_pcm.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Flat, binary, ulaw PCM file format. + * \brief Flat, binary, ulaw PCM file format. * */ diff --git a/formats/format_pcm_alaw.c b/formats/format_pcm_alaw.c index c9efba1e71..2cd874ecc0 100755 --- a/formats/format_pcm_alaw.c +++ b/formats/format_pcm_alaw.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Flat, binary, alaw PCM file format. + * \brief Flat, binary, alaw PCM file format. * */ diff --git a/formats/format_sln.c b/formats/format_sln.c index 6e056aa0ff..6c36f1730c 100755 --- a/formats/format_sln.c +++ b/formats/format_sln.c @@ -15,9 +15,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * RAW SLINEAR Format + * \brief RAW SLINEAR Format * */ diff --git a/formats/format_vox.c b/formats/format_vox.c index 1c1e955242..0ef901079c 100755 --- a/formats/format_vox.c +++ b/formats/format_vox.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Flat, binary, ADPCM vox file format. + * \brief Flat, binary, ADPCM vox file format. * */ diff --git a/formats/format_wav.c b/formats/format_wav.c index 7d212b409b..f721ff6fe1 100755 --- a/formats/format_wav.c +++ b/formats/format_wav.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Work with WAV in the proprietary Microsoft format. + * \brief Work with WAV in the proprietary Microsoft format. * */ diff --git a/formats/format_wav_gsm.c b/formats/format_wav_gsm.c index 9c1f7b637a..3403a8d9ea 100755 --- a/formats/format_wav_gsm.c +++ b/formats/format_wav_gsm.c @@ -16,9 +16,9 @@ * at the top of the source tree. */ -/* +/*! \file * - * Save GSM in the proprietary Microsoft format. + * \brief Save GSM in the proprietary Microsoft format. * */ diff --git a/include/asterisk.h b/include/asterisk.h index e10200bbdb..9508b7bffe 100755 --- a/include/asterisk.h +++ b/include/asterisk.h @@ -11,6 +11,10 @@ * the GNU General Public License */ +/*! \file + * \brief Asterisk main include file. File version handling, generic pbx functions. + */ + #ifndef _ASTERISK_H #define _ASTERISK_H diff --git a/include/asterisk/doxyref.h b/include/asterisk/doxyref.h index f87a98b404..b7675405a6 100755 --- a/include/asterisk/doxyref.h +++ b/include/asterisk/doxyref.h @@ -37,6 +37,14 @@ * \arg \ref AstVar * \arg \ref AstENUM * \arg \ref ConfigFiles + * \arg \ref SoundFiles + * \section wwwsites Web sites + * \arg Main: Asterisk Developer's website http://www.asterisk.org/developers/ + * \arg Bugs: The Issue tracker http://bugs.digium.com + * \arg Lists: List server http://lists.digium.com + * \arg Wiki: The Asterisk Wiki http://www.voip-info.org + * \arg Docs: The Asterisk Documentation Project http://www.asteriskdocs.org + * \arg Digium: The Asterisk company http://www.digium.com */ /*! \page CodeGuide Coding Guidelines @@ -45,6 +53,7 @@ * 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. @@ -53,15 +62,19 @@ * \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 + * \arg \ref manager.c * \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 @@ -69,6 +82,7 @@ * \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. @@ -82,6 +96,7 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub /*! \page AstCDR CDR - Call Data Records and billing * \section cdr Call Data Records * \verbinclude README.cdr + * \arg \ref cdr.c * \arg \ref Config_cdr CDR configuration files */ /*! \page AstREADME README - the general administrator introduction @@ -100,6 +115,9 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub /*! \page AstENUM ENUM * \section enumreadme ENUM * \arg Configuration: \ref Config_enum + * \arg \ref enum.c + * \arg \ref app_enumlookup.c + * * \verbinclude README.enum */ @@ -210,19 +228,24 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub /*! \page Config_rtp RTP configuration * \ref rtp.c + * Used in \ref chan_sip.c and \ref chan_mgcp.c (and various H.323 channels) * \section rtpconf rtp.conf * \verbinclude rtp.conf.sample */ + /*! \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 + * \arg See also \ref enumreadme + * \arg \ref app_enumlookup.c * \verbinclude enum.conf.sample */ + /*! \page Config_cdr CDR configuration * \arg \link cdrconf Main CDR Configuration \endlink * \arg \link cdrcustom Custom CDR driver configuration \endlink @@ -233,19 +256,28 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub * \section cdrconf Main CDR configuration * \verbinclude cdr.conf.sample * \section cdrcustom Custom CDR driver configuration + * \arg \ref cdr_custom.c * \verbinclude cdr_custom.conf.sample * \section cdrami Manager CDR driver configuration + * See also: + * \arg \ref AstAMI + * \arg \ref cdr_manager.c * \verbinclude cdr_manager.conf.sample * \section cdrodbc ODBC CDR driver configuration - * Based on http://www.unixodbc.org + * See also: + * \arg http://www.unixodbc.org + * \arg \ref cdr_odbc.c * \verbinclude cdr_odbc.conf.sample * \section cdrpgsql Postgres CDR driver configuration + * \arg \ref cdr_pgsql.c + * \arg http://www.postgresql.org * \verbinclude cdr_pgsql.conf.sample - * \verbinclude cdr_tds.conf.sample * \section cdrtds FreeTDS CDR driver configuration + * \arg http://www.freetds.org * \verbinclude cdr_tds.conf.sample */ + /*! \page Config_moh Music on Hold Configuration * \arg Implemented in \ref res_musiconhold.c * \section mohconf musiconhold.conf @@ -284,3 +316,14 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub * \verbinclude meetme.conf.sample */ +/*! \page SoundFiles Sound files + * \section SecSound Asterisk Sound files + * Asterisk includes a large amount of sound files. Many of these + * are used by applications and demo scripts within asterisk. + * + * Additional sound files are available in the asterisk-addons + * repository on cvs.digium.com + * + * \section SoundList List of included sound files + * \verbinclude sounds.txt + */ diff --git a/manager.c b/manager.c index 3f3c68f111..10758390c5 100755 --- a/manager.c +++ b/manager.c @@ -195,7 +195,7 @@ static int handle_showmancmd(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- handle_showmancmds: CLI command */ +/*! \brief handle_showmancmds: CLI command */ /* Should change to "manager show commands" */ static int handle_showmancmds(int fd, int argc, char *argv[]) { @@ -215,7 +215,7 @@ static int handle_showmancmds(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- handle_showmanconn: CLI command show manager connected */ +/*! \brief handle_showmanconn: CLI command show manager connected */ /* Should change to "manager show connected" */ static int handle_showmanconn(int fd, int argc, char *argv[]) { @@ -737,7 +737,7 @@ static int action_getvar(struct mansession *s, struct message *m) } -/*--- action_status: Manager "status" command to show channels */ +/*! \brief action_status: Manager "status" command to show channels */ /* Needs documentation... */ static int action_status(struct mansession *s, struct message *m) { @@ -835,7 +835,7 @@ static char mandescr_redirect[] = " *Priority: Priority to transfer to\n" " ActionID: Optional Action id for message matching.\n"; -/*--- action_redirect: The redirect manager command */ +/*! \brief action_redirect: The redirect manager command */ static int action_redirect(struct mansession *s, struct message *m) { char *name = astman_get_header(m, "Channel"); @@ -892,7 +892,7 @@ static char mandescr_command[] = " *Command: Asterisk CLI command to run\n" " ActionID: Optional Action id for message matching.\n"; -/*--- action_command: Manager command "command" - execute CLI command */ +/*! \brief action_command: Manager command "command" - execute CLI command */ static int action_command(struct mansession *s, struct message *m) { char *cmd = astman_get_header(m, "Command"); @@ -1477,7 +1477,7 @@ static int append_event(struct mansession *s, const char *str) return -1; } -/*--- manager_event: Send AMI event to client */ +/*! \brief manager_event: Send AMI event to client */ int manager_event(int category, char *event, char *fmt, ...) { struct mansession *s; diff --git a/pbx.c b/pbx.c index 843ce1daa7..6725074491 100755 --- a/pbx.c +++ b/pbx.c @@ -57,8 +57,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/app.h" #include "asterisk/devicestate.h" -/* - * I M P O R T A N T : +/*! + * \note I M P O R T A N T : * * The speed of extension handling will likely be among the most important * aspects of this PBX. The switching scheme as it exists right now isn't @@ -984,7 +984,7 @@ static char *substring(char *value, int offset, int length, char *workspace, siz return ret; } -/*--- pbx_retrieve_variable: Support for Asterisk built-in variables and +/*! \brief pbx_retrieve_variable: Support for Asterisk built-in variables and functions in the dialplan ---*/ void pbx_retrieve_variable(struct ast_channel *c, const char *var, char **ret, char *workspace, int workspacelen, struct varshead *headp) @@ -1769,7 +1769,7 @@ static int pbx_extension_helper(struct ast_channel *c, struct ast_context *con, } -/*--- ast_hint_extension: Find hint for given extension in context */ +/*! \brief ast_hint_extension: Find hint for given extension in context */ static struct ast_exten *ast_hint_extension(struct ast_channel *c, const char *context, const char *exten) { struct ast_exten *e; @@ -1789,7 +1789,7 @@ static struct ast_exten *ast_hint_extension(struct ast_channel *c, const char *c return e; } -/*--- ast_extensions_state2: Check state of extension by using hints */ +/*! \brief ast_extensions_state2: Check state of extension by using hints */ static int ast_extension_state2(struct ast_exten *e) { char hint[AST_MAX_EXTENSION] = ""; @@ -1863,7 +1863,7 @@ static int ast_extension_state2(struct ast_exten *e) return AST_EXTENSION_NOT_INUSE; } -/*--- ast_extension_state2str: Return extension_state as string */ +/*! \brief ast_extension_state2str: Return extension_state as string */ const char *ast_extension_state2str(int extension_state) { int i; @@ -1876,7 +1876,7 @@ const char *ast_extension_state2str(int extension_state) return "Unknown"; } -/*--- ast_extension_state: Check extension state for an extension by using hint */ +/*! \brief ast_extension_state: Check extension state for an extension by using hint */ int ast_extension_state(struct ast_channel *c, char *context, char *exten) { struct ast_exten *e; @@ -1930,7 +1930,7 @@ void ast_hint_state_changed(const char *device) ast_mutex_unlock(&hintlock); } -/*--- ast_extension_state_add: Add watcher for extension states */ +/*! \brief ast_extension_state_add: Add watcher for extension states */ int ast_extension_state_add(const char *context, const char *exten, ast_state_cb_type callback, void *data) { @@ -2013,7 +2013,7 @@ int ast_extension_state_add(const char *context, const char *exten, return cblist->id; } -/*--- ast_extension_state_del: Remove a watcher from the callback list */ +/*! \brief ast_extension_state_del: Remove a watcher from the callback list */ int ast_extension_state_del(int id, ast_state_cb_type callback) { struct ast_hint *list; @@ -2076,7 +2076,7 @@ int ast_extension_state_del(int id, ast_state_cb_type callback) return -1; } -/*--- ast_add_hint: Add hint to hint list, check initial extension state */ +/*! \brief ast_add_hint: Add hint to hint list, check initial extension state */ static int ast_add_hint(struct ast_exten *e) { struct ast_hint *list; @@ -2119,7 +2119,7 @@ static int ast_add_hint(struct ast_exten *e) return 0; } -/*--- ast_change_hint: Change hint for an extension */ +/*! \brief ast_change_hint: Change hint for an extension */ static int ast_change_hint(struct ast_exten *oe, struct ast_exten *ne) { struct ast_hint *list; @@ -2140,7 +2140,7 @@ static int ast_change_hint(struct ast_exten *oe, struct ast_exten *ne) return -1; } -/*--- ast_remove_hint: Remove hint from extension */ +/*! \brief ast_remove_hint: Remove hint from extension */ static int ast_remove_hint(struct ast_exten *e) { /* Cleanup the Notifys if hint is removed */ @@ -2185,7 +2185,7 @@ static int ast_remove_hint(struct ast_exten *e) } -/*--- ast_get_hint: Get hint for channel */ +/*! \brief ast_get_hint: Get hint for channel */ int ast_get_hint(char *hint, int hintsize, char *name, int namesize, struct ast_channel *c, const char *context, const char *exten) { struct ast_exten *e; @@ -3129,7 +3129,7 @@ static int handle_show_application(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- handle_show_hints: CLI support for listing registred dial plan hints */ +/*! \brief handle_show_hints: CLI support for listing registred dial plan hints */ static int handle_show_hints(int fd, int argc, char *argv[]) { struct ast_hint *hint; @@ -3164,7 +3164,7 @@ static int handle_show_hints(int fd, int argc, char *argv[]) return RESULT_SUCCESS; } -/*--- handle_show_switches: CLI support for listing registred dial plan switches */ +/*! \brief handle_show_switches: CLI support for listing registred dial plan switches */ static int handle_show_switches(int fd, int argc, char *argv[]) { struct ast_switch *sw; @@ -3927,7 +3927,7 @@ static char *days[] = "sat", }; -/*--- get_dow: Get day of week */ +/*! \brief get_dow: Get day of week */ static unsigned int get_dow(char *dow) { char *c; diff --git a/say.c b/say.c index 140da80cf2..dfd5c75b22 100755 --- a/say.c +++ b/say.c @@ -402,7 +402,7 @@ static int wait_file(struct ast_channel *chan, const char *ints, const char *fil return res; } -/*--- ast_say_number_full: call language-specific functions */ +/*! \brief ast_say_number_full: call language-specific functions */ /* Called from AGI */ int ast_say_number_full(struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) { @@ -446,13 +446,13 @@ int ast_say_number_full(struct ast_channel *chan, int num, const char *ints, con return(ast_say_number_full_en(chan, num, ints, language, audiofd, ctrlfd)); } -/*--- ast_say_number: call language-specific functions without file descriptors */ +/*! \brief ast_say_number: call language-specific functions without file descriptors */ int ast_say_number(struct ast_channel *chan, int num, const char *ints, const char *language, const char *options) { return(ast_say_number_full(chan, num, ints, language, options, -1, -1)); } -/*--- ast_say_number_full_en: English syntax */ +/*! \brief ast_say_number_full_en: English syntax */ /* This is the default syntax, if no other syntax defined in this file is used */ static int ast_say_number_full_en(struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) { @@ -526,7 +526,7 @@ static int exp10_int(int power) return res; } -/*--- ast_say_number_full_cz: Czech syntax */ +/*! \brief ast_say_number_full_cz: Czech syntax */ /* files needed: * 1m,2m - gender male * 1w,2w - gender female @@ -641,7 +641,7 @@ static int ast_say_number_full_cz(struct ast_channel *chan, int num, const char return res; } -/*--- ast_say_number_full_da: Danish syntax */ +/*! \brief ast_say_number_full_da: Danish syntax */ /* New files: In addition to English, the following sounds are required: "1N", "millions", "and" and "1-and" through "9-and" */ @@ -749,7 +749,7 @@ static int ast_say_number_full_da(struct ast_channel *chan, int num, const char return res; } -/*--- ast_say_number_full_de: German syntax */ +/*! \brief ast_say_number_full_de: German syntax */ /* New files: In addition to English, the following sounds are required: "millions" @@ -889,7 +889,7 @@ static int ast_say_number_full_de(struct ast_channel *chan, int num, const char return res; } -/*--- ast_say_number_full_en_GB: British and Norwegian syntax */ +/*! \brief ast_say_number_full_en_GB: British and Norwegian syntax */ /* New files: In addition to American English, the following sounds are required: "and" */ @@ -965,7 +965,7 @@ static int ast_say_number_full_en_GB(struct ast_channel *chan, int num, const ch return res; } -/*--- ast_say_number_full_es: Spanish syntax */ +/*! \brief ast_say_number_full_es: Spanish syntax */ /* New files: Requires a few new audios: 1F.gsm: feminine 'una' @@ -1071,7 +1071,7 @@ static int ast_say_number_full_es(struct ast_channel *chan, int num, const char return res; } -/*--- ast_say_number_full_fr: French syntax */ +/*! \brief ast_say_number_full_fr: French syntax */ /* Extra sounds needed: 1F: feminin 'une' et: 'and' */ @@ -1163,7 +1163,7 @@ static int ast_say_number_full_fr(struct ast_channel *chan, int num, const char -/*--- ast_say_number_full_he: Hebrew syntax */ +/*! \brief ast_say_number_full_he: Hebrew syntax */ /* Extra sounds needed: 1F: feminin 'one' ve: 'and' @@ -1307,7 +1307,7 @@ static int ast_say_number_full_he(struct ast_channel *chan, int num, return res; } -/*--- ast_say_number_full_it: Italian */ +/*! \brief ast_say_number_full_it: Italian */ static int ast_say_number_full_it(struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) { int res = 0; @@ -1460,7 +1460,7 @@ static int ast_say_number_full_it(struct ast_channel *chan, int num, const char return res; } -/*--- ast_say_number_full_nl: dutch syntax */ +/*! \brief ast_say_number_full_nl: dutch syntax */ /* New files: digits/nl-en */ static int ast_say_number_full_nl(struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) @@ -1537,7 +1537,7 @@ static int ast_say_number_full_nl(struct ast_channel *chan, int num, const char return res; } -/*--- ast_say_number_full_no: Norwegian syntax */ +/*! \brief ast_say_number_full_no: Norwegian syntax */ /* New files: In addition to American English, the following sounds are required: "and", "1N" */ @@ -2018,7 +2018,7 @@ static int ast_say_number_full_pt(struct ast_channel *chan, int num, const char return res; } -/*--- ast_say_number_full_se: Swedish syntax */ +/*! \brief ast_say_number_full_se: Swedish syntax */ static int ast_say_number_full_se(struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) { int res = 0; @@ -2090,7 +2090,7 @@ static int ast_say_number_full_se(struct ast_channel *chan, int num, const char return res; } -/*--- ast_say_number_full_tw: Taiwanese syntax */ +/*! \brief ast_say_number_full_tw: Taiwanese syntax */ static int ast_say_number_full_tw(struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) { int res = 0; @@ -2156,7 +2156,7 @@ static int ast_say_number_full_tw(struct ast_channel *chan, int num, const char } -/*--- determine last digits for thousands/millions (ru) */ +/*! \brief determine last digits for thousands/millions (ru) */ static int get_lastdigits_ru(int num) { if (num < 20) { return num; @@ -2169,8 +2169,8 @@ static int get_lastdigits_ru(int num) { } -/*--- ast_say_number_full_ru: Russian syntax */ -/*--- additional files: +/*! \brief ast_say_number_full_ru: Russian syntax */ +/*! \brief additional files: n00.gsm (one hundred, two hundred, ...) thousand.gsm million.gsm @@ -2262,7 +2262,7 @@ static int ast_say_number_full_ru(struct ast_channel *chan, int num, const char } -/*--- ast_say_enumeration_full: call language-specific functions */ +/*! \brief ast_say_enumeration_full: call language-specific functions */ /* Called from AGI */ int ast_say_enumeration_full(struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) { @@ -2278,13 +2278,13 @@ int ast_say_enumeration_full(struct ast_channel *chan, int num, const char *ints return(ast_say_enumeration_full_en(chan, num, ints, language, audiofd, ctrlfd)); } -/*--- ast_say_enumeration: call language-specific functions without file descriptors */ +/*! \brief ast_say_enumeration: call language-specific functions without file descriptors */ int ast_say_enumeration(struct ast_channel *chan, int num, const char *ints, const char *language, const char *options) { return(ast_say_enumeration_full(chan, num, ints, language, options, -1, -1)); } -/*--- ast_say_enumeration_full_en: English syntax */ +/*! \brief ast_say_enumeration_full_en: English syntax */ /* This is the default syntax, if no other syntax defined in this file is used */ static int ast_say_enumeration_full_en(struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) { @@ -2383,7 +2383,7 @@ static int ast_say_enumeration_full_en(struct ast_channel *chan, int num, const return res; } -/*--- ast_say_enumeration_full_da: Danish syntax */ +/*! \brief ast_say_enumeration_full_da: Danish syntax */ static int ast_say_enumeration_full_da(struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) { /* options can be: '' or 'm' male gender; 'f' female gender; 'n' neuter gender; 'p' plural */ @@ -2546,7 +2546,7 @@ static int ast_say_enumeration_full_da(struct ast_channel *chan, int num, const return res; } -/*--- ast_say_enumeration_full_de: German syntax */ +/*! \brief ast_say_enumeration_full_de: German syntax */ static int ast_say_enumeration_full_de(struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) { /* options can be: '' or 'm' male gender; 'f' female gender; 'n' neuter gender; 'p' plural */ diff --git a/utils.c b/utils.c index b635be94cc..f4bbcc0dd9 100755 --- a/utils.c +++ b/utils.c @@ -167,7 +167,7 @@ static int gethostbyname_r (const char *name, struct hostent *ret, char *buf, #endif -/* Re-entrant (thread safe) version of gethostbyname that replaces the +/*! \brief Re-entrant (thread safe) version of gethostbyname that replaces the standard gethostbyname (which is not thread safe) */ struct hostent *ast_gethostbyname(const char *host, struct ast_hostent *hp) @@ -217,9 +217,6 @@ struct hostent *ast_gethostbyname(const char *host, struct ast_hostent *hp) } -/* This is a regression test for recursive mutexes. - test_for_thread_safety() will return 0 if recursive mutex locks are - working properly, and non-zero if they are not working properly. */ AST_MUTEX_DEFINE_STATIC(test_lock); AST_MUTEX_DEFINE_STATIC(test_lock2); @@ -227,6 +224,9 @@ static pthread_t test_thread; static int lock_count = 0; static int test_errors = 0; +/*! \brief This is a regression test for recursive mutexes. + test_for_thread_safety() will return 0 if recursive mutex locks are + working properly, and non-zero if they are not working properly. */ static void *test_thread_body(void *data) { ast_mutex_lock(&test_lock); @@ -278,7 +278,7 @@ int test_for_thread_safety(void) return(test_errors); /* return 0 on success. */ } -/*--- ast_md5_hash: Produce 16 char MD5 hash of value. ---*/ +/*! \brief ast_md5_hash: Produce 16 char MD5 hash of value. ---*/ void ast_md5_hash(char *output, char *input) { struct MD5Context md5; @@ -409,7 +409,7 @@ static void base64_init(void) #endif } -/*--- ast_uri_encode: Turn text string to URI-encoded %XX version ---*/ +/*! \brief ast_uri_encode: Turn text string to URI-encoded %XX version ---*/ /* At this point, we're converting from ISO-8859-x (8-bit), not UTF8 as in the SIP protocol spec If doreserved == 1 we will convert reserved characters also. @@ -451,7 +451,7 @@ char *ast_uri_encode(char *string, char *outbuf, int buflen, int doreserved) return outbuf; } -/*--- ast_uri_decode: Decode SIP URI, URN, URL (overwrite the string) ---*/ +/*! \brief ast_uri_decode: Decode SIP URI, URN, URL (overwrite the string) ---*/ void ast_uri_decode(char *s) { char *o; @@ -468,7 +468,7 @@ void ast_uri_decode(char *s) *o = '\0'; } -/*--- ast_inet_ntoa: Recursive thread safe replacement of inet_ntoa */ +/*! \brief ast_inet_ntoa: Recursive thread safe replacement of inet_ntoa */ const char *ast_inet_ntoa(char *buf, int bufsiz, struct in_addr ia) { return inet_ntop(AF_INET, &ia, buf, bufsiz);