0.3.75 • Published 25 days ago

@jambonz/node-client v0.3.75

Weekly downloads
-
License
MIT
Repository
github
Last release
25 days ago

@jambonz/node-client

A Node.js SDK for the open source jambonz CPaaS platform. Node.js applications can use this library to respond to jambonz webhooks and to make REST API calls to a jambonz platform.

Note: One suggested way to get up and running with this Node SDK is to use the npx create-jambonz-app command, which will scaffold out a jambonz application for you using this SDK.

Webooks

To respond to webhooks, you will need a lightweight http server. An example is shown below using express.

const {WebhookResponse} = require('@jambonz/node-client');
const express = require('express');
const app = express();

app.use(express.json());

app.post('/my-app', (req, res) => {
  const jambonz = new WebhookResponse();
  jambonz
    .pause({length: 1.5})
    .say({
      text: 'Good morning. This is a simple test of text to speech functionality.  That is all.  Goodbye',
      synthesizer: {
        vendor: 'google',
        language: 'en-US'
      }
    });
  res.status(200).json(app);
});

app.listen(port, () => {
  logger.info(`listening at http://localhost:${port}`);
});

See here for information on the available verbs you can use in a jambonz application, and for their associated properties.

Verifying webhook signature

If your jambonz server includes a Jambonz-Signature header on webhook requests, you can verify that the request was signed by jambonz using your webhook secret as follows:

const {WebhookResponse} = require('@jambonz/node-client');

if (process.env.WEBHOOK_SECRET) {
  app.use(WebhookResponse.verifyJambonzSignature(process.env.WEBHOOK_SECRET));
}

const express = require('express');
const app = express();

app.use(express.json());

/* make sure this comes after the body has been converted to json */
if (process.env.WEBHOOK_SECRET) {
  app.use(WebhookResponse.verifyJambonzSignature(process.env.WEBHOOK_SECRET));
}

/* if we get here we know the request was signed with our webhook secret */
app.post('/my-app', (req, res) => { ...})

REST API calls

Creating a client

To use the REST API you need to know your account sid and api key (both of which you can view in the jambonz portal). You generate a REST client as shown below.

const client = require('@jambonz/node-client')(<my-account-sid>, <my-api-key>, {
  baseUrl: http://<my-jambonz-sbc>
});

All of the above parameters are required (account sid, api key, and baseUrl);

Calls

Creating a call
const sid = await client.calls.create({
  from: '16172223333',
  to: {
    type: 'phone',
    number: '15083084808'
  },
  call_hook: 'http://myurl.com/myapp-webhook',
  call_status_hook: 'http://myurl.com/call-status'
});

See here for further details.

Updating a call

To update a call in progress -- for example to mute/unmute, hangup the call etc -- you need to know the call sid. Typically you would get this from a webhook sent from an existing call event.

  // play a whisper prompt to one party on the call
  await client.calls.update(<my-call-sid>, {
    whisper: {
        verb: 'say',
        text: 'You have 30 seconds remaining on this call.'
      }
    }
  });

See here for further details.

Example

See here for a full-featured example application built using this API.

Status

This project is under active development and is currently very much pre-beta.

0.3.75

25 days ago

0.3.74

1 month ago

0.3.73

2 months ago

0.3.72

2 months ago

0.3.71

2 months ago

0.3.70

2 months ago

0.3.69

2 months ago

0.3.68

2 months ago

0.3.67

2 months ago

0.3.66

3 months ago

0.3.65

3 months ago

0.3.64

3 months ago

0.3.63

5 months ago

0.3.62

5 months ago

0.3.61

6 months ago

0.3.60

7 months ago

0.3.53

8 months ago

0.3.59

7 months ago

0.3.58

7 months ago

0.3.57

7 months ago

0.3.56

7 months ago

0.3.55

7 months ago

0.3.54

8 months ago

0.3.52

11 months ago

0.3.51

12 months ago

0.3.50

12 months ago

0.3.49

1 year ago

0.3.42

1 year ago

0.3.41

1 year ago

0.3.48

1 year ago

0.3.47

1 year ago

0.3.46

1 year ago

0.3.45

1 year ago

0.3.44

1 year ago

0.3.43

1 year ago

0.3.39

1 year ago

0.3.38

1 year ago

0.3.37

1 year ago

0.3.36

1 year ago

0.3.40

1 year ago

0.3.30

2 years ago

0.3.35

1 year ago

0.3.34

1 year ago

0.3.33

1 year ago

0.3.32

1 year ago

0.3.29

2 years ago

0.3.28

2 years ago

0.3.27

2 years ago

0.3.26

2 years ago

0.3.20

2 years ago

0.3.25

2 years ago

0.3.24

2 years ago

0.3.23

2 years ago

0.3.22

2 years ago

0.3.21

2 years ago

0.3.19

2 years ago

0.3.18

2 years ago

0.3.17

2 years ago

0.3.16

2 years ago

0.3.15

2 years ago

0.3.9

2 years ago

0.3.14

2 years ago

0.3.12

2 years ago

0.3.11

2 years ago

0.3.10

2 years ago

0.3.6

2 years ago

0.3.8

2 years ago

0.3.7

2 years ago

0.2.24

2 years ago

0.2.23

2 years ago

0.2.22

2 years ago

0.2.21

2 years ago

0.2.20

2 years ago

0.2.19

2 years ago

0.2.18

2 years ago

0.3.0

2 years ago

0.3.5

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.4

2 years ago

0.3.3

2 years ago

0.2.17

2 years ago

0.2.16

2 years ago

0.2.15

2 years ago

0.2.14

2 years ago

0.2.13

2 years ago

0.2.12

2 years ago

0.2.11

2 years ago

0.2.10

2 years ago

0.2.9

3 years ago

0.2.7

3 years ago

0.2.8

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.4

3 years ago

0.1.0

3 years ago

0.2.1

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.4

3 years ago

0.0.1

3 years ago