makingchatbots / ivr-tester Goto Github PK
View Code? Open in Web Editor NEWAn automated testing framework for Interactive Voice Response (IVR) call flows
Home Page: https://ivr-tester.makingchatbots.com/
License: MIT License
An automated testing framework for Interactive Voice Response (IVR) call flows
Home Page: https://ivr-tester.makingchatbots.com/
License: MIT License
When developing a test I often find myself having to rerun the test for each transcript to make sure my condition is correct, before then having to fix it for the next transcription.
Being able to rerun my test against a copy of the transcript that caused it to fail would save time (and money).
Do you support RFC 2833 DTMF inputs? DTMF via in-band signaling or out-of-band SIP INFO messages?
If not is there a way to add this?
Hello, this tool is fantastic. I found that even though I set a hang-up in the scenario file or if the test fails, the call should be terminated. The transcription file and the recording audio looks fine BUT if I go to twilio and look for the call, I find that the call is still in progress until the responder hangs up.
This is a big issue because that call's cost will depend not on the scenario file but on when the responder hangs up.
How it should work:
If an error, failed or successful test has occurred. The call must be terminated (hang up) in twilio as well.
Possible formats: csv, json, text
I want users to be able to configure the speech-to-text service of their choice without the core functionality being ladened with them as dependencies. This can be achieved by implementing a plugin architecture.
I don't know how this is achieved in node, but could investigate how Artillery does it.
Associating the phone numbers with each test opens up the possibility of using the same server to handle calls to multiple flows.
A step with press("1")
doesn't seem to produce the audio tone and gets stuck, is there an extra step to create those?
Hi,
Thanks for your library. It is very helpful for us. Having one clarification regarding the below code. Here, you've mentioned that 'Instance of IvrTester can only run a single suite of scenarios'.
Kindly advice. thanks.
public async run(
testSubject: TestSubject,
scenario: Scenario[] | Scenario
): Promise {
if (this.running) {
throw new Error(
"Instance of IvrTester can only run a single suite of scenarios"
);
}
this.running = true;
Hi @SketchingDev
I am trying to learn and use your repo with a Twilio's studio flow in flex. For some reason I am not able to connect my Twilio account with the script I am trying to build using ivr tester.
It's a very basic flow and I want to test If I can input some numbers when in IVR but my call never seems to connect and it just ends up being timeout.
Also in your usage guide there is a command which says node test.js
where is that test.js
I assumed that maybe that test.js was a custom file, depends on the script.
So then I tried my own script which is as following:
const { googleSpeechToText } = require("ivr-tester-transcriber-google-speech-to-text");
const ivrTester = require("ivr-tester");
const config = { transcriber: googleSpeechToText({ languageCode: "en-US" }),twilioAuth: {accountSid: "ACXXXXXXXXXXXXXXXXX",authToken:"XXXXXXXXXXXXXXX"} };
new ivrTester.IvrTester(config).run(
{ from: "YYYYYYYYY", to: "XXXXXXXXXX" },
{
name: "Hello, Press a button",
steps: [
{
whenPrompt: ivrTester.similarTo("Hello, Press a button"), // this is what I have in my Twilio Flex's studio flow
then: ivrTester.press("1"),
silenceAfterPrompt: 3000,
timeout: 6000,
},
],
}
);
whenever I run this script as node script.js
it gives me following timeout error
Calling XXXXXXXXXX...
Timed out: call did not connect after 30s
The server has closed
node:internal/process/promises:246
triggerUncaughtException(err, true /* fromPromise */);
^
[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "undefined".] {
code: 'ERR_UNHANDLED_REJECTION'
}
so maybe I am not setting it up right or I am missing something, If you could guide or help me around it, that would be really great.
Could you please record tutorial or better documentation on how to get this working?
After downloading the repo, there's no mentioning of where to do npm install etc.
Where to create a sample test.js?
Easier tutorial please for dummies :)
Thanks!
When I upgraded the Typedoc dependency in the root package.json to 0.20.16
the yarn doc
command started failing.
$ yarn doc
yarn run v1.22.5
$ lerna run doc
lerna notice cli v3.22.1
lerna info Executing command in 3 packages: "yarn run doc"
lerna ERR! yarn run doc exited 1 in 'ivr-tester'
lerna ERR! yarn run doc stdout:
$ yarn typedoc
$ /<project parent dir>/ivr-tester/node_modules/.bin/typedoc
Info: Loaded plugin typedoc-plugin-markdown
Error: Tried to set an option (inputFiles) that was not declared.
Error: Tried to set an option (excludeNotExported) that was not declared.
Error: Tried to set an option (stripInternal) that was not declared.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
lerna ERR! yarn run doc stderr:
error Command failed with exit code 1.
error Command failed with exit code 1.
lerna ERR! yarn run doc exited 1 in 'ivr-tester'
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
A CLI that prompts the user with how to respond to each transcription from the call, resulting in a test file pre-populated with the user's choices.
Is there a preferred audio player to listen to playback? The .raw format isn't recognized by any of my standard applications. Thanks!
its very difficult to follow setup as we are unable to know where to place or test config file and how to run it kindly share a sample tutorial or a clear instructions read.md file as on readme its written to run node test but no such file is created and if its a config script code share in readme that where to made it?
Hello,
I haven't found a solution if an IVR is down and silent, the call remains stuck on the scenario and runs in a loop.
Do you have a solution for this problem?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.