PLXY AI Call Center scenario engine — runs call flows and drives the ASR, LLM and TTS providers
119
Scenario engine of the PLXY AI Call Center. One session per live call: it resolves which scenario the dialled number maps to, walks the flow node by node, and calls the AI providers — speech-to-text, language model, text-to-speech — to actually hold the conversation.
Part of a five-image platform that answers calls from a SIP trunk, runs an AI conversation, and transfers to a 3CX agent when the flow says so.
📖 Deployment guide · Configuration reference
plxy-voice-gateway ──WebSocket (one per call)──▶ plxy-callbot-worker
│
REST (internal token) ▼
plxy-callbot-api
▲
AI providers ─┘ (ASR · LLM · TTS)
| Port | Purpose |
|---|---|
29192 | Session WebSocket — the voice gateway opens one per call, inbound from the DMZ |
| Variable | Required | What it is |
|---|---|---|
API_BASE_URL | ✅ | Control plane URL (http://callbot-api:29092 inside the stack) |
VGW_BASE_URL | ✅ | Voice gateway URL — rendered speech is uploaded to its media spool |
AI_PROVIDER | Fallback provider for every capability. Default simulator | |
AI_LLM_PROVIDER / AI_TTS_PROVIDER / AI_ASR_PROVIDER | Override one capability at a time | |
OLLAMA_BASE_URL / OLLAMA_MODEL | On-premise LLM. Reachable from this container | |
AZURE_SPEECH_REGION / _VOICE / _LOCALE | Speech provider. Locale defaults to km-KH | |
LLM_MAX_STEPS | Model turns one call may take. Default 4 | |
LLM_MAX_TOKENS_PER_CALL | Default 20000 | |
LLM_MAX_SECONDS_PER_CALL | Default 30 |
AI_PROVIDER alone makes providers mutually exclusive, which is rarely what you want — an
on-premise LLM with a hosted speech pair is AI_LLM_PROVIDER=ollama while AI_PROVIDER stays on
the bundled default. The per-call ceilings above are closed by default and have no "unlimited"
value: a bigger number is how you ask for more.
The bundled simulator provider is deterministic and needs no credentials — it exists so a fresh
deployment can complete a real call before you sign a single AI contract.
Read from mounted files, never the environment:
INTERNAL_API_TOKEN_FILE · VGW_CONTROL_TOKEN_FILE · VGW_WORKER_TOKEN_FILE ·
AZURE_SPEECH_KEY_FILE
Sessions are connection-scoped and hold no shared state, so this scales out freely. The stack
runs two by default (WORKER_REPLICAS).
This image is one service of a stack. Deploy the whole platform with the published Swarm stack files:
git clone https://github.com/SengPhirum/PLXY_AICC.git && cd PLXY_AICC
deploy/swarm/secrets-init.sh callbot prod
TAG=0.1.0 deploy/swarm/deploy.sh callbot prod
Full walkthrough: https://sengphirum.github.io/PLXY_AICC/setup-guide
latest tracks the newest release. Pin the version tag (0.1.0) in production, and use the
same tag for all five images — they ship as one set.
plxy-callbot-api ·
plxy-callbot-ui ·
plxy-voice-gateway ·
plxy-voice-gateway-media
Content type
Image
Digest
sha256:8a73ed20c…
Size
116.5 MB
Last updated
about 1 month ago
docker pull phirumseng/plxy-callbot-worker