Tel-Agent README

The project's README from github.com/Dpro-at/Tel-Agent. As one markdown file: README.md.

Tel-Agent

AI phone assistant

Connect any phone line to any AI model. Self-hosted, bring your own keys.

Call    Landline    Web chat    SMS    Email    WhatsApp    Telegram    Messenger    Instagram    Discord    Slack

Microsoft Teams    Signal    Viber    Google Chat    Mattermost    Matrix    IRC    LINE    WeChat    WeCom    QQ    DingTalk    Feishu / Lark    iMessage

Connect them over MCP — and get full control.

Works with OpenAI, Claude, Gemini, Mistral, Ollama, Perplexity, Copilot, Manus, DeepSeek, Grok, Qwen, Groq and OpenRouter

Product of the day - 1st

DSGVO & GDPR compliant EU AI Act compliant

License: AGPL v3 Status: alpha Release

tel-agent.com · maintained by Dpro GmbH, Vienna


What it is

Tel-Agent is an open-source gateway that sits between a phone line and an AI agent.

A call arrives over SIP. Tel-Agent checks the caller against your routing rules and either passes it through to a human, blocks it, or hands it to an AI agent. The agent speaks with the caller in real time, can invoke tools — transfer the call, take a message, check a calendar, call any HTTP endpoint — and every call is recorded, transcribed, and searchable.

It runs on your own hardware, on your own LAN, with your own API keys.

The same agent handles phone calls and answers on web chat, SMS, email, WhatsApp, Telegram, Messenger, Instagram, Discord and Slack — connected with your own credentials from each platform, never a shared application of ours. The official channel scope now covers 24 channels including the phone, with additional channels built on the extension contract. A channel is a route a customer uses to reach you; a system you run your own business on is an integration, and those are reached through webhooks and the HTTP tool.

What it is not

Why it exists

Well-funded closed products already do "AI receptionist for business". What does not exist is a good open, self-hosted one — where you own the recordings, choose the models, and decide which callers ever reach the AI at all.


Project status

Alpha. Native installers and container images are available today. Choose a platform on the download page, or get the packages from the releases page: a Windows installer, macOS packages for Apple Silicon and Intel, DEB and RPM packages for Linux, and a docker-compose.release.yml that pulls the published images. The installers are unsigned while code signing is not yet configured, so the operating system will ask once before it runs.

What works now. A conversation is answered end to end: the reply streams token by token, can be interrupted mid-sentence, is stored, and raises a notification so a person knows someone wrote in. The phone implementation includes streaming speech recognition and synthesis, interruption handling, caller-ID routing, and stored call transcripts through the SIP/LiveKit transport. Twilio integration handles SMS with customer-owned credentials. The core messaging channels are wired — web chat, WhatsApp, Telegram, Messenger, Instagram, Discord, Slack, email and SMS — and the dashboard serves them from a real API: sign-in and the account flows, home, the conversation archive, the notification tray, contacts, assistants, knowledge, the catalogue, apps, numbers, routing rules, backups, system health, settings and workspaces. The product speaks five languages: English, German, Arabic, Spanish and Dutch.

What is being added now. A second wave of channels, one issue each under the channel label: Microsoft Teams, Signal, Viber, Google Chat, Mattermost, Matrix, IRC, LINE, WeChat, WeCom, QQ, DingTalk, Feishu / Lark and iMessage. They share one declarative setup contract (#220), so each new channel is a definition plus a transport rather than a fork of the last one. More translations are open as good first issues.

Deployment. The Windows installer starts the local service and opens the dashboard in your browser. Native macOS and Linux packages and Docker images provide the other installation paths. Phone and messaging connections use your own provider credentials; configure the channels you want to use in your installation.

The full plan, and what each milestone means, is in docs/ROADMAP.md. Watch or star the repository to hear when a release lands.


Architecture

Layer Choice
Voice agent Python + LiveKit Agents
API Python + FastAPI
Frontend Next.js + React
Database SQLite by default; PostgreSQL is also supported
Cache / queue Redis
Reverse proxy Caddy — automatic HTTPS
Packaging Windows installer, macOS packages, Linux DEB/RPM and Docker Compose

Providers for v1: Deepgram (STT) · one cloud LLM · ElevenLabs (TTS). Local models (Ollama, Whisper, Piper) follow in v1.1 — they need a GPU to hold a natural conversation, so they are not the default.

Latency target: under 800 ms from the end of caller speech to the first audio out. Everything streams; the first sentence starts speaking while the rest is still being generated.


Quick start

git clone https://github.com/Dpro-at/Tel-Agent.git
cd Tel-Agent
cp .env.example .env
# set ENCRYPTION_KEY in .env - generate one with: openssl rand -hex 32
docker compose up -d --build

Then open http://localhost:38471. The first visit creates the administrator — there are no default credentials. The API and its documentation are on http://localhost:38472/docs, and conversations live on the tel-agent-data volume (SQLite by default; a postgres profile is in docker-compose.yml).

Every tagged release also publishes the images to GitHub Container Registry, so the build step can be skipped entirely: docker compose -f docker-compose.release.yml up -d — same layout, same volumes, interchangeable with the from-source file on one machine. If you would rather not run Docker at all, the releases page has native installers for Windows, macOS and Linux.

Both ports are published on loopback only. Reaching the installation from other machines is a decision made in .env — the TEL_AGENT_* block there lists the three values to change and why the dashboard image is rebuilt for it. On a server, put a reverse proxy terminating TLS in front instead.

Running it without Docker stays supported and documented — contributors need to run the code without rebuilding an image on every edit. See CONTRIBUTING.md for the manual run, docs/SPEC.md for the full design and CLAUDE.md for the development rules.

Requirements for the phone channel

Your line What you need Extra hardware
A PBX — 3CX, Asterisk, FreePBX An extension on it None
A landline from an ISP These are IP-based now. Either the provider gives you SIP credentials, or your router acts as a SIP registrar and you register against it — common with Fritz!Box in Austria and Germany None
A genuinely analog line — old copper, a fax line An ATA to bridge it, e.g. a Grandstream HT801 ~€30

Tel-Agent only ever speaks SIP. That is deliberate: supporting telephony hardware directly is a project of its own, and an ATA solves it for about the price of a cable.


Security notes


Contributing

New here? docs/ONBOARDING.md is the hour-long path from a fork to a merged pull request — a translation, one file, no setup and no API keys. Thirty languages are sitting at 0% and any language you actually speak is welcome.

Contributions are welcome. Check the open issues and the channel extension contract before starting a feature, and keep each pull request focused on one concern.

All contributors must sign the CLA before their first pull request is merged. Read CONTRIBUTING.md before opening one. Everything in the repository — code, comments, commit messages, documentation — is written in English.

Built with Antigravity and Codex

Working with an AI coding agent? Point it at AGENTS.md — Codex, Antigravity and the rest find it on their own. CLAUDE.md is the full working contract; every other entry file in the repository is a pointer to those two, so the rules cannot drift apart.

Found a security problem? Do not open a public issue — see SECURITY.md.


License

AGPL-3.0. Copyright © Dpro GmbH.

If you run a modified version of Tel-Agent as a network service, you must publish your modifications. The free version is never crippled; it is the product.

For a commercial license permitting closed-source integration, contact Dpro GmbH at [email protected].

Dpro GmbH · Wipplingerstraße 20/18, 1010 Wien, Austria · FN 631492s, Handelsgericht Wien

Tel-Agent (Dpro-at/Tel-Agent)

Searching Database…

这是什么?Tel-Agent 是一个开源、自托管的网关,把电话线路接入 AI 智能体:来电通过 SIP 到达,按你的路由规则检查后,要么转给真人,要么被拦下,要么交给 AI 处理——AI 能转接电话、记录留言、查看日历或调用任意 HTTP 端点。每通电话都会被录音、转写,并可搜索。
这是用来替换我现有电话系统的 PBX 吗?不是,它作为一个分机接入你现有的 PBX(3CX、Asterisk、FreePBX),而不是取而代之,而且它只讲 SIP(真正的模拟线路需要用 ATA 桥接)。
怎么让它跑起来?最快的方式是 'docker compose -f docker-compose.release.yml up -d',它会拉取已发布的镜像,省去从源码构建;releases 页面上还提供 Windows、macOS(Apple Silicon 和 Intel)和 Linux(DEB/RPM)的原生安装包。
要真正接上一条真实电话线路需要什么?你需要 STT、LLM 和 TTS 提供商的 API 密钥(用本地模型则需要 GPU)、一台与 PBX 同处一个局域网的机器、对 PBX 的 5060/UDP 网络访问以及一段开放的 RTP 端口范围,还有一个 SIP 端点(你的 PBX、基于 IP 的座机,或接真模拟线路用的 ATA)。
它现在能用于真正的生产环境吗?项目还处于 Alpha 阶段。原生安装包和 Docker 镜像目前都能用,但因为还没配置代码签名,安装包目前没有签名,操作系统首次运行它们时会弹出警告。
它只能在 Docker 里跑吗?不是——除了 Docker Compose,还有 Windows、macOS(Apple Silicon 和 Intel)的原生安装包和 Linux 的 DEB/RPM 包,也支持不用 Docker 直接从源码运行。
我的通话数据和 API 密钥最终会到哪儿?一切都运行在你自己的硬件和局域网上,用的是你自己的提供商密钥;服务器默认只监听 127.0.0.1,首次运行要求设置密码,API 密钥静态加密存储,且永远不会完整返回给客户端。
AGPL 许可证有什么要注意的?它是 AGPL-3.0:如果你把修改版 Tel-Agent 当作网络服务运行,就必须公开这些修改。需要闭源集成的话,可以向 Dpro GmbH 获取单独的商业许可。
同一个 AI 智能体除了接电话还能干别的吗?可以——同一个智能体还能处理网页聊天、短信、邮件、WhatsApp、Telegram、Messenger、Instagram、Discord 和 Slack,各平台使用你自己的凭据,官方范围内共有 24 个渠道。
能接老的模拟电话线路吗?可以,用一个 ATA(例如 Grandstream HT801,约 €30)把模拟线路桥接到 SIP,因为 Tel-Agent 本身只讲 SIP,没有原生模拟支持。
通话中 AI 的响应有多快?延迟目标是从来电者说完到第一段音频输出不超过 800ms,而且响应是流式的,第一句话开始播放时其余内容还在生成。
可以用本地 AI 模型代替云 API 吗?本地模型(Ollama、Whisper、Piper)计划在 v1.1 支持,但目前还不是默认选项,因为要维持自然的实时对话需要 GPU;v1 自带 Deepgram、一个云端 LLM 和 ElevenLabs。
Creator
Dpro-at
Size
5.4 MB
Stars
1.1K
Age
2mo
Commits · 90 Days