Three months.Thatās how long many teams spend building telephony infrastructure before writing a single line of actual conversation logic for an AI voice agent.Not because the AI was hard.Because telephony is brutal.Today, weāre open-sourcing the solution so you donāt have to go through the same pain.The Hidden Problem with AI Calling AgentsBuilding an AI calling agent sounds straightforward:Use an LLMAdd speech-to-textAdd text-to-speechConnect it to a phone numberIn reality, thatās where most teams hit a wall.To make real phone calls, you end up dealing with:SIP trunks & PSTN providersLow-latency, bidirectional audioReal-time orchestration of STT, LLM, and TTSCall state, interruptions, transfersScaling, monitoring, recordings, persistenceThe result?Most teams spend weeks or months on infrastructure before they ever touch the conversation itself.We did too. And eventually asked:āWhy is building voice AI still this hard?āIntroducing SiphonSiphon is an open-source Python framework that handles the telephony complexity for you, so you can focus on building great conversations.Hereās what a complete AI receptionist looks like with Siphon:from siphon.agent import Agent
from siphon.plugins import openai, cartesia, deepgram
agent = Agent(
agent_name="receptionist",
llm=openai.LLM(model="gpt-4"),
tts=cartesia.TTS(voice="helpful-assistant"),
stt=deepgram.STT(model="nova-2"),
system_instructions="""
You are a friendly receptionist for Acme Corp.
Help callers schedule appointments or route them correctly.
"""
)
if __name__ == "__main__":
agent.start()
Run this, and your agent can answer real phone calls via any SIP provider (Twilio, Telnyx, etc.).What Siphon Handles for Youš SIP & PSTN connectivityWorks with any SIP provider, no FreeSWITCH pain.ā” Real-time audio pipelineBuilt on LiveKit with streaming audio and sub-500ms voice-to-voice latency.š¤ AI orchestrationPlug-and-play support for LLMs, STT, and TTS.Swap providers with a single line: llm=anthropic.LLM(model="claude-3-5-sonnet")š Production-ready by default Auto-scaling, call recordings, transcripts, state handling, and observability.Quick StartInstall:pip install siphon-aiCreate an agent:from siphon.agent import Agent
from siphon.plugins import openai, cartesia, deepgram
agent = Agent(
agent_name="my_first_agent",
llm=openai.LLM(),
tts=cartesia.TTS(),
stt=deepgram.STT(),
system_instructions="You are a helpful assistant.",
)
agent.start()Thatās it.Your agent is live and answering phone calls.(Full setup, outbound calling, and advanced examples are in the docs.)Why We Open-Sourced ItWe couldāve kept Siphon proprietary or turned it into a closed SaaS.But we believe voice AI shouldnāt be locked behind massive infrastructure effort.Siphon is:Apache 2.0 licensedProvider-agnosticFully self-hostableNo vendor lock-inUse it commercially, modify it, or build on top of it.What You Can Buildš Customer support agentsš
Appointment schedulingš¼ Sales qualificationš Surveys & feedback collectionš„ Healthcare intake systemsIf it involves phone calls and conversations, Siphon handles the hard parts.Get Involvedā GitHub: https://github.com/blackdwarftech/siphonš Docs: https://siphon.blackdwarf.in/docsš Issues & feature requests welcomeš¤ PRs encouragedWeāre building Siphon in public and would love community feedback.If youāve ever thoughtāI wish building AI calling agents was simplerāā give Siphon a try.Built by BLACKDWARFMission: Democratize complex technologies for developers.