V-Spark Online Help

Using Callbacks in V‑Spark

V‑Spark uses the HTTP POST method to provide transcripts that have been enriched with analytical annotations to a callback server. This callback server is a client-side HTTP server used to receive information from a known source and process it appropriately.

In the simplest case, the callback server is configured to receive enriched transcript files from V‑Spark and save them to a local file system for later use. The URL that identifies this folder supports the HTTP, HTTPS, Secure FTP, and Amazon Simple Storage Service protocols for on-premise deployments, as well as being able to write to the filesystem of the server on which V‑Spark is running. Cloud-based deployments only support HTTP. Otherwise, the API is the same for both on-premise and cloud-based deployment methods. See Configuring Callbacks in V‑Spark for detailed information about how and where to specify these.


If V‑Spark cannot deliver results to a callback URL, it retries up to 100 times (by default) or for up to 10,000 hours before giving up. To avoid overloading the server and network, the callback worker waits for an increasing amount of time between retries. If the delivery ultimately fails, V‑Spark places the results that it was trying to deliver in the /var/lib/vspark/error/callback/ directory.

The number of times that callbacks are retried is configurable. The location of the error directory is also configurable.

Using callbacks to deliver enriched transcript (and other) files to a callback server can occasionally result in name collisions. A name collision results when files with the same name as the file that is currently being processed already exist on the callback server. This can occur when, for example, two folders have the same callback settings and files with the same name are uploaded to those folders for transcription. V‑Spark's callback mechanism automatically resolves name collisions. Files that are delivered via callbacks automatically insert version number in file names to avoid name collisions. For example, if a file named sample.json already exists in the location where a callback writes files, the JSON file that the callback writes will be named sample.1.json. If both a file named sample.json and a file named sample.1.json already exist in the location where callbacks write files, the JSON file that the callback writes will be named sample.2.json. The number will increment until no file with a matching name is found.


Callbacks that use the File system, SFTP, and AWS S3 callback delivery methods automatically avoid name collisions. Name collisions in callbacks that use the HTTP and HTTPS callback delivery methods will overwrite existing files.

By default, callbacks send transcription output from V‑Spark's speech recognition engine to V‑Spark on the same host for analysis and presentation within the V‑Spark graphical interface. The callback server URL can be customized to enable feeding data from V‑Spark to other applications for purposes such as performing additional analytics, archival, and so on.