This module was originally designed to recover IVRs functionality, following the replacement of mod_spidermonkey with mod_v8 under the Freeswitch.
QuickJS was chosen due to its fast script startup, good performance, and memory efficiency, I use JavaScript for writing calls processing applications (IVR, dialers, and so on) and these criterias quite important.
Despite infrequent commits, this module is constantly involved and gained new features gradually.
I'm primarily interested in the capabilities related with processing audio/video, data operation, and ML (within keeping lightweight and performance).
This is an open-source project and available with examples on GitHUB
preparing...
This is the most interesting class that allows to perform various manipulations with sessions.
Allows to operate with codecs (encode/decode/etc).
Provides methods to arrange chats using Freeswitch Chat API.
Allows to arrange realtime interaction with the users, for example over WebRTC/SIP.
Provides methods to operate with Freeswitch CoreDB.
Provides methods to operate with various databases over Freeswitch DBH api.
Allows interact with foreign systems over HTTP.
Executing GET/POST requests, uploading files, etc.
JsonRPC client, allows to call web-services from the scripts.
Allows to create client/server sockets and operate with the ones.
Provides methods to operate with files / directories.
Allows to operate with Freeswitch events.
Allows to operate with Freeswitch fileHandle (playback contor, etc).
Provides methods to operate with XML through Freeswitch XML API.
Dialplan example:
<extension name="quickjs-test">
<condition field="destination_number" expression="^(12345)$" >
<action application="qjs" data="my-scrips.js arg1 arg2 argr3"/>
</condition>
</extension>