@bandwidth/node-bandwidth-extra

Extra functions and middlewares for node-bandwidth

Usage no npm install needed!

<script type="module">
  import bandwidthNodeBandwidthExtra from 'https://cdn.skypack.dev/@bandwidth/node-bandwidth-extra';
</script>

README

node-bandwidth-extras

npm version Build Status dependencies Known Vulnerabilities

Helper functions and middlewares for node-bandwidth. Read more documentation here.

Install

Run

npm install @bandwidth/node-bandwidth-extra

Examples

Helpers

const {application, phoneNumber} = require("@bandwidth/node-bandwidth-extra");

const appId = await application.getOrCreateApplication(api, 'My app', 'my.domain.com'); // It will return exisitng application Id or create it otherwise

const number = await phoneNumber.getOrCreatePhoneNumber(api, appId, {name: 'Support', areaCode: '910'}); // It will reserve a linked to this app phone number and assign name to it. If number with such name already exists it returns it.

Middlewares

Koa

const {middlewares} = require("@bandwidth/node-bandwidth-extra");

const app = new Koa();
app.use(middlewares.koa({
    name: 'My app', // application name on Bandwidth server
    auth: {userId: 'bandwidthUserId', apiToken: 'bandwidthApiToken', apiSecret: 'bandwidthSecret'}, // Bandwidth auth data
    phoneNumber: { // Options to reserve phone number
        phoneType: 'local',
        areaCode: '910'
    },
    callCallback: async (data, ctx) => {
        // Handle calls events here
        if(data.eventType === 'answer' && ctx.phoneNumber === data.to){
            console.log('Answered');
        }
    }
}));

app.use(async (ctx, next) => {
    console.log(ctx.phoneNumber); // calls and messages to this phone number will be handled by this web app
    await next();
});

Express

const {middlewares} = require("@bandwidth/node-bandwidth-extra");

const app = express();
app.use(middlewares.express({
    name: 'My app', // application name on Bandwidth server
    auth: {userId: 'bandwidthUserId', apiToken: 'bandwidthApiToken', apiSecret: 'bandwidthSecret'}, // Bandwidth auth data
    phoneNumber: { // Options to reserve phone number
        phoneType: 'local',
        areaCode: '910'
    },
    callCallback: async (data, req) => {
        // Handle calls events here
        if(data.eventType === 'answer' && req.phoneNumber === data.to){
            console.log('Answered');
        }
    }
}));

app.use((req, res, next) => {
    console.log(req.phoneNumber); // calls and messages to this phone number will be handled by this web app
    next();
});