spandsp 3.0.0
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_tmodem_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.
 
int modem_connect_tones_tx (modem_connect_tones_tx_state_t *s, int16_t amp[], int len)
 Generate a block of modem connect tones samples.
 
int modem_connect_tones_rx (modem_connect_tones_rx_state_t *s, const int16_t amp[], int len)
 Process a block of samples through an instance of the modem connect tones detector.
 
int modem_connect_tones_rx_fillin (modem_connect_tones_rx_state_t *s, int len)
 Fake processing of a missing block of received modem connect tone 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_tmodem_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)
 

Typedef Documentation

◆ 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

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()

◆ modem_connect_tones_rx_fillin()

int modem_connect_tones_rx_fillin ( modem_connect_tones_rx_state_t * s,
int len )

Fake processing of a missing block of received modem connect tone samples.

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

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

◆ 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
sThe 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
sThe context.
Returns
The code for the detected tone.

References modem_connect_tones_rx_state_s::hit, and MODEM_CONNECT_TONES_NONE.

Referenced by v8_rx().

◆ modem_connect_tones_rx_init()

◆ 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
sThe context.
Returns
0 for OK, else -1.

◆ modem_connect_tones_tx()

int modem_connect_tones_tx ( modem_connect_tones_tx_state_t * s,
int16_t amp[],
int len )

Generate a block of modem connect tones samples.

Parameters
sThe context.
ampAn array of signal samples.
lenThe number of samples to generate.
Returns
The number of samples generated.

References dds_mod(), 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.

Referenced by v8_tx().

◆ 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
sThe context.
Returns
0 for OK, else -1.

◆ modem_connect_tones_tx_init()

◆ 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
sThe context.
Returns
0 for OK, else -1.