Telegram voice and MTProto
The Telegram Bot API has no voice calls at all. It can send a voice message or a video note — recordings — but there is no method to place a call, answer one, or join a group voice chat, and no token scope adds one.
Calls live on MTProto, the protocol the regular Telegram clients speak, so taking part means signing in as a user account. Three consequences shape any integration built on it:
- One 1:1 call per account at a time. Telegram itself refuses a second concurrent call, so concurrency needs several accounts or a queue.
- No pre-pickup event. Nothing announces "ringing" and then "answered": the playback call returning normally is the answer signal, while declined, busy, rang-out and cancelled each surface as their own failure.
- Group voice chats are a different shape. The agent joins as a named, visible participant and hears speakers individually. While it sits in one, the account busy-declines personal calls.
With DialogBrain
You do not implement any of the above. Connect a Telegram account once, then a call is one request:
curl -X POST https://api.dialogbrain.com/v1/calls \
-H "X-API-Key: $DIALOGBRAIN_KEY" \
-H "Idempotency-Key: call-9f21c7" \
-d '{"agent_id": 118, "target": "telegram:123456789"}'
target decides where the agent goes: telegram:<user id> for a person,
@group or a t.me link for a group voice chat, new for a fresh conference.
See Calls for the full reference.
The long version
The full write-up — including the three audio-bridging rules we learned from production incidents, and the feed-rate arithmetic that makes a voice tremble — lives on the site: