res_fax: check_modem_rate() returned incorrect rate for V.27

According to the new standard for V.27 and V.32 they are able to transmit
at a bit rate of 4,800 or 9,600.  The check_mode_rate function needed to be
updated to reflect this.  Also, because of this change the default 'minrate'
value was updated to be 4800.

(closes issue ASTERISK-22790)
Reported by: Paolo Compagnini
Patches:
     res_fax.txt uploaded by looserouting (license 6548)






git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@405656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin Harwell
2014-01-16 17:27:05 +00:00
parent 855fd98528
commit affe507d5b
2 changed files with 9 additions and 5 deletions

View File

@@ -8,8 +8,8 @@ maxrate=14400
; Minimum Transmission Rate ; Minimum Transmission Rate
; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 } ; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 }
; Set this value to the minimum desired transfer rate. Default: 2400 ; Set this value to the minimum desired transfer rate. Default: 4800
minrate=2400 minrate=4800
; Send Progress/Status events to manager session ; Send Progress/Status events to manager session
; Manager events with 'call' class permissions will receive events indicating the ; Manager events with 'call' class permissions will receive events indicating the

View File

@@ -244,7 +244,7 @@ struct fax_module {
}; };
static AST_RWLIST_HEAD_STATIC(faxmodules, fax_module); static AST_RWLIST_HEAD_STATIC(faxmodules, fax_module);
#define RES_FAX_MINRATE 2400 #define RES_FAX_MINRATE 4800
#define RES_FAX_MAXRATE 14400 #define RES_FAX_MAXRATE 14400
#define RES_FAX_STATUSEVENTS 0 #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_V27 | AST_FAX_MODEM_V29)
@@ -573,7 +573,7 @@ static int check_modem_rate(enum ast_fax_modems modems, unsigned int rate)
{ {
switch (rate) { switch (rate) {
case 2400: case 2400:
if (!(modems & (AST_FAX_MODEM_V27 | AST_FAX_MODEM_V34))) { if (!(modems & (AST_FAX_MODEM_V34))) {
return 1; return 1;
} }
break; break;
@@ -583,11 +583,15 @@ static int check_modem_rate(enum ast_fax_modems modems, unsigned int rate)
} }
break; break;
case 7200: case 7200:
case 9600:
if (!(modems & (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V29 | AST_FAX_MODEM_V34))) { if (!(modems & (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V29 | AST_FAX_MODEM_V34))) {
return 1; return 1;
} }
break; break;
case 9600:
if (!(modems & (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V27 | AST_FAX_MODEM_V29 | AST_FAX_MODEM_V34))) {
return 1;
}
break;
case 12000: case 12000:
case 14400: case 14400:
if (!(modems & (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V34))) { if (!(modems & (AST_FAX_MODEM_V17 | AST_FAX_MODEM_V34))) {