# dtmfsrc

The DTMFSrc element generates DTMF (ITU-T Q.23 Specification) tone packets on request from application. The application communicates the beginning and end of a DTMF event using custom upstream gstreamer events. To report a DTMF event, an application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a structure of name "dtmf-event" with fields set according to the following table:

- `type` (G_TYPE_INT, 0-1): The application uses this field to specify which of the two methods specified in RFC 2833 to use. The value should be 0 for tones and 1 for named events. Tones are specified by their frequencies and events are specified by their number. This element can only take events as input. Do not confuse with "method" which specified the output.

- `number` (G_TYPE_INT, 0-15): The event number.

- `volume` (G_TYPE_INT, 0-36): This field describes the power level of the tone, expressed in dBm0 after dropping the sign. Power levels range from 0 to -63 dBm0. The range of valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE.

- `start` (G_TYPE_BOOLEAN, True or False): Whether the event is starting or ending.

- `method` (G_TYPE_INT, 2): The method used for sending event, this element will react if this field is absent or 2.

For example, the following code informs the pipeline (and in turn, the DTMFSrc element inside the pipeline) about the start of a DTMF named event '1' of volume -25 dBm0:

     structure = gst_structure_new ("dtmf-event",
                        "type", G_TYPE_INT, 1,
                        "number", G_TYPE_INT, 1,
                        "volume", G_TYPE_INT, 25,
                        "start", G_TYPE_BOOLEAN, TRUE, NULL);

     event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure);
     gst_element_send_event (pipeline, event);

When a DTMF tone actually starts or stop, a "dtmf-event-processed" element GstMessage with the same fields as the "dtmf-event" GstEvent that was used to request the event. Also, if any event has not been processed when the element goes from the PAUSED to the READY state, then a "dtmf-event-dropped" message is posted on the GstBus in the order that they were received.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBaseSrc
                        ╰──dtmfsrc

## Factory details

Authors: – Youness Alaoui

Classification: – `Source/Audio`

Rank – none

Plugin – dtmf

Package – GStreamer Good Plug-ins

## Pad Templates

### `src`

    audio/x-raw:
             format: S16LE
               rate: [ 1, 2147483647 ]
           channels: 1
             layout: interleaved

Presence – always

Direction – src

Object type – GstPad

## Properties

### interval

    “interval” guint

Interval in ms between two tone packets

Flags : Read / Write

Default value : 50

The results of the search are