Vapi
The assistant object from GET /assistant/:id in the Vapi API, or the assistant JSON from the dashboard. Paste it as it is.
Paste an assistant or agent into the importer and it becomes a MediaSFU agent for that client. Anything that needs your hands, like a transfer number or a booking tool, is listed for you.
Keep the old line answering until the test call on MediaSFU sounds right, then move the number.
Add the same speech-to-text, LLM and voice keys you use today under AI Providers, or start on managed AI.
In the Agents dashboard open Agency Clients, add the client and set what you charge.
Open the client, choose Import, and paste the Vapi assistant or the Retell agent with its LLM. Check what maps, then create.
The importer lists every tool, transfer number and knowledge file to reconnect. Most take a minute each.
Point the client's SIP trunk at MediaSFU under Phone Numbers, attach the agent, and place a test call before switching traffic.
The assistant object from GET /assistant/:id in the Vapi API, or the assistant JSON from the dashboard. Paste it as it is.
The agent from GET /get-agent/:id and its LLM from GET /get-retell-llm/:id, pasted together as { "agent": …, "llm": … }. The prompt lives on the LLM, so include it.
The import runs in your browser. API keys or credential ids in the JSON are ignored; connect providers under AI Providers.
Based on the public API references for Vapi assistants and Retell agents, October 2026.
| Their field | In MediaSFU | Notes |
|---|---|---|
name | Agent name and role | |
model.messages (system) | Instructions (system prompt) | Joined if there are several; MediaSFU keeps up to 4,096 characters. |
firstMessage | First message | {{variables}} become {variables}. |
firstMessageMode | Speaks first | assistant-waits-for-user turns speaking first off. |
model.temperature | Temperature | Values above 1 are lowered to 1. |
endCallMessage, endCallPhrases | Response guidelines | Written as a closing instruction. |
maxDurationSeconds | Maximum session length | 1 to 120 minutes. |
server.url | Webhook | https links only. |
model.tools: transferCall | Listed to finish | Turn on human handoff and set the transfer on the number. |
model.tools (other), toolIds | Listed to finish | Recreate as agent tools: Calendly, Zapier, Composio, webhooks. |
model.knowledgeBase | Listed to finish | Upload the files to the agent's knowledge. |
model.provider / model, voice, transcriber | Shown for reference | Pick the same providers under AI Providers. |
voicemailMessage | Not used | MediaSFU agents don't leave voicemail. |
| Their field | In MediaSFU | Notes |
|---|---|---|
agent_name | Agent name and role | |
llm.general_prompt | Instructions (system prompt) | Known default_dynamic_variables are filled in; others become {variables}. |
llm.states[].state_prompt | Instructions | Each state is added as its own titled block. Read the result through once. |
llm.begin_message | First message | |
llm.start_speaker | Speaks first | user turns speaking first off. |
llm.model_temperature | Temperature | |
max_call_duration_ms | Maximum session length | 1 to 120 minutes. |
webhook_url | Webhook | https links only. |
general_tools: transfer_call | Listed to finish | transfer_destination.number is shown so you can set up the transfer. |
general_tools (other) | Listed to finish | Recreate as agent tools. |
knowledge_base_ids | Listed to finish | Upload the files to the agent's knowledge. |
llm.model, voice_id, language | Shown for reference | Pick the same providers under AI Providers. |
voicemail_option | Not used | MediaSFU agents don't leave voicemail. |
Start free, import one agent, and compare a test call side by side before you move the number.