Patch allows for more seamless transition from file storage voicemail to ODBC storage voicemail.

If a retrieval of a greeting from the database fails, but the file is found on the file system, then
we go ahead an insert the greeting into the database. The result of this is that people who
switch from file storage to ODBC storage do not need to rerecord their voicemail greetings.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79906 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Michelson
2007-08-17 19:14:05 +00:00
parent f1cb3f70b7
commit 403ee9194c

View File

@@ -2869,10 +2869,20 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_
/* Play the beginning intro if desired */ /* Play the beginning intro if desired */
if (!ast_strlen_zero(prefile)) { if (!ast_strlen_zero(prefile)) {
RETRIEVE(prefile, -1); #ifdef ODBC_STORAGE
int success =
#endif
RETRIEVE(prefile, -1);
if (ast_fileexists(prefile, NULL, NULL) > 0) { if (ast_fileexists(prefile, NULL, NULL) > 0) {
if (ast_streamfile(chan, prefile, chan->language) > -1) if (ast_streamfile(chan, prefile, chan->language) > -1)
res = ast_waitstream(chan, ecodes); res = ast_waitstream(chan, ecodes);
#ifdef ODBC_STORAGE
if(success == -1)
/*We couldn't retrieve the file from the database, but we found it on the file system. Let's put it in the database*/
if(option_debug)
ast_log(LOG_DEBUG, "Greeting not retrieved from database, but found in file storage. Inserting into database\n");
store_file(prefile, vmu->mailbox, vmu->context, -1);
#endif
} else { } else {
if (option_debug) if (option_debug)
ast_log(LOG_DEBUG, "%s doesn't exist, doing what we can\n", prefile); ast_log(LOG_DEBUG, "%s doesn't exist, doing what we can\n", prefile);