diff options
Diffstat (limited to 'include/asterisk/manager.h')
-rw-r--r-- | include/asterisk/manager.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h index e0160c6b5..4e9b8d14a 100644 --- a/include/asterisk/manager.h +++ b/include/asterisk/manager.h @@ -347,6 +347,55 @@ struct ast_str *ast_manager_build_channel_state_string_suffix( struct ast_str *ast_manager_build_channel_state_string( const struct ast_channel_snapshot *snapshot); +/*! \brief Struct representing a snapshot of bridge state */ +struct ast_bridge_snapshot; + +/*! + * \brief Generate the AMI message body from a bridge snapshot + * \since 12 + * + * \param snapshot the bridge snapshot for which to generate an AMI message + * body + * + * \retval NULL on error + * \retval ast_str* on success (must be ast_freed by caller) + */ +struct ast_str *ast_manager_build_bridge_state_string( + const struct ast_bridge_snapshot *snapshot, + const char *suffix); + +/*! \brief Struct containing info for an AMI event to send out. */ +struct ast_manager_event_blob { + int event_flags; /*!< Flags the event should be raised with. */ + const char *manager_event; /*!< The event to be raised, should be a string literal. */ + AST_DECLARE_STRING_FIELDS( + AST_STRING_FIELD(extra_fields); /*!< Extra fields to include in the event. */ + ); +}; + +/*! + * \since 12 + * \brief Construct a \ref snapshot_manager_event. + * + * \param event_flags Flags the event should be raised with. + * \param manager_event The event to be raised, should be a string literal. + * \param extra_fields_fmt Format string for extra fields to include. + * Or NO_EXTRA_FIELDS for no extra fields. + * + * \return New \ref ast_manager_snapshot_event object. + * \return \c NULL on error. + */ +struct ast_manager_event_blob * +__attribute__((format(printf, 3, 4))) +ast_manager_event_blob_create( + int event_flags, + const char *manager_event, + const char *extra_fields_fmt, + ...); + +/*! GCC warns about blank or NULL format strings. So, shenanigans! */ +#define NO_EXTRA_FIELDS "%s", "" + /*! * \brief Initialize support for AMI channel events. * \return 0 on success. @@ -355,4 +404,12 @@ struct ast_str *ast_manager_build_channel_state_string( */ int manager_channels_init(void); +/*! + * \brief Initialize support for AMI channel events. + * \return 0 on success. + * \return non-zero on error. + * \since 12 + */ +int manager_bridging_init(void); + #endif /* _ASTERISK_MANAGER_H */ |