A voice AI agency's tech stack has five layers. They are telephony, speech-to-text, a language model, a voice and the platform that runs the call. Pick one stack per budget and keep model costs on their own lines. Dograh, the open-source AI voice agent platform we build, works with your carrier and your model keys, self-hosted or on Dograh Cloud.
Key Takeaways
- Keep model costs on separate lines from the platform fee.
- In our example, the voice costs more than speech-to-text and the model together.
- Start on managed models, move to each client's keys, then to your own servers.
This post is part of our guide to starting an AI voice agent agency, where the stack sits under one client's bill and the pricing built on it. Below, we cover each layer and its bill, the carriers Dograh connects to, model costs per minute, and three stacks by budget.
Five layers, and who bills each
Every agent call runs on five layers, and each layer sends its own bill unless a platform bundles them. The carrier carries the call and rents the number. Speech-to-text turns the caller's words into text, the language model writes the reply, and the voice speaks it. The platform holds the call flow together.
That last layer is where Dograh sits. As the orchestration layer, it runs the call flow, the tools and the phone connection, while the speech and language models are a separate layer you pick. Keeping those two layers apart in your head, and on your invoices, is what lets you swap a model for one client without touching the others.
Telephony: carriers and SIP trunks
The phone line comes from a carrier account or from a client's own SIP trunk. Dograh connects to Twilio, Telnyx, Plivo, Vonage, Exotel and Cloudonix, and a self-hosted install can also reach a client's own Asterisk server through Asterisk ARI. If the agent hands calls to the client's staff, pick Twilio, Telnyx, Plivo, Cloudonix or Asterisk ARI, the providers where Transfer Call works.
The per-minute line is small but never zero. Twilio charges $0.0085 a minute for an inbound call to a US local number, plus $0.0044 a minute for the media stream that carries the audio to the agent, and a local number rents for $1.15 a month. Telnyx Call Control starts at $0.002 a minute plus a SIP trunking rate, $0.0032 a minute inbound in the US, with a local number at $1.00 a month.
For an agency, the best carrier is often the one the client already pays. A client with a SIP trunk or phone system can bring it, which keeps its numbers in its own name. Our Telephony 101 for voice AI compares carriers, SIP trunks and how numbers connect.

Model costs, kept apart from the platform
Model costs belong on their own lines, because they are the ones that change from client to client. The table uses one example call: five minutes, 12 exchanges, a 2,000-token prompt sent again every turn and about 37 words from the agent each turn, which is about 480 characters of speech a minute.
| Layer | Example model | List price | Per minute in this example |
|---|---|---|---|
| Speech-to-text | Deepgram Nova-3, one language | $0.0077 a minute | $0.0077 |
| Speech-to-text | Deepgram Nova-3, multilingual | $0.0092 a minute | $0.0092 |
| Language model | gpt-4.1-mini | $0.40 in, $1.60 out per million tokens | $0.0025 |
| Language model | gpt-5-mini | $0.25 in, $2.00 out per million tokens | $0.0017 |
| Voice | ElevenLabs Flash | $0.04 per 1,000 characters | $0.0192 |
| Voice | ElevenLabs Multilingual v2 | $0.08 per 1,000 characters | $0.0384 |
| Voice | Deepgram Aura-2 | $0.030 per 1,000 characters | $0.0144 |
Speech-to-text and Aura-2 are at Deepgram's rates, and the language model at OpenAI's.
Flash and Multilingual v2 are at ElevenLabs' rates. The language model line works out per call first: 29,250 input tokens and 600 output tokens on gpt-4.1-mini come to $0.0127 for the five minutes.
The voice is the line that grows fastest, and speech-to-text is usually the slowest part of each turn, so pick those two with the most care. The platform sits apart from all of these. Self-hosted Dograh has no per-minute platform fee, but servers, model keys and phone minutes still cost money. Dograh Cloud charges a 1¢-a-minute platform fee. The fee is the same for every model you choose. Our breakdown of what an AI voice agent costs per minute adds the three lines up across platforms.
Open Source Alternative to Vapi / Retell
Self-hosted voice agent platform — no per-minute fees
dograh-hq/dograh
Star on GitHub
Starter stack for your first clients
For the first two or three clients, the example starter stack keeps accounts to a minimum. Run the agents on Dograh Cloud with its own managed models, which bill by usage through the same account, so there are no model provider accounts to open. Give each client its own Twilio or Telnyx number, or bring the client's trunk.
This stack is about speed. One team per client on Dograh Cloud keeps each client's agents and numbers apart from day one, and 10 calls at once are included, which covers small offices. The trade is less control over each model line, which is fine while you learn what each client's calls need.
Growing stack with each client's keys
Once a client has steady volume, the example growing stack moves its models onto keys you or the client own. A typical mix is Deepgram Nova-3 for speech-to-text, gpt-4.1-mini or gpt-5-mini for the language model and ElevenLabs Flash or Deepgram Aura-2 for the voice, with the platform still on Dograh Cloud. Each agent gets its own model configuration, so client A's calls bill client A's keys.
Two things go wrong at this stage. Provider limits on calls at once start to bite, and one connection can hold a key pool, several keys that Dograh rotates between, as our post on STT and TTS concurrency limits shows. The voice bill also grows with every minute, and recording the lines the agent says most cuts it, as covered in mixing pre-recorded audio with TTS.
Join the Dograh Community
Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.
Enterprise stack on your own servers
For a client whose calls must stay on its own servers, the example enterprise stack self-hosts everything. Dograh runs on the client's servers or yours, calls arrive from the client's phone system through Asterisk ARI, and the models are open weights on the same machines. The set we recommend is Qwen3.8 27B for the language model and Parakeet TDT 0.6B v2 for speech-to-text, which at about 2 GB fits beside a 4-bit 27B model on one 24 GB card. For the voice, Chatterbox can clone a real person's voice, while Magpie TTS ships five fixed voices under NVIDIA's own open-weights licence.
This is the only tier with full data sovereignty. Using your own keys with hosted models moves the contract, while the audio still reaches each provider. Running open-weight models on your own servers keeps the audio inside. The model line becomes a GPU bill, and the platform line becomes your server time. A self-hosted install runs 10 calls at once by default, a limit you can raise, and your servers and carrier set the real ceiling.
Glossary
- Orchestration layer
- The platform that runs the call: the flow, turn-taking, tool calls and the phone connection. Dograh is this layer, and the speech and language models are a separate layer you choose.
- Media stream
- The live audio a carrier sends from the call to the agent and back. Twilio bills it per minute on top of the call itself, so add it to the phone line when you budget.
- Key pool
- Several API keys for one provider held on one connection, with one picked for each use. It spreads calls across accounts when a single key's limit on calls at once is too low.
- Open-weight model
- A model whose weights you can download and run on your own servers, such as Qwen3.8 27B or Parakeet TDT 0.6B v2. It is the only way to keep call audio fully in-house.

