UniMRCP  1.7.0
Typedefs | Enumerations | Functions
mpf_dtmf_generator.h File Reference

DTMF generator. More...

#include "apr_pools.h"
#include "apt.h"
#include "mpf_frame.h"
#include "mpf_stream.h"
Include dependency graph for mpf_dtmf_generator.h:

Go to the source code of this file.

Typedefs

typedef APT_BEGIN_EXTERN_C enum mpf_dtmf_generator_band_e mpf_dtmf_generator_band_e
 
typedef struct mpf_dtmf_generator_t mpf_dtmf_generator_t
 

Enumerations

enum  mpf_dtmf_generator_band_e { MPF_DTMF_GENERATOR_INBAND = 0x1, MPF_DTMF_GENERATOR_OUTBAND = 0x2, MPF_DTMF_GENERATOR_BOTH = MPF_DTMF_GENERATOR_INBAND | MPF_DTMF_GENERATOR_OUTBAND }
 

Functions

struct mpf_dtmf_generator_tmpf_dtmf_generator_create_ex (const struct mpf_audio_stream_t *stream, enum mpf_dtmf_generator_band_e band, apr_uint32_t tone_ms, apr_uint32_t silence_ms, struct apr_pool_t *pool)
 
apt_bool_t mpf_dtmf_generator_enqueue (struct mpf_dtmf_generator_t *generator, const char *digits)
 
void mpf_dtmf_generator_reset (struct mpf_dtmf_generator_t *generator)
 
apt_bool_t mpf_dtmf_generator_sending (const struct mpf_dtmf_generator_t *generator)
 
apt_bool_t mpf_dtmf_generator_put_frame (struct mpf_dtmf_generator_t *generator, struct mpf_frame_t *frame)
 
void mpf_dtmf_generator_destroy (struct mpf_dtmf_generator_t *generator)
 

Detailed Description

DTMF generator.

Generator used to send DTMF tones. Capable to send digits either in-band as audible tones or out-of-band according to RFC4733.

Typedef Documentation

◆ mpf_dtmf_generator_band_e

DTMF generator band

◆ mpf_dtmf_generator_t

Opaque MPF DTMF generator structure definition

Enumeration Type Documentation

◆ mpf_dtmf_generator_band_e

DTMF generator band

Enumerator
MPF_DTMF_GENERATOR_INBAND 

Generate tones in-band

MPF_DTMF_GENERATOR_OUTBAND 

Generate named events out-of-band

MPF_DTMF_GENERATOR_BOTH 

Generate both tones and named events

Function Documentation

◆ mpf_dtmf_generator_create_ex()

struct mpf_dtmf_generator_t* mpf_dtmf_generator_create_ex ( const struct mpf_audio_stream_t stream,
enum mpf_dtmf_generator_band_e  band,
apr_uint32_t  tone_ms,
apr_uint32_t  silence_ms,
struct apr_pool_t *  pool 
)

Create MPF DTMF generator (advanced).

Parameters
streamA stream to transport digits via.
bandMPF_DTMF_GENERATOR_INBAND or MPF_DTMF_GENERATOR_OUTBAND
tone_msTone duration in milliseconds.
silence_msInter-digit silence in milliseconds.
poolMemory pool to allocate DTMF generator from.
Returns
The object or NULL on error.
See also
mpf_dtmf_generator_create

◆ mpf_dtmf_generator_destroy()

void mpf_dtmf_generator_destroy ( struct mpf_dtmf_generator_t generator)

Free all resources associated with the generator.

Parameters
generatorThe generator.

◆ mpf_dtmf_generator_enqueue()

apt_bool_t mpf_dtmf_generator_enqueue ( struct mpf_dtmf_generator_t generator,
const char *  digits 
)

Add DTMF digits to the queue.

Parameters
generatorThe generator.
digitsDTMF character sequence [0-9*#A-D].
Returns
TRUE if ok, FALSE if there are too many digits.

◆ mpf_dtmf_generator_put_frame()

apt_bool_t mpf_dtmf_generator_put_frame ( struct mpf_dtmf_generator_t generator,
struct mpf_frame_t frame 
)

Put frame into the stream.

Parameters
generatorThe generator.
frameFrame object passed in stream_read().
Returns
TRUE if frame with tone (both in-band and out-of-band) was generated, FALSE otherwise. In contrast to mpf_dtmf_generator_sending, returns FALSE even if generating inter-digit silence. In other words returns TRUE iff the frame object was filled with data. This method MUST be called for each frame for proper timing.

◆ mpf_dtmf_generator_reset()

void mpf_dtmf_generator_reset ( struct mpf_dtmf_generator_t generator)

Empty the queue and immediately stop generating.

Parameters
generatorThe generator.

◆ mpf_dtmf_generator_sending()

apt_bool_t mpf_dtmf_generator_sending ( const struct mpf_dtmf_generator_t generator)

Check state of the generator.

Parameters
generatorThe generator.
Returns
TRUE if generating a digit or there are digits waiting in queue. FALSE if the queue is empty or generating silence after the last digit.