--- original/asterisk-11.5.1/apps/app_externalivr.c 2012-06-20 07:47:12.000000000 -0400 +++ asterisk-11.5.1/apps/app_externalivr.c 2017-01-30 21:54:28.000000000 -0500 @@ -643,7 +643,23 @@ setvbuf(eivr_errors, NULL, _IONBF, 0); } + char *inchan_name; + inchan_name = ast_strdupa(ast_channel_name(chan)); + ast_debug(1, "eivr_comm orig_channel %s\n", ast_channel_name(chan)); + while (1) { + + if (strcmp(ast_channel_name(chan), inchan_name) == 0) { + ast_debug(1, "eivr_comm channel %s activate generator is set \n", ast_channel_name(chan)); + } else { + ast_debug(1, "eivr_comm channel to %s start ast_activate_generator\n", ast_channel_name(chan)); + if (ast_activate_generator(chan, &gen, u) < 0) { + ast_chan_log(LOG_ERROR, chan, "Failed to activate generator\n"); + goto exit; + } + inchan_name = ast_strdupa(ast_channel_name(chan)); + } + if (ast_test_flag(ast_channel_flags(chan), AST_FLAG_ZOMBIE)) { ast_chan_log(LOG_ERROR, chan, "Is a zombie\n"); break;