Refactor operations to access the stasis cache instead of objects directly when retrieving information.

(closes issue ASTERISK-21883)

Review: https://reviewboard.asterisk.org/r/2645/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393831 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2013-07-08 19:19:55 +00:00
parent b698d80d4b
commit 7c044acbd9
13 changed files with 488 additions and 534 deletions

View File

@@ -1420,39 +1420,6 @@ void ast_channel_unregister(const struct ast_channel_tech *tech);
*/
const struct ast_channel_tech *ast_get_channel_tech(const char *name);
#ifdef CHANNEL_TRACE
/*!
* \brief Update the context backtrace if tracing is enabled
* \return Returns 0 on success, -1 on failure
*/
int ast_channel_trace_update(struct ast_channel *chan);
/*!
* \brief Enable context tracing in the channel
* \return Returns 0 on success, -1 on failure
*/
int ast_channel_trace_enable(struct ast_channel *chan);
/*!
* \brief Disable context tracing in the channel.
* \note Does not remove current trace entries
* \return Returns 0 on success, -1 on failure
*/
int ast_channel_trace_disable(struct ast_channel *chan);
/*!
* \brief Whether or not context tracing is enabled
* \return Returns -1 when the trace is enabled. 0 if not.
*/
int ast_channel_trace_is_enabled(struct ast_channel *chan);
/*!
* \brief Put the channel backtrace in a string
* \return Returns the amount of lines in the backtrace. -1 on error.
*/
int ast_channel_trace_serialize(struct ast_channel *chan, struct ast_str **out);
#endif
/*!
* \brief Hang up a channel
* \note Absolutely _NO_ channel locks should be held before calling this function.
@@ -4228,6 +4195,18 @@ void ast_channel_set_manager_vars(size_t varc, char **vars);
*/
struct varshead *ast_channel_get_manager_vars(struct ast_channel *chan);
/*!
* \since 12
* \brief Gets the variables for a given channel, as set using pbx_builtin_setvar_helper().
*
* The returned variable list is an AO2 object, so ao2_cleanup() to free it.
*
* \param chan Channel to get variables for
* \return List of channel variables.
* \return \c NULL on error
*/
struct varshead *ast_channel_get_vars(struct ast_channel *chan);
/*!
* \since 12
* \brief A topic which publishes the events for a particular channel.

View File

@@ -39,6 +39,7 @@
struct ast_channel_snapshot {
AST_DECLARE_STRING_FIELDS(
AST_STRING_FIELD(name); /*!< ASCII unique channel name */
AST_STRING_FIELD(type); /*!< Type of channel technology */
AST_STRING_FIELD(accountcode); /*!< Account code for billing */
AST_STRING_FIELD(peeraccount); /*!< Peer account code for billing */
AST_STRING_FIELD(userfield); /*!< Userfield for CEL billing */
@@ -58,18 +59,31 @@ struct ast_channel_snapshot {
AST_STRING_FIELD(dialed_subaddr); /*!< Dialed subaddress */
AST_STRING_FIELD(connected_name); /*!< Connected Line Name */
AST_STRING_FIELD(connected_number); /*!< Connected Line Number */
AST_STRING_FIELD(effective_name); /*!< Effective Connected Line Name */
AST_STRING_FIELD(effective_number); /*!< Effective Connected Line Number */
AST_STRING_FIELD(language); /*!< The default spoken language for the channel */
AST_STRING_FIELD(bridgeid); /*!< Unique Bridge Identifier */
AST_STRING_FIELD(nativeformats); /*!< Native formats on the channel */
AST_STRING_FIELD(readformat); /*!< The current read format */
AST_STRING_FIELD(writeformat); /*!< The current write format */
AST_STRING_FIELD(writetrans); /*!< The current write translation path */
AST_STRING_FIELD(readtrans); /*!< The current read translation path */
);
char callid[AST_CALLID_BUFFER_LENGTH]; /*!< Callid for the channel */
struct timeval creationtime; /*!< The time of channel creation */
struct timeval hanguptime; /*!< When the channel should hang up */
enum ast_channel_state state; /*!< State of line */
int priority; /*!< Dialplan: Current extension priority */
int amaflags; /*!< AMA flags for billing */
int hangupcause; /*!< Why is the channel hanged up. See causes.h */
int caller_pres; /*!< Caller ID presentation. */
struct ast_flags flags; /*!< channel flags of AST_FLAG_ type */
ast_group_t callgroup; /*!< Call group */
ast_group_t pickupgroup; /*!< Pickup group */
struct ast_flags softhangup_flags; /*!< softhangup channel flags */
struct varshead *manager_vars; /*!< Variables to be appended to manager events */
struct varshead *channel_vars; /*!< Variables set on the channel */
};
/*!