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

@bandwidth/bxml

Package Overview
Dependencies
Maintainers
13
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bandwidth/bxml

Generator for Bandwidth's BXML

1.0.0
npm
Version published
Maintainers
13
Created
Source

NodeJS Bandwidth BXML

This package is a Bandwidth BXML builder written for NodeJS

Installing

npm install @bandwidth/bxml

Usage

var BxmlBuilder = require("@bandwidth/bxml");

//Hangup response
var hangup = new BxmlBuilder.Verbs.Hangup();

var response = new BxmlBuilder.Response();
response.addVerb(hangup);

console.log(response.toXml());

//PlayAudio response
var playAudio = new BxmlBuilder.Verbs.PlayAudio();
playAudio.setUrl("https://test.com");
playAudio.setUsername("user");
playAudio.setPassword("pass");

var response = new BxmlBuilder.Response();
response.addVerb(playAudio);

console.log(response.toXml());

//SpeakSentence response
var speakSentence = new BxmlBuilder.Verbs.SpeakSentence();
speakSentence.setSentence("test");
speakSentence.setVoice("susan");
speakSentence.setGender("female");
speakSentence.setLocale("en_US");

var response = new BxmlBuilder.Response();
response.addVerb(speakSentence);

console.log(response.toXml());

//SendDtmf response
var sendDtmf = new BxmlBuilder.Verbs.SendDtmf();
sendDtmf.setDtmf("123");

var response = new BxmlBuilder.Response();
response.addVerb(sendDtmf);

console.log(response.toXml());

//Forward response
var forward = new BxmlBuilder.Verbs.Forward();
forward.setTo("+18888888888");
forward.setFrom("+19999999999");
forward.setCallTimeout(3);
forward.setDiversionTreatment("none");
forward.setDiversionReason("away");

var response = new BxmlBuilder.Response();
response.addVerb(forward);

console.log(response.toXml());

//Pause response
var pause = new BxmlBuilder.Verbs.Pause();
pause.setDuration(3);

var response = new BxmlBuilder.Response();
response.addVerb(pause);

console.log(response.toXml());

//Redirect response
var redirect = new BxmlBuilder.Verbs.Redirect();
redirect.setUsername("user");
redirect.setPassword("pass");
redirect.setRedirectUrl("https://test.com");
redirect.setRedirectMethod("GET");
redirect.setTag("tag");

var response = new BxmlBuilder.Response();
response.addVerb(redirect);

console.log(response.toXml());

//Gather response with a nested SpeakSentence
var speakSentence = new BxmlBuilder.Verbs.SpeakSentence();
speakSentence.setSentence("test");
speakSentence.setVoice("susan");
speakSentence.setGender("female");
speakSentence.setLocale("en_US");

var gather = new BxmlBuilder.Verbs.Gather();
gather.setGatherUrl("https://test.com");
gather.setGatherMethod("GET");
gather.setUsername("user");
gather.setPassword("pass");
gather.setTag("tag");
gather.setTerminatingDigits("123");
gather.setMaxDigits(3);
gather.setInterDigitTimeout(4);
gather.setFirstDigitTimeout(5);
gather.setSpeakSentence(speakSentence);

var response = new BxmlBuilder.Response();
response.addVerb(gather);

console.log(response.toXml());

//Gather response with a nested PlayAudio
var playAudio = new BxmlBuilder.Verbs.PlayAudio();
playAudio.setUrl("https://test.com");
playAudio.setUsername("user");
playAudio.setPassword("pass");

var gather = new BxmlBuilder.Verbs.Gather();
gather.setGatherUrl("https://test.com");
gather.setGatherMethod("GET");
gather.setUsername("user");
gather.setPassword("pass");
gather.setTag("tag");
gather.setTerminatingDigits("123");
gather.setMaxDigits(3);
gather.setInterDigitTimeout(4);
gather.setFirstDigitTimeout(5);
gather.setPlayAudio(playAudio);

var response = new BxmlBuilder.Response();
response.addVerb(gather);

console.log(response.toXml());

//Gather response with no nested verbs
var gather = new BxmlBuilder.Verbs.Gather();
gather.setGatherUrl("https://test.com");
gather.setGatherMethod("GET");
gather.setUsername("user");
gather.setPassword("pass");
gather.setTag("tag");
gather.setTerminatingDigits("123");
gather.setMaxDigits(3);
gather.setInterDigitTimeout(4);
gather.setFirstDigitTimeout(5);
gather.setRepeatCount(6);

var response = new BxmlBuilder.Response();
response.addVerb(gather);

console.log(response.toXml());

//Transfer response
var number1 = new BxmlBuilder.Verbs.PhoneNumber();
number1.setNumber("+17777777777");
number1.setTransferAnswerUrl("https://test.com");
number1.setTransferAnswerMethod("GET");
number1.setUsername("user");
number1.setPassword("pass");
number1.setTag("tag");

var number2 = new BxmlBuilder.Verbs.PhoneNumber();
number2.setNumber("+17777777779");
number2.setTransferAnswerUrl("https://test2.com");
number2.setTransferAnswerMethod("POST");
number2.setUsername("user2");
number2.setPassword("pass2");
number2.setTag("tag2");

var transfer = new BxmlBuilder.Verbs.Transfer();
transfer.setTransferCallerId("+18888888888");
transfer.setCallTimeout(3);
transfer.setTag("tagTransfer");
transfer.setTransferCompleteUrl("https://testtransfer.com");
transfer.setTransferCompleteMethod("GET");
transfer.setUsername("usertransfer");
transfer.setPassword("passtransfer");
transfer.setDiversionTreatment("none");
transfer.setDiversionReason("away");
transfer.addPhoneNumber(number1);
transfer.addPhoneNumber(number2);

var response = new BxmlBuilder.Response();
response.addVerb(transfer);

console.log(response.toXml());

//PlayAudio and SpeakSentence together response
var playAudio = new BxmlBuilder.Verbs.PlayAudio();
playAudio.setUrl("https://test.com");
playAudio.setUsername("user");
playAudio.setPassword("pass");

var speakSentence = new BxmlBuilder.Verbs.SpeakSentence();
speakSentence.setSentence("test");
speakSentence.setVoice("susan");
speakSentence.setGender("female");
speakSentence.setLocale("en_US");

var response = new BxmlBuilder.Response();
response.addVerb(playAudio);
response.addVerb(speakSentence);

console.log(response.toXml());

Running tests

Tests can be run by executing

npm test

The dependency for XSD validation (xsd-schema-validator) requires the environment variable JAVA_HOME to be set. More information can be found on that package's github page

BXML Documentation

Bandwidth's BXML documentation can be found on the Bandwidth Developer Docs BXML page

FAQs

Package last updated on 26 Nov 2019

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