Results 1 to 7 of 7

Thread: How do I block entry of DTMF while a message is playing?

  1. #1
    Join Date
    Jan 2018
    Posts
    3

    Question How do I block entry of DTMF while a message is playing?

    Hello, everybody.
    First of all, I would like to apologize if something is not understood, my English is not native.

    I'm designing an IVR application in the Interaction Designer.
    I have a "Play Prompt" block that plays a welcome audio and also plays a menu.
    After that, I have a "Get Key" block to request data from the user, specifically menu options.

    20180108-1346-001.png

    Currently, if a user key in any number while the welcome audio is playing, that audio is cut off, i. e. it stops playing. IVR now continues its normal flow.

    What I need, however, is to deny entry of data by the user (ignore any input) until the audio files are finished playing. Once the welcome and menu are finished, the IVR should allow the user to enter data.

    Is that even possible? Can you help me figure it out?

    Thank you very much indeed!

  2. #2
    Join Date
    Oct 2010
    Posts
    107
    Hi Alex,

    All of the tools that play audio have a checkbox labelled "play immediate". If this is not selected, the audio is buffered up and the handler execution continues. The audio actually gets played when one of two situations occurs:

    1. A tool that plays audio is executed that has the "play immediate" checkbox selected.
    2. There is a prompt for input (GetKey, or similar).

    In the first of these cases, all buffered audio (if any) as well as that being played by the step is played before the handler continues to the next step.
    In the second of these cases, all buffered audio (if any) is played while waiting for a key-press, but a key-press will stop the audio from playing. This is known as "Barge-In".

    So, to answer your direct question, select the "play immediate" checkbox in the Play Audio tool immediately prior to your GetKey.

    However, two quick observations:-

    1. From what you say, it sounds like this could be done with Attendant directly. If it can, then I wouldn't use a Handler. In general, it is easier and more supportable to do as much as you can with Attendant and only use a Custom Handler if there is a small thing that you can't do in Attendant directly.
    2. If you are going to be undertaking Handler customizations, I strongly recommend taking the Handlers training. Not only are items like this covered, but it will also help you if you need to contact Support for assistance later on!


    I hope that helps!
    Paul Simpson
    Technical Sales Systems Engineer

  3. #3
    Join Date
    Jan 2018
    Posts
    3
    Hello, Paul.
    I'm very grateful for your quick response.

    But first of all, let me see if I understood you:

    If I activate the "Play immediate" checkbox in my "Play Prompt" block (and there is no other previous playback block, and therefore no audio buffered), does it mean that my "GetKey" block will not run until all audio is played?
    I understand that if this is the case, data entry will not be allowed while audio is playing. Please confirm if this is correct.

    With regard to your observations, I will take them very seriously. However, this application is much bigger than this small problem, and that's why our company uses the Interaction Designer to develop it.

    I await your comments. Thank you again!

  4. #4
    Join Date
    Oct 2010
    Posts
    107
    That is exactly correct, yes.

    Regarding it being part of a bigger app, I would still try to do as much as I can in Attendant and only call Handlers for specific things. Of course, it's your app! Take, for example, getting data from a caller. In Attendant, that's a single operation that can play the prompt, verify the data entered and assign the value to a Call Attribute. In a Handler, you are going to have half a page of code to do the same thing. In your case, you are playing a prompt and then capturing a key press, checking for validity, re-prompt if there is no, valid entry (but count the number of re-prompts so we don't have an endless loop) and so it goes on. Attendant, it's a single "Play Menu"....

    If I were writing something like this, I would probably end up with many separate handlers, all being called from different parts of my Attendant IVR. This may seem more complex at first, but in the long run it will probably be easier to maintain. Also remember that Attendant often gets enhanced in new releases so, down the line, you may be able to remove some of those handlers if Attendant gains the functionality you had to use the handler for.

    Anyway, like I said, you app, so your call - this is just my opinion and others may well disagree with me. (Of course, they would be wrong, but that's another matter! )
    Paul Simpson
    Technical Sales Systems Engineer

  5. #5
    Join Date
    Jan 2018
    Posts
    3

    Thumbs up Thank you!

    Paul,

    I understand your point of view and I will keep your advice in mind.
    In a few days we will start a very big project, in which I will be part of (I am new in this technology, as you will see). From now on, I will try to do everything that can be done in Attendant, from the Attendant.

    Thank you for your answer to my problem. I'll try to fix it.

  6. #6
    Join Date
    Nov 2006
    Location
    Anderson, IN
    Posts
    892

    flush audio

    Another mechanism to accomplish this is to use a Flush Audio toolstep after the step that plays the audio and set to wait to continue.

  7. #7
    Join Date
    Jun 2007
    Location
    Milwaukee, WI
    Posts
    1,217
    When I want to force a caller to hear a prompt I use an extended get key tool step. I clear the valid keys, escape keys, termination keys, and I set the timeout to 0.01 seconds. The flush audio tool step should work but the step was not very reliable in older versions of CIC and when I dug into the system handlers I saw that they used the extended get key tool step so I mirrored that and have just continued developing handlers this way.

    While we are on the topic of get key, I hardly ever use get key steps, I normally select extended get keys even for single digits as it allows more customization and you can tell if they press an invalid entry or timeout where you can't tell that with the get key tool step.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •