return SWITCH_STATUS_GENERR;
}
- if (tech_pvt->check_frames++ < MAX_CODEC_CHECK_FRAMES) {
+ if (sofia_test_pflag(tech_pvt->profile, PFLAG_AUTOFIX_TIMING) && tech_pvt->check_frames++ < MAX_CODEC_CHECK_FRAMES) {
if (!tech_pvt->read_impl.encoded_bytes_per_packet) {
tech_pvt->check_frames = MAX_CODEC_CHECK_FRAMES;
goto skip;
} else {
sofia_clear_pflag(profile, PFLAG_AUTOFLUSH);
}
+ } else if (!strcasecmp(var, "rtp-autofix-timing")) {
+ if (switch_true(val)) {
+ sofia_set_pflag(profile, PFLAG_AUTOFIX_TIMING);
+ } else {
+ sofia_clear_pflag(profile, PFLAG_AUTOFIX_TIMING);
+ }
} else if (!strcasecmp(var, "nat-options-ping")) {
if (switch_true(val)) {
sofia_set_pflag(profile, PFLAG_NAT_OPTIONS_PING);
sofia_set_pflag(profile, PFLAG_STUN_ENABLED);
sofia_set_pflag(profile, PFLAG_DISABLE_100REL);
profile->auto_restart = 1;
+ sofia_set_pflag(profile, PFLAG_AUTOFIX_TIMING);
for (param = switch_xml_child(settings, "param"); param; param = param->next) {
char *var = (char *) switch_xml_attr_soft(param, "name");
} else {
sofia_clear_pflag(profile, PFLAG_AUTOFLUSH);
}
+ } else if (!strcasecmp(var, "rtp-autofix-timing")) {
+ if (switch_true(val)) {
+ sofia_set_pflag(profile, PFLAG_AUTOFIX_TIMING);
+ } else {
+ sofia_clear_pflag(profile, PFLAG_AUTOFIX_TIMING);
+ }
} else if (!strcasecmp(var, "nat-options-ping")) {
if (switch_true(val)) {
sofia_set_pflag(profile, PFLAG_NAT_OPTIONS_PING);