UNPKG

cloudonix-js

Version:

A JavaScript library for building and serving Cloudonix Voice Application XML (CXML) documents with support for AI voice agents, media streaming, and advanced telephony features

115 lines (95 loc) 2.9 kB
/** * @file Examples demonstrating all available CXML verbs * @copyright 2025 Nir Simionovich, nirs@cloudonix.io * @license MIT */ 'use strict'; const CXMLBuilder = require('../src/builder'); const PlayVerb = require('../src/verbs/play'); const SayVerb = require('../src/verbs/say'); const GatherVerb = require('../src/verbs/gather'); const PauseVerb = require('../src/verbs/pause'); const HangupVerb = require('../src/verbs/hangup'); // Example 1: Play with options console.log("Example 1: Play with options"); const example1 = new CXMLBuilder() .createResponse() .addPlay('https://example.com/greeting.mp3', { answer: false, loop: 2, statusCallback: 'https://example.com/playback-status', statusCallbackMethod: 'POST' }) .build(); console.log(example1); console.log("\n"); // Example 2: Play DTMF tones console.log("Example 2: Play DTMF tones"); const example2 = new CXMLBuilder() .createResponse() .addPlay('', { digits: '1w2w3w4' }) .build(); console.log(example2); console.log("\n"); // Example 3: Pause console.log("Example 3: Pause"); const example3 = new CXMLBuilder() .createResponse() .addSay('Welcome to our system') .addPause(5, { answer: false }) .addSay('Thank you for your patience') .build(); console.log(example3); console.log("\n"); // Example 4: Redirect console.log("Example 4: Redirect"); const example4 = new CXMLBuilder() .createResponse() .addRedirect('https://example.com/next-application', 'GET') .build(); console.log(example4); console.log("\n"); // Example 5: Hangup console.log("Example 5: Hangup"); const example5 = new CXMLBuilder() .createResponse() .addSay('Thank you for calling. Goodbye!') .addHangup() .build(); console.log(example5); console.log("\n"); // Example 6: Reject console.log("Example 6: Reject"); const example6 = new CXMLBuilder() .createResponse() .addReject({ reason: 'busy' }) .build(); console.log(example6); console.log("\n"); // Example 7: Reject with different reason console.log("Example 7: Reject with different reason"); const example7 = new CXMLBuilder() .createResponse() .addReject({ reason: 'congestion' }) .build(); console.log(example7); console.log("\n"); // Example 8: Complex flow with multiple verbs - simplified for demonstration console.log("Example 8: Complex flow with multiple verbs (simplified)"); const example8 = new CXMLBuilder() .createResponse() .addPlay('https://example.com/welcome.mp3', { answer: true }) .build(); console.log(example8); console.log("\n"); // Example 9: Voicemail example - simplified for demonstration console.log("Example 9: Voicemail example (simplified)"); const example9 = new CXMLBuilder() .createResponse() .addSay("You've reached our voicemail. Please hangup if you don't want to leave a message.") .addPause(3, { answer: false }) .build(); console.log(example9); console.log("\n");