difference between playback and background?

Home » Asterisk Users » difference between playback and background?
Asterisk Users 3 Comments

In the dial plan language of asterisk, what is the difference between prompting the user with a Playback() command vs. a Background() command? I want in a part of my dial plan to ask the user a prompt, and wait for 4 digits to be typed in. I don’t want the user to have to end the string with a pound or something, just wait 2 seconds after they stop typing. ANd I do want the prompt to be interruptible if the user is fast and knows already what to do…

I need to do some tests on the number they entered. If i use background(), and say the prompt, and then follow with a WAIT command, how do i reference the number they just typed in? does asterisk set the ${EXTEN} variable when the user types something?

What I find maddening about the asterisk documentation is a lack of clarity on the sequence of things, and what variables get set when?

3 thoughts on - difference between playback and background?

  • It sounds like you may want to use the READ command instead. This lets you
    hard-set the number of digits to expect and then sets a variable which you
    can use later in the dialplan. Generally you use the background command to
    let them dial an extension or automated attendant option. Playback plays
    without the option to interrupt it.

    On Mon, Nov 21, 2011 at 10:50 AM, Edward de Jong <
    edward.dejong@voicecarrier.com> wrote:

  • First question – playback is not interruptable by DTMF, background is.
    You have two options here
    Option 1
    Use Read
    [getnum]
    Exten => start,1,read(mydigit,prompt,4,skip,1,2)
    .. verification stuff

    Option 2
    Use WaitExten with Background
    [getnum]
    Exten => start,1,background(prompt)
    Exten => start,n,waitexten(2)
    Exten => 1111,1,noop(user pressed 1111)
    Exten => I,1,playback(invalid)

    For option 2 you have to define each valid 4 digit entry in the context.

    Yes it can be maddening, but you get what you pay for.