voicemaster
Real-time AI phone calls. A caller (or a person being called) talks to a Gemini Live assistant over a Vobiz or Twilio phone line. The library is the whole calling engine: the HTTP routes the telephony provider calls, the live audio stream in both directions, the Gemini Live session, the tools the assistant may use (end the call, transfer it, search the customer's documents), and the signed reports of how each call went.
pip install voicemaster
python -m voicemaster.server # Vobiz at /vobiz/..., Twilio at /twilio/..., one port (PORT, default 8760)
Settings (environment variables)
| Variable | Default | Meaning |
|---|---|---|
PUBLIC_URL |
– | This server's public address ending in /vobiz (Vobiz). |
TWILIO_PUBLIC_URL |
– | The same, ending in /twilio (Twilio). |
API_TOKEN |
empty | If set, POST /start and POST /calls/{id}/config need the header x-api-token. |
EVENTS_URL, EVENTS_SECRET |
empty | Where call reports go, and the secret that signs them (HMAC-SHA256). |
KNOWLEDGE_SEARCH_URL |
derived from EVENTS_URL |
Where the search_knowledge tool asks for passages. |
MAX_CONCURRENT_CALLS |
10 | Calls accepted at once. |
RECORD_CALLS, RECORD_FORMAT, RECORD_MAX_LENGTH_SECONDS |
false, mp3, 300 | Recording (a call is recorded only if this and the call both ask). |
GEMINI_LIVE_MODEL |
gemini-3.1-flash-live-preview |
The Gemini Live model. |
TIME_CONTEXT_TIMEZONE |
Asia/Kolkata |
Time zone of the "what time is it" line given to the model. |
LOG_LEVEL, LOG_DIR |
INFO, logs |
Logging; files rotate at 50 MB and are kept 14 days. |
The library never loads a .env file; load it yourself (dotenv.load_dotenv()) before importing voicemaster.
Calling credentials (Vobiz / Twilio accounts, the Gemini key, the assistant's prompt) arrive per call, never from settings.
Building blocks
from voicemaster.request import VOBIZ, parse_call_request # check a POST /start body
from voicemaster.tools import build_tools # end_call / transfer_call / search_knowledge
from voicemaster.live import live_config # the Gemini Live settings for a call
from voicemaster.call_events import sign # the HMAC signature of a report
See voicemaster/__init__.py for the full map of modules.
Metadata
Release files for voicemaster 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| voicemaster-0.1.0.tar.gz | 80.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| voicemaster-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 150.7 kB
Release files / voicemaster-0.1.0.tar.gz
| Download URL | voicemaster-0.1.0.tar.gz |
|---|---|
| Size | 80.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ed1562b5e3b791008ad27898b5c76b324f5ceab4ec39ce01d81227d641ca7a0a
|
|
BLAKE2b-256 checksum How to use checksums |
1ddfacd32429d2ad55d559cc3a855ab6cd32704247acd1d79a88c111e236a62d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|
Release files / voicemaster-0.1.0-py3-none-any.whl
| Download URL | voicemaster-0.1.0-py3-none-any.whl |
|---|---|
| Size | 70.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e5eb0af3f218c10f85120ec15cd77096df70fc03cddc56bac4b4d089e8013da8
|
|
BLAKE2b-256 checksum How to use checksums |
70c6df53e30dea0887703a690617afbff4b0089464f4b48034fbf83bc9436aa9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|