mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-21 01:01:02 +00:00
Merge "res_pjsip_exten_state: Check if body generator is available."
This commit is contained in:
@@ -648,6 +648,19 @@ struct ast_sip_pubsub_body_supplement {
|
||||
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.
|
||||
|
||||
@@ -680,6 +680,12 @@ static int publisher_start(struct ast_sip_outbound_publish *configuration, struc
|
||||
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;
|
||||
|
||||
@@ -3094,6 +3094,11 @@ const char *ast_sip_publication_get_event_configuration(const struct ast_sip_pub
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user