Connect PrismVox to Prism
The connection has two directions. PrismVox calls Prism to identify callers and run recognized users’ voice conversations. Prism calls PrismVox to administer the phone stack and execute telephony actions. Configure both addresses and both kinds of credential.
Before connecting
Start from working standalone installations and back up their data. The example assumes both projects share one Docker host, the standard project name prismvox, a Prism service token, and a password-protected PrismVox console. The consoles and model providers may keep different defaults.
1. Let Prism join the voice network
In the Prism directory create compose.vox.yml as follows. Start PrismVox at least once so its external network exists. Attach only prism-server to this second network; keep the PrismVox call agent single-homed on agentnet for correct RTP addressing.
services:
prism-server:
networks:
default:
voice:
aliases:
- prism-server
networks:
voice:
external: true
name: prismvox_agentnet
2. Configure Prism → PrismVox
In Prism/.env, add these values. VOX_USER and VOX_PASSWORD must match PrismVox UI_USER and UI_PASSWORD. The service name ui is resolved on the shared voice network; do not use a browser-facing localhost address.
VOX_URL=http://ui:7860
VOX_USER=admin
VOX_PASSWORD=YOUR_PRISMVOX_UI_PASSWORDdocker compose -f docker-compose.yml -f compose.vox.yml up -d --no-deps prism-serverIf you already use additional Compose overrides, include them as well and keep this complete file list for later updates. For a nonstandard project name, replace prismvox_agentnet with that project’s real network name.
3. Configure PrismVox → Prism
In PrismVox/.env, set the internal API root, the same PRISM_TOKEN as Prism, and the address users open in their browser. A service token is privileged; never use a human account password as its replacement.
PRISM_URL=http://prism-server:8080
PRISM_TOKEN=YOUR_PRISM_SERVICE_TOKEN
PRISM_PUBLIC_URL=http://localhost:48080The public URL above is for a local browser. Use your actual HTTPS Prism URL for remote users. During a period with no active calls, apply the new environment in the PrismVox directory:
docker compose up -d --no-deps agent ui4. Configure identities and the phone model
In Prism, set a test user’s Phone and Incoming transfers in their Profile. In Admin → Telephony, verify the directory, switchboard persona, public voice knowledge and speech settings. Conversation model — recognised callers can use a dedicated fast model from the configured AI sources without changing the web model.
Recognized callers get their allowed profile and knowledge context, with restricted voice tools. Recognition does not grant terminal, Docker, file, mail or calendar access. Unknown callers remain on the switchboard path; explicitly choose what public knowledge and tools that path may use.
5. Test both directions
- Open Admin → Telephony and check SIP status and provider settings load; otherwise inspect VOX_URL and console credentials.
- Call from the test profile’s number and verify personalized recognition and the selected phone model.
- Call from an unrecognized number and verify it stays in the public switchboard scope.
- Perform a test transfer and leave a test message; verify actual outcomes, not just spoken promises.
Disconnecting and separate hosts
For separate hosts, replace Docker service names with routable trusted addresses and protect the traffic with HTTPS or a private network. The same-host network recipe does not create cross-host routing. To return to standalone PrismVox, clear PRISM_URL/PRISM_TOKEN and recreate agent/ui, then clear Prism VOX_* and recreate prism-server. Review standalone knowledge and directory settings before taking calls again.
What changes when connected
Linking changes who answers and which data source is authoritative. It does not merge databases, directories, model catalogues or web tools. The following routing applies to phone calls.
| Caller | Conversation model | Knowledge and actions |
|---|---|---|
| CallerStandalone inbound | Conversation modelPrismVox standard model | Knowledge and actionsLocal enabled knowledge collections and MCP tools, plus telephone actions. |
| CallerLinked, unknown caller | Conversation modelPrismVox standard model and switchboard persona | Knowledge and actionsPrism’s selected public voice collection; enabled PrismVox MCP tools and telephone actions. |
| CallerLinked, recognized caller | Conversation modelPrism voice model for recognized callers | Knowledge and actionsTheir profile, memory and permitted knowledge; restricted voice tools, without inheriting web MCP/custom tools. |
| CallerOutbound mission | Conversation modelPrismVox on-call model | Knowledge and actionsThe mission and permitted MCP/telephone actions; no inbound knowledge search. |
Where to maintain each setting
- Prism Admin → Telephony manages the connected phone stack through its protected API. The standalone console redirects to Prism; it is not a second independent operator console.
- Incoming transfer directory: Prism user profiles. Local PrismVox contacts remain for outbound missions; there is no automatic two-way directory synchronization.
- Unknown-caller knowledge: select one collection in Telephony. Choose material that may be read aloud to external callers. Local PrismVox collections are not combined with it.
- Recognized-caller model: Conversation model — recognised callers uses a configured Prism source. Changing it does not change the web default or the models for unknown callers and outbound missions.
- Speech, SIP and call-control micro-tasks remain in PrismVox. The standalone model connection is still required for those tasks and unknown callers.
Phone identity and restricted actions
Prism recognizes a caller by matching the presented number with a profile. This supplies personal context, not the full web toolset. Voice actions include knowledge search, transfers, message taking and ending the call; recognized users can also save personal facts. Shell, Docker, file, email, calendar and arbitrary MCP/custom tools are not granted by recognition. Use a trusted operator connection for presented identities.
Ask Prism to place a call
The web agent gains place_call, list_calls and cancel_call when PrismVox is available. Give a complete mission and an authorized test recipient. Inspect the resulting summary: done means the call finished, not that the mission succeeded. Only a pending call can be cancelled. These tools are admins-only by default in shared mode.
Call the test reception contact and ask whether a delivery is possible tomorrow morning. Do not confirm an order. Report the answer and the outcome.
The SIP line stays in PrismVox
Prism supplies context and orchestration; Asterisk in PrismVox registers the single Centrex line, carries audio and performs call transfers. Connecting Prism does not turn it into a SIP server or require publishing either administrative console on the Internet.