Merge "res_fax: allow 2400 transmission rate according to v.27ter standard" into 11

changes/03/303/1
Matt Jordan 10 years ago committed by Gerrit Code Review
commit acced2b88b

@ -52,8 +52,8 @@ enum ast_fax_capabilities {
enum ast_fax_modems {
/*! V.17 */
AST_FAX_MODEM_V17 = (1 << 0),
/*! V.27 */
AST_FAX_MODEM_V27 = (1 << 1),
/*! V.27ter */
AST_FAX_MODEM_V27TER = (1 << 1),
/*! V.29 */
AST_FAX_MODEM_V29 = (1 << 2),
/*! V.34 */

@ -329,7 +329,7 @@ static AST_RWLIST_HEAD_STATIC(faxmodules, fax_module);
#define RES_FAX_MINRATE 4800
#define RES_FAX_MAXRATE 14400
#define RES_FAX_STATUSEVENTS 0
#define RES_FAX_MODEM (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V27 | AST_FAX_MODEM_V29)
#define RES_FAX_MODEM (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V27TER | AST_FAX_MODEM_V29)
#define RES_FAX_T38TIMEOUT 5000
struct fax_options {
@ -604,7 +604,7 @@ static int update_modem_bits(enum ast_fax_modems *bits, const char *value)
if (!strcasecmp(m[j], "v17")) {
*bits |= AST_FAX_MODEM_V17;
} else if (!strcasecmp(m[j], "v27")) {
*bits |= AST_FAX_MODEM_V27;
*bits |= AST_FAX_MODEM_V27TER;
} else if (!strcasecmp(m[j], "v29")) {
*bits |= AST_FAX_MODEM_V29;
} else if (!strcasecmp(m[j], "v34")) {
@ -682,7 +682,7 @@ static int ast_fax_modem_to_str(enum ast_fax_modems bits, char *tbuf, size_t buf
strcat(tbuf, "V17");
count++;
}
if (bits & AST_FAX_MODEM_V27) {
if (bits & AST_FAX_MODEM_V27TER) {
if (count) {
strcat(tbuf, ",");
}
@ -711,22 +711,14 @@ static int check_modem_rate(enum ast_fax_modems modems, unsigned int rate)
{
switch (rate) {
case 2400:
if (!(modems & (AST_FAX_MODEM_V34))) {
return 1;
}
break;
case 4800:
if (!(modems & (AST_FAX_MODEM_V27 | AST_FAX_MODEM_V34))) {
if (!(modems & (AST_FAX_MODEM_V27TER | AST_FAX_MODEM_V34))) {
return 1;
}
break;
case 7200:
if (!(modems & (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V29 | AST_FAX_MODEM_V34))) {
return 1;
}
break;
case 9600:
if (!(modems & (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V27 | AST_FAX_MODEM_V29 | AST_FAX_MODEM_V34))) {
if (!(modems & (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V29 | AST_FAX_MODEM_V34))) {
return 1;
}
break;
@ -3921,13 +3913,6 @@ static int set_config(int reload)
goto end;
}
if (options.minrate == 2400 && (options.modems & AST_FAX_MODEM_V27) && !(options.modems & (AST_FAX_MODEM_V34))) {
ast_fax_modem_to_str(options.modems, modems, sizeof(modems));
ast_log(LOG_WARNING, "'modems' setting '%s' is no longer accepted with 'minrate' setting %u\n", modems, options.minrate);
ast_log(LOG_WARNING, "'minrate' has been reset to 4800, please update res_fax.conf.\n");
options.minrate = 4800;
}
if (check_modem_rate(options.modems, options.minrate)) {
ast_fax_modem_to_str(options.modems, modems, sizeof(modems));
ast_log(LOG_ERROR, "'modems' setting '%s' is incompatible with 'minrate' setting %u\n", modems, options.minrate);

@ -498,7 +498,7 @@ static int spandsp_modems(struct ast_fax_session_details *details)
if (AST_FAX_MODEM_V17 & details->modems) {
modems |= T30_SUPPORT_V17;
}
if (AST_FAX_MODEM_V27 & details->modems) {
if (AST_FAX_MODEM_V27TER & details->modems) {
modems |= T30_SUPPORT_V27TER;
}
if (AST_FAX_MODEM_V29 & details->modems) {

Loading…
Cancel
Save