Crisp.chat
Messaging
Shared customer history and chat AI knowledge.
Ringover
Telephony
Cloud telephony provider connector.
Twilio
Telephony
Programmable voice and media streams.
Telnyx
Telephony
SIP and programmable voice provider.
Plivo
Telephony
Voice API provider connector.
Aircall
Contact center
Contact-center call routing.
8x8
Contact center
Enterprise voice platform.
OpenAI
AI provider
Realtime voice, reasoning and TTS.
Google Gemini
AI provider
Multimodal reasoning models.
Anthropic Claude
AI provider
Reasoning models for agent logic.
Credentials are stored as server-side secrets (CRISP_IDENTIFIER and CRISP_KEY) and are never exposed to the browser. Knowledge synchronisation and conversation intelligence are separate operations.
Any provider (Twilio, Telnyx, Plivo, Aircall, Ringover or SIP) implements the same capability contract. The core application makes no vendor-specific assumptions.
Setup — Ringover
- Map a phone number to an agent below.
- In Ringover, activate Connectivity for the test number only, then paste this SIP destination into its external SIP routing field:
(OpenAI SIP URI is not configured yet)Transport Type must be TLS and the port must be 5061 — OpenAI does not accept UDP/TCP on 5060. Leave Login, Password and Custom Headers blank. After saving, delete the Call queue step so the flow is Start → SIP endpoint → Hangup.
OpenAI also requires SRTP (encrypted media). If the carrier sends plain RTP, the INVITE is rejected before this app is ever notified — the caller hears ringback, music or voicemail and no OpenAI event appears in the log below. That means the carrier, not this app, has to be fixed.
- In the OpenAI project webhook settings, add this URL:
/api/public/telephony/openai-sip - In Ringover webhook settings, add this URL for call events (hangup), replacing
YOUR_SECRETwith the value you saved as the Ringover webhook secret:/api/public/telephony/ringover?token=YOUR_SECRET
Calls are answered with the mapped agent's full configuration (instructions, languages, greeting, voice, speed). Knowledge search is browser-test only for now — a live phone call cannot be answered by a serverless monitor, so phone sessions are tool-free.
Ringover does not issue a webhook signing secret, so the shared token travels in the URL above. The Ringover API key is optional — it is not used by the call flow yet.
| Provider | Number | Label | Agent | Last call | Enabled | Remove |
|---|---|---|---|---|---|---|
| No numbers mapped yet. | ||||||
Recent phone calls
(auto-refreshes every 10s)| Started | Caller | Agent | Status | Duration |
|---|---|---|---|---|
| No phone calls have reached the AI yet. | ||||
Webhook events log(auto-refreshes every 10s)
Ringover Connectivity sends the test number's call audio to OpenAI. This log records webhook delivery; Recent phone calls shows whether the AI answered.
| Received | Provider | Event | Details |
|---|---|---|---|
| No webhook events received yet. | |||
Every AI Voice interaction creates or updates a single conversation in the customer workspace, carrying the transcript, call summary, duration, language, knowledge citations and escalation state. The same conversation is reused for its whole lifecycle, so escalation never creates a duplicate.
Sync AI Voice conversations
When off, sessions are stored locally but nothing is written to the workspace.
Attach full transcript
Adds the conversation transcript as private notes.
Attach knowledge citations
Lists which knowledge sources the AI used to answer.
Loading inboxes from Crisp…
Loading inboxes from Crisp…
Optional operator the handoff is assigned to.
Browser tests use a test identity; telephony calls will match by phone number, then email, before creating a profile.
No voice sessions recorded yet — run a browser test on an agent.