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)
........

Merged revisions 405656 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@405693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
changes/61/61/1
Kevin Harwell 12 years ago
parent 3d1ce59cf2
commit b83fb704c9

@ -19,6 +19,11 @@
=== UPGRADE-10.txt -- Upgrade info for 1.8 to 10 === UPGRADE-10.txt -- Upgrade info for 1.8 to 10
=== ===
=========================================================== ===========================================================
from 11.8 to 11.9
* res_fax now returns the correct rates for V.27ter (4800 or 9600 bit/s).
Because of this the default settings would not load, so the minrate (minimum
transmission rate) option was changed to default to 4800 since that is the
minimum rate for v.27 which is included in the default modem options.
From 11.7 to 11.8: From 11.7 to 11.8:
* The per console verbose level feature as previously implemented caused a * The per console verbose level feature as previously implemented caused a

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

@ -323,7 +323,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)
@ -704,7 +704,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;
@ -714,11 +714,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))) {

Loading…
Cancel
Save