summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMatt Jordan <mjordan@digium.com>2016-05-18 06:19:58 -0500
committerMatt Jordan <mjordan@digium.com>2016-05-20 09:06:12 -0500
commite773e3a9bbaf378d53647e4bac3ffcd61afb4ae6 (patch)
tree23e75dcdaf9b8c72a23387bfabdd42f643e5c480 /include
parentd4b77dad1b0154eb3b89133d941dd8d624deda54 (diff)
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
Diffstat (limited to 'include')
-rw-r--r--include/asterisk/ari.h2
-rw-r--r--include/asterisk/stasis_app_recording.h24
2 files changed, 26 insertions, 0 deletions
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
@@ -49,6 +49,30 @@ 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.
*
* \param recording Recording to convert.