New tool for IVR monitoring

113 views
Skip to first unread message

Johannes Vanderknyff

unread,
Dec 8, 2015, 9:23:45 AM12/8/15
to adhea...@googlegroups.com
Folks,

I've just put together a POC using adhearsion / asterisk / dejavu

https://github.com/javexed/MoTH/

The intent is to get a set of known scripts, fingerprint them, then call a number and validate if you heard what you expected.

Let me know what you think

(or if there is something else already that does this better that I don't know about / didn't find)...

Johannes

Ben Klang

unread,
Dec 8, 2015, 9:57:19 AM12/8/15
to adhea...@googlegroups.com

Il giorno Dec 8, 2015, alle ore 9:23 AM, Johannes Vanderknyff <johannes.v...@gmail.com> ha scritto:

Folks,

I've just put together a POC using adhearsion / asterisk / dejavu

https://github.com/javexed/MoTH/

The intent is to get a set of known scripts, fingerprint them, then call a number and validate if you heard what you expected.

Let me know what you think

Very cool! Thanks for sharing this. We’ve looked at doing similar things in the past, but I don’t think we got this far.

It’s only tangentially related, but I’ll mention SippyCup and SIP Treadmill:

These tools are more focused on load testing than functional testing (you can’t fingerprint the received media, for example), but you may find them useful.

/BAK/

-- 
Ben Klang
Principal/Technology Strategist, Mojo Lingo

Mojo Lingo -- Voice applications that work like magic
Twitter: @MojoLingo


(or if there is something else already that does this better that I don't know about / didn't find)...

Johannes

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

signature.asc

Harry Vangberg

unread,
Dec 8, 2015, 10:01:22 AM12/8/15
to adhea...@googlegroups.com
I'll plug Switest while we're at it: https://github.com/firmafon/switest

I need to update the docs on how to configure FreeSWITCH, but this is
an Adhearsion-based library that uses FS as a softphone to test
arbitrary SIP-based applications.

If anybody are interested in trying it out, I'd be more than happy to
help setting it up.
--
Harry Vangberg <ha...@vangberg.name> http://harry.vangberg.name

James Le Cuirot

unread,
Dec 8, 2015, 10:28:24 AM12/8/15
to adhea...@googlegroups.com
On Tue, 8 Dec 2015 09:57:15 -0500
Ben Klang <bkl...@mojolingo.com> wrote:

> >
> > Il giorno Dec 8, 2015, alle ore 9:23 AM, Johannes Vanderknyff
> > <johannes.v...@gmail.com> ha scritto:
> >
> > Folks,
> >
> > I've just put together a POC using adhearsion / asterisk / dejavu
> >
> > https://github.com/javexed/MoTH/ <https://github.com/javexed/MoTH/>
> >
> > The intent is to get a set of known scripts, fingerprint them, then
> > call a number and validate if you heard what you expected.
> >
> > Let me know what you think
>
> Very cool! Thanks for sharing this. We’ve looked at doing similar
> things in the past, but I don’t think we got this far.
>
> It’s only tangentially related, but I’ll mention SippyCup and SIP
> Treadmill: http://mojolingo.github.io/sippy_cup/
> <http://mojolingo.github.io/sippy_cup/>
> https://github.com/mojolingo/SIPTreadmill
> <https://github.com/mojolingo/SIPTreadmill>
>
> These tools are more focused on load testing than functional testing
> (you can’t fingerprint the received media, for example), but you may
> find them useful.

We did a trick with SippyCup that made it wait for SIP MESSAGEs instead
of trying to time it around the length of the audio, which is very
awkward and can fall apart if your system comes under load and things
start slowing down.

s.receive_message "name_confirmation"
s.send_digits "1"
s.receive_message "postcode_digits"
s.send_digits "321"

You can send these messages from Adhearsion very easily using the
send_message controller helper. By tagging that method call onto the
Punchblock::Event::InputTimersStarted event of a prompt, SippyCup will
automatically send the DTMF at the right moment. You must use SIP INFO
for the DTMF here.

Waiting for specific messages means you can ensure that your
application is progressing down the path you expect. We found this to
be very reliable. Note that this only works with FreeSWITCH at the
moment.

If you want the test to run a little faster than real time then you can
even set max_time on your outputs to something short like 1 second and
SippyCup will zip through the call very quickly!

Regards,
James

Andrius Kairiukstis

unread,
Dec 9, 2015, 4:32:24 AM12/9/15
to Adhearsion
I found it very useful. In past we were used another technique to test IVR's:

– played back audio were DTMF sequence;
– on testing side we used adhearsion to collect those DTMF's and compare with yml file.

That been used in high-loaded project with about 30 different IVR languages, with complex – and different IVR trees and scenarios.

Regards – Andrius

Christopher Rienzo

unread,
Dec 16, 2015, 4:11:24 PM12/16/15
to adhea...@googlegroups.com
What is the licensing for this project?  Were you able to get the fingerprinting to work well?  How much did it the tool have to hear to successfully identify the audio?

--

Johannes Vanderknyff

unread,
Dec 29, 2015, 11:07:20 AM12/29/15
to adhea...@googlegroups.com

If I didn't put a license file there, I will fix. Fingerprinting is very fast, less than two seconds. I did have one false positive in my cursory testing but will need to do a lot more testing to increase sample size

Reply all
Reply to author
Forward
0 new messages