From e773e3a9bbaf378d53647e4bac3ffcd61afb4ae6 Mon Sep 17 00:00:00 2001 From: Matt Jordan Date: Wed, 18 May 2016 06:19:58 -0500 Subject: ARI: Add the ability to download the media associated with a stored recording This patch adds a new feature to ARI that allows a client to download the media associated with a stored recording. The new route is /recordings/stored/{name}/file, and transmits the underlying binary file using Asterisk's HTTP server's underlying file transfer facilities. Because this REST route returns non-JSON, a few small enhancements had to be made to the Python Swagger generation code, as well as the mustache templates that generate the ARI bindings. ASTERISK-26042 #close Change-Id: I49ec5c4afdec30bb665d9c977ab423b5387e0181 --- include/asterisk/ari.h | 2 ++ include/asterisk/stasis_app_recording.h | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) (limited to 'include') diff --git a/include/asterisk/ari.h b/include/asterisk/ari.h index c9f47a6e5..79b9516eb 100644 --- a/include/asterisk/ari.h +++ b/include/asterisk/ari.h @@ -95,6 +95,8 @@ struct ast_ari_response { /*! HTTP response code. * See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html */ int response_code; + /*! File descriptor for whatever file we want to respond with */ + int fd; /*! Corresponding text for the response code */ const char *response_text; /* Shouldn't http.c handle this? */ /*! Flag to indicate that no further response is needed */ diff --git a/include/asterisk/stasis_app_recording.h b/include/asterisk/stasis_app_recording.h index 543207a47..bded30629 100644 --- a/include/asterisk/stasis_app_recording.h +++ b/include/asterisk/stasis_app_recording.h @@ -48,6 +48,30 @@ struct stasis_app_stored_recording; const char *stasis_app_stored_recording_get_file( struct stasis_app_stored_recording *recording); +/*! + * \brief Returns the full filename, with extension, for this recording. + * \since 14.0.0 + * + * \param recording Recording to query. + * + * \return Absolute path to the recording file, with the extension. + * \return \c NULL on error + */ +const char *stasis_app_stored_recording_get_filename( + struct stasis_app_stored_recording *recording); + +/*! + * \brief Returns the extension for this recording. + * \since 14.0.0 + * + * \param recording Recording to query. + * + * \return The extension associated with this recording. + * \return \c NULL on error + */ +const char *stasis_app_stored_recording_get_extension( + struct stasis_app_stored_recording *recording); + /*! * \brief Convert stored recording info to JSON. * -- cgit v1.2.3