state->their_parms.rate_management = AST_T38_RATE_MANAGEMENT_TRANSFERRED_TCF;
}
} else if (!pj_stricmp2(&attr->name, "t38faxudpec")) {
- if (!pj_stricmp2(&attr->value, "t38UDPRedundancy")) {
- ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_REDUNDANCY);
- } else if (!pj_stricmp2(&attr->value, "t38UDPFEC")) {
- ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_FEC);
+ if (session->t38state == T38_LOCAL_REINVITE) {
+ if (session->endpoint->media.t38.error_correction == UDPTL_ERROR_CORRECTION_FEC) {
+ if (!pj_stricmp2(&attr->value, "t38UDPFEC")) {
+ ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_FEC);
+ } else if (!pj_stricmp2(&attr->value, "t38UDPRedundancy")) {
+ ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_REDUNDANCY);
+ } else {
+ ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_NONE);
+ }
+ } else if (session->endpoint->media.t38.error_correction == UDPTL_ERROR_CORRECTION_REDUNDANCY) {
+ if (!pj_stricmp2(&attr->value, "t38UDPRedundancy")) {
+ ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_REDUNDANCY);
+ } else {
+ ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_NONE);
+ }
+ } else {
+ ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_NONE);
+ }
} else {
- ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_NONE);
+ if (!pj_stricmp2(&attr->value, "t38UDPRedundancy")) {
+ ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_REDUNDANCY);
+ } else if (!pj_stricmp2(&attr->value, "t38UDPFEC")) {
+ ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_FEC);
+ } else {
+ ast_udptl_set_error_correction_scheme(session_media->udptl, UDPTL_ERROR_CORRECTION_NONE);
+ }
}
}