summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2016-05-10 16:17:29 +0300
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2016-05-10 16:26:11 +0300
commitb5c471b33970a6864872b992c8a26136644ee5ee (patch)
tree50b76ac4f2841985f56d321963cb50c2a4bd4e61
parentb4e10e7c901997ae2ee95fc819552cb557ecdbf1 (diff)
followme: delete the right recorded name file
FollowMe with the option a records the name of the caller and plays it to the callee. However it has failed to clean up that recorded file as it tried to delete the file name without the '.sln' extension. ASTERISK-26008 #close Change-Id: I79d7b1be7d5cde57bf076d9389e2a8a4422776ec Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
-rw-r--r--apps/app_followme.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/apps/app_followme.c b/apps/app_followme.c
index d2000fd13..106902043 100644
--- a/apps/app_followme.c
+++ b/apps/app_followme.c
@@ -66,6 +66,8 @@ ASTERISK_REGISTER_FILE()
#include "asterisk/stasis_channels.h"
#include "asterisk/max_forwards.h"
+#define REC_FORMAT "sln"
+
/*** DOCUMENTATION
<application name="FollowMe" language="en_US">
<synopsis>
@@ -1421,7 +1423,7 @@ static int app_exec(struct ast_channel *chan, const char *data)
snprintf(targs->namerecloc, sizeof(targs->namerecloc), "%s/followme.%s",
ast_config_AST_SPOOL_DIR, ast_channel_uniqueid(chan));
- if (ast_play_and_record(chan, "vm-rec-name", targs->namerecloc, 5, "sln", &duration,
+ if (ast_play_and_record(chan, "vm-rec-name", targs->namerecloc, 5, REC_FORMAT, &duration,
NULL, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL) < 0) {
goto outrun;
}
@@ -1522,7 +1524,18 @@ outrun:
ast_free(nm);
}
if (!ast_strlen_zero(targs->namerecloc)) {
- unlink(targs->namerecloc);
+ int ret;
+ char fn[PATH_MAX];
+
+ snprintf(fn, sizeof(fn), "%s.%s", targs->namerecloc,
+ REC_FORMAT);
+ ret = unlink(fn);
+ if (ret != 0) {
+ ast_log(LOG_NOTICE, "Failed to delete recorded name file %s: %d (%s)\n",
+ fn, errno, strerror(errno));
+ } else {
+ ast_debug(2, "deleted recorded prompt %s.\n", fn);
+ }
}
ast_free((char *) targs->predial_callee);
ast_party_connected_line_free(&targs->connected_in);