static void tech_set_codecs(private_object_t *tech_pvt)
{
+ switch_channel_t *channel;
+ char *codec_string = NULL;
if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
return;
return;
}
- if (tech_pvt->profile->codec_string) {
+ assert(tech_pvt->session != NULL);
+
+ channel = switch_core_session_get_channel(tech_pvt->session);
+ assert (channel != NULL);
+
+ if (!(codec_string = switch_channel_get_variable(channel, "codec_string"))) {
+ codec_string = tech_pvt->profile->codec_string;
+ }
+
+ if (codec_string) {
tech_pvt->num_codecs = switch_loadable_module_get_codecs_sorted(tech_pvt->codecs,
SWITCH_MAX_CODECS,
tech_pvt->profile->codec_order,