#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <time.h>
#include <memory.h>
#include <string.h>
#include <ctype.h>
#include <assert.h>
#include <tiffio.h>
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/bit_operations.h"
#include "spandsp/dc_restore.h"
#include "spandsp/queue.h"
#include "spandsp/power_meter.h"
#include "spandsp/complex.h"
#include "spandsp/tone_generate.h"
#include "spandsp/async.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.h"
#include "spandsp/t30_logging.h"
#include "spandsp/t38_core.h"
#include "spandsp/at_interpreter.h"
#include "spandsp/t31.h"
Defines | |
#define | MS_PER_TX_CHUNK 30 |
#define | INDICATOR_TX_COUNT 3 |
#define | DATA_TX_COUNT 1 |
#define | DATA_END_TX_COUNT 3 |
#define | DEFAULT_DTE_TIMEOUT 5 |
#define | MAX_OCTETS_PER_UNPACED_CHUNK 300 |
#define | MID_RX_TIMEOUT 15000 |
#define | HDLC_FRAMING_OK_THRESHOLD 5 |
#define | ETX 0x03 |
#define | DLE 0x10 |
#define | SUB 0x1A |
Typedefs | |
typedef const char *(* | at_cmd_service_t )(t31_state_t *s, const char *cmd) |
Enumerations | |
enum | { T31_FLUSH, T31_SILENCE_TX, T31_SILENCE_RX, T31_CED_TONE, T31_CNG_TONE, T31_NOCNG_TONE, T31_V21_TX, T31_V17_TX, T31_V27TER_TX, T31_V29_TX, T31_V21_RX, T31_V17_RX, T31_V27TER_RX, T31_V29_RX } |
enum | { T38_TIMED_STEP_NONE = 0, T38_TIMED_STEP_NON_ECM_MODEM, T38_TIMED_STEP_NON_ECM_MODEM_2, T38_TIMED_STEP_NON_ECM_MODEM_3, T38_TIMED_STEP_NON_ECM_MODEM_4, T38_TIMED_STEP_NON_ECM_MODEM_5, T38_TIMED_STEP_HDLC_MODEM, T38_TIMED_STEP_HDLC_MODEM_2, T38_TIMED_STEP_HDLC_MODEM_3, T38_TIMED_STEP_HDLC_MODEM_4, T38_TIMED_STEP_CED, T38_TIMED_STEP_CED_2, T38_TIMED_STEP_CNG, T38_TIMED_STEP_CNG_2, T38_TIMED_STEP_PAUSE } |
Functions | |
int | t31_t38_send_timeout (t31_state_t *s, int samples) |
void | t31_call_event (t31_state_t *s, int event) |
int | t31_at_rx (t31_state_t *s, const char *t, int len) |
int | t31_rx (t31_state_t *s, int16_t amp[], int len) |
Process a block of received T.31 modem audio samples. | |
int | t31_tx (t31_state_t *s, int16_t amp[], int max_len) |
Generate a block of T.31 modem audio samples. | |
void | t31_set_transmit_on_idle (t31_state_t *s, int transmit_on_idle) |
Select whether silent audio will be sent when transmit is idle. | |
void | t31_set_tep_mode (t31_state_t *s, int use_tep) |
Select whether TEP mode will be used. | |
void | t31_set_t38_config (t31_state_t *s, int without_pacing) |
Select whether T.38 data will be paced. | |
t31_state_t * | t31_init (t31_state_t *s, at_tx_handler_t *at_tx_handler, void *at_tx_user_data, t31_modem_control_handler_t *modem_control_handler, void *modem_control_user_data, t38_tx_packet_handler_t *tx_t38_packet_handler, void *tx_t38_packet_user_data) |
Initialise a T.31 context. | |
int | t31_release (t31_state_t *s) |
Release a T.31 context. |
|
Initialise a T.31 context. Initialise a T.31 context. This must be called before the first use of the context, to initialise its contents.
|
|
Release a T.31 context. Release a T.31 context.
|
|
Process a block of received T.31 modem audio samples. Process a block of received T.31 modem audio samples.
|
|
Select whether T.38 data will be paced. Select whether T.38 data will be paced as it is transmitted.
|
|
Select whether TEP mode will be used. Select whether TEP mode will be used (or time allowed for it (when transmitting).
|
|
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 T.31 modem audio samples. Generate a block of T.31 modem audio samples.
|