mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 08:40:16 +00:00
res_ari: Add support for channel variables in ARI events.
This works the same as for AMI manager variables. Set "channelvars=foo,bar" in your ari.conf general section, and then the channel variables "foo" and "bar" (along with their values), will appear in every Stasis websocket channel event. ASTERISK-26492 #close patches: ari_vars.diff submitted by Mark Michelson Change-Id: I5609ba239259577c0948645df776d7f3bc864229
This commit is contained in:
@@ -4339,6 +4339,36 @@ void ast_channel_set_manager_vars(size_t varc, char **vars);
|
||||
*/
|
||||
struct varshead *ast_channel_get_manager_vars(struct ast_channel *chan);
|
||||
|
||||
/*!
|
||||
* \since 14.2.0
|
||||
* \brief Return whether or not any ARI variables have been set
|
||||
*
|
||||
* \retval 0 if no ARI variables are expected
|
||||
* \retval 1 if ARI variables are expected
|
||||
*/
|
||||
int ast_channel_has_ari_vars(void);
|
||||
|
||||
/*!
|
||||
* \since 14.2.0
|
||||
* \brief Sets the variables to be stored in the \a ari_vars field of all
|
||||
* snapshots.
|
||||
* \param varc Number of variable names.
|
||||
* \param vars Array of variable names.
|
||||
*/
|
||||
void ast_channel_set_ari_vars(size_t varc, char **vars);
|
||||
|
||||
/*!
|
||||
* \since 14.2.0
|
||||
* \brief Gets the variables for a given channel, as specified by ast_channel_set_ari_vars().
|
||||
*
|
||||
* 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_ari_vars(struct ast_channel *chan);
|
||||
|
||||
/*!
|
||||
* \since 12
|
||||
* \brief Gets the variables for a given channel, as set using pbx_builtin_setvar_helper().
|
||||
|
||||
@@ -1076,6 +1076,18 @@ enum ast_json_to_ast_vars_code {
|
||||
*/
|
||||
enum ast_json_to_ast_vars_code ast_json_to_ast_variables(struct ast_json *json_variables, struct ast_variable **variables);
|
||||
|
||||
struct varshead;
|
||||
|
||||
/*!
|
||||
* \brief Construct a JSON object from a \c ast_var_t list
|
||||
* \since 14.2.0
|
||||
*
|
||||
* \param channelvars The list of \c ast_var_t to represent as JSON
|
||||
*
|
||||
* \return JSON object with variable names as keys and variable values as values
|
||||
*/
|
||||
struct ast_json *ast_json_channel_vars(struct varshead *channelvars);
|
||||
|
||||
/*!@}*/
|
||||
|
||||
#endif /* _ASTERISK_JSON_H */
|
||||
|
||||
@@ -73,6 +73,7 @@ struct ast_channel_snapshot {
|
||||
struct ast_flags softhangup_flags; /*!< softhangup channel flags */
|
||||
struct varshead *manager_vars; /*!< Variables to be appended to manager events */
|
||||
int tech_properties; /*!< Properties of the channel's technology */
|
||||
struct varshead *ari_vars; /*!< Variables to be appended to ARI events */
|
||||
};
|
||||
|
||||
/*!
|
||||
|
||||
Reference in New Issue
Block a user