The jambonz Node.js SDK is one of the simplest and most powerful ways to build jambonz applications.
The video below provides a walk-through of how to create an application using the create-jambonz-app utility, and then gives examples of building various webhooks applications that include collecting speech or dtmf input as well as integration with Google Dialogflow and AWS Lex V2.
As mentioned above, the create-jambonz-app will scaffold you an express-based app that provides a great starting point.
If you prefer to use a different http server, or you need to integrate the jambonz webhooks into an existing Node.js application, then you simply need to install @jambonz/node-client in your application.
npm install --save @jambonz/node-client
If your application just needs to respond to webhooks, you can include it like this:
const {WebhookResponse} = require('@jambonz/node-client');
If your application also needs to make REST API calls, you can include it like this:
const jambonz = require('@jambonz/node-client');
const {WebhookResponse} = jambonz;
const client = jambonz('your-account-sid', 'your-api-key', {baseUrl: 'https://jambonz.cloud'});
Note: if you are running a self-hosted system, replace
https://jambonz.cloud
in the above with the appropriate URL of your own jambonz system.
Responding to webhooks is quite simple:
router.post('/', (req, res) => {
const app = new WebhookResponse();
app
.pause({length: 1.5})
.say({
text 'hi there, and welcome to jambonz!'
});
res.status(200).json(app);
The WebhookResponse instance offers methods corresponding to each of the jambonz verbs, so for the example above you can see the possible options for the pause
verb here, and for the say
verb here. After adding all of the verbs that you want to execute, in the order that you want them to happen, simply return the app
object in the 200 OK to the HTTP request.
To making a REST API call simply use the client
object we showed how to create earlier:
await client.calls.update(req.body.call_sid, {mute_status: 'mute'});
Documentation for the REST API can be found here.