New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ivr-tester

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ivr-tester

An automated testing framework for IVR call flows

  • 0.2.12
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
20
decreased by-58.33%
Maintainers
1
Weekly downloads
 
Created
Source

IVR Tester

npm Language grade: JavaScript FOSSA Status

Automate the testing of your IVR call flows!

IVR Tester automates the testing of IVR flows by calling them, interpreting prompts and replying with DTMF tones based on fluent test definitions.

Features:

  • Fully automates testing call flows
  • Test multiple scenarios in parallel
  • Expressive test definitions help document call flow
  • Record audio of tests
  • Record transcriptions of tests
  • Supports Google Speech-to-Text and AWS Transcript for transcribing calls
  • Open-source
const config = { transcriber: googleSpeechToText({ languageCode: "en-GB" }) };

new IvrTester(config).run(
  { from: "0123 456 789", to: "0123 123 123" },
  {
    name: "Customer is provided a menu after their account number confirmed",
    steps: [
      {
        whenPrompt: similarTo("Please enter your account number"),
        then: press("184748"),
        silenceAfterPrompt: 3000,
        timeout: 6000,
      },
      {
        whenPrompt: similarTo(
          "press 1 for booking a repair or 2 for changing your address"
        ),
        then: hangUp(),
        silenceAfterPrompt: 3000,
        timeout: 6000,
        },
     ],
  }
);

Quick Start

  1. Create a Twilio account (referral link for $10 free if you upgrade), load it with money and rent a phone number
    1. Store an authentication token in environment variables:
    export TWILIO_ACCOUNT_SID=ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    export TWILIO_AUTH_TOKEN=your_auth_token
    
  2. Configure your environment for either Google or Amazon's transcription service
  3. Install and start ngrok
    npm install ngrok -g
    ngrok http 8080
    
  4. Run the tests
    # Local port that IVR Tester will listen on
    export LOCAL_SERVER_PORT=8080
    # URL that ngrok exposes to the outside world
    export PUBLIC_SERVER_URL=$(curl -s localhost:4040/api/tunnels | jq -r .tunnels[0].public_url)
    
    node test.js
    

How it works

Under the hood this orchestrates:

  1. Establishing a bi-directional audio stream of the call to the IVR flow - using Twilio
  2. Transcribing the voice responses from the flow - using Google Speech-to-Text
  3. Using the test to conditionally respond with DTMF tones to transcripts

Writing tests

WhenOverview
containsPrompt contains a piece of text
matchesPrompt matches regular expression
similarToPrompt is similar to a piece of text
isAnythingPrompt can be anything
ThenOverview
pressProduces DTMF tones
hangUpTerminates the call
doNothingDoesn't do anything

Development

Documentation

Where possible the documentation is generated from the code using the following script in the root directory or individual packages:

yarn docs

The documentation is automatically generated and committed as part of the CI pipeline when merged to the main branch.

The official website can be previewed locally by running:

docsify serve docs

License

FOSSA Status

Keywords

FAQs

Package last updated on 23 Jun 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc