26 #if !defined(_SPANDSP_V150_1_H_) 27 #define _SPANDSP_V150_1_H_ 44 } connection_state_change;
78 int selected_compression_direction;
79 int selected_compression;
80 int selected_error_correction;
82 int compression_tx_dictionary_size;
83 int compression_rx_dictionary_size;
84 int compression_tx_string_length;
85 int compression_rx_string_length;
86 int compression_tx_history_size;
87 int compression_rx_history_size;
89 bool i_raw_octet_available;
90 bool i_raw_bit_available;
91 bool i_frame_available;
92 bool i_octet_with_dlci_available;
93 bool i_octet_without_dlci_available;
94 bool i_char_stat_available;
95 bool i_char_dyn_available;
96 bool i_octet_cs_available;
97 bool i_char_stat_cs_available;
98 bool i_char_dyn_cs_available;
103 typedef int (*v150_1_spe_signal_handler_t) (
void *user_data,
int signal);
105 typedef int (*v150_1_tx_packet_handler_t) (
void *user_data,
int channel,
const uint8_t msg[],
int len);
107 typedef int (*v150_1_rx_data_handler_t) (
void *user_data,
const uint8_t msg[],
int len,
int fill);
109 typedef int (*v150_1_rx_status_report_handler_t) (
void *user_data,
v150_1_status_t *report);
111 typedef int (*v150_1_sse_tx_packet_handler_t) (
void *user_data,
bool repeat,
const uint8_t pkt[],
int len);
113 typedef int (*v150_1_sse_status_handler_t) (
void *user_data,
int status);
115 typedef span_timestamp_t (*v150_1_timer_handler_t) (
void *user_data, span_timestamp_t timeout);
154 #define V150_1_CALL_DISCRIMINATION_DEFAULT_TIMEOUT 60000000 158 typedef enum v150_1_cdscselect_e
160 V150_1_CDSCSELECT_INDETERMINATE = 0,
161 V150_1_CDSCSELECT_AUDIO_RFC4733 = 1,
162 V150_1_CDSCSELECT_VBD_PREFERRED = 2,
163 V150_1_CDSCSELECT_MIXED = 3
164 } v150_1_cdscselect_t;
166 typedef enum v150_1_modem_relay_gateway_type_e
168 V150_1_MODEM_RELAY_GATEWAY_V8 = 0,
169 V150_1_MODEM_RELAY_GATEWAY_UNIVERSAL = 1
170 } v150_1_modem_relay_gateway_type_t;
174 V150_1_MSGID_NULL = 0,
175 V150_1_MSGID_INIT = 1,
176 V150_1_MSGID_XID_XCHG = 2,
177 V150_1_MSGID_JM_INFO = 3,
178 V150_1_MSGID_START_JM = 4,
179 V150_1_MSGID_CONNECT = 5,
180 V150_1_MSGID_BREAK = 6,
181 V150_1_MSGID_BREAKACK = 7,
182 V150_1_MSGID_MR_EVENT = 8,
183 V150_1_MSGID_CLEARDOWN = 9,
184 V150_1_MSGID_PROF_XCHG = 10,
186 V150_1_MSGID_I_RAW_OCTET = 16,
187 V150_1_MSGID_I_RAW_BIT = 17,
188 V150_1_MSGID_I_OCTET = 18,
189 V150_1_MSGID_I_CHAR_STAT = 19,
190 V150_1_MSGID_I_CHAR_DYN = 20,
191 V150_1_MSGID_I_FRAME = 21,
192 V150_1_MSGID_I_OCTET_CS = 22,
193 V150_1_MSGID_I_CHAR_STAT_CS = 23,
194 V150_1_MSGID_I_CHAR_DYN_CS = 24,
196 V150_1_MSGID_VENDOR_MIN = 100,
197 V150_1_MSGID_VENDOR_MAX = 127
200 enum v150_1_support_e
202 V150_1_SUPPORT_I_RAW_BIT = 0x0800,
203 V150_1_SUPPORT_I_FRAME = 0x0400,
204 V150_1_SUPPORT_I_CHAR_STAT = 0x0200,
205 V150_1_SUPPORT_I_CHAR_DYN = 0x0100,
206 V150_1_SUPPORT_I_OCTET_CS = 0x0080,
207 V150_1_SUPPORT_I_CHAR_STAT_CS = 0x0040,
208 V150_1_SUPPORT_I_CHAR_DYN_CS = 0x0020
211 enum v150_1_jm_category_id_e
213 V150_1_JM_CATEGORY_ID_PROTOCOLS = 0x5,
214 V150_1_JM_CATEGORY_ID_CALL_FUNCTION_1 = 0x8,
215 V150_1_JM_CATEGORY_ID_MODULATION_MODES = 0xA,
216 V150_1_JM_CATEGORY_ID_PSTN_ACCESS = 0xB,
217 V150_1_JM_CATEGORY_ID_PCM_MODEM_AVAILABILITY = 0xE,
218 V150_1_JM_CATEGORY_ID_EXTENSION = 0x0
221 enum v150_1_jm_call_function_e
223 V150_1_JM_CALL_FUNCTION_T30_TX = (0x1 << 9),
224 V150_1_JM_CALL_FUNCTION_V18 = (0x2 << 9),
225 V150_1_JM_CALL_FUNCTION_V_SERIES = (0x3 << 9),
226 V150_1_JM_CALL_FUNCTION_H324 = (0x4 << 9),
227 V150_1_JM_CALL_FUNCTION_T30_RX = (0x5 << 9),
228 V150_1_JM_CALL_FUNCTION_T101 = (0x6 << 9)
231 enum v150_1_jm_modulation_mode_e
233 V150_1_JM_MODULATION_MODE_V34_AVAILABLE = 0x800,
234 V150_1_JM_MODULATION_MODE_V34_HALF_DUPLEX_AVAILABLE = 0x400,
235 V150_1_JM_MODULATION_MODE_V32_V32bis_AVAILABLE = 0x200,
236 V150_1_JM_MODULATION_MODE_V22_V22bis_AVAILABLE = 0x100,
237 V150_1_JM_MODULATION_MODE_V17_AVAILABLE = 0x080,
238 V150_1_JM_MODULATION_MODE_V29_AVAILABLE = 0x040,
239 V150_1_JM_MODULATION_MODE_V27ter_AVAILABLE = 0x020,
240 V150_1_JM_MODULATION_MODE_V26ter_AVAILABLE = 0x010,
241 V150_1_JM_MODULATION_MODE_V26bis_AVAILABLE = 0x008,
242 V150_1_JM_MODULATION_MODE_V23_AVAILABLE = 0x004,
243 V150_1_JM_MODULATION_MODE_V23_HALF_DUPLEX_AVAILABLE = 0x002,
244 V150_1_JM_MODULATION_MODE_V21_AVAILABLE = 0x001
247 enum v150_1_jm_protocol_e
249 V150_1_JM_PROTOCOL_V42_LAPM = (0x4 << 9)
252 enum v150_1_jm_access_e
254 V150_1_JM_ACCESS_CALL_DCE_CELLULAR = (0x4 << 9),
255 V150_1_JM_ACCESS_ANSWER_DCE_CELLULAR = (0x2 << 9),
256 V150_1_JM_ACCESS_DCE_DIGITAL_NETWORK = (0x1 << 9)
259 enum v150_1_jm_pcm_mode_e
261 V150_1_JM_PCM_V90_V92_ANALOGUE_MODEM_AVAILABLE = (0x4 << 9),
262 V150_1_JM_PCM_V90_V92_DIGITAL_MODEM_AVAILABLE = (0x2 << 9),
263 V150_1_JM_PCM_V91_MODEM_AVAILABLE = (0x1 << 9)
268 V150_1_SELMOD_NULL = 0,
269 V150_1_SELMOD_V92 = 1,
270 V150_1_SELMOD_V91 = 2,
271 V150_1_SELMOD_V90 = 3,
272 V150_1_SELMOD_V34 = 4,
273 V150_1_SELMOD_V32bis = 5,
274 V150_1_SELMOD_V32 = 6,
275 V150_1_SELMOD_V22bis = 7,
276 V150_1_SELMOD_V22 = 8,
277 V150_1_SELMOD_V17 = 9,
278 V150_1_SELMOD_V29 = 10,
279 V150_1_SELMOD_V27ter = 11,
280 V150_1_SELMOD_V26ter = 12,
281 V150_1_SELMOD_V26bis = 13,
282 V150_1_SELMOD_V23 = 14,
283 V150_1_SELMOD_V21 = 15,
284 V150_1_SELMOD_BELL212 = 16,
285 V150_1_SELMOD_BELL103 = 17,
286 V150_1_SELMOD_VENDOR_MIN = 18,
287 V150_1_SELMOD_VENDOR_MAX = 30
290 enum v150_1_symbol_rate_e
292 V150_1_SYMBOL_RATE_NULL = 0,
293 V150_1_SYMBOL_RATE_600 = 1,
294 V150_1_SYMBOL_RATE_1200 = 2,
295 V150_1_SYMBOL_RATE_1600 = 3,
296 V150_1_SYMBOL_RATE_2400 = 4,
297 V150_1_SYMBOL_RATE_2743 = 5,
298 V150_1_SYMBOL_RATE_3000 = 6,
299 V150_1_SYMBOL_RATE_3200 = 7,
300 V150_1_SYMBOL_RATE_3429 = 8,
301 V150_1_SYMBOL_RATE_8000 = 9
304 enum v150_1_compress_e
306 V150_1_COMPRESS_NEITHER_WAY = 0,
307 V150_1_COMPRESS_TX_ONLY = 1,
308 V150_1_COMPRESS_RX_ONLY = 2,
309 V150_1_COMPRESS_BIDIRECTIONAL = 3
312 enum v150_1_compression_e
314 V150_1_COMPRESSION_NONE = 0,
315 V150_1_COMPRESSION_V42BIS = 1,
316 V150_1_COMPRESSION_V44 = 2,
317 V150_1_COMPRESSION_MNP5 = 3
320 enum v150_1_error_correction_e
322 V150_1_ERROR_CORRECTION_NONE = 0,
323 V150_1_ERROR_CORRECTION_V42_LAPM = 1,
324 V150_1_ERROR_CORRECTION_V42_ANNEX_A = 2
327 enum v150_1_break_source_e
329 V150_1_BREAK_SOURCE_V42_LAPM = 0,
330 V150_1_BREAK_SOURCE_V42_ANNEX_A = 1,
331 V150_1_BREAK_SOURCE_V14 = 2
334 enum v150_1_break_type_e
336 V150_1_BREAK_TYPE_NOT_APPLICABLE = 0,
337 V150_1_BREAK_TYPE_DESTRUCTIVE_EXPEDITED = 1,
338 V150_1_BREAK_TYPE_NON_DESTRUCTIVE_EXPEDITED = 2,
339 V150_1_BREAK_TYPE_NON_DESTRUCTIVE_NON_EXPEDITED = 3
342 enum v150_1_mr_event_id_e
344 V150_1_MR_EVENT_ID_NULL = 0,
345 V150_1_MR_EVENT_ID_RATE_RENEGOTIATION = 1,
346 V150_1_MR_EVENT_ID_RETRAIN = 2,
347 V150_1_MR_EVENT_ID_PHYSUP = 3
350 enum v150_1_mr_event_reason_e
352 V150_1_MR_EVENT_REASON_NULL = 0,
353 V150_1_MR_EVENT_REASON_INITIATION = 1,
354 V150_1_MR_EVENT_REASON_RESPONDING = 2
358 enum v150_1_cleardown_reason_e
360 V150_1_CLEARDOWN_REASON_UNKNOWN = 0,
361 V150_1_CLEARDOWN_REASON_PHYSICAL_LAYER_RELEASE = 1,
362 V150_1_CLEARDOWN_REASON_LINK_LAYER_DISCONNECT = 2,
363 V150_1_CLEARDOWN_REASON_DATA_COMPRESSION_DISCONNECT = 3,
364 V150_1_CLEARDOWN_REASON_ABORT = 4,
365 V150_1_CLEARDOWN_REASON_ON_HOOK = 5,
366 V150_1_CLEARDOWN_REASON_NETWORK_LAYER_TERMINATION = 6,
367 V150_1_CLEARDOWN_REASON_ADMINISTRATIVE = 7
370 enum v150_1_data_bits_e
372 V150_1_DATA_BITS_5 = 0,
373 V150_1_DATA_BITS_6 = 1,
374 V150_1_DATA_BITS_7 = 2,
375 V150_1_DATA_BITS_8 = 3
380 V150_1_PARITY_UNKNOWN = 0,
381 V150_1_PARITY_NONE = 1,
382 V150_1_PARITY_EVEN = 2,
383 V150_1_PARITY_ODD = 3,
384 V150_1_PARITY_SPACE = 4,
385 V150_1_PARITY_MARK = 5
389 enum v150_1_stop_bits_e
391 V150_1_STOP_BITS_1 = 0,
392 V150_1_STOP_BITS_2 = 1
398 V150_1_STATE_IDLE = 0,
399 V150_1_STATE_INITED = 1,
401 V150_1_STATE_RETRAIN = 2,
403 V150_1_STATE_RATE_RENEGOTIATION = 3,
407 V150_1_STATE_PHYSUP = 4,
410 V150_1_STATE_CONNECTED = 5
414 enum v150_1_media_states_e
416 V150_1_MEDIA_STATE_ITU_RESERVED_0 = 0,
417 V150_1_MEDIA_STATE_INITIAL_AUDIO = 1,
418 V150_1_MEDIA_STATE_VOICE_BAND_DATA = 2,
419 V150_1_MEDIA_STATE_MODEM_RELAY = 3,
420 V150_1_MEDIA_STATE_FAX_RELAY = 4,
421 V150_1_MEDIA_STATE_TEXT_RELAY = 5,
422 V150_1_MEDIA_STATE_TEXT_PROBE = 6,
423 V150_1_MEDIA_STATE_ITU_RESERVED_MIN = 7,
424 V150_1_MEDIA_STATE_ITU_RESERVED_MAX = 31,
425 V150_1_MEDIA_STATE_RESERVED_MIN = 32,
426 V150_1_MEDIA_STATE_RESERVED_MAX = 63,
427 V150_1_MEDIA_STATE_INDETERMINATE = 64
433 V150_1_MRMODS_V34 = 1,
434 V150_1_MRMODS_V34_HALF_DUPLEX = 2,
435 V150_1_MRMODS_V32BIS = 3,
436 V150_1_MRMODS_V22BIS = 4,
437 V150_1_MRMODS_V17 = 5,
438 V150_1_MRMODS_V29_HALF_DUPLEX = 6,
439 V150_1_MRMODS_V27TER = 7,
440 V150_1_MRMODS_V26TER = 8,
441 V150_1_MRMODS_V26BIS = 9,
442 V150_1_MRMODS_V23_DUPLEX = 10,
443 V150_1_MRMODS_V23_HALF_DUPLEX = 11,
444 V150_1_MRMODS_V21 = 12,
445 V150_1_MRMODS_V90_ANALOGUE = 13,
446 V150_1_MRMODS_V90_DIGITAL = 14,
447 V150_1_MRMODS_V91 = 15,
448 V150_1_MRMODS_V92_ANALOGUE = 16,
449 V150_1_MRMODS_V92_DIGITAL = 17
452 enum v150_1_status_reason_e
454 V150_1_STATUS_REASON_NULL = 0,
455 V150_1_STATUS_REASON_MEDIA_STATE_CHANGED = 1,
456 V150_1_STATUS_REASON_CONNECTION_STATE_CHANGED = 2,
457 V150_1_STATUS_REASON_DATA_FORMAT_CHANGED = 3,
458 V150_1_STATUS_REASON_BREAK_RECEIVED = 4,
459 V150_1_STATUS_REASON_RATE_RETRAIN_RECEIVED = 5,
460 V150_1_STATUS_REASON_RATE_RENEGOTIATION_RECEIVED = 6,
461 V150_1_STATUS_REASON_BUSY_CHANGED = 7,
462 V150_1_STATUS_REASON_CONNECTION_STATE_PHYSUP = 8,
463 V150_1_STATUS_REASON_CONNECTION_STATE_CONNECTED = 9
466 #if defined(__cplusplus) 470 SPAN_DECLARE(
int) v150_1_state_machine(
v150_1_state_t *s,
int signal,
const uint8_t *msg,
int len);
472 SPAN_DECLARE(
const char *) v150_1_msg_id_to_str(
int msg_id);
474 SPAN_DECLARE(
const char *) v150_1_data_bits_to_str(
int code);
476 SPAN_DECLARE(
const char *) v150_1_parity_to_str(
int code);
478 SPAN_DECLARE(
const char *) v150_1_stop_bits_to_str(
int code);
480 SPAN_DECLARE(
const char *) v150_1_mr_event_type_to_str(
int type);
482 SPAN_DECLARE(
const char *) v150_1_cleardown_reason_to_str(
int type);
484 SPAN_DECLARE(
const char *) v150_1_symbol_rate_to_str(
int code);
486 SPAN_DECLARE(
const char *) v150_1_modulation_to_str(
int modulation);
488 SPAN_DECLARE(
const char *) v150_1_compression_to_str(
int compression);
490 SPAN_DECLARE(
const char *) v150_1_compression_direction_to_str(
int direction);
492 SPAN_DECLARE(
const char *) v150_1_error_correction_to_str(
int correction);
494 SPAN_DECLARE(
const char *) v150_1_break_source_to_str(
int source);
496 SPAN_DECLARE(
const char *) v150_1_break_type_to_str(
int type);
498 SPAN_DECLARE(
const char *) v150_1_state_to_str(
int state);
500 SPAN_DECLARE(
const char *) v150_1_status_reason_to_str(
int status);
502 SPAN_DECLARE(
const char *) v150_1_jm_category_to_str(
int category);
504 SPAN_DECLARE(
const char *) v150_1_jm_info_modulation_to_str(
int modulation);
506 SPAN_DECLARE(
const char *) v150_1_signal_to_str(
int modulation);
508 SPAN_DECLARE(
const char *) v150_1_media_state_to_str(
int modulation);
512 SPAN_DECLARE(
int) v150_1_set_stop_bits(
v150_1_state_t *s,
int bits);
514 SPAN_DECLARE(
int) v150_1_set_bits_per_character(
v150_1_state_t *s,
int bits);
528 SPAN_DECLARE(
int) v150_1_tx_break(
v150_1_state_t *s,
int source,
int type,
int duration);
532 SPAN_DECLARE(
int) v150_1_tx_mr_event(
v150_1_state_t *s,
int event_id);
534 SPAN_DECLARE(
int) v150_1_tx_cleardown(
v150_1_state_t *s,
int reason);
538 SPAN_DECLARE(
int) v150_1_tx_info_stream(
v150_1_state_t *s,
const uint8_t buf[],
int len);
540 SPAN_DECLARE(
int) v150_1_process_rx_msg(
v150_1_state_t *s,
int chan,
int seq_no,
const uint8_t buf[],
int len);
542 SPAN_DECLARE(
int) v150_1_set_local_tc_payload_bytes(
v150_1_state_t *s,
int channel,
int max_len);
544 SPAN_DECLARE(
int) v150_1_get_local_tc_payload_bytes(
v150_1_state_t *s,
int channel);
546 SPAN_DECLARE(
int) v150_1_set_info_stream_tx_mode(
v150_1_state_t *s,
int channel,
int msg_id);
548 SPAN_DECLARE(
int) v150_1_set_info_stream_msg_priorities(
v150_1_state_t *s,
int msg_ids[]);
550 SPAN_DECLARE(
int) v150_1_set_local_busy(
v150_1_state_t *s,
bool busy);
554 SPAN_DECLARE(
int) v150_1_set_modulation(
v150_1_state_t *s,
int modulation);
556 SPAN_DECLARE(
int) v150_1_set_compression_direction(
v150_1_state_t *s,
int compression_direction);
558 SPAN_DECLARE(
int) v150_1_set_compression(
v150_1_state_t *s,
int compression);
560 SPAN_DECLARE(
int) v150_1_set_compression_parameters(
v150_1_state_t *s,
561 int tx_dictionary_size,
562 int rx_dictionary_size,
563 int tx_string_length,
564 int rx_string_length,
566 int rx_history_size);
568 SPAN_DECLARE(
int) v150_1_set_error_correction(
v150_1_state_t *s,
int error_correction);
570 SPAN_DECLARE(
int) v150_1_set_tx_symbol_rate(
v150_1_state_t *s,
bool enable,
int rate);
572 SPAN_DECLARE(
int) v150_1_set_rx_symbol_rate(
v150_1_state_t *s,
bool enable,
int rate);
574 SPAN_DECLARE(
int) v150_1_set_tx_data_signalling_rate(
v150_1_state_t *s,
int rate);
576 SPAN_DECLARE(
int) v150_1_set_rx_data_signalling_rate(
v150_1_state_t *s,
int rate);
578 SPAN_DECLARE(
void) v150_1_set_near_cdscselect(
v150_1_state_t *s, v150_1_cdscselect_t select);
580 SPAN_DECLARE(
void) v150_1_set_far_cdscselect(
v150_1_state_t *s, v150_1_cdscselect_t select);
582 SPAN_DECLARE(
void) v150_1_set_near_modem_relay_gateway_type(
v150_1_state_t *s, v150_1_modem_relay_gateway_type_t type);
584 SPAN_DECLARE(
void) v150_1_set_far_modem_relay_gateway_type(
v150_1_state_t *s, v150_1_modem_relay_gateway_type_t type);
586 SPAN_DECLARE(
void) v150_1_set_rfc4733_mode(
v150_1_state_t *s,
bool rfc4733_preferred);
588 SPAN_DECLARE(
void) v150_1_set_call_discrimination_timeout(
v150_1_state_t *s,
int timeout);
590 SPAN_DECLARE(
int) v150_1_timer_expired(
v150_1_state_t *s, span_timestamp_t now);
594 SPAN_DECLARE(
int) v150_1_test_rx_sprt_msg(
v150_1_state_t *s,
int chan,
int seq_no,
const uint8_t buf[],
int len);
616 sprt_tx_packet_handler_t sprt_tx_packet_handler,
617 void *sprt_tx_packet_handler_user_data,
618 uint8_t sprt_tx_payload_type,
619 uint8_t sprt_rx_payload_type,
620 v150_1_sse_tx_packet_handler_t sse_tx_packet_handler,
621 void *sse_tx_packet_user_data,
622 v150_1_timer_handler_t v150_1_timer_handler,
623 void *v150_1_timer_user_data,
624 v150_1_rx_data_handler_t rx_data_handler,
625 void *rx_data_handler_user_data,
626 v150_1_rx_status_report_handler_t rx_status_report_handler,
627 void *rx_status_report_user_data,
628 v150_1_spe_signal_handler_t spe_signal_handler,
629 void *spe_signal_handler_user_data);
635 #if defined(__cplusplus)
Definition: private/logging.h:33
Definition: private/v150_1.h:300