# Conditional relationships between DPFs

The following examples define complex conditional relationships between DPFs using the AND operators, OR operators, and parentheses to combine DPF string IDs.

### Example 1

In the following example, OKI play and OKI record DPFs run simultaneously with:

- DTMF detection

- Precise tone detection with two single frequencies

Simultaneous 24 kbit/s OKI ADPCM play and record functions are specified with the following Resource[x].Definitions string:

Resource[1].Definitions = ( dtmf.det_all & \
ptf.det_2f & ( oki.rec_24 & (oki.play_24_100 | oki.play_24_150 | \
oki.play_24_200 ) ) )

This resource definition string reserves DSP resources so that the worst-case resource usage of the play functions (oki.play_24_100, oki.play_24_150, oki.play_24_200) run simultaneously with the record function (oki.rec_24).

### Example 2

In this example, OKI play, OKI record, or tone generator functions run in the connected state, but not at the same time. Functions that execute simultaneously with OKI play or OKI record functions include:

- DTMF detection

- Precise tone detection with two single frequencies

In this example, the tone generator does not run if an OKI ADPCM play or OKI ADPCM record function is running.

You can run a 24 kbit/s ADPCM OKI play function or a 24 kbit/s ADPCM OKI record function by specifying the following Resource[x].Definitions string:

Resource[1].Definitions = ( dtmf.det_all & \
pf.det_2f & ( oki.rec_24 | oki.play_24_100 | oki.play_24_150 |
oki.play_24_200 | tone.gen ))

This resource definition string allows either the record functions, one of the play functions, or the tone generator to run at the same time as the DTMF detection, and PTF functions. A 24 kbit/s ADPCM OKI play function never runs at the same time as a 24 kbit/s ADPCM OKI record function.