Vibeleaderboard
Index / agent
Visit github.com
Category
AI Agents
Rank
No. 2158Tools index

Previous survey · No. 2091 ·

Pricing
Open Source
Type
AGENT
Builder
mksglu
GitHub
4 stars
Date

About

AI-powered phone agent for handling voice calls.

What it does

This proof of concept assembles a phone receptionist from FreeSWITCH, a TypeScript bridge, and OpenRouter. Calls arrive through SIP or its browser phone. The bridge records each turn, transcribes it, sends conversation history to a language model, converts the reply into audio, and can transfer callers to a person.

Why it's ranked here

It demonstrates the whole call path instead of stopping at a chatbot demo. SIP handling, browser calling, transcription, conversation state, speech output, transfers, monitoring, and call records are represented. The verdict is mixed because the primary flow is deliberately short and the real-time path still substitutes dummy transcription and a tone for working speech services.

What's good

The repository makes telecom boundaries visible. FreeSWITCH owns signaling and media while the TypeScript service owns dialogue and call state. The browser phone lowers the barrier to local testing. OpenRouter failures fall back to keyword replies, generated speech has a valid silent-audio fallback, shutdown covers all three servers, and per-call JSON records preserve operational context.

Tradeoffs

The turn-based flow records fixed five-second segments and ends after three turns, so conversation cannot feel continuous. Primary speech generation depends on macOS tools, while its fallback may play silence. The streaming path detects speech and moves audio bidirectionally, but transcription is hard-coded to a greeting and speech output is only a short tone. Local WebRTC also requires manual network configuration and has no STUN service.

How to use it well

Use it to learn or prototype the boundary between SIP infrastructure and language-model orchestration on a local macOS development machine. Start with the browser phone, inspect active calls and call records, then replace the streaming speech placeholders before testing realistic traffic. It suits engineers evaluating call flow and transfer mechanics. It does not supply production speech streaming, hosted telephony, or a deployment-ready receptionist service.

Technical notes+

src/index.ts starts the EslServer on port 9090, WsServer on 3001, and Dashboard on 3002 with one shared AiEngine. src/call-handler.ts implements the working record, STT, LLM, TTS, playback, transfer loop with MAX_TURNS set to 3. src/stt-engine.ts copies recordings from the FreeSWITCH container and submits base64 WAV audio to OpenRouter. src/tts-engine.ts invokes macOS say, then tries afconvert, ffmpeg, or sox, with manual silent WAV generation as the final fallback. src/stream-handler.ts has energy-based VAD and buffering, but sttPlaceholder returns "hello" and ttsPlaceholder emits a 440 Hz tone. src/dashboard.ts serves the browser phone, monitoring HTML, and read-only JSON endpoints. package.json defines an ES module TypeScript application with build, development, and start scripts.

Observed

Primary language
TypeScript running on Node.js
Install surface
npm project installed with npm install; FreeSWITCH development environment uses Docker Compose
Call interfaces
Inbound SIP softphone and browser-based WebRTC phone
Service interfaces
FreeSWITCH ESL outbound socket, bidirectional WebSocket audio, and read-only HTTP JSON monitoring endpoints
Platform support
Primary text-to-speech path requires macOS say and afconvert; ffmpeg and sox conversion fallbacks are implemented
External service
OpenRouter provides language-model chat and recorded-audio transcription
Structural observation
The supplied repository tree lists no test directory or test script

Read from README.md, package.json, src/index.ts, src/types.ts, src/ai-engine.ts, src/dashboard.ts, src/ws-server.ts, src/cdr-logger.ts, src/esl-server.ts, src/stt-engine.ts, src/tts-engine.ts, src/call-handler.ts, src/stream-handler.ts, src/transfer-handler.ts.

What it can do

  • Answer incoming phone calls automatically

    Incoming voice callAutomated voice response

  • Convert speech to text during calls

    Caller's voice audioTranscribed text

  • Generate natural language responses to caller questions

    Caller's questions or requestsContextual voice responses

  • Route calls to appropriate departments or agents

    Caller intent and routing rulesCall transfer to designated recipient

  • Schedule appointments or meetings

    Caller's scheduling request and availabilityConfirmed appointment booking

  • Collect and record customer information

    Caller-provided personal or business detailsStructured customer data record

  • Provide automated customer support responses

    Customer support inquiriesRelevant help information and solutions

Tags

phonevoiceai-agenttelephony

Tech Stack

Node.jsTypeScript

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.