int ast_sip_pubsub_generate_body_content(const char *content_type,
const char *content_subtype, struct ast_sip_body_data *data, struct ast_str **str);
+/*!
+ * \brief Is a body generator registered for the given type/subtype.
+ * \since 14.0.0
+ *
+ * \param type The content type of the body
+ * \param subtype The content subtype of the body
+ *
+ * \note In "plain/text", "plain" is the type and "text" is the subtype.
+ *
+ * \retval non-zero if a generator is registered.
+ */
+int ast_sip_pubsub_is_body_generator_registered(const char *type, const char *subtype);
+
/*!
* \since 13.0.0
* \brief Register a body generator with the pubsub core.
return -1;
}
+ if (!ast_sip_pubsub_is_body_generator_registered(body_type, body_subtype)) {
+ ast_log(LOG_ERROR, "Outbound extension state publisher '%s': '%s' body generator not registered\n",
+ name, body_full);
+ return -1;
+ }
+
name_size = strlen(name) + 1;
body_type_size = strlen(body_type) + 1;
body_subtype_size = strlen(body_subtype) + 1;
return pub->event_configuration_name;
}
+int ast_sip_pubsub_is_body_generator_registered(const char *type, const char *subtype)
+{
+ return !!find_body_generator_type_subtype(type, subtype);
+}
+
int ast_sip_pubsub_register_body_generator(struct ast_sip_pubsub_body_generator *generator)
{
struct ast_sip_pubsub_body_generator *existing;