[Freeswitch-users] Javascript input

Jonas Gauffin jonas.gauffin at gmail.com
Sat Aug 11 04:37:26 EDT 2007


Ok. Let's take an example:

I got a voicemail application that plays a lot of phrases. Let's check
a simple example:

session.streamFile("you_have.wav");
session.streamFile("2.wav");
session.streamFile("new_messages.wav");
choice = session.getDigit(1, "", 5000);

Ok. I want to skip to the second voicemail by pressing 2. That's not
possible with the code above. Instead you have to do something like
this:

var _digits = "";
function on_dtmf(type, digits, arg)
{
  _digits += digits;
  return false;
}

function say(phrase)
{
  if (_digits != "")
    return false;
  session.streamFile(phrase, on_dtmf);
}

function getDigits(length, terminators, timeout)
{
  if (_digits != '')
  {
    var tempVar = _digits;
    _digits = "";
    return tempVar;
  }
  return session.getDigits(length, terminators, timeout);
}

say("you_have.wav");
say("2.wav");
say("new_messages");
choice = getDigits(1, "", 5000);

Right? That will abort speach on input and return the pressed digit.
But what if we want to enter a pincode or something like that? Then we
need to handle both _digits AND use session.getDigits:

function getDigits(length, terminators, timeout)
{
  if (_digits.length < length)
  {
    tempVar = _digits;
    _digits = "";
    tempVar += session.getDigits(length - _digits.length, terminators, timeout);
    return tempVar;
  }
  else
  {
    tempVar = _digits;
    _digits = "";
    return tempVar;
  }
}

Get my point? All of that could have been two lines of code if there
was an alternative to streamFile which do not remove the DTMF from the
input queue (or whatever it's called):

session.streamAndAbortOnDtmf("theFile.wav");
var digit = session.getDigits(1, "", 3000);

All I wanted was an alternative that is simple. Again: I'm not looking
for a replacement of streamFile but an complement for those who just
want to do the above.

I apologize if my examples are incorrect in some way, I've written
them directly in this email with my mind as a reference. I might have
done some syntax errors or something like that. Afterall, it's
saturday =)

But anyway. I can create an alternative to streamFile which does
On 8/10/07, Chris Danielson <chris at maxpowersoft.com> wrote:
> Jonas,
> To what purpose would having a streamFile abort without DTMF input?  If
> the streamFile operation is going to require aborting then DTMF input or
> voice recognition will be the means.  Jonas, your heart is in the right
> place, but everything you have asked for is already implemented in a very
> flexible manner within the JavaScript engine.
> Regards,
> Chris Danielson
>
> > Yes. The current architecture works just fine.
> >
> > I'm not saying that the current method should be removed. It's
> > excellent in those cases when you want to filter input during
> > streamFile and recordFile. But I still think that those cases are more
> > rare than wanting to abort the speech.
> >
> > Consider this a feature request then: A new streamFile that do not eat
> > DTMF but aborts the speech instead. Or simply a new argument that
> > specifies that the method should abort instead of eating the DTMF.
> >
> > On 8/10/07, Mike Murdock <mmurdock at coppercom.com> wrote:
> >> You do currently have the option to either continue playing the prompt
> >> or abort the prompt. In order to collect the digits during the playing
> >> of a prompt you must code a dtmf_callback handler. When a user presses a
> >> digit your call back handler gets called. You can decide it the digit is
> >> a valid one and if it is valid return "false" (or the digit) causing the
> >> prompt to stop. If the digit is not valid you can ignore it by returning
> >> "true" and the prompting will continue. While this does require the
> >> application developer to code a digit handler it gives you a much richer
> >> option for the handling of the results.
> >>
> >> You are free to develop your own wrapper function to force the
> >> particular behaviour you want. I have written a getdigits function in
> >> javascript that you are welcome to use to get the behaviour you are
> >> looking for.
> >>
> >>
> >> Michael B. Murdock
> >>
> >>
> >>
> >> ________________________________
> >>
> >> From: freeswitch-users-bounces at lists.freeswitch.org on behalf of Jonas
> >> Gauffin
> >> Sent: Fri 8/10/2007 2:49 AM
> >> To: freeswitch-users at lists.freeswitch.org
> >> Subject: Re: [Freeswitch-users] Javascript input
> >>
> >>
> >>
> >> Why not simply make another streamFile method that aborts on input.
> >> Then the user can choose which one he wants.
> >>
> >> I can elaborate my wish too. I guess that you have used a lot of IVR
> >> applications, right?
> >> For instance, you call your phone provider and they have a IVR m
>
>
> _______________________________________________
> Freeswitch-users mailing list
> Freeswitch-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>



More information about the Freeswitch-users mailing list