modem_connect_tones.h File Reference

Go to the source code of this file.

## Macros

#define | MODEM_CONNECT_TONES_FAX_CED MODEM_CONNECT_TONES_ANS
| FAX CED tone is the same as ANS tone.

## Typedefs

typedef struct modem_connect_tones_tx_state_s | modem_connect_tones_tx_state_t
typedef struct modem_connect_tones_rx_state_s | modem_connect_tones_rx_state_t

## Enumerations

enum | { MODEM_CONNECT_TONES_NONE = 0 , MODEM_CONNECT_TONES_FAX_CNG = 1 , MODEM_CONNECT_TONES_ANS = 2 , MODEM_CONNECT_TONES_ANS_PR = 3 , MODEM_CONNECT_TONES_ANSAM = 4 , MODEM_CONNECT_TONES_ANSAM_PR = 5 , MODEM_CONNECT_TONES_FAX_PREAMBLE = 6 , MODEM_CONNECT_TONES_FAX_CED_OR_PREAMBLE = 7 , MODEM_CONNECT_TONES_BELL_ANS = 8 , MODEM_CONNECT_TONES_CALLING_TONE = 9 }

## Functions

modem_connect_tones_tx_state_t * | modem_connect_tones_tx_init (modem_connect_tones_tx_state_t *s, int tone_type)
| Initialise an instance of the modem connect tones generator.
int | modem_connect_tones_tx_release (modem_connect_tones_tx_state_t *s)
| Release an instance of the modem connect tones generator.
int | modem_connect_tones_tx_free (modem_connect_tones_tx_state_t *s)
| Free an instance of the modem connect tones generator.
| SPAN_DECLARE_NONSTD (int) modem_connect_tones_tx(modem_connect_tones_tx_state_t *s
| Generate a block of modem connect tones samples.
int | modem_connect_tones_rx_get (modem_connect_tones_rx_state_t *s)
| Test if a modem_connect tone has been detected.
modem_connect_tones_rx_state_t * | modem_connect_tones_rx_init (modem_connect_tones_rx_state_t *s, int tone_type, tone_report_func_t tone_callback, void *user_data)
| Initialise an instance of the modem connect tones detector.
int | modem_connect_tones_rx_release (modem_connect_tones_rx_state_t *s)
| Release an instance of the modem connect tones detector.
int | modem_connect_tones_rx_free (modem_connect_tones_rx_state_t *s)
| Free an instance of the modem connect tones detector.
const char * | modem_connect_tone_to_str (int tone)

## Variables

int16_t | amp []
int16_t int | len

## Typedef Documentation

## modem_connect_tones_rx_state_t

typedef struct modem_connect_tones_rx_state_s modem_connect_tones_rx_state_t

Modem connect tones receiver descriptor. This defines the state of a single working instance of the tone detector.

## modem_connect_tones_tx_state_t

typedef struct modem_connect_tones_tx_state_s modem_connect_tones_tx_state_t

Modem connect tones generator descriptor. This defines the state of a single working instance of the tone generator.

## Enumeration Type Documentation

## anonymous enum

anonymous enum

Enumerator
MODEM_CONNECT_TONES_NONE | This is reported when a tone stops.
MODEM_CONNECT_TONES_FAX_CNG | CNG tone is a pure 1100Hz tone, in 0.5s bursts, with 3s silences in between. The bursts repeat for as long as is required.
MODEM_CONNECT_TONES_ANS | ANS tone is a pure continuous 2100Hz+-15Hz tone for 3.3s+-0.7s.
MODEM_CONNECT_TONES_ANS_PR | ANS with phase reversals tone is a 2100Hz+-15Hz tone for 3.3s+-0.7s, with a 180 degree phase jump every 450ms+-25ms.
MODEM_CONNECT_TONES_ANSAM | The ANSam tone is a version of ANS with 20% of 15Hz+-0.1Hz AM modulation, as per V.8.
MODEM_CONNECT_TONES_ANSAM_PR | The ANSam with phase reversals tone is a version of ANS_PR with 20% of 15Hz+-0.1Hz AM modulation, as per V.8.
MODEM_CONNECT_TONES_FAX_PREAMBLE | FAX preamble in a string of V.21 HDLC flag octets.
MODEM_CONNECT_TONES_FAX_CED_OR_PREAMBLE | CED tone is the same as ANS tone. FAX preamble in a string of V.21 HDLC flag octets. This is only valid as a tone type to receive. It is never reported as a detected tone type. The report will either be for FAX preamble or CED/ANS tone.
MODEM_CONNECT_TONES_BELL_ANS | Bell ANS tone is a pure continuous 2225Hz+-15Hz tone for 3.3s+-0.7s.
MODEM_CONNECT_TONES_CALLING_TONE | Calling tone is a pure 1300Hz tone, in 0.6s bursts, with 2s silences in between. The bursts repeat for as long as is required.

## Function Documentation

## modem_connect_tones_rx_free()

int modem_connect_tones_rx_free | ( | modem_connect_tones_rx_state_t * | s | ) |

Free an instance of the modem connect tones detector.

Parameters

  s | The context.

Returns
  0 for OK, else -1.

## modem_connect_tones_rx_get()

int modem_connect_tones_rx_get | ( | modem_connect_tones_rx_state_t * | s | ) |

Test if a modem_connect tone has been detected.

Parameters

  s | The context.

Returns
  TRUE if tone is detected, else FALSE.

References modem_connect_tones_rx_state_s::hit, and MODEM_CONNECT_TONES_NONE.

## modem_connect_tones_rx_init()

modem_connect_tones_rx_state_t * modem_connect_tones_rx_init | ( | modem_connect_tones_rx_state_t * | s,
|  | int | tone_type,
|  | tone_report_func_t | tone_callback,
|  | void * | user_data )

Initialise an instance of the modem connect tones detector.

Parameters

  s | The context.
  tone_type | The type of connect tone being tested for.
  tone_callback | An optional callback routine, used to report tones
  user_data | An opaque pointer passed to the callback routine,

Returns
  A pointer to the context.

References modem_connect_tones_rx_state_s::am_level, modem_connect_tones_rx_state_s::callback_data, modem_connect_tones_rx_state_s::channel_level, modem_connect_tones_rx_state_s::flags_seen, modem_connect_tones_rx_state_s::framing_ok_announced, fsk_rx_init(), fsk_rx_signal_cutoff(), modem_connect_tones_rx_state_s::good_cycles, modem_connect_tones_rx_state_s::hit, MODEM_CONNECT_TONES_ANS, MODEM_CONNECT_TONES_ANS_PR, MODEM_CONNECT_TONES_ANSAM, MODEM_CONNECT_TONES_ANSAM_PR, MODEM_CONNECT_TONES_FAX_CED_OR_PREAMBLE, MODEM_CONNECT_TONES_FAX_PREAMBLE, MODEM_CONNECT_TONES_NONE, modem_connect_tones_rx_state_s::notch_level, modem_connect_tones_rx_state_s::num_bits, modem_connect_tones_rx_state_s::raw_bit_stream, modem_connect_tones_rx_state_s::tone_callback, modem_connect_tones_rx_state_s::tone_cycle_duration, modem_connect_tones_rx_state_s::tone_present, modem_connect_tones_rx_state_s::tone_type, modem_connect_tones_rx_state_s::v21rx, modem_connect_tones_rx_state_s::z15hz_1, and modem_connect_tones_rx_state_s::znotch_1.

## modem_connect_tones_rx_release()

int modem_connect_tones_rx_release | ( | modem_connect_tones_rx_state_t * | s | ) |

Release an instance of the modem connect tones detector.

Parameters

  s | The context.

Returns
  0 for OK, else -1.

## modem_connect_tones_tx_free()

int modem_connect_tones_tx_free | ( | modem_connect_tones_tx_state_t * | s | ) |

Free an instance of the modem connect tones generator.

Parameters

  s | The context.

Returns
  0 for OK, else -1.

## modem_connect_tones_tx_init()

modem_connect_tones_tx_state_t * modem_connect_tones_tx_init | ( | modem_connect_tones_tx_state_t * | s,
|  | int | tone_type )

Initialise an instance of the modem connect tones generator.

Parameters

  s | The context.

References dds_phase_rate(), dds_scaling_dbm0(), modem_connect_tones_tx_state_s::duration_timer, modem_connect_tones_tx_state_s::hop_timer, MODEM_CONNECT_TONES_ANS, MODEM_CONNECT_TONES_ANS_PR, MODEM_CONNECT_TONES_ANSAM, MODEM_CONNECT_TONES_ANSAM_PR, MODEM_CONNECT_TONES_BELL_ANS, MODEM_CONNECT_TONES_CALLING_TONE, and MODEM_CONNECT_TONES_FAX_CNG.

## modem_connect_tones_tx_release()

int modem_connect_tones_tx_release | ( | modem_connect_tones_tx_state_t * | s | ) |

Release an instance of the modem connect tones generator.

Parameters

  s | The context.

Returns
  0 for OK, else -1.

## SPAN_DECLARE_NONSTD()

SPAN_DECLARE_NONSTD | ( | int |  | ) |

Generate a block of modem connect tones samples.

Get the next bit of data from a T.38 rate adapting non-ECM buffer context.

Get a bit of received non-ECM image data.

Get the next bit of a transmitted serial bit stream.

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

Parameters

  s | The context.
  amp | An array of signal samples.
  len | The number of samples to generate.

Returns
  The number of samples generated.

Parameters

  s | The context.
  amp | An array of signal samples.
  len | The number of samples in the array.

Returns
  The number of unprocessed samples.