Rate this page:

VoxEngine (Serverless JavaScript)

VoxEngine is an application engine that runs your apps inside the VoxImplant cloud. Each call is processed according to call control logic written in JavaScript, making VoxEngine an easy to use tool for web developers. In addition to standard ES2018 functions, there is a number of additional VoxEngine JS classes, functions, and events available.

Core VoxEngine functionality is available via the global VoxEngine namespace:

VoxEngine.callPSTN("+1234567890", myVerifiedPhoneNumber);

Some additional functionality is available via modules that should be explicitly enabled by developers using the require command.

Voice recording

VoxEngine provides developers with two ways of recording: via the record method of the call object or the Recorder module. Both result in a file stored on our servers for 3 months by default (with an option of secure recordings that require HTTP auth for access), whereas the Recorder module provides additional functionality: naming a recording for the call history, stopping a recording, and mixing multiple audio tracks into one.


Voice recognition allows developers to translate speech into text for further processing and analysis, like for building smart IVRs depending on users' answers for example. This functionality is represented by the ASR module with a wide range of languages and recognition models for the most popular use cases (audio that originated from video or phone calls, dates, numbers or addresses pronunciation, etc.).


Text-to-Speech (TTS) is the functionality that allows our cloud to pronounce any text via synthesized voice provided by major TTS vendors: Google, Amazon, Yandex, Tinkoff, etc. It is available in the core (call.say) and the Player module as well (createTTSPlayer).


You are able to write specified messages to the session logger via the Logger.write method. Logs are stored in the call history and can be up to 1000 characters long.

Predictive dialing system

Predictive Dialing System (PDS) is an enhanced autodialer which not only calls customers according to the provided call list but utilizes call metrics to predict the moment when human agents will be available to make the next call. This way, the system ensures maximum agent utilization, so it can bring the efficiency of a call center to a new level. PDS is built upon the CallList module.

Voicemail detection

Voicemail Detection (VMD) helps in recognizing voicemail when you’re trying to reach out to your customers, which is extremely important while using PDS and/or Call lists. Voicemail can sound like a real human, so we trained our system on a rich dataset to increase the chances of successful recognition. Anyway, since voicemail systems behave differently, accuracy could vary; for countries where we trained the model, it’s up to 99%. VMD is part of the AI module.

AI functions

AI functions placed into the AI module; currently, there are two blocks of such functions, VMD-related and Dialogflow-related. According to the module title, these functions are empowered by artificial intelligence, i.e., our team applied the advanced methods of machine learning while training the underlying algorithms.


WebSocket is an advanced standard for full-duplex (two-way) communication between two parties in real-time, without extra HTTP requests. Due to the appropriate module, VoxEngine can perform such interaction with 3rd party services like speech recognition, bots, and so on.


IVR lets you split the execution of your scenario according to customer input. Even though you can provide your apps with IVR functionality by utilizing methods of the Call class and subscribing to appropriate events, a separate module called IVR can do the same with less code and also improve the readability of your scenarios.


The Player module is dedicated to managing media playback of *.mp3 and *.ogg files, synthesized voice, and ToneScript sequences. Instantiate players to easily pause, resume, and completely stop playback. Each media file and TTS audio is placed to our cache storage after the very first playback and stored there up to 2 weeks. Bear in mind that if the file available through URL is changed, but its URL stays the same, the Player will still be using the cached old file. To prevent this, we recommend to specify URLs with timestamps to ensure they won’t be identical.


The StreamingAgent module allows you to implement streaming functionality that integrates with popular streaming platforms such as Twitch and YouTube. This Module brings the ability to forward video calls over RTMP to any live streaming CDN that supports RTMP. A video call initiated from within a Web/Mobile application or SIP device goes to our cloud, which forwards the data stream to the RTMP CDN and that CDN provider transmits the audio and video streams to its end users. Note that only H.264 codec is supported.


The ApplicationStorage module implements a way for Voximplant applications to store and retrieve key-value pairs. Key-value pairs are unique for each application in your Voximplant account, so feel free to rely on this functionality in terms of what data you’re going to store. You can manipulate data in a CRUD way: create/update, read, and delete it. This way, our cloud takes care of yet another duty of your backend servers, which makes the whole idea of serverless paradigm even better.

Network interaction

There is a Net namespace in VoxEngine dedicated to network interaction. If you want your JS scenarios to send HTTP requests in a sync/async way, there are built-in methods for it: Net.httpRequest and Net.httpRequestAsync. GET is the default method, but you can specify another HTTP method, as well as set custom headers, override the default timeout (90 s), put data for POST/PUT/PATCH, etc. in the HttpRequestOptions. Additionally, there are methods for sending mail (sendMail and sendMailAsync) with the customizable parameters.