diff --git a/src/switch_channel.c b/src/switch_channel.c index 79d1573668..6e22b82d75 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -3668,6 +3668,14 @@ SWITCH_DECLARE(switch_status_t) switch_channel_perform_mark_answered(switch_chan channel->name); + if ((var = switch_channel_get_variable(channel, "absolute_codec_string"))) { + /* inherit_codec == true will implicitly clear the absolute_codec_string + variable if used since it was the reason it was set in the first place and is no longer needed */ + if (switch_true(switch_channel_get_variable(channel, "inherit_codec"))) { + switch_channel_set_variable(channel, "absolute_codec_string", NULL); + } + } + switch_channel_execute_on(channel, SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE); if (!switch_channel_test_flag(channel, CF_EARLY_MEDIA)) { diff --git a/src/switch_core_media.c b/src/switch_core_media.c index a55730ba0f..aed981d226 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -1366,11 +1366,6 @@ SWITCH_DECLARE(void) switch_core_media_prepare_codecs(switch_core_session_t *ses switch_assert(smh->session != NULL); if ((abs = switch_channel_get_variable(session->channel, "absolute_codec_string"))) { - /* inherit_codec == true will implicitly clear the absolute_codec_string - variable if used since it was the reason it was set in the first place and is no longer needed */ - if (switch_true(switch_channel_get_variable(session->channel, "inherit_codec"))) { - switch_channel_set_variable(session->channel, "absolute_codec_string", NULL); - } codec_string = abs; goto ready; }