The repository contains all the code necessary to deploy the public voice exchange as well as all the code necessary to run a local copy on a single machine. It is the code the public voice exchange is currently running, though the cloud based voice network is composed of several servers.
The repository is broken up into general areas of responsibility as follows.
Code in the api/ directory handles the public facing API calls. These are simple Python CGI scripts which accept and validate the input and then in most cases the data is relayed on to a producer farm.
The only time this is not the case is when the API CGI code is configured to produce immediately, in which case the transcription is produced by the CGI script itself.
A producer farm is a publically accessible endpoint which can accept incoming socket requests on a well known URI and port. The code in this directory provides the socket relay function by dispatching two distinct types of sockets; consumers and producers.
Producer nodes are technically any endpoint that can transcribe, either STT or TTS. The code in this directory is the code the pull producer nodes run. It connects to a producer farm at a well know location and port and waits for requests to be pushed to it using a standard socket.