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
This commit is contained in:
Matt Jordan
2016-05-18 06:19:58 -05:00
parent d4b77dad1b
commit e773e3a9bb
12 changed files with 235 additions and 5 deletions

View File

@@ -332,6 +332,7 @@ class SwaggerType(Stringify):
self.is_list = None
self.singular_name = None
self.is_primitive = None
self.is_binary = None
def load(self, type_name, processor, context):
# Some common errors
@@ -346,6 +347,7 @@ class SwaggerType(Stringify):
else:
self.singular_name = self.name
self.is_primitive = self.singular_name in SWAGGER_PRIMITIVES
self.is_binary = (self.singular_name == 'binary')
processor.process_type(self, context)
return self
@@ -401,6 +403,7 @@ class Operation(Stringify):
self.has_header_parameters = self.header_parameters and True
self.has_parameters = self.has_query_parameters or \
self.has_path_parameters or self.has_header_parameters
self.is_binary_response = self.response_class.is_binary
# Body param is different, since there's at most one
self.body_parameter = [