#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <time.h>
#include <string.h>
#include <assert.h>
#include <tiffio.h>
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/queue.h"
#include "spandsp/dc_restore.h"
#include "spandsp/bit_operations.h"
#include "spandsp/power_meter.h"
#include "spandsp/complex.h"
#include "spandsp/tone_generate.h"
#include "spandsp/async.h"
#include "spandsp/crc.h"
#include "spandsp/hdlc.h"
#include "spandsp/silence_gen.h"
#include "spandsp/fsk.h"
#include "spandsp/v29rx.h"
#include "spandsp/v29tx.h"
#include "spandsp/v27ter_rx.h"
#include "spandsp/v27ter_tx.h"
#include "spandsp/v17rx.h"
#include "spandsp/v17tx.h"
#include "spandsp/t4.h"
#include "spandsp/t30_fcf.h"
#include "spandsp/t35.h"
#include "spandsp/t30.h"
#include "spandsp/t30_logging.h"
#include "spandsp/t38_core.h"
#include "spandsp/t38_gateway.h"
Defines | |
#define | MS_PER_TX_CHUNK 30 |
#define | HDLC_START_BUFFER_LEVEL 8 |
#define | INDICATOR_TX_COUNT 3 |
#define | DATA_TX_COUNT 1 |
#define | DATA_END_TX_COUNT 3 |
Enumerations | |
enum | { DISBIT1 = 0x01, DISBIT2 = 0x02, DISBIT3 = 0x04, DISBIT4 = 0x08, DISBIT5 = 0x10, DISBIT6 = 0x20, DISBIT7 = 0x40, DISBIT8 = 0x80 } |
enum | { T38_NONE, T38_V27TER_RX, T38_V29_RX, T38_V17_RX } |
enum | { HDLC_FLAG_FINISHED = 0x01, HDLC_FLAG_CORRUPT_CRC = 0x02, HDLC_FLAG_PROCEED_WITH_OUTPUT = 0x04, HDLC_FLAG_MISSING_DATA = 0x08 } |
enum | { FLAG_INDICATOR = 0x100, FLAG_DATA = 0x200 } |
Functions | |
int | t38_gateway_rx (t38_gateway_state_t *s, int16_t amp[], int len) |
Process a block of received FAX audio samples. | |
int | t38_gateway_tx (t38_gateway_state_t *s, int16_t amp[], int max_len) |
Generate a block of FAX audio samples. | |
void | t38_gateway_get_transfer_statistics (t38_gateway_state_t *s, t38_stats_t *t) |
Get the current transfer statistics. | |
void | t38_gateway_set_ecm_capability (t38_gateway_state_t *s, int ecm_allowed) |
Control whether error correcting mode (ECM) is allowed. | |
void | t38_gateway_set_transmit_on_idle (t38_gateway_state_t *s, int transmit_on_idle) |
Select whether silent audio will be sent when transmit is idle. | |
void | t38_gateway_set_supported_modems (t38_gateway_state_t *s, int supported_modems) |
Specify supported modems. | |
void | t38_gateway_set_nsx_suppression (t38_gateway_state_t *s, int suppress_nsx) |
Select whether NSC, NSF, and NSS should be suppressed. | |
void | t38_gateway_set_tep_mode (t38_gateway_state_t *s, int use_tep) |
Select whether TEP will be sent for the image modems. | |
t38_gateway_state_t * | t38_gateway_init (t38_gateway_state_t *s, t38_tx_packet_handler_t *tx_packet_handler, void *tx_packet_user_data) |
Initialise a gateway mode T.38 context. | |
int | t38_gateway_free (t38_gateway_state_t *s) |
Free a T.38 context. |
|
Free a T.38 context. Free a gateway mode T.38 context.
|
|
Get the current transfer statistics. Get the current transfer statistics for the current T.38 session.
|
|
Initialise a gateway mode T.38 context.
|
|
Process a block of received FAX audio samples. Process a block of received FAX audio samples.
|
|
Control whether error correcting mode (ECM) is allowed. Control whether error correcting mode (ECM) is allowed.
|
|
Select whether NSC, NSF, and NSS should be suppressed. Select whether NSC, NSF, and NSS should be suppressed. It selected, the contents of these messages are forced to zero for all octets beyond the message type. This makes them look like manufacturer specific messages, from a manufacturer which does not exist.
|
|
Specify supported modems. Specify which modem types are supported by a T.30 context.
|
|
Select whether TEP will be sent for the image modems. Select whether talker echo protection tone will be sent for the image modems.
|
|
Select whether silent audio will be sent when transmit is idle. Select whether silent audio will be sent when transmit is idle.
|
|
Generate a block of FAX audio samples. Generate a block of FAX audio samples.
|