diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 727763264ae94b1efcf01dcfc510ee5ff0945c04..8ee076acdb541b4705888b78753dfbf7e310226c 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -676,18 +676,18 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, int silent, int free(sfmt[x]); } + sildet = ast_dsp_new(); //Create the silence detector if (silence > 0) { - rfmt = chan->readformat; - res = ast_set_read_format(chan, AST_FORMAT_SLINEAR); - if (res < 0) { - ast_log(LOG_WARNING, "Unable to set to linear mode, giving up\n"); - return -1; - } - sildet = ast_dsp_new(); - if (!sildet) { - ast_log(LOG_WARNING, "Unable to create silence detector :(\n"); - return -1; - } + rfmt = chan->readformat; + res = ast_set_read_format(chan, AST_FORMAT_SLINEAR); + if (res < 0) { + ast_log(LOG_WARNING, "Unable to set to linear mode, giving up\n"); + return -1; + } + if (!sildet) { + ast_log(LOG_WARNING, "Unable to create silence detector :(\n"); + return -1; + } ast_dsp_set_threshold(sildet, 50); }