28#if !defined(_SPANDSP_PRIVATE_T30_H_)
29#define _SPANDSP_PRIVATE_T30_H_
332#if defined(SPANDSP_SUPPORT_SSLFAX)
334 sslfax_state_t sslfax;
struct logging_state_s logging_state_t
Definition logging.h:72
Definition private/t30.h:36
uint8_t min_scan_time_code
The current DCS message minimum scan time code.
Definition private/t30.h:261
char tx_file[256]
Image file name to be sent.
Definition private/t30.h:316
int error_correcting_mode_retries
The number of HDLC frame retries, if error correcting mode is used.
Definition private/t30.h:275
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:80
int mutual_bilevel_resolutions
The common group of supported bi-level image resolutions.
Definition private/t30.h:249
span_sample_timer_t timer_t6
This is only used in full duplex (e.g. ISDN) modes.
Definition private/t30.h:232
span_sample_timer_t timer_t7
This is only used in full duplex (e.g. ISDN) modes.
Definition private/t30.h:234
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:290
t30_exchanged_info_t tx_info
The information fields to be transmitted.
Definition private/t30.h:96
int16_t ecm_len[256]
The lengths of the frames in the ECM partial page buffer.
Definition private/t30.h:285
int line_width_code
The width code for the image on the line.
Definition private/t30.h:259
void * document_put_user_data
An opaque pointer passed to the document delivery handler.
Definition private/t30.h:152
t4_image_width_t image_width
The width of the current image, in pixels.
Definition private/t30.h:269
t30_set_handler_t set_tx_type_handler
The handler for changes to the transmit mode.
Definition private/t30.h:136
bool image_carrier_attempted
True if an image carrier appears to have been received, even if it did not successfully train.
Definition private/t30.h:191
int ecm_frames
The number of frames in the current block number, in ECM mode.
Definition private/t30.h:296
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:195
int max_command_tries
The maximum permitted number of retries of a single command allowed.
Definition private/t30.h:155
uint8_t last_pps_fcf2
the FCF2 field of the last PPS message we received.
Definition private/t30.h:325
int current_fallback
The current fallback step for the fast message transfer modem.
Definition private/t30.h:202
int phase
The current T.30 phase.
Definition private/t30.h:165
void * phase_d_user_data
An opaque pointer supplied in event D callbacks.
Definition private/t30.h:113
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:330
int tx_stop_page
The last page to be sent from the image file. -1 means no restriction.
Definition private/t30.h:320
int octets_per_ecm_frame
The number of octets to be used per ECM frame.
Definition private/t30.h:281
span_sample_timer_t timer_t8
This is only used in full duplex (e.g. ISDN) modes.
Definition private/t30.h:236
int receiver_not_ready_count
The current count of consecutive T30_RNR messages.
Definition private/t30.h:279
uint8_t ecm_frame_map[3+32]
A bit map of the OK ECM frames, constructed as a PPR frame.
Definition private/t30.h:287
bool far_end_detected
True once the far end FAX entity has been detected.
Definition private/t30.h:239
int retries
Current number of retries of the action in progress.
Definition private/t30.h:271
bool header_overlays_image
True for FAX page headers to overlay (i.e. replace) the beginning of the page image....
Definition private/t30.h:84
int rtn_events
The number of RTN events.
Definition private/t30.h:340
uint8_t dcs_frame[T30_MAX_DIS_DTC_DCS_LEN]
The preparation buffer for the DCS message to be transmitted.
Definition private/t30.h:174
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:298
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:111
int x_resolution
The X direction resolution of the current image, in pixels per metre.
Definition private/t30.h:263
int current_status
The current completion status.
Definition private/t30.h:322
tz_t tz
Optional per instance time zone for the FAX page header timestamp.
Definition private/t30.h:88
int supported_modems
A bit mask of the currently supported modem types.
Definition private/t30.h:55
bool ecm_allowed
True is ECM mode handling is enabled.
Definition private/t30.h:71
const char * country
The country of origin of the remote machine, if known, else NULL.
Definition private/t30.h:98
int iaf
Internet aware FAX mode bit mask.
Definition private/t30.h:53
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:306
bool end_of_procedure_detected
True once the end of procedure condition has been detected.
Definition private/t30.h:242
int next_phase
The T.30 phase to change to when the current phase ends.
Definition private/t30.h:167
int max_response_tries
The maximum permitted number of retries of a single response request allowed.
Definition private/t30.h:157
void * real_time_frame_user_data
An opaque pointer supplied in real time frame callbacks.
Definition private/t30.h:123
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:106
int supported_t30_features
A bit mask of the currently supported T.30 special features.
Definition private/t30.h:69
bool use_own_tz
Use private timezone if true.
Definition private/t30.h:86
t30_exchanged_info_t rx_info
The information fields received.
Definition private/t30.h:94
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:292
logging_state_t logging
Error and flow logging control.
Definition private/t30.h:343
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:182
void * document_user_data
An opaque pointer supplied in document callbacks.
Definition private/t30.h:129
bool local_interrupt_pending
True if a local T.30 interrupt is pending.
Definition private/t30.h:245
int supported_colour_resolutions
A bit mask of the currently supported gray-scale and colour image resolutions.
Definition private/t30.h:65
int ppr_count
The current count of consecutive T30_PPR messages.
Definition private/t30.h:277
int current_page_resolution
The resolution code for the current page.
Definition private/t30.h:267
bool rx_ecm_block_ok
True if all frames of the current received ECM block are now OK.
Definition private/t30.h:327
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:116
void * phase_b_user_data
An opaque pointer supplied in event B callbacks.
Definition private/t30.h:108
char rx_file[256]
Image file name for image reception.
Definition private/t30.h:312
int current_rx_type
Current reception mode.
Definition private/t30.h:213
void * document_get_user_data
An opaque pointer passed to the document send handler.
Definition private/t30.h:148
t30_document_put_handler_t document_put_handler
The document delivery handler.
Definition private/t30.h:150
void * set_tx_type_user_data
An opaque pointer passed to the handler for changes to the transmit mode.
Definition private/t30.h:138
int rtp_events
The number of RTP events.
Definition private/t30.h:338
bool short_train
True if the short training sequence should be used.
Definition private/t30.h:187
span_sample_timer_t timer_t3
Procedural interrupt timeout (in audio samples).
Definition private/t30.h:228
bool calling_party
True if behaving as the calling party.
Definition private/t30.h:47
int timer_t2_t4_is
A value specifying which of the possible timers is currently running in timer_t2_t4.
Definition private/t30.h:226
t30_send_hdlc_handler_t send_hdlc_handler
The transmitted HDLC frame handler.
Definition private/t30.h:141
int current_tx_type
Current transmission mode.
Definition private/t30.h:215
uint8_t ecm_data[256][260]
The ECM partial page buffer.
Definition private/t30.h:283
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:77
int rx_stop_page
The last page we are prepared accept for a received image file. -1 means no restriction.
Definition private/t30.h:314
bool rx_frame_received
True if a valid HDLC frame has been received in the current reception period.
Definition private/t30.h:210
int next_tx_step
The transmission step queued to follow the one in progress.
Definition private/t30.h:308
bool rx_trained
True if a modem has trained correctly.
Definition private/t30.h:208
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:162
int line_image_type
The image type being used on the line.
Definition private/t30.h:257
int line_compression
The image coding being used on the line.
Definition private/t30.h:255
int supported_compressions
A bit mask of the currently supported image compression modes for use between FAX entities.
Definition private/t30.h:58
int ecm_block
The current block number, in ECM mode.
Definition private/t30.h:294
int operation_in_progress
The type of FAX operation currently in progress.
Definition private/t30.h:44
bool error_correcting_mode
True if error correcting mode is used.
Definition private/t30.h:273
t30_document_get_handler_t document_get_handler
The document send handler.
Definition private/t30.h:146
span_sample_timer_t 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:221
int local_dis_dtc_len
The length of the DIS or DTC message to be transmitted.
Definition private/t30.h:180
bool keep_bad_pages
True if bad quality pages should be kept.
Definition private/t30.h:50
span_sample_timer_t 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:224
bool remote_interrupts_allowed
True if remote T.30 procedural interrupts are allowed.
Definition private/t30.h:91
int supported_image_sizes
A bit mask of the currently supported image sizes.
Definition private/t30.h:67
bool retransmit_capable
True if we are capable of retransmitting pages.
Definition private/t30.h:73
int step
The step in sending a sequence of HDLC frames.
Definition private/t30.h:171
void * send_hdlc_user_data
An opaque pointer passed to the transmitted HDLC frame handler.
Definition private/t30.h:143
int supported_output_compressions
A bit mask of the currently supported image compression modes for the output of received page images.
Definition private/t30.h:61
bool 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:303
uint8_t next_rx_step
The FCF for the next receive step.
Definition private/t30.h:310
int supported_bilevel_resolutions
A bit mask of the currently supported bi-level image resolutions.
Definition private/t30.h:63
void * set_rx_type_user_data
An opaque pointer passed to the handler for changes to the receive mode.
Definition private/t30.h:134
union t30_state_s::@153027340350115127136063136153356161162244162231 t4
T.4 context for reading or writing image data.
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:121
int ecm_current_tx_frame
The current ECM frame, during ECM transmission.
Definition private/t30.h:300
t30_set_handler_t set_rx_type_handler
The handler for changes to the receive mode.
Definition private/t30.h:132
const char * model
The model of the remote machine, if known, else NULL.
Definition private/t30.h:102
int y_resolution
The Y direction resolution of the current image, in pixels per metre.
Definition private/t30.h:265
int tcf_most_zeros
The maximum consecutive received zero bits seen to date, during the trainability test.
Definition private/t30.h:199
bool rx_signal_present
True if a carrier is present. Otherwise false.
Definition private/t30.h:206
int mutual_image_sizes
The common group of supported image sizes.
Definition private/t30.h:253
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:178
int state
The current state of the T.30 state machine.
Definition private/t30.h:169
void * phase_e_user_data
An opaque pointer supplied in event E callbacks.
Definition private/t30.h:118
int dcs_len
The length of the DCS message to be transmitted.
Definition private/t30.h:176
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:127
int mutual_compressions
The common ground in compression schemes between the local and far ends.
Definition private/t30.h:247
int mutual_colour_resolutions
The common group of supported colour image resolutions.
Definition private/t30.h:251
bool dis_received
True if a valid DIS has been received from the far end.
Definition private/t30.h:184
const char * vendor
The vendor of the remote machine, if known, else NULL.
Definition private/t30.h:100
int current_permitted_modems
The subset of supported modems allowed at the current time, allowing for negotiation.
Definition private/t30.h:204
int tcf_current_zeros
The current count of consecutive received zero bits, during the trainability test.
Definition private/t30.h:197
int tx_start_page
The first page to be sent from the image file. -1 means no restriction.
Definition private/t30.h:318
span_sample_timer_t timer_t5
This is only used in error correcting mode.
Definition private/t30.h:230
void(* t30_phase_e_handler_t)(void *user_data, int completion_code)
T.30 phase E callback handler.
Definition t30.h:177
#define T30_MAX_PAGE_HEADER_INFO
Definition t30.h:146
int(* t30_phase_d_handler_t)(void *user_data, int result)
T.30 phase D callback handler.
Definition t30.h:169
#define T30_MAX_DIS_DTC_DCS_LEN
Definition t30.h:142
void(* t30_real_time_frame_handler_t)(void *user_data, bool direction, const uint8_t msg[], int len)
T.30 real time frame handler.
Definition t30.h:187
void(* t30_send_hdlc_handler_t)(void *user_data, const uint8_t msg[], int len)
T.30 send HDLC handler.
Definition t30.h:218
int(* t30_phase_b_handler_t)(void *user_data, int result)
T.30 phase B callback handler.
Definition t30.h:160
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:209
int(* t30_document_get_handler_t)(void *user_data, uint8_t msg[], int len)
T.30 send document handler.
Definition t30.h:228
int(* t30_document_handler_t)(void *user_data, int status)
T.30 document handler.
Definition t30.h:198
int(* t30_document_put_handler_t)(void *user_data, const uint8_t msg[], int len)
T.30 deliver handler.
Definition t30.h:238
t4_image_width_t
Definition t4_rx.h:227
struct t4_rx_state_s t4_rx_state_t
Definition t4_rx.h:358
struct t4_tx_state_s t4_tx_state_t
Definition t4_tx.h:40