|
|
|
@ -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);
|
|
|
|
|