dect
/
asterisk
Archived
13
0
Fork 0

Resolve a T.38 negotiation issue left over from the udptl-updates merge.

The udptl-updates branch that was merged yesterday failed to properly send back
T.38 SDP responses with the correct error correction mode, if the incoming SDP
from the other end caused us to change error correction modes. This patch
corrects that situation.



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@208548 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
kpfleming 2009-07-24 15:02:53 +00:00
parent d2f26edeb8
commit b4baa21fbf
3 changed files with 6 additions and 6 deletions

View File

@ -10087,13 +10087,13 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
break;
}
ast_str_append(&a_modem, 0, "a=T38FaxMaxDatagram:%d\r\n", ast_udptl_get_local_max_datagram(p->udptl));
switch (ast_test_flag(&p->flags[1], SIP_PAGE2_T38SUPPORT)) {
case SIP_PAGE2_T38SUPPORT_UDPTL:
switch (ast_udptl_get_error_correction_scheme(p->udptl)) {
case UDPTL_ERROR_CORRECTION_NONE:
break;
case SIP_PAGE2_T38SUPPORT_UDPTL_FEC:
case UDPTL_ERROR_CORRECTION_FEC:
ast_str_append(&a_modem, 0, "a=T38FaxUdpEC:t38UDPFEC\r\n");
break;
case SIP_PAGE2_T38SUPPORT_UDPTL_REDUNDANCY:
case UDPTL_ERROR_CORRECTION_REDUNDANCY:
ast_str_append(&a_modem, 0, "a=T38FaxUdpEC:t38UDPRedundancy\r\n");
break;
}

View File

@ -87,7 +87,7 @@ void ast_udptl_set_m_type(struct ast_udptl *udptl, unsigned int pt);
void ast_udptl_set_udptlmap_type(struct ast_udptl *udptl, unsigned int pt,
char *mimeType, char *mimeSubtype);
int ast_udptl_get_error_correction_scheme(const struct ast_udptl *udptl);
enum ast_t38_ec_modes ast_udptl_get_error_correction_scheme(const struct ast_udptl *udptl);
void ast_udptl_set_error_correction_scheme(struct ast_udptl *udptl, enum ast_t38_ec_modes ec);

View File

@ -769,7 +769,7 @@ static void calculate_far_max_ifp(struct ast_udptl *udptl)
udptl->far_max_ifp = new_max * 0.75;
}
int ast_udptl_get_error_correction_scheme(const struct ast_udptl *udptl)
enum ast_t38_ec_modes ast_udptl_get_error_correction_scheme(const struct ast_udptl *udptl)
{
if (udptl)
return udptl->error_correction_scheme;