Go to the source code of this file.
Classes | |
| struct | t38_data_field_t |
| struct | t38_core_state_s |
Defines | |
| #define | _SPANDSP_T38_CORE_H_ |
| #define | T38_RX_BUF_LEN 2048 |
| #define | T38_TX_BUF_LEN 16384 |
Typedefs | |
| typedef struct t38_core_state_s | t38_core_state_t |
| typedef int( | t38_tx_packet_handler_t )(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count) |
| typedef int( | t38_rx_indicator_handler_t )(t38_core_state_t *s, void *user_data, int indicator) |
| typedef int( | t38_rx_data_handler_t )(t38_core_state_t *s, void *user_data, int data_type, int field_type, const uint8_t *buf, int len) |
| typedef int( | t38_rx_missing_handler_t )(t38_core_state_t *s, void *user_data, int rx_seq_no, int expected_seq_no) |
Enumerations | |
| enum | t30_indicator_types_e { T38_IND_NO_SIGNAL = 0, T38_IND_CNG, T38_IND_CED, T38_IND_V21_PREAMBLE, T38_IND_V27TER_2400_TRAINING, T38_IND_V27TER_4800_TRAINING, T38_IND_V29_7200_TRAINING, T38_IND_V29_9600_TRAINING, T38_IND_V17_7200_SHORT_TRAINING, T38_IND_V17_7200_LONG_TRAINING, T38_IND_V17_9600_SHORT_TRAINING, T38_IND_V17_9600_LONG_TRAINING, T38_IND_V17_12000_SHORT_TRAINING, T38_IND_V17_12000_LONG_TRAINING, T38_IND_V17_14400_SHORT_TRAINING, T38_IND_V17_14400_LONG_TRAINING, T38_IND_V8_ANSAM, T38_IND_V8_SIGNAL, T38_IND_V34_CNTL_CHANNEL_1200, T38_IND_V34_PRI_CHANNEL, T38_IND_V34_CC_RETRAIN, T38_IND_V33_12000_TRAINING, T38_IND_V33_14400_TRAINING } |
| enum | t38_data_types_e { T38_DATA_NONE = -1, T38_DATA_V21 = 0, T38_DATA_V27TER_2400, T38_DATA_V27TER_4800, T38_DATA_V29_7200, T38_DATA_V29_9600, T38_DATA_V17_7200, T38_DATA_V17_9600, T38_DATA_V17_12000, T38_DATA_V17_14400, T38_DATA_V8, T38_DATA_V34_PRI_RATE, T38_DATA_V34_CC_1200, T38_DATA_V34_PRI_CH, T38_DATA_V33_12000, T38_DATA_V33_14400 } |
| enum | t38_field_types_e { T38_FIELD_HDLC_DATA = 0, T38_FIELD_HDLC_SIG_END, T38_FIELD_HDLC_FCS_OK, T38_FIELD_HDLC_FCS_BAD, T38_FIELD_HDLC_FCS_OK_SIG_END, T38_FIELD_HDLC_FCS_BAD_SIG_END, T38_FIELD_T4_NON_ECM_DATA, T38_FIELD_T4_NON_ECM_SIG_END, T38_FIELD_CM_MESSAGE, T38_FIELD_JM_MESSAGE, T38_FIELD_CI_MESSAGE, T38_FIELD_V34RATE } |
| enum | t38_field_classes_e { T38_FIELD_CLASS_NONE = 0, T38_FIELD_CLASS_HDLC, T38_FIELD_CLASS_NON_ECM } |
| enum | t38_message_types_e { T38_TYPE_OF_MSG_T30_INDICATOR = 0, T38_TYPE_OF_MSG_T30_DATA } |
| enum | t38_transport_types_e { T38_TRANSPORT_UDPTL = 0, T38_TRANSPORT_RTP, T38_TRANSPORT_TCP } |
Functions | |
| const char * | t38_indicator_to_str (int indicator) |
| Convert the code for an indicator to a short text name. | |
| const char * | t38_data_type_to_str (int data_type) |
| Convert the code for a type of data to a short text name. | |
| const char * | t38_field_type_to_str (int field_type) |
| Convert the code for a type of data field to a short text name. | |
| const char * | t38_cm_profile_to_str (int profile) |
| Convert the code for a CM profile code to text description. | |
| const char * | t38_jm_to_str (const uint8_t *data, int len) |
| Convert a JM message code to text description. | |
| int | t38_v34rate_to_bps (const uint8_t *data, int len) |
| Convert a V34rate message to an actual bit rate. | |
| int | t38_core_send_indicator (t38_core_state_t *s, int indicator, int count) |
| Send an indicator packet. | |
| int | t38_core_send_data (t38_core_state_t *s, int data_type, int field_type, const uint8_t field[], int field_len, int count) |
| Send a data packet. | |
| int | t38_core_send_data_multi_field (t38_core_state_t *s, int data_type, const t38_data_field_t field[], int fields, int count) |
| Send a data packet. | |
| int | t38_core_rx_ifp_packet (t38_core_state_t *s, const uint8_t *buf, int len, uint16_t seq_no) |
| Process a received T.38 IFP packet. | |
| void | t38_set_data_rate_management_method (t38_core_state_t *s, int method) |
| void | t38_set_data_transport_protocol (t38_core_state_t *s, int data_transport_protocol) |
| void | t38_set_fill_bit_removal (t38_core_state_t *s, int fill_bit_removal) |
| void | t38_set_mmr_transcoding (t38_core_state_t *s, int mmr_transcoding) |
| void | t38_set_jbig_transcoding (t38_core_state_t *s, int jbig_transcoding) |
| void | t38_set_max_buffer_size (t38_core_state_t *s, int max_buffer_size) |
| void | t38_set_max_datagram_size (t38_core_state_t *s, int max_datagram_size) |
| int | t38_get_fastest_image_data_rate (t38_core_state_t *s) |
| void | t38_set_t38_version (t38_core_state_t *s, int t38_version) |
| void | t38_set_sequence_number_handling (t38_core_state_t *s, int check) |
| t38_core_state_t * | t38_core_init (t38_core_state_t *s, t38_rx_indicator_handler_t *rx_indicator_handler, t38_rx_data_handler_t *rx_data_handler, t38_rx_missing_handler_t *rx_missing_handler, void *rx_user_data, t38_tx_packet_handler_t tx_packet_handler, void *tx_packet_user_data) |
T.38 indicator types
| enum t38_data_types_e |
T.38 data types
| enum t38_field_classes_e |
T.38 field classes
| enum t38_field_types_e |
T.38 data field types
| enum t38_message_types_e |
T.38 message types
T.38 transport types
| const char* t38_cm_profile_to_str | ( | int | profile | ) |
Convert the code for a CM profile code to text description.
| profile | The profile code from a CM message. |
| int t38_core_rx_ifp_packet | ( | t38_core_state_t * | s, | |
| const uint8_t * | buf, | |||
| int | len, | |||
| uint16_t | seq_no | |||
| ) |
Process a received T.38 IFP packet.
| s | The T.38 context. | |
| buf | The packet contents. | |
| len | The length of the packet contents. | |
| seq_no | The packet sequence number. |
References t38_core_state_s::check_sequence_numbers, t38_core_state_s::current_rx_data_type, t38_core_state_s::current_rx_field_type, t38_core_state_s::current_rx_indicator, t38_core_state_s::logging, t38_core_state_s::missing_packets, t38_core_state_s::rx_data_handler, t38_core_state_s::rx_expected_seq_no, t38_core_state_s::rx_indicator_handler, t38_core_state_s::rx_missing_handler, t38_core_state_s::rx_user_data, span_log(), span_log_buf(), span_log_test(), t38_data_type_to_str(), t38_field_type_to_str(), t38_indicator_to_str(), and t38_core_state_s::t38_version.
| int t38_core_send_data | ( | t38_core_state_t * | s, | |
| int | data_type, | |||
| int | field_type, | |||
| const uint8_t | field[], | |||
| int | field_len, | |||
| int | count | |||
| ) |
Send a data packet.
| s | The T.38 context. | |
| data_type | The packet's data type. | |
| field_type | The packet's field type. | |
| field | The message data content for the packet. | |
| field_len | The length of the message data, in bytes. | |
| count | The number of copies of the packet to send. |
References t38_data_field_t::field, t38_data_field_t::field_len, t38_data_field_t::field_type, t38_core_state_s::logging, span_log(), t38_core_state_s::tx_packet_handler, t38_core_state_s::tx_packet_user_data, and t38_core_state_s::tx_seq_no.
| int t38_core_send_data_multi_field | ( | t38_core_state_t * | s, | |
| int | data_type, | |||
| const t38_data_field_t | field[], | |||
| int | fields, | |||
| int | count | |||
| ) |
Send a data packet.
| s | The T.38 context. | |
| data_type | The packet's data type. | |
| field | The list of fields. | |
| fields | The number of fields in the list. | |
| count | The number of copies of the packet to send. |
References t38_core_state_s::logging, span_log(), t38_core_state_s::tx_packet_handler, t38_core_state_s::tx_packet_user_data, and t38_core_state_s::tx_seq_no.
| int t38_core_send_indicator | ( | t38_core_state_t * | s, | |
| int | indicator, | |||
| int | count | |||
| ) |
Send an indicator packet.
| s | The T.38 context. | |
| indicator | The indicator to send. | |
| count | The number of copies of the packet to send. |
References t38_core_state_s::current_tx_indicator, t38_core_state_s::logging, span_log(), t38_indicator_to_str(), t38_core_state_s::tx_packet_handler, t38_core_state_s::tx_packet_user_data, and t38_core_state_s::tx_seq_no.
| const char* t38_data_type_to_str | ( | int | data_type | ) |
Convert the code for a type of data to a short text name.
| data_type | The data type. |
Referenced by t38_core_rx_ifp_packet().
| const char* t38_field_type_to_str | ( | int | field_type | ) |
Convert the code for a type of data field to a short text name.
| field_type | The field type. |
Referenced by t38_core_rx_ifp_packet().
| const char* t38_indicator_to_str | ( | int | indicator | ) |
Convert the code for an indicator to a short text name.
| indicator | The type of indicator. |
Referenced by t38_core_rx_ifp_packet(), and t38_core_send_indicator().
| const char* t38_jm_to_str | ( | const uint8_t * | data, | |
| int | len | |||
| ) |
Convert a JM message code to text description.
| data | The data field of the message. | |
| len | The length of the data field. |
| void t38_set_data_rate_management_method | ( | t38_core_state_t * | s, | |
| int | method | |||
| ) |
Set the method to be used for data rate management, as per the T.38 spec.
| s | The T.38 context. | |
| method | 1 for pass TCF across the T.38 link, 2 for handle TCF locally. |
References t38_core_state_s::data_rate_management_method.
| void t38_set_data_transport_protocol | ( | t38_core_state_t * | s, | |
| int | data_transport_protocol | |||
| ) |
Set the data transport protocol.
| s | The T.38 context. | |
| data_transport_protocol | UDPTL, RTP or TPKT. |
References t38_core_state_s::data_transport_protocol.
| void t38_set_fill_bit_removal | ( | t38_core_state_t * | s, | |
| int | fill_bit_removal | |||
| ) |
Set the non-ECM fill bit removal mode.
| s | The T.38 context. | |
| fill_bit_removal | TRUE to remove fill bits across the T.38 link, else FALSE. |
References t38_core_state_s::fill_bit_removal.
| void t38_set_jbig_transcoding | ( | t38_core_state_t * | s, | |
| int | jbig_transcoding | |||
| ) |
Set the JBIG transcoding mode.
| s | The T.38 context. | |
| jbig_transcoding | TRUE to transcode to JBIG across the T.38 link, else FALSE. |
References t38_core_state_s::jbig_transcoding.
| void t38_set_mmr_transcoding | ( | t38_core_state_t * | s, | |
| int | mmr_transcoding | |||
| ) |
Set the MMR transcoding mode.
| s | The T.38 context. | |
| mmr_transcoding | TRUE to transcode to MMR across the T.38 link, else FALSE. |
References t38_core_state_s::mmr_transcoding.
| void t38_set_t38_version | ( | t38_core_state_t * | s, | |
| int | t38_version | |||
| ) |
Set the T.38 version to be emulated.
| s | The T.38 context. | |
| t38_version | Version number, as in the T.38 spec. |
References t38_core_state_s::t38_version.
| int t38_v34rate_to_bps | ( | const uint8_t * | data, | |
| int | len | |||
| ) |
Convert a V34rate message to an actual bit rate.
| data | The data field of the message. | |
| len | The length of the data field. |
1.5.6