static void recording_publish(struct stasis_app_recording *recording, const char *cause) { RAII_VAR(struct ast_json *, json, NULL, ast_json_unref); RAII_VAR(struct stasis_message *, message, NULL, ao2_cleanup); ast_assert(recording != NULL); json = stasis_app_recording_to_json(recording); if (json == NULL) { return; } if (!ast_strlen_zero(cause)) { struct ast_json *failure_cause = ast_json_string_create(cause); if (!failure_cause) { return; } if (ast_json_object_set(json, "cause", failure_cause)) { return; } } message = ast_channel_blob_create_from_cache( stasis_app_control_get_channel_id(recording->control), stasis_app_recording_snapshot_type(), json); if (message == NULL) { return; } stasis_app_control_publish(recording->control, message); }
static void recording_publish(struct stasis_app_recording *recording) { RAII_VAR(struct ast_json *, json, NULL, ast_json_unref); RAII_VAR(struct ast_channel_snapshot *, snapshot, NULL, ao2_cleanup); RAII_VAR(struct stasis_message *, message, NULL, ao2_cleanup); ast_assert(recording != NULL); json = stasis_app_recording_to_json(recording); if (json == NULL) { return; } message = ast_channel_blob_create_from_cache( stasis_app_control_get_channel_id(recording->control), stasis_app_recording_snapshot_type(), json); if (message == NULL) { return; } stasis_app_control_publish(recording->control, message); }