28#if !defined(_SPANDSP_PRIVATE_T30_H_)
29#define _SPANDSP_PRIVATE_T30_H_
Definition: private/logging.h:34
Definition: private/t30.h:36
uint8_t min_scan_time_code
The current DCS message minimum scan time code.
Definition: private/t30.h:230
char tx_file[256]
Image file name to be sent.
Definition: private/t30.h:284
int image_carrier_attempted
True if an image carrier appears to have been received, even if it did not successfully train.
Definition: private/t30.h:170
int error_correcting_mode_retries
The number of HDLC frame retries, if error correcting mode is used.
Definition: private/t30.h:242
t30_phase_e_handler_t * phase_e_handler
A pointer to a callback routine to be called when phase E events occur.
Definition: private/t30.h:107
int timer_t8
This is only used in full duplex (e.g. ISDN) modes.
Definition: private/t30.h:215
char header_info[T30_MAX_PAGE_HEADER_INFO+1]
The text which will be used in FAX page header. No text results in no header line.
Definition: private/t30.h:71
t30_real_time_frame_handler_t * real_time_frame_handler
A pointer to a callback routine to be called when frames are exchanged.
Definition: private/t30.h:112
int rx_page_number
The current page number for receiving, in ECM or non-ECM mode. This is reset at the start of a call.
Definition: private/t30.h:257
t30_exchanged_info_t tx_info
The information fields to be transmitted.
Definition: private/t30.h:87
int16_t ecm_len[256]
The lengths of the frames in the ECM partial page buffer.
Definition: private/t30.h:252
t4_image_width_t image_width
The width of the current image, in pixels.
Definition: private/t30.h:236
int retransmit_capable
True if we are capable of retransmitting pages.
Definition: private/t30.h:64
int output_encoding
The image coding being used for output files.
Definition: private/t30.h:228
int ecm_frames
The number of frames in the current block number, in ECM mode.
Definition: private/t30.h:263
int tcf_test_bits
A count of the number of bits in the trainability test. This counts down to zero when sending TCF,...
Definition: private/t30.h:174
uint8_t last_pps_fcf2
the FCF2 field of the last PPS message we received.
Definition: private/t30.h:293
int ecm_allowed
True is ECM mode handling is enabled.
Definition: private/t30.h:62
int current_fallback
The current fallback step for the fast message transfer modem.
Definition: private/t30.h:181
int phase
The current T.30 phase.
Definition: private/t30.h:142
int timer_t6
This is only used in full duplex (e.g. ISDN) modes.
Definition: private/t30.h:211
void * phase_d_user_data
An opaque pointer supplied in event D callbacks.
Definition: private/t30.h:104
int ecm_progress
A count of successfully received ECM frames, to assess progress as a basis for deciding whether to co...
Definition: private/t30.h:298
int tx_stop_page
The last page to be sent from the image file. -1 means no restriction.
Definition: private/t30.h:288
int octets_per_ecm_frame
The number of octets to be used per ECM frame.
Definition: private/t30.h:248
t30_phase_b_handler_t * phase_b_handler
A pointer to a callback routine to be called when phase B events occur.
Definition: private/t30.h:97
int receiver_not_ready_count
The current count of consecutive T30_RNR messages.
Definition: private/t30.h:246
uint8_t ecm_frame_map[3+32]
A bit map of the OK ECM frames, constructed as a PPR frame.
Definition: private/t30.h:254
t30_phase_d_handler_t * phase_d_handler
A pointer to a callback routine to be called when phase D events occur.
Definition: private/t30.h:102
int timer_t2_t4
T2, T2A and T2B are the HDLC command timeouts. T4, T4A and T4B are the HDLC response timeouts (in aud...
Definition: private/t30.h:203
int retries
Current number of retries of the action in progress.
Definition: private/t30.h:238
t30_send_hdlc_handler_t * send_hdlc_handler
The transmitted HDLC frame handler.
Definition: private/t30.h:132
int rtn_events
The number of RTN events.
Definition: private/t30.h:303
uint8_t dcs_frame[T30_MAX_DIS_DTC_DCS_LEN]
The preparation buffer for the DCS message to be transmitted.
Definition: private/t30.h:151
int ecm_frames_this_tx_burst
The number of frames sent in the current burst of image transmission, in ECM mode.
Definition: private/t30.h:265
int end_of_procedure_detected
True once the end of procedure condition has been detected.
Definition: private/t30.h:221
int x_resolution
The X direction resolution of the current image, in pixels per metre.
Definition: private/t30.h:232
int current_status
The current completion status.
Definition: private/t30.h:290
tz_t tz
Optional per instance time zone for the FAX page header timestamp.
Definition: private/t30.h:79
int short_train
True if the short training sequence should be used.
Definition: private/t30.h:166
int supported_modems
A bit mask of the currently supported modem types.
Definition: private/t30.h:52
const char * country
The country of origin of the remote machine, if known, else NULL.
Definition: private/t30.h:89
int iaf
Internet aware FAX mode bit mask.
Definition: private/t30.h:50
int last_rx_page_result
The last result for a received non-ECM page - T30_MPS, T30_RTP, or T30_RTN.
Definition: private/t30.h:273
int use_own_tz
Use private timezone if true.
Definition: private/t30.h:77
int rx_signal_present
True if a carrier is present. Otherwise false.
Definition: private/t30.h:185
int line_encoding
The image coding being used on the line.
Definition: private/t30.h:226
int timer_t7
This is only used in full duplex (e.g. ISDN) modes.
Definition: private/t30.h:213
int next_phase
The T.30 phase to change to when the current phase ends.
Definition: private/t30.h:144
int ecm_at_page_end
True if we are at the end of an ECM page to se sent - i.e. there are no more partial pages still to c...
Definition: private/t30.h:270
int rx_trained
True if a modem has trained correctly.
Definition: private/t30.h:187
int timer_t0_t1
T0 is the answer timeout when calling another FAX machine. Placing calls is handled outside the FAX p...
Definition: private/t30.h:200
int timer_t5
This is only used in error correcting mode.
Definition: private/t30.h:209
void * real_time_frame_user_data
An opaque pointer supplied in real time frame callbacks.
Definition: private/t30.h:114
int supported_t30_features
A bit mask of the currently supported T.30 special features.
Definition: private/t30.h:60
int rx_frame_received
True if a valid HDLC frame has been received in the current reception period.
Definition: private/t30.h:189
int timer_t3
Procedural interrupt timeout (in audio samples).
Definition: private/t30.h:207
union t30_state_s::@57 t4
T.4 context for reading or writing image data.
int supported_resolutions
A bit mask of the currently supported image resolutions.
Definition: private/t30.h:56
t30_exchanged_info_t rx_info
The information fields received.
Definition: private/t30.h:85
int tx_page_number
The current page number for sending, in ECM or non-ECM mode. This is reset at the start of a call.
Definition: private/t30.h:259
logging_state_t logging
Error and flow logging control.
Definition: private/t30.h:306
uint8_t far_dis_dtc_frame[T30_MAX_DIS_DTC_DCS_LEN]
The last DIS or DTC message received form the far end.
Definition: private/t30.h:159
int header_overlays_image
True for FAX page headers to overlay (i.e. replace) the beginning of the page image....
Definition: private/t30.h:75
void * document_user_data
An opaque pointer supplied in document callbacks.
Definition: private/t30.h:120
int ppr_count
The current count of consecutive T30_PPR messages.
Definition: private/t30.h:244
int local_interrupt_pending
True if a local T.30 interrupt is pending.
Definition: private/t30.h:224
void * phase_b_user_data
An opaque pointer supplied in event B callbacks.
Definition: private/t30.h:99
char rx_file[256]
Image file name for image reception.
Definition: private/t30.h:280
int current_rx_type
Current reception mode.
Definition: private/t30.h:192
void * set_tx_type_user_data
An opaque pointer passed to the handler for changes to the transmit mode.
Definition: private/t30.h:129
int rtp_events
The number of RTP events.
Definition: private/t30.h:301
int far_end_detected
True once the far end FAX entity has been detected.
Definition: private/t30.h:218
t30_document_handler_t * document_handler
A pointer to a callback routine to be called when document events (e.g. end of transmitted document) ...
Definition: private/t30.h:118
int timer_t2_t4_is
A value specifying which of the possible timers is currently running in timer_t2_t4.
Definition: private/t30.h:205
int current_tx_type
Current transmission mode.
Definition: private/t30.h:194
uint8_t ecm_data[256][260]
The ECM partial page buffer.
Definition: private/t30.h:250
char rx_dcs_string[T30_MAX_DIS_DTC_DCS_LEN *3+1]
The received DCS, formatted as an ASCII string, for inclusion in the TIFF file.
Definition: private/t30.h:68
int rx_stop_page
The last page we are prepared accept for a received image file. -1 means no restriction.
Definition: private/t30.h:282
int next_tx_step
The transmission step queued to follow the one in progress.
Definition: private/t30.h:276
uint8_t local_min_scan_time_code
The DIS code for the minimum scan row time we require. This is usually 0ms, but if we are trying to s...
Definition: private/t30.h:139
t30_set_handler_t * set_rx_type_handler
The handler for changes to the receive mode.
Definition: private/t30.h:123
int error_correcting_mode
True if error correcting mode is used.
Definition: private/t30.h:240
int supported_compressions
A bit mask of the currently supported image compression modes.
Definition: private/t30.h:54
int dis_received
True if a valid DIS has been received from the far end.
Definition: private/t30.h:163
int ecm_block
The current block number, in ECM mode.
Definition: private/t30.h:261
int operation_in_progress
The type of FAX operation currently in progress.
Definition: private/t30.h:44
int rx_ecm_block_ok
True if all frames of the current received ECM block are now OK.
Definition: private/t30.h:295
int local_dis_dtc_len
The length of the DIS or DTC message to be transmitted.
Definition: private/t30.h:157
int far_dis_dtc_len
The length of the last DIS or DTC message received form the far end.
Definition: private/t30.h:161
int supported_image_sizes
A bit mask of the currently supported image sizes.
Definition: private/t30.h:58
int calling_party
True if behaving as the calling party.
Definition: private/t30.h:47
int step
The step in sending a sequence of HDLC frames.
Definition: private/t30.h:148
void * send_hdlc_user_data
An opaque pointer passed to the transmitted HDLC frame handler.
Definition: private/t30.h:134
uint8_t next_rx_step
The FCF for the next receive step.
Definition: private/t30.h:278
int remote_interrupts_allowed
True if remote T.30 procedural interrupts are allowed.
Definition: private/t30.h:82
void * set_rx_type_user_data
An opaque pointer passed to the handler for changes to the receive mode.
Definition: private/t30.h:125
int ecm_current_tx_frame
The current ECM frame, during ECM transmission.
Definition: private/t30.h:267
const char * model
The model of the remote machine, if known, else NULL.
Definition: private/t30.h:93
int y_resolution
The Y direction resolution of the current image, in pixels per metre.
Definition: private/t30.h:234
int tcf_most_zeros
The maximum consecutive received zero bits seen to date, during the trainability test.
Definition: private/t30.h:178
t30_set_handler_t * set_tx_type_handler
The handler for changes to the transmit mode.
Definition: private/t30.h:127
uint8_t local_dis_dtc_frame[T30_MAX_DIS_DTC_DCS_LEN]
The preparation buffer for DIS or DTC message to be transmitted.
Definition: private/t30.h:155
int state
The current state of the T.30 state machine.
Definition: private/t30.h:146
void * phase_e_user_data
An opaque pointer supplied in event E callbacks.
Definition: private/t30.h:109
int dcs_len
The length of the DCS message to be transmitted.
Definition: private/t30.h:153
const char * vendor
The vendor of the remote machine, if known, else NULL.
Definition: private/t30.h:91
int current_permitted_modems
The subset of supported modems allowed at the current time, allowing for negotiation.
Definition: private/t30.h:183
int tcf_current_zeros
The current count of consecutive received zero bits, during the trainability test.
Definition: private/t30.h:176
int tx_start_page
The first page to be sent from the image file. -1 means no restriction.
Definition: private/t30.h:286
Definition: private/t4_tx.h:36
Definition: private/timezone.h:82
void() t30_phase_e_handler_t(t30_state_t *s, void *user_data, int completion_code)
T.30 phase E callback handler.
Definition: t30.h:180
#define T30_MAX_PAGE_HEADER_INFO
Definition: t30.h:146
void() t30_real_time_frame_handler_t(t30_state_t *s, void *user_data, int direction, const uint8_t msg[], int len)
T.30 real time frame handler.
Definition: t30.h:191
#define T30_MAX_DIS_DTC_DCS_LEN
Definition: t30.h:142
int() t30_phase_d_handler_t(t30_state_t *s, void *user_data, int result)
T.30 phase D callback handler.
Definition: t30.h:171
int() t30_phase_b_handler_t(t30_state_t *s, void *user_data, int result)
T.30 phase B callback handler.
Definition: t30.h:161
void() t30_send_hdlc_handler_t(void *user_data, const uint8_t msg[], int len)
T.30 send HDLC handler.
Definition: t30.h:224
int() t30_document_handler_t(t30_state_t *s, void *user_data, int status)
T.30 document handler.
Definition: t30.h:204
void() t30_set_handler_t(void *user_data, int type, int bit_rate, int short_train, int use_hdlc)
T.30 set a receive or transmit type handler.
Definition: t30.h:215
t4_image_width_t
Definition: t4_rx.h:125