spandsp 0.0.6
fax.h File Reference

Go to the source code of this file.

Typedefs

typedef struct fax_state_s fax_state_t

Functions

 SPAN_DECLARE_NONSTD (int) fax_rx(fax_state_t *s
 Apply T.30 receive processing to a block of audio samples.
void fax_set_transmit_on_idle (fax_state_t *s, int transmit_on_idle)
 Select whether silent audio will be sent when FAX transmit is idle.
void fax_set_tep_mode (fax_state_t *s, int use_tep)
 Select whether TEP will be sent for the image modems.
t30_state_t * fax_get_t30_state (fax_state_t *s)
 Get a pointer to the T.30 engine associated with a FAX context.
logging_state_tfax_get_logging_state (fax_state_t *s)
 Get a pointer to the logging context associated with a FAX context.
int fax_restart (fax_state_t *s, int calling_party)
 Restart a FAX context.
fax_state_t * fax_init (fax_state_t *s, int calling_party)
 Initialise a FAX context.
int fax_release (fax_state_t *s)
 Release a FAX context.
int fax_free (fax_state_t *s)
 Free a FAX context.

Variables

int16_t * amp
int16_t int len
int16_t int max_len

Function Documentation

◆ fax_free()

int fax_free ( fax_state_t * s)

Free a FAX context.

Free a FAX context.

Parameters
sThe FAX context.
Returns
0 for OK, else -1.

References fax_state_s::t30, and t30_release().

◆ fax_get_logging_state()

logging_state_t * fax_get_logging_state ( fax_state_t * s)

Get a pointer to the logging context associated with a FAX context.

Get a pointer to the logging context associated with a FAX context.

Parameters
sThe FAX context.
Returns
A pointer to the logging context, or NULL.

References fax_state_s::logging.

◆ fax_get_t30_state()

t30_state_t * fax_get_t30_state ( fax_state_t * s)

Get a pointer to the T.30 engine associated with a FAX context.

Get a pointer to the T.30 engine associated with a FAX context.

Parameters
sThe FAX context.
Returns
A pointer to the T.30 context, or NULL.

References fax_state_s::t30.

◆ fax_init()

fax_state_t * fax_init ( fax_state_t * s,
int calling_party )

Initialise a FAX context.

Initialise a FAX context.

Parameters
sThe FAX context.
calling_partyTRUE if the context is for a calling party. FALSE if the context is for an answering party.
Returns
A pointer to the FAX context, or NULL if there was a problem.

References fax_restart(), fax_state_s::logging, MODEM_CONNECT_TONES_ANSAM_PR, fax_state_s::modems, t30_state_s::supported_modems, fax_state_s::t30, t30_init(), t30_set_supported_modems(), T30_SUPPORT_V17, T30_SUPPORT_V27TER, T30_SUPPORT_V29, T30_SUPPORT_V34HDX, and v8_init().

◆ fax_release()

int fax_release ( fax_state_t * s)

Release a FAX context.

Release a FAX context.

Parameters
sThe FAX context.
Returns
0 for OK, else -1.

References fax_state_s::t30, and t30_release().

◆ fax_restart()

int fax_restart ( fax_state_t * s,
int calling_party )

Restart a FAX context.

Restart a FAX context.

Parameters
sThe FAX context.
calling_partyTRUE if the context is for a calling party. FALSE if the context is for an answering party.
Returns
0 for OK, else -1.

References fax_modems_state_s::audio_rx_log, fax_modems_state_s::audio_tx_log, MODEM_CONNECT_TONES_ANSAM_PR, fax_state_s::modems, t30_state_s::supported_modems, fax_state_s::t30, t30_restart(), T30_SUPPORT_V17, T30_SUPPORT_V27TER, T30_SUPPORT_V29, and T30_SUPPORT_V34HDX.

Referenced by fax_init().

◆ fax_set_tep_mode()

void fax_set_tep_mode ( fax_state_t * s,
int use_tep )

Select whether TEP will be sent for the image modems.

Select whether talker echo protection tone will be sent for the image modems.

Parameters
sThe FAX context.
use_tepTRUE if TEP should be sent.

References fax_state_s::modems, and fax_modems_state_s::use_tep.

◆ fax_set_transmit_on_idle()

void fax_set_transmit_on_idle ( fax_state_t * s,
int transmit_on_idle )

Select whether silent audio will be sent when FAX transmit is idle.

Select whether silent audio will be sent when FAX transmit is idle.

Parameters
sThe FAX context.
transmit_on_idleTRUE if silent audio should be output when the FAX transmitter is idle. FALSE to transmit zero length audio when the FAX transmitter is idle. The default behaviour is FALSE.

References fax_state_s::modems, and fax_modems_state_s::transmit_on_idle.

◆ SPAN_DECLARE_NONSTD()

SPAN_DECLARE_NONSTD ( int )

Apply T.30 receive processing to a block of audio samples.

Get the next bit of a transmitted serial bit stream.

Apply T.30 transmit processing to generate a block of audio samples.

Apply fake T.30 receive processing.

Apply T.30 receive processing to a block of audio samples.

Parameters
sThe FAX context.
ampThe audio sample buffer.
lenThe number of samples in the buffer.
Returns
The number of samples unprocessed. This should only be non-zero if the software has reached the end of the FAX call.

Apply fake T.30 receive processing when a block of audio samples is missing (e.g due to packet loss).

Parameters
sThe FAX context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed. This should only be non-zero if the software has reached the end of the FAX call.

Apply T.30 transmit processing to generate a block of audio samples.

Parameters
sThe FAX context.
ampThe audio sample buffer.
max_lenThe number of samples to be generated.
Returns
The number of samples actually generated. This will be zero when there is nothing to send.

Apply T.30 receive processing to a block of audio samples.

Process a block of received V.8 audio samples.

Fake processing of a missing block of received V.29 modem audio samples.

Fake processing of a missing block of received V.27ter modem audio samples.

Generate a block of V.22bis modem audio samples.

Fake processing of a missing block of received V.22bis modem audio samples.

Process a block of received V.18 audio samples.

Fake processing of a missing block of received V.17 modem audio samples.

Generate a block of FAX audio samples.

Apply fake received audio processing.

Process a received T.38 IFP packet from a reliable stream (e.g. TCP).

Generate a block of T.31 modem audio samples.

Fake processing of a missing block of received T.31 modem audio samples.

Dummy receive fillin callback.

Dummy receive callback.

Process a block of samples through an instance of the modem connect tones detector.

Get the next sequence of bytes for transmission.

Get the next byte for transmission.

Fake processing of a missing block of received FSK modem audio samples.

Process a block of received FSK modem audio samples.

Apply T.30 transmit processing to generate a block of audio samples.

Apply fake T.30 receive processing.

Get the next bit of a transmitted serial bit stream.

Parameters
user_dataAn opaque point which must point to a transmitter context.
Returns
the next bit, or PUTBIT_END_OF_DATA to indicate the data stream has ended.

Apply fake T.30 receive processing when a block of audio samples is missing (e.g due to packet loss).

Parameters
sThe FAX context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed. This should only be non-zero if the software has reached the end of the FAX call.

Apply T.30 transmit processing to generate a block of audio samples.

Parameters
sThe FAX context.
ampThe audio sample buffer.
max_lenThe number of samples to be generated.
Returns
The number of samples actually generated. This will be zero when there is nothing to send.

Process a block of received FSK modem audio samples.

Parameters
sThe modem context.
ampThe audio sample buffer.
lenThe number of samples in the buffer.
Returns
The number of samples unprocessed.

Fake processing of a missing block of received FSK modem audio samples (e.g due to packet loss).

Parameters
sThe modem context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed.
Parameters
sA pointer to an HDLC transmitter context.
Returns
The next byte for transmission.
Parameters
sA pointer to an HDLC transmitter context.
bufThe buffer for the data.
max_lenThe number of bytes to get.
Returns
The number of bytes actually got.
Parameters
sThe context.
ampAn array of signal samples.
lenThe number of samples in the array.
Returns
The number of unprocessed samples.

A dummy routine to use as a receive callback, when we aren't really trying to process what is received. It just absorbs and ignores the data.

Parameters
user_dataThe context.
ampThe signal.buffer
lenThe length of the signal buffer
Returns
0.

A dummy routine to use as a receive fillin callback, when we aren't really trying to process what is received. It just absorbs and ignores the request.

Parameters
user_dataThe context.
lenThe length of the signal buffer
Returns
0.

Fake processing of a missing block of received T.31 modem audio samples (e.g due to packet loss).

Parameters
sThe T.31 modem context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed.

Generate a block of T.31 modem audio samples.

Parameters
sThe T.31 modem context.
ampThe audio sample buffer.
max_lenThe number of samples to be generated.
Returns
The number of samples actually generated.
Parameters
sThe T.38 context.
bufThe packet contents.
lenThe length of the packet contents.
seq_noThe packet sequence number, used for logging purposes.
Returns
The length of the packet processed, or -1 if there is an error in the packet, or too few bytes of data to complete it.

Apply fake processing when a block of audio samples is missing (e.g due to packet loss).

Parameters
sThe T.38 context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed. This should only be non-zero if the software has reached the end of the FAX call.

Generate a block of FAX audio samples.

Parameters
sThe T.38 context.
ampThe audio sample buffer.
max_lenThe number of samples to be generated.
Returns
The number of samples actually generated.

Fake processing of a missing block of received V.17 modem audio samples. (e.g due to packet loss).

Parameters
sThe modem context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed.

Process a block of received V.18 audio samples.

Parameters
sThe V.18 context.
ampThe audio sample buffer.
lenThe number of samples in the buffer.

Fake processing of a missing block of received V.22bis modem audio samples. (e.g due to packet loss).

Parameters
sThe modem context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed.

Generate a block of V.22bis modem audio samples.

Parameters
sThe modem context.
ampThe audio sample buffer.
lenThe number of samples to be generated.
Returns
The number of samples actually generated.

Fake processing of a missing block of received V.27ter modem audio samples. (e.g due to packet loss).

Parameters
sThe modem context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed.

Fake processing of a missing block of received V.29 modem audio samples. (e.g due to packet loss).

Parameters
sThe modem context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed.

Process a block of received V.8 audio samples.

Parameters
sThe V.8 context.
ampThe audio sample buffer.
lenThe number of samples in the buffer.