...
Goals
- Allow the end user to increase or reduce SR140 volume for transmission or reception on a per call basis without needing to modify BT_CPARAM.CFG file.
...
For the first way, two new keywords will be defined for the user configuration file btcall.cfg. For the fax transmission level (will also affect tone generation), the new keyword will be xmt_level_override and for the fax reception level the new keyword will be rcv_level_override. If the keyword xmt_level_override appears in btcall.cfg, it will override the DATA_LEVEL_XXX level specified in the BT_CPARM.CFG file. If the keyword rcv_level_override appears in btcall.cfg, it will override the REC_LEVEL_XXX level specified in the BT_CPARM.CFG file. The override for both transmission and reception will be relative. In other words, the override values will add or subtract from the BT_CPARM.CFG values.
The second way will be by calling the API function BfvFaxT30Params() to set xmt_level or rcv_level. These values will be additive to the btcall.cfg values. For example, if xmt_level_override is 4 in btcall.cfg and xmt_level is set to 2 before calling BfvFaxT30Params(), the transmit level will be increased by (4 * 0.5 dB + 2 * 0.5 dB = 3 dB). If rcv_level_override is -3 and rcv_level is set to -1 before calling BfvFaxT30Params() the receive level will be decreased by (3 * 0.5 dB + 1 * 0.5 dB = 2 dB).
...
The new keywords should appear in the user configuration file btcall.cfg as follows:
xmt_level_override 2
rcv_level_override 2
The above value of 2 for xmt_level_override means that the transmit level will be increased by (2 * 0.5 dB = 1 dB).
...
For the second way, two new members will be defined for the structure args_fax_t30_params. For the fax transmission level the new member will be defined as char xmt_level and for the fax reception level the new member will be defined as char rcv_level.
struct args_fax_t30_params {
RES res;
unsigned bit_rate;
unsigned scan_time;
unsigned modulation_type;
unsigned line_compression;
MILL_LINE *async_lp;
unsigned iaf_bit_rate;
char xmt_level;
char rcv_level;
};
An example for setting the new members xmt_level and rcv_level before calling BfvFaxT30Params(lp, &args_params); is as follows:
...
For the third way, the xmt_level or rcv_level will be set in an info packet file made by the sample application mkinfopk.exe. Two new members will be defined for the structure t30Parampkt. For the fax transmission level the new member will be defined as char xmt_level and for the fax reception level the new member will be defined as char rcv_level.
struct t30parampkt {
struct infopkt hdr;
unsigned char bit_rate; /* cmd 44 */
unsigned char scan_time; /* cmd 42 */
unsigned char coding_type; /* not implemented */
unsigned char modulation_type;
unsigned char line_compression;
unsigned int iaf_bit_rate;
char xmt_level;
char rcv_level;
};
Questions
Below is a list of questions to be addressed as a result of this requirements document:
...