*
* See Also:
* \arg \ref AstCREDITS
- * \arg \ref Config_agent
+ * \arg \ref agents.conf "Config_agent"
*/
+
+/*!
+ * \page agents.conf agents.conf
+ * \verbinclude agents.conf.sample
+ */
+
/*** MODULEINFO
<support_level>core</support_level>
***/
* \brief Lock the agent.
*
* \param agent Agent to lock
- *
- * \return Nothing
*/
#define agent_lock(agent) _agent_lock(agent, __FILE__, __PRETTY_FUNCTION__, __LINE__, #agent)
static inline void _agent_lock(struct agent_pvt *agent, const char *file, const char *function, int line, const char *var)
* \brief Unlock the agent.
*
* \param agent Agent to unlock
- *
- * \return Nothing
*/
#define agent_unlock(agent) _agent_unlock(agent, __FILE__, __PRETTY_FUNCTION__, __LINE__, #agent)
static inline void _agent_unlock(struct agent_pvt *agent, const char *file, const char *function, int line, const char *var)
* \note Assumes the agent lock is already obtained.
*
* \note Defined locking order is channel lock then agent lock.
- *
- * \return Nothing
*/
static struct ast_channel *agent_lock_logged(struct agent_pvt *agent)
{
* \since 12.0.0
*
* \param agent_id Which agent needs the device state updated.
- *
- * \return Nothing
*/
static void agent_devstate_changed(const char *agent_id)
{
* \param payload_size Size of the payload if payload is non-NULL. A number otherwise.
*
* \note The payload MUST NOT have any resources that need to be freed.
- *
- * \return Nothing
*/
static void clear_agent_status(struct ast_bridge_channel *bridge_channel, const void *payload, size_t payload_size)
{
* \param agent Which agent is connecting to the caller.
*
* \note The agent is locked on entry and not locked on exit.
- *
- * \return Nothing
*/
static void agent_connect_caller(struct ast_bridge_channel *bridge_channel, struct agent_pvt *agent)
{
* bridge_channel->bridge_pvt.
*
* \note On entry, self is already locked.
- *
- * \return Nothing
*/
static void bridge_agent_hold_pull(struct ast_bridge *self, struct ast_bridge_channel *bridge_channel)
{
* references to the bridge so it can be destroyed.
*
* \note On entry, self must NOT be locked.
- *
- * \return Nothing
*/
static void bridge_agent_hold_dissolving(struct ast_bridge *self)
{
* \param agent Which agent logging out.
*
* \note On entry agent is already locked. On exit it is no longer locked.
- *
- * \return Nothing
*/
static void agent_logout(struct agent_pvt *agent)
{
*
* \param agent Which agent.
* \param logged The logged in channel.
- *
- * \return Nothing
*/
static void agent_run(struct agent_pvt *agent, struct ast_channel *logged)
{
*
* \param agent What to setup channel config values on.
* \param chan Channel logging in as an agent.
- *
- * \return Nothing
*/
static void agent_login_channel_config(struct agent_pvt *agent, struct ast_channel *chan)
{
* family, then create it and set its value to 1.
*
* \param key A database key to increment
- * \return Nothing
*/
static void database_increment(char *key)
{
ao2_cleanup(wrapper);
}
-/*!
- * \internal
- * \since 12.0.0
- * \brief Application callback for the bridgewait application
- *
- * \param chan channel running the application
- * \param data Arguments to the application
- *
- * \retval 0 Ran successfully and the call didn't hang up
- * \retval -1 Failed or the call was hung up by the time the channel exited the holding bridge
- */
static enum wait_bridge_roles validate_role(const char *role)
{
if (!strcmp(role, "participant")) {
}
}
+/*!
+ * \internal
+ * \since 12.0.0
+ * \brief Application callback for the bridgewait application
+ *
+ * \param chan channel running the application
+ * \param data Arguments to the application
+ *
+ * \retval 0 Ran successfully and the call didn't hang up
+ * \retval -1 Failed or the call was hung up by the time the channel exited the holding bridge
+ */
static int bridgewait_exec(struct ast_channel *chan, const char *data)
{
char *bridge_name = DEFAULT_BRIDGE_NAME;
* \brief Publish the chanspy message over Stasis-Core
* \param spyer The channel doing the spying
* \param spyee Who is being spied upon
- * \start start If non-zero, the spying is starting. Otherwise, the spyer is
+ * \param start If non-zero, the spying is starting. Otherwise, the spyer is
* finishing
*/
static void publish_chanspy_message(struct ast_channel *spyer,
*
* \note Must be called with the conference locked
*
- * \retval 1, conference is recording.
- * \retval 0, conference is NOT recording.
+ * \retval 1 conference is recording.
+ * \retval 0 conference is NOT recording.
*/
static int conf_is_recording(struct confbridge_conference *conference)
{
* \param bridge_channel The bridged channel involved
*
* \note if caller is NULL, the announcment will be sent to all participants in the conference.
- * \return Returns 0 on success, -1 if the user hung up
+ * \retval 0 on success.
+ * \retval -1 if the user hung up.
*/
static int announce_user_count(struct confbridge_conference *conference, struct confbridge_user *user,
struct ast_bridge_channel *bridge_channel)
* \param user User to play audio prompt to
* \param filename Prompt to play
*
- * \return Returns 0 on success, -1 if the user hung up
+ * \retval 0 on success.
+ * \retval -1 if the user hung up.
+ *
* \note Generally this should be called when the conference is unlocked to avoid blocking
* the entire conference while the sound is played. But don't unlock the conference bridge
* in the middle of a state transition.
* \brief Destroy a conference bridge
*
* \param obj The conference bridge object
- *
- * \return Returns nothing
*/
static void destroy_conference_bridge(void *obj)
{
* \brief Unsuspend MOH for the conference user.
*
* \param user Conference user to unsuspend MOH on.
- *
- * \return Nothing
*/
static void conf_moh_unsuspend(struct confbridge_user *user)
{
* \brief Suspend MOH for the conference user.
*
* \param user Conference user to suspend MOH on.
- *
- * \return Nothing
*/
static void conf_moh_suspend(struct confbridge_user *user)
{
* \since 12.0.0
*
* \param tech What to unregister.
- *
- * \return Nothing
*/
static void unregister_channel_tech(struct ast_channel_tech *tech)
{
* \param chan Channel to get connected line updated.
* \param peer Channel providing connected line information.
* \param is_caller Non-zero if chan is the calling channel.
- *
- * \return Nothing
*/
static void update_connected_line_from_peer(struct ast_channel *chan, struct ast_channel *peer, int is_caller)
{
* \param peer Peer channel for bridge.
* \param opts Dialing option flags.
* \param opt_args Dialing option argument strings.
- *
- * \return Nothing
*/
static void setup_peer_after_bridge_goto(struct ast_channel *chan, struct ast_channel *peer, struct ast_flags64 *opts, char *opt_args[])
{
* Read data from the input ringbuffer, which is the properly resampled audio
* that was read from the jack input port. Write it to the channel in 20 ms frames,
* or fill up an output frame instead if one is provided.
- *
- * \return Nothing.
*/
static void handle_jack_audio(struct ast_channel *chan, struct jack_data *jack_data,
struct ast_frame *out_frame)
* \brief Generate a stasis message associated with a meetme event
* \since 12.0.0
*
- * \param meetme_confere The conference responsible for generating this message
+ * \param meetme_conference The conference responsible for generating this message
* \param chan The channel involved in the message (NULL allowed)
* \param user The conference user involved in the message (NULL allowed)
* \param message_type the type the stasis message being generated
* \param confflags flags used by conf for various options
* \param chan ast_channel belonging to the user who called the menu
* \param user which meetme conference user invoked the menu
- * \param recordingtmp character buffer which may hold the name of the conference recording file
+ * \param recordingtmp, recordingtmp_size character buffer which may hold the name of the conference recording file
+ * \param cap_slin
*/
static void meetme_menu_admin_extended(enum menu_modes *menu_mode, int *dtmf,
struct ast_conference *conf, struct ast_flags64 *confflags, struct ast_channel *chan,
* \param confflags flags used by conf for various options
* \param chan ast_channel belonging to the user who called the menu
* \param user which meetme conference user invoked the menu
- * \param recordingtmp character buffer which may hold the name of the conference recording file
+ * \param recordingtmp,recordingtmp_size character buffer which may hold the name of the conference recording file
+ * \param cap_slin
*/
static void meetme_menu(enum menu_modes *menu_mode, int *dtmf,
struct ast_conference *conf, struct ast_flags64 *confflags, struct ast_channel *chan,
* based on the Comedian Mail voicemail system (app_voicemail.c).
*
* \par See also
- * \arg \ref Config_minivm_examples
+ * \arg \ref minivm.conf "Config_minivm"
* \arg \ref App_minivm
*
* \ingroup applications
* - English, GB en_gb
*
* \par See also
- * \arg \ref Config_minivm
+ * \arg \ref minivm.conf "Config_minivm"
* \arg \ref Config_minivm_examples
* \arg \ref Minivm_directories
* \arg \ref app_minivm.c
* \arg Comedian mail: app_voicemail.c
- * \arg \ref descrip_minivm_accmess
- * \arg \ref descrip_minivm_greet
- * \arg \ref descrip_minivm_record
- * \arg \ref descrip_minivm_delete
- * \arg \ref descrip_minivm_notify
+ * \arg \ref minivm_accmess_exec
+ * \arg \ref minivm_greet_exec
+ * \arg \ref minivm_record_exec
+ * \arg \ref minivm_delete_exec
+ * \arg \ref minivm_notify_exec
*
* \arg \ref App_minivm_todo
*/
* Back: \ref App_minivm
*/
+/*!
+ * \page minivm.conf minivm.conf
+ * \verbinclude minivm.conf.sample
+ *
+ * Back: \ref App_minivm
+ */
+
/*! \page Config_minivm_examples Example dialplan for Mini-Voicemail
* \section Example dialplan scripts for Mini-Voicemail
* \verbinclude extensions_minivm.conf.sample
* \brief Copies the mixmonitor to all voicemail recipients
* \param mixmonitor The mixmonitor that needs to forward its file to recipients
* \param ext Format of the file that was saved
+ * \param filename
*/
static void copy_to_voicemail(struct mixmonitor *mixmonitor, const char *ext, const char *filename)
{
*
* \param chan Setup bridge profile on this channel.
* \param options Options to setup bridge profile.
- *
- * \return Nothing
*/
static void setup_profile_bridge(struct ast_channel *chan, struct page_options *options)
{
*
* \param chan Setup user profile on this channel.
* \param options Options to setup paged user profile.
- *
- * \return Nothing
*/
static void setup_profile_paged(struct ast_channel *chan, struct page_options *options)
{
*
* \param chan Setup user profile on this channel.
* \param options Options to setup caller user profile.
- *
- * \return Nothing
*/
static void setup_profile_caller(struct ast_channel *chan, struct page_options *options)
{
#define ANNOUNCEPOSITION_YES 1 /*!< We announce position */
#define ANNOUNCEPOSITION_NO 2 /*!< We don't announce position */
#define ANNOUNCEPOSITION_MORE_THAN 3 /*!< We say "Currently there are more than <limit>" */
-#define ANNOUNCEPOSITION_LIMIT 4 /*!< We not announce position more than <limit> */
+#define ANNOUNCEPOSITION_LIMIT 4 /*!< We not announce position more than \<limit\> */
struct call_queue {
AST_DECLARE_STRING_FIELDS(
* \brief ao2_callback, Decreases queuepos of all followers with a queuepos greater than arg.
* \param obj the member being acted on
* \param arg pointer to an integer containing the position value that was removed and requires reduction for anything above
+ * \param flag unused
*/
static int queue_member_decrement_followers(void *obj, void *arg, int flag)
{
* on them. This callback should always be ran before performing mass unlinking of delmarked members from queues.
* \param obj member being acted on
* \param arg pointer to the queue members are being removed from
+ * \param flag unused
*/
static int queue_delme_members_decrement_followers(void *obj, void *arg, int flag)
{
* \param blob The information being published.
*
* \note The json blob reference is passed to this function.
- *
- * \return Nothing
*/
static void queue_publish_member_blob(struct stasis_message_type *type, struct ast_json *blob)
{
*
* This function recursively checks if the context child is included in the context parent.
*
- * \return 1 if child is included in parent, 0 if not
+ * \retval 1 if child is included in parent
+ * \retval 0 if not
*/
static int context_included(const char *parent, const char *child);
static int context_included(const char *parent, const char *child)
* \brief If removing a single member from a queue, use this function instead of ao2_unlinking.
* This will perform round robin queue position reordering for the remaining members.
* \param queue Which queue the member is being removed from
- * \param member Which member is being removed from the queue
+ * \param mem Which member is being removed from the queue
*/
static void member_remove_from_queue(struct call_queue *queue, struct member *mem)
{
* \since 1.8
*
* \param doomed callattempt structure to destroy.
- *
- * \return Nothing
*/
static void callattempt_free(struct callattempt *doomed)
{
* \param chan Channel to get connected line updated.
* \param peer Channel providing connected line information.
* \param is_caller Non-zero if chan is the calling channel.
- *
- * \return Nothing
*/
static void update_connected_line_from_peer(struct ast_channel *chan, struct ast_channel *peer, int is_caller)
{
/*!
* \brief update the queue status
- * \retval Always 0
+ * \retval 0 always
*/
static int update_queue(struct call_queue *q, struct member *member, int callcompletedinsl, time_t starttime)
{
*
* \param userdata Data pertaining to the particular call in the queue.
* \param sub The stasis subscription on which the message occurred.
- * \param topic The topic for this event.
* \param msg The stasis message for the bridge enter event
*/
static void handle_bridge_enter(void *userdata, struct stasis_subscription *sub,
*
* \param userdata Data pertaining to the particular call in the queue.
* \param sub The stasis subscription on which the message occurred.
- * \param topic The topic for this event.
* \param msg The stasis message for the blind transfer event
*/
static void handle_blind_transfer(void *userdata, struct stasis_subscription *sub,
*
* \param userdata Data pertaining to the particular call in the queue.
* \param sub The stasis subscription on which the message occurred.
- * \param topic The topic for this event.
* \param msg The stasis message for the attended transfer event.
*/
static void handle_attended_transfer(void *userdata, struct stasis_subscription *sub,
*
* \param userdata Data pertaining to the particular call in the queue.
* \param sub The stasis subscription on which the message occurred.
- * \param topic The topic for this event.
* \param msg The stasis message for the local optimization begin event
*/
static void handle_local_optimization_begin(void *userdata, struct stasis_subscription *sub,
*
* \param userdata Data pertaining to the particular call in the queue.
* \param sub The stasis subscription on which the message occurred.
- * \param topic The topic for this event.
* \param msg The stasis message for the local optimization end event
*/
static void handle_local_optimization_end(void *userdata, struct stasis_subscription *sub,
*
* \param userdata Data pertaining to the particular call in the queue.
* \param sub The stasis subscription on which the message occurred.
- * \param topic The topic for this event.
* \param msg The stasis message for the hangup event.
*/
static void handle_hangup(void *userdata, struct stasis_subscription *sub,
* \param peer Peer channel for bridge.
* \param opts Dialing option flags.
* \param opt_args Dialing option argument strings.
- *
- * \return Nothing
*/
static void setup_peer_after_bridge_goto(struct ast_channel *chan, struct ast_channel *peer, struct ast_flags *opts, char *opt_args[])
{
* \param paused Set to 1 if the member is being paused or 0 to unpause.
*
* \pre The q is locked on entry.
- *
- * \return Nothing
*/
static void set_queue_member_pause(struct call_queue *q, struct member *mem, const char *reason, int paused)
{
* \param ringinuse Set to 1 if the member is called when inuse.
*
* \pre The q is locked on entry.
- *
- * \return Nothing
*/
static void set_queue_member_ringinuse(struct call_queue *q, struct member *mem, int ringinuse)
{
* \param[in] queuename If specified, only act on a member if it belongs to this queue
* \param[in] interface Interface of queue member(s) having priority set.
* \param[in] property Which queue property is being set
- * \param[in] penalty Value penalty is being changed to for each member
+ * \param[in] value Value penalty is being changed to for each member
*/
static int set_member_value(const char *queuename, const char *interface, int property, int value)
{
* \param cfg The configuration which we are reading
* \param mask Tells us what information we need to reload
* \param queuename The name of the queue we are reloading information from
- * \retval void
*/
static void reload_single_queue(struct ast_config *cfg, struct ast_flags *mask, const char *queuename)
{
* \param queuename The name of the queue to reset the statistics
* for. If this is NULL or zero-length, then this means to reset
* the statistics for all queues
- * \retval void
+ * \retval 0 always
*/
static int clear_stats(const char *queuename)
{
* list (followed immediately by a \0, not a space) since it is used for
* checking tab-completion and a word at the end is still being tab-completed.
*
- * \return Returns 1 if the word is found
- * \return Returns 0 if the word is not found
+ * \retval 1 if the word is found
+ * \retval 0 if the word is not found
*/
static int word_in_list(const char *list, const char *word) {
int list_len, word_len = strlen(word);
}
/* \brief Find a member by looking up queuename and interface.
- * \return Returns a member or NULL if member not found.
+ * \return member or NULL if member not found.
*/
static struct member *find_member_by_queuename_and_interface(const char *queuename, const char *interface)
{
* (http://www.washington.edu/imap/)
*
* \par See also
- * \arg \ref Config_vm
+ * \arg \ref voicemail.conf "Config_voicemail"
* \note For information about voicemail IMAP storage, https://wiki.asterisk.org/wiki/display/AST/IMAP+Voicemail+Storage
* \ingroup applications
* \todo This module requires res_adsi to load. This needs to be optional
* \brief Parse the given mailbox_id into mailbox and context.
* \since 12.0.0
*
- * \param mailbox_id The mailbox@context string to separate.
+ * \param mailbox_id The mailbox\@context string to separate.
* \param mailbox Where the mailbox part will start.
* \param context Where the context part will start. ("default" if not present)
*
return 0;
}
-/**
+/*!
* \brief Determines if the given folder has messages.
- * \param mailbox The @ delimited string for user@context. If no context is found, uses 'default' for the context.
+ * \param mailbox The \@ delimited string for user\@context. If no context is found, uses 'default' for the context.
* \param folder the folder to look in
*
* This function is used when the mailbox is stored in an IMAP back end.
return nummsgs;
}
-/**
+/*!
* \brief Determines if the given folder has messages.
- * \param mailbox The @ delimited string for user@context. If no context is found, uses 'default' for the context.
+ * \param mailbox The \@ delimited string for user\@context. If no context is found, uses 'default' for the context.
*
* This function is used when the mailbox is stored in an ODBC back end.
* This invokes the messagecount(). Here we are interested in the presence of messages (> 0) only, not the actual count.
return ret;
}
-/**
+/*!
* \brief Determines if the given folder has messages.
* \param mailbox The \@ delimited string for user\@context. If no context is found, uses 'default' for the context.
* \param folder the folder to look in
/*!
* \brief Check the given mailbox's message count.
- * \param mailbox The @ delimited string for user@context. If no context is found, uses 'default' for the context.
+ * \param mailbox The \@ delimited string for user\@context. If no context is found, uses 'default' for the context.
* \param urgentmsgs urgent message count.
* \param newmsgs new message count.
* \param oldmsgs old message count pointer
* \brief Mute the user and play MOH if the user requires it.
*
* \param user Conference user to mute and optionally start MOH on.
- *
- * \return Nothing
*/
static void conf_mute_moh_inactive_waitmarked(struct confbridge_user *user)
{
* \brief Update the actual mute status of the user and set it on the bridge.
*
* \param user User to update the mute status.
- *
- * \return Nothing
*/
void conf_update_user_mute(struct confbridge_user *user);
* \brief Stop MOH for the conference user.
*
* \param user Conference user to stop MOH on.
- *
- * \return Nothing
*/
void conf_moh_stop(struct confbridge_user *user);
* \brief Start MOH for the conference user.
*
* \param user Conference user to start MOH on.
- *
- * \return Nothing
*/
void conf_moh_start(struct confbridge_user *user);
/*! \brief Callback to execute any time we transition from zero to one active users
* \param conference The conference bridge with a single active user joined
- * \retval 0 success
- * \retval -1 failure
*/
void conf_handle_first_join(struct confbridge_conference *conference);
* \since 13.22.0
* \since 15.5.0
*
- * \param confbridge_name The name to search for
+ * \param conference_name The name to search for
*
* \return ConfBridge (which must be unreffed) or NULL.
*/