28 #if !defined(_SPANDSP_PRIVATE_T30_H_) 29 #define _SPANDSP_PRIVATE_T30_H_ bool end_of_procedure_detected
True once the end of procedure condition has been detected.
Definition: private/t30.h:237
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:186
int mutual_compressions
The common ground in compression schemes between the local and far ends.
Definition: private/t30.h:242
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:219
uint8_t next_rx_step
The FCF for the next receive step.
Definition: private/t30.h:305
int mutual_colour_resolutions
The common group of supported colour image resolutions.
Definition: private/t30.h:246
t30_send_hdlc_handler_t send_hdlc_handler
The transmitted HDLC frame handler.
Definition: private/t30.h:141
uint8_t dcs_frame[T30_MAX_DIS_DTC_DCS_LEN]
The preparation buffer for the DCS message to be transmitted.
Definition: private/t30.h:169
void(* t30_phase_e_handler_t)(void *user_data, int completion_code)
T.30 phase E callback handler.
Definition: t30.h:177
int supported_compressions
A bit mask of the currently supported image compression modes for use between FAX entities...
Definition: private/t30.h:58
bool use_own_tz
Use private timezone if true.
Definition: private/t30.h:86
const char * model
The model of the remote machine, if known, else NULL.
Definition: private/t30.h:102
char tx_file[256]
Image file name to be sent.
Definition: private/t30.h:311
void * send_hdlc_user_data
An opaque pointer passed to the transmitted HDLC frame handler.
Definition: private/t30.h:143
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:216
int(* t30_phase_d_handler_t)(void *user_data, int result)
T.30 phase D callback handler.
Definition: t30.h:169
int current_fallback
The current fallback step for the fast message transfer modem.
Definition: private/t30.h:197
bool rx_frame_received
True if a valid HDLC frame has been received in the current reception period.
Definition: private/t30.h:205
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 rx_stop_page
The last page we are prepared accept for a received image file. -1 means no restriction.
Definition: private/t30.h:309
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:287
Definition: private/t30.h:35
uint8_t min_scan_time_code
The current DCS message minimum scan time code.
Definition: private/t30.h:256
uint8_t ecm_data[256][260]
The ECM partial page buffer.
Definition: private/t30.h:278
int(* t30_document_handler_t)(void *user_data, int status)
T.30 document handler.
Definition: t30.h:198
void * real_time_frame_user_data
An opaque pointer supplied in real time frame callbacks.
Definition: private/t30.h:123
int ecm_frames
The number of frames in the current block number, in ECM mode.
Definition: private/t30.h:291
int next_tx_step
The transmission step queued to follow the one in progress.
Definition: private/t30.h:303
bool ecm_allowed
True is ECM mode handling is enabled.
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:121
int16_t ecm_len[256]
The lengths of the frames in the ECM partial page buffer.
Definition: private/t30.h:280
t4_image_width_t image_width
The width of the current image, in pixels.
Definition: private/t30.h:264
int tx_stop_page
The last page to be sent from the image file. -1 means no restriction.
Definition: private/t30.h:315
bool error_correcting_mode
True if error correcting mode is used.
Definition: private/t30.h:268
int line_compression
The image coding being used on the line.
Definition: private/t30.h:250
int rtp_events
The number of RTP events.
Definition: private/t30.h:328
int(* t30_document_put_handler_t)(void *user_data, const uint8_t msg[], int len)
T.30 deliver handler.
Definition: t30.h:238
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:177
int timer_t7
This is only used in full duplex (e.g. ISDN) modes.
Definition: private/t30.h:229
bool far_end_detected
True once the far end FAX entity has been detected.
Definition: private/t30.h:234
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:190
t30_set_handler_t set_rx_type_handler
The handler for changes to the receive mode.
Definition: private/t30.h:132
int ecm_block
The current block number, in ECM mode.
Definition: private/t30.h:289
int timer_t6
This is only used in full duplex (e.g. ISDN) modes.
Definition: private/t30.h:227
int current_page_resolution
The resolution code for the current page.
Definition: private/t30.h:262
int local_dis_dtc_len
The length of the DIS or DTC message to be transmitted.
Definition: private/t30.h:175
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
bool short_train
True if the short training sequence should be used.
Definition: private/t30.h:182
t30_document_get_handler_t document_get_handler
The document send handler.
Definition: private/t30.h:146
bool rx_signal_present
True if a carrier is present. Otherwise false.
Definition: private/t30.h:201
int y_resolution
The Y direction resolution of the current image, in pixels per metre.
Definition: private/t30.h:260
int line_width_code
The width code for the image on the line.
Definition: private/t30.h:254
#define T30_MAX_DIS_DTC_DCS_LEN
Definition: t30.h:142
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:301
int mutual_bilevel_resolutions
The common group of supported bi-level image resolutions.
Definition: private/t30.h:244
int mutual_image_sizes
The common group of supported image sizes.
Definition: private/t30.h:248
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:173
bool header_overlays_image
True for FAX page headers to overlay (i.e. replace) the beginning of the page image. False for FAX page headers to add to the overall length of the page.
Definition: private/t30.h:84
int rtn_events
The number of RTN events.
Definition: private/t30.h:330
t30_exchanged_info_t rx_info
The information fields received.
Definition: private/t30.h:94
bool rx_trained
True if a modem has trained correctly.
Definition: private/t30.h:203
Definition: private/t4_tx.h:115
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
int current_status
The current completion status.
Definition: private/t30.h:317
logging_state_t logging
Error and flow logging control.
Definition: private/t30.h:333
int current_permitted_modems
The subset of supported modems allowed at the current time, allowing for negotiation.
Definition: private/t30.h:199
int current_rx_type
Current reception mode.
Definition: private/t30.h:208
bool retransmit_capable
True if we are capable of retransmitting pages.
Definition: private/t30.h:73
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
char rx_file[256]
Image file name for image reception.
Definition: private/t30.h:307
Definition: private/t4_rx.h:105
int octets_per_ecm_frame
The number of octets to be used per ECM frame.
Definition: private/t30.h:276
void * set_rx_type_user_data
An opaque pointer passed to the handler for changes to the receive mode.
Definition: private/t30.h:134
int supported_colour_resolutions
A bit mask of the currently supported gray-scale and colour image resolutions.
Definition: private/t30.h:65
int error_correcting_mode_retries
The number of HDLC frame retries, if error correcting mode is used.
Definition: private/t30.h:270
union t30_state_s::@60 t4
T.4 context for reading or writing image data.
int(* t30_phase_b_handler_t)(void *user_data, int result)
T.30 phase B callback handler.
Definition: t30.h:160
int operation_in_progress
The type of FAX operation currently in progress.
Definition: private/t30.h:44
int supported_modems
A bit mask of the currently supported modem types.
Definition: private/t30.h:55
int current_tx_type
Current transmission mode.
Definition: private/t30.h:210
int supported_bilevel_resolutions
A bit mask of the currently supported bi-level image resolutions.
Definition: private/t30.h:63
int step
The step in sending a sequence of HDLC frames.
Definition: private/t30.h:166
int ppr_count
The current count of consecutive T30_PPR messages.
Definition: private/t30.h:272
int phase
The current T.30 phase.
Definition: private/t30.h:160
bool keep_bad_pages
True if bad quality pages should be kept.
Definition: private/t30.h:50
Definition: private/timezone.h:81
void * phase_e_user_data
An opaque pointer supplied in event E callbacks.
Definition: private/t30.h:118
#define T30_MAX_PAGE_HEADER_INFO
Definition: t30.h:146
void * phase_b_user_data
An opaque pointer supplied in event B callbacks.
Definition: private/t30.h:108
bool rx_ecm_block_ok
True if all frames of the current received ECM block are now OK.
Definition: private/t30.h:322
t4_image_width_t
Definition: t4_rx.h:226
void * document_put_user_data
An opaque pointer passed to the document delivery handler.
Definition: private/t30.h:152
int retries
Current number of retries of the action in progress.
Definition: private/t30.h:266
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
void * phase_d_user_data
An opaque pointer supplied in event D callbacks.
Definition: private/t30.h:113
bool local_interrupt_pending
True if a local T.30 interrupt is pending.
Definition: private/t30.h:240
int x_resolution
The X direction resolution of the current image, in pixels per metre.
Definition: private/t30.h:258
int next_phase
The T.30 phase to change to when the current phase ends.
Definition: private/t30.h:162
int line_image_type
The image type being used on the line.
Definition: private/t30.h:252
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(* t30_document_get_handler_t)(void *user_data, uint8_t msg[], int len)
T.30 send document handler.
Definition: t30.h:228
Definition: private/logging.h:33
const char * country
The country of origin of the remote machine, if known, else NULL.
Definition: private/t30.h:98
int dcs_len
The length of the DCS message to be transmitted.
Definition: private/t30.h:171
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:285
int timer_t5
This is only used in error correcting mode.
Definition: private/t30.h:225
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:157
uint8_t ecm_frame_map[3+32]
A bit map of the OK ECM frames, constructed as a PPR frame.
Definition: private/t30.h:282
bool dis_received
True if a valid DIS has been received from the far end.
Definition: private/t30.h:179
int timer_t3
Procedural interrupt timeout (in audio samples).
Definition: private/t30.h:223
uint8_t last_pps_fcf2
the FCF2 field of the last PPS message we received.
Definition: private/t30.h:320
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
int timer_t2_t4_is
A value specifying which of the possible timers is currently running in timer_t2_t4.
Definition: private/t30.h:221
tz_t tz
Optional per instance time zone for the FAX page header timestamp.
Definition: private/t30.h:88
void(* t30_send_hdlc_handler_t)(void *user_data, const uint8_t msg[], int len)
T.30 send HDLC handler.
Definition: t30.h:218
t30_set_handler_t set_tx_type_handler
The handler for changes to the transmit mode.
Definition: private/t30.h:136
int supported_t30_features
A bit mask of the currently supported T.30 special features.
Definition: private/t30.h:69
void * document_get_user_data
An opaque pointer passed to the document send handler.
Definition: private/t30.h:148
int ecm_current_tx_frame
The current ECM frame, during ECM transmission.
Definition: private/t30.h:295
t30_document_put_handler_t document_put_handler
The document delivery handler.
Definition: private/t30.h:150
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 ecm_frames_this_tx_burst
The number of frames sent in the current burst of image transmission, in ECM mode.
Definition: private/t30.h:293
int iaf
Internet aware FAX mode bit mask.
Definition: private/t30.h:53
const char * vendor
The vendor of the remote machine, if known, else NULL.
Definition: private/t30.h:100
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 tcf_most_zeros
The maximum consecutive received zero bits seen to date, during the trainability test.
Definition: private/t30.h:194
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:325
int supported_image_sizes
A bit mask of the currently supported image sizes.
Definition: private/t30.h:67
bool calling_party
True if behaving as the calling party.
Definition: private/t30.h:47
void * document_user_data
An opaque pointer supplied in document callbacks.
Definition: private/t30.h:129
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
bool remote_interrupts_allowed
True if remote T.30 procedural interrupts are allowed.
Definition: private/t30.h:91
int receiver_not_ready_count
The current count of consecutive T30_RNR messages.
Definition: private/t30.h:274
t30_exchanged_info_t tx_info
The information fields to be transmitted.
Definition: private/t30.h:96
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:298
int tx_start_page
The first page to be sent from the image file. -1 means no restriction.
Definition: private/t30.h:313
int timer_t8
This is only used in full duplex (e.g. ISDN) modes.
Definition: private/t30.h:231
int state
The current state of the T.30 state machine.
Definition: private/t30.h:164
int tcf_current_zeros
The current count of consecutive received zero bits, during the trainability test.
Definition: private/t30.h:192