From: Mike Bradeen Date: Thu, 14 Sep 2023 17:00:19 +0000 (-0600) Subject: cel: add publish user event helper X-Git-Tag: 21.1.0-rc1~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9efc9c681b6d67d3021745c8f4c70c2fb2b6a77;p=thirdparty%2Fasterisk.git cel: add publish user event helper Add a wrapper function around ast_cel_publish_event that packs event and extras into a blob before publishing Resolves:#330 (cherry picked from commit 4592f97c366ba35515f3a80b9988cebd08ae9fce) --- diff --git a/include/asterisk/cel.h b/include/asterisk/cel.h index 5645e8db2a..81f375be77 100644 --- a/include/asterisk/cel.h +++ b/include/asterisk/cel.h @@ -195,6 +195,22 @@ void ast_cel_publish_event(struct ast_channel *chan, enum ast_cel_event_type event_type, struct ast_json *blob); +/*! + * \brief Publish a CEL user event + * \since 18 + * + * \note + * This serves as a wrapper function around ast_cel_publish_event() to help pack the + * extra details before publishing. + * + * \param chan This is the primary channel associated with this channel event. + * \param event This is the user event being reported. + * \param extra This contains any extra parameters that need to be conveyed for this event. + */ +void ast_cel_publish_user_event(struct ast_channel *chan, + const char *event, + const char *extra); + /*! * \brief Get the CEL topic * diff --git a/main/cel.c b/main/cel.c index 942a9afa12..d41543c27a 100644 --- a/main/cel.c +++ b/main/cel.c @@ -1689,6 +1689,21 @@ static int reload_module(void) return 0; } +void ast_cel_publish_user_event(struct ast_channel *chan, + const char *event, + const char *extra) +{ + RAII_VAR(struct ast_json *, blob, NULL, ast_json_unref); + + blob = ast_json_pack("{s: s, s: {s: s}}", + "event", event, + "extra", "extra", S_OR(extra, "")); + if (!blob) { + return; + } + ast_cel_publish_event(chan, AST_CEL_USER_DEFINED, blob); +} + void ast_cel_publish_event(struct ast_channel *chan, enum ast_cel_event_type event_type, struct ast_json *blob)