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_PASSWORD
docker compose -f docker-compose.yml -f compose.vox.yml up -d --no-deps prism-server

If 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:48080

The 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 ui

4. 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.

CallerConversation modelKnowledge and actions
CallerStandalone inboundConversation modelPrismVox standard modelKnowledge and actionsLocal enabled knowledge collections and MCP tools, plus telephone actions.
CallerLinked, unknown callerConversation modelPrismVox standard model and switchboard personaKnowledge and actionsPrism’s selected public voice collection; enabled PrismVox MCP tools and telephone actions.
CallerLinked, recognized callerConversation modelPrism voice model for recognized callersKnowledge and actionsTheir profile, memory and permitted knowledge; restricted voice tools, without inheriting web MCP/custom tools.
CallerOutbound missionConversation modelPrismVox on-call modelKnowledge 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.