spandsp 3.0.0
t38_core_state_s Struct Reference

#include <t38_core.h>

Public Attributes

t38_tx_packet_handler_t tx_packet_handler
 Handler routine to transmit IFP packets generated by the T.38 protocol engine.
void * tx_packet_user_data
 An opaque pointer passed to tx_packet_handler.
t38_rx_indicator_handler_t rx_indicator_handler
 Handler routine to process received indicator packets.
t38_rx_data_handler_t rx_data_handler
 Handler routine to process received data packets.
t38_rx_missing_handler_t rx_missing_handler
 Handler routine to process the missing packet condition.
void * rx_user_data
 An opaque pointer passed to any of the above receive handling routines.
int microseconds_per_tx_chunk
 Required time between T.38 transmissions, in us.
int chunking_modes
 Bit fields controlling the way data is packed into chunks for transmission.
int iaf
 Internet Aware FAX mode bit mask.
int data_rate_management_method
 Method 1: Local generation of TCF (required for use with TCP). Method 2: Transfer of TCF is required for use with UDP (UDPTL or RTP). Method 2 is not recommended for use with TCP.
int data_transport_protocol
 The emitting gateway may indicate a preference for either UDP/UDPTL, or UDP/RTP, or TCP for transport of T.38 IFP Packets. The receiving device selects the transport protocol.
int fill_bit_removal
 Indicates the capability to remove and insert fill bits in Phase C, non-ECM data to reduce bandwidth in the packet network.
int mmr_transcoding
 Indicates the ability to convert to/from MMR from/to the line format to improve the compression of the data, and reduce the bandwidth, in the packet network.
int jbig_transcoding
 Indicates the ability to convert to/from JBIG to reduce bandwidth.
int max_buffer_size
 For UDP (UDPTL or RTP) modes, this option indicates the maximum number of octets that can be stored on the remote device before an overflow condition occurs. It is the responsibility of the transmitting application to limit the transfer rate to prevent an overflow. The negotiated data rate should be used to determine the rate at which data is being removed from the buffer.
int max_datagram_size
 This option indicates the maximum size of a UDPTL packet or the maximum size of the payload within an RTP packet that can be accepted by the remote device.
int t38_version
 This is the version number of ITU-T Rec. T.38. New versions shall be compatible with previous versions.
int allow_for_tep
 Allow time for TEP playout.
int fastest_image_data_rate
 The fastest data rate supported by the T.38 channel.
int pace_transmission
 Pace transmission.
bool check_sequence_numbers
 True if IFP packet sequence numbers are relevant. For some transports, like TPKT over TCP they are not relevent.
int category_control [5]
 The number of times each packet type will be sent (low byte). The depth of redundancy (2nd byte). Higher numbers may increase reliability for UDP transmission. Zero is valid for the indicator packet category, to suppress all indicator packets (typicaly for TCP transmission).
int tx_seq_no
 The sequence number for the next packet to be transmitted.
int rx_expected_seq_no
 The sequence number expected in the next received packet.
int current_rx_indicator
 The current receive indicator - i.e. the last indicator received.
int current_rx_data_type
 The current receive data type - i.e. the last data type received.
int current_rx_field_type
 The current receive field type - i.e. the last field_type received.
int current_tx_indicator
 The current transmit indicator - i.e. the last indicator transmitted.
int v34_rate
 The bit rate for V.34 operation.
int missing_packets
logging_state_t logging
 Error and flow logging control.

Detailed Description

Core T.38 state, common to all modes of T.38. Higher layers should support the specifics of a gateway, terminal, T.31 interface, etc and incorporate an instance of this structure to handle the basics of T.38, mostly IFP.

Member Data Documentation

◆ allow_for_tep

int t38_core_state_s::allow_for_tep

Allow time for TEP playout.

Referenced by t38_core_send_indicator(), and t38_set_tep_handling().

◆ category_control

int t38_core_state_s::category_control[5]

The number of times each packet type will be sent (low byte). The depth of redundancy (2nd byte). Higher numbers may increase reliability for UDP transmission. Zero is valid for the indicator packet category, to suppress all indicator packets (typicaly for TCP transmission).

Referenced by t38_core_init(), t38_core_send_data(), t38_core_send_data_multi_field(), t38_core_send_indicator(), and t38_set_redundancy_control().

◆ check_sequence_numbers

bool t38_core_state_s::check_sequence_numbers

True if IFP packet sequence numbers are relevant. For some transports, like TPKT over TCP they are not relevent.

Referenced by t38_core_init(), t38_core_rx_ifp_packet(), and t38_set_sequence_number_handling().

◆ chunking_modes

int t38_core_state_s::chunking_modes

Bit fields controlling the way data is packed into chunks for transmission.

Referenced by t38_terminal_set_config(), and t38_terminal_set_tep_mode().

◆ current_rx_data_type

int t38_core_state_s::current_rx_data_type

The current receive data type - i.e. the last data type received.

Referenced by t38_core_restart(), and t38_core_rx_ifp_stream().

◆ current_rx_field_type

int t38_core_state_s::current_rx_field_type

The current receive field type - i.e. the last field_type received.

Referenced by t38_core_restart(), and t38_core_rx_ifp_stream().

◆ current_rx_indicator

int t38_core_state_s::current_rx_indicator

The current receive indicator - i.e. the last indicator received.

Referenced by t38_core_restart(), and t38_core_rx_ifp_stream().

◆ current_tx_indicator

int t38_core_state_s::current_tx_indicator

The current transmit indicator - i.e. the last indicator transmitted.

Referenced by t38_core_restart(), and t38_core_send_indicator().

◆ data_rate_management_method

int t38_core_state_s::data_rate_management_method

Method 1: Local generation of TCF (required for use with TCP). Method 2: Transfer of TCF is required for use with UDP (UDPTL or RTP). Method 2 is not recommended for use with TCP.

NOTE - Bandwidth reduction shall only be done on suitable Phase C data, i.e., MH, MR and - in the case of transcoding to JBIG - MMR. MMR and JBIG require reliable data transport such as that provided by TCP. When transcoding is selected, it shall be applied to every suitable page in a call.

Referenced by t38_core_init(), and t38_set_data_rate_management_method().

◆ data_transport_protocol

int t38_core_state_s::data_transport_protocol

The emitting gateway may indicate a preference for either UDP/UDPTL, or UDP/RTP, or TCP for transport of T.38 IFP Packets. The receiving device selects the transport protocol.

Referenced by t38_core_init(), t38_core_rx_ifp_stream(), and t38_set_data_transport_protocol().

◆ fill_bit_removal

int t38_core_state_s::fill_bit_removal

Indicates the capability to remove and insert fill bits in Phase C, non-ECM data to reduce bandwidth in the packet network.

Referenced by t38_core_init(), and t38_set_fill_bit_removal().

◆ iaf

int t38_core_state_s::iaf

Internet Aware FAX mode bit mask.

Referenced by t38_terminal_init(), and t38_terminal_set_fill_bit_removal().

◆ jbig_transcoding

int t38_core_state_s::jbig_transcoding

Indicates the ability to convert to/from JBIG to reduce bandwidth.

Referenced by t38_core_init(), and t38_set_jbig_transcoding().

◆ logging

◆ max_buffer_size

int t38_core_state_s::max_buffer_size

For UDP (UDPTL or RTP) modes, this option indicates the maximum number of octets that can be stored on the remote device before an overflow condition occurs. It is the responsibility of the transmitting application to limit the transfer rate to prevent an overflow. The negotiated data rate should be used to determine the rate at which data is being removed from the buffer.

Referenced by t38_core_init(), and t38_set_max_buffer_size().

◆ max_datagram_size

int t38_core_state_s::max_datagram_size

This option indicates the maximum size of a UDPTL packet or the maximum size of the payload within an RTP packet that can be accepted by the remote device.

Referenced by t38_core_init(), and t38_set_max_datagram_size().

◆ microseconds_per_tx_chunk

int t38_core_state_s::microseconds_per_tx_chunk

Required time between T.38 transmissions, in us.

Referenced by t38_core_init(), t38_get_tx_packet_interval(), and t38_set_tx_packet_interval().

◆ missing_packets

int t38_core_state_s::missing_packets

A count of missing receive packets. This count might not be accurate if the received packet numbers jump wildly.

Referenced by t38_core_rx_ifp_packet().

◆ mmr_transcoding

int t38_core_state_s::mmr_transcoding

Indicates the ability to convert to/from MMR from/to the line format to improve the compression of the data, and reduce the bandwidth, in the packet network.

Referenced by t38_core_init(), and t38_set_mmr_transcoding().

◆ pace_transmission

int t38_core_state_s::pace_transmission

◆ rx_data_handler

t38_rx_data_handler_t t38_core_state_s::rx_data_handler

Handler routine to process received data packets.

Referenced by t38_core_init(), and t38_core_rx_ifp_stream().

◆ rx_expected_seq_no

int t38_core_state_s::rx_expected_seq_no

The sequence number expected in the next received packet.

Referenced by t38_core_restart(), and t38_core_rx_ifp_packet().

◆ rx_indicator_handler

t38_rx_indicator_handler_t t38_core_state_s::rx_indicator_handler

Handler routine to process received indicator packets.

Referenced by t38_core_init(), and t38_core_rx_ifp_stream().

◆ rx_missing_handler

t38_rx_missing_handler_t t38_core_state_s::rx_missing_handler

Handler routine to process the missing packet condition.

Referenced by t38_core_init(), and t38_core_rx_ifp_packet().

◆ rx_user_data

void* t38_core_state_s::rx_user_data

An opaque pointer passed to any of the above receive handling routines.

Referenced by t38_core_init(), t38_core_rx_ifp_packet(), and t38_core_rx_ifp_stream().

◆ t38_version

int t38_core_state_s::t38_version

This is the version number of ITU-T Rec. T.38. New versions shall be compatible with previous versions.

Referenced by t38_core_init(), t38_core_rx_ifp_stream(), and t38_set_t38_version().

◆ tx_packet_handler

t38_tx_packet_handler_t t38_core_state_s::tx_packet_handler

Handler routine to transmit IFP packets generated by the T.38 protocol engine.

Referenced by t38_core_init(), t38_core_send_data(), t38_core_send_data_multi_field(), and t38_core_send_indicator().

◆ tx_packet_user_data

void* t38_core_state_s::tx_packet_user_data

An opaque pointer passed to tx_packet_handler.

Referenced by t38_core_init(), t38_core_send_data(), t38_core_send_data_multi_field(), and t38_core_send_indicator().

◆ tx_seq_no

int t38_core_state_s::tx_seq_no

The sequence number for the next packet to be transmitted.

Referenced by t38_core_send_data(), t38_core_send_data_multi_field(), and t38_core_send_indicator().


The documentation for this struct was generated from the following file: