summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2016-03-23 16:51:58 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2016-03-23 16:51:59 -0500
commitb1c688acabeeeba192618755d50c560635e14f0a (patch)
treebd279b0d9570a18a7500a8ff1f5a90e39ab5919d
parentd82e3a1f2863733f7909302224ee34469d3e8e75 (diff)
parentca14b99e6e7a80f648521ec81512cbadab2ed6cd (diff)
Merge "main/file: Add the ability to play media in the media cache"
-rw-r--r--CHANGES26
-rw-r--r--main/file.c5
2 files changed, 31 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index f19704d90..da516efdc 100644
--- a/CHANGES
+++ b/CHANGES
@@ -31,6 +31,21 @@ ConfBridge
- record_command: a command to execute when recording is finished
Note that these options may also be with the CONFBRIDGE function.
+ControlPlayback
+------------------
+ * Remote files can now be retrieved and played back. See the Playback
+ dialplan application for more details.
+
+Playback
+------------------
+ * Remote files can now be retrieved and played back via the Playback and other
+ media playback dialplan applications. This is done by directly providing
+ the URL to play to the dialplan application:
+ same => n,Playback(http://1.1.1.1/howler-monkeys-fl.wav)
+ Note that unlike 'normal' media files, the entire URI to the file must be
+ provided, including the file extension. Currently, on HTTP and HTTPS URI
+ schemes are supported.
+
SMS
------------------
* Added the 'n' option, which prevents the SMS from being written to the log
@@ -132,6 +147,17 @@ Core
of '[json]' can be set, e.g.,
full => [json]debug,verbose,notice,warning,error
+ * The core now supports a 'media cache', which stores temporary media files
+ retrieved from external sources. CLI commands have been added to manipulate
+ and display the cached files, including:
+ - 'media cache show <all>' - show all cached media files, or details about
+ one particular cached media file
+ - 'media cache refresh <item>' - force a refresh of a particular media file
+ in the cache
+ - 'media cache delete <item>' - remove an item from the cache
+ - 'media cache create <uri>' - retrieve a URI and store it in the cache
+
+
Functions
------------------
diff --git a/main/file.c b/main/file.c
index f0f826a4f..654937a58 100644
--- a/main/file.c
+++ b/main/file.c
@@ -54,6 +54,7 @@ ASTERISK_REGISTER_FILE()
#include "asterisk/stasis.h"
#include "asterisk/json.h"
#include "asterisk/stasis_system.h"
+#include "asterisk/media_cache.h"
/*! \brief
* The following variable controls the layout of localized sound files.
@@ -644,6 +645,10 @@ static int fileexists_test(const char *filename, const char *fmt, const char *la
return 0;
}
+ if (!ast_media_cache_retrieve(filename, NULL, buf, buflen)) {
+ return filehelper(buf, result_cap, NULL, ACTION_EXISTS);
+ }
+
if (ast_language_is_prefix && !is_absolute_path(filename)) { /* new layout */
if (lang) {
snprintf(buf, buflen, "%s/%s", lang, filename);