26#if !defined(_SPANDSP_PRIVATE_V18_H_)
27#define _SPANDSP_PRIVATE_V18_H_
31 GOERTZEL_TONE_SET_390HZ = 0,
32 GOERTZEL_TONE_SET_980HZ = 1,
33 GOERTZEL_TONE_SET_1180HZ = 2,
34 GOERTZEL_TONE_SET_1270HZ = 3,
35 GOERTZEL_TONE_SET_1300HZ = 4,
36 GOERTZEL_TONE_SET_1400HZ = 5,
37 GOERTZEL_TONE_SET_1650HZ = 6,
38 GOERTZEL_TONE_SET_1800HZ = 7,
39 GOERTZEL_TONE_SET_2225HZ = 8,
40 GOERTZEL_TONE_SET_ENTRIES = 9
45 V18_TX_STATE_ORIGINATING_1 = 1,
46 V18_TX_STATE_ORIGINATING_2 = 2,
47 V18_TX_STATE_ORIGINATING_3 = 3,
48 V18_TX_STATE_ORIGINATING_42 = 42,
50 V18_TX_STATE_ANSWERING_1 = 101,
51 V18_TX_STATE_ANSWERING_2 = 102,
52 V18_TX_STATE_ANSWERING_3 = 103,
53 V18_TX_STATE_ANSWERING_42 = 142
58 V18_RX_STATE_ORIGINATING_1 = 1,
59 V18_RX_STATE_ORIGINATING_2 = 2,
60 V18_RX_STATE_ORIGINATING_3 = 3,
61 V18_RX_STATE_ORIGINATING_42 = 42,
63 V18_RX_STATE_ANSWERING_1 = 101,
64 V18_RX_STATE_ANSWERING_2 = 102,
65 V18_RX_STATE_ANSWERING_3 = 103,
66 V18_RX_STATE_ANSWERING_42 = 142
76 void *put_msg_user_data;
78 void *status_handler_user_data;
82 char stored_message[81];
89 uint8_t buf[QUEUE_STATE_T_SIZE(128)];
105#if defined(SPANDSP_USE_FIXED_POINTx)
116 goertzel_state_t tone_set[GOERTZEL_TONE_SET_ENTRIES];
121 span_sample_timer_t target_tone_duration;
125 uint8_t rx_msg[256 + 1];
127 span_sample_timer_t msg_in_progress_timer;
129 span_sample_timer_t rx_suppression_timer;
130 span_sample_timer_t tx_suppression_timer;
132 span_sample_timer_t ta_interval;
133 span_sample_timer_t tc_interval;
134 span_sample_timer_t te_interval;
135 span_sample_timer_t tm_interval;
136 span_sample_timer_t tr_interval;
137 span_sample_timer_t tt_interval;
139 span_sample_timer_t ta_timer;
140 span_sample_timer_t tc_timer;
141 span_sample_timer_t te_timer;
142 span_sample_timer_t tm_timer;
143 span_sample_timer_t tr_timer;
144 span_sample_timer_t tt_timer;
void(* span_modem_status_func_t)(void *user_data, int status)
Definition async.h:131
struct async_tx_state_s async_tx_state_t
Definition async.h:139
void(* span_put_msg_func_t)(void *user_data, const uint8_t *msg, int len)
Definition async.h:107
int dtmf_tx(dtmf_tx_state_t *s, int16_t amp[], int max_samples)
Generate a buffer of DTMF tones.
Definition dtmf.c:551
int dtmf_rx(dtmf_rx_state_t *s, const int16_t amp[], int samples)
Process a block of received DTMF audio samples.
Definition dtmf.c:132
int fsk_tx(fsk_tx_state_t *s, int16_t amp[], int len)
Generate a block of FSK modem audio samples.
Definition fsk.c:162
int fsk_rx(fsk_rx_state_t *s, const int16_t *amp, int len)
Process a block of received FSK modem audio samples.
Definition fsk.c:396
struct fsk_rx_state_s fsk_rx_state_t
Definition fsk.h:146
struct fsk_tx_state_s fsk_tx_state_t
Definition fsk.h:137
struct logging_state_s logging_state_t
Definition logging.h:72
struct modem_connect_tones_rx_state_s modem_connect_tones_rx_state_t
Definition modem_connect_tones.h:105
struct queue_state_s queue_state_t
Definition queue.h:54
Definition private/v18.h:70
float threshold
Definition private/v18.h:112
float energy
Definition private/v18.h:114
logging_state_t logging
Error and flow logging control.
Definition private/v18.h:149
int current_goertzel_sample
Definition private/v18.h:118
span_sample_timer_t tone_duration
Definition private/v18.h:120
bool calling_party
True if we are the calling modem.
Definition private/v18.h:72
struct tone_gen_descriptor_s tone_gen_descriptor_t
Definition tone_generate.h:51
struct tone_gen_state_s tone_gen_state_t
Definition tone_generate.h:57