Open Source VoIP Development and FreeSWITCH Consulting Services

We build custom FreeSWITCH modules, drachtio applications, and Kubernetes-deployed voice platforms for developers that need a working call-processing system, not just open source installation.

What We Provide

FreeSWITCH Development and Open Source VoIP Solutions

Our engineers have worked directly inside the open-source call processing stack, and we know what it takes to help developers turn prototype call-processing systems into production-grade intellectual property.

icon-freeSWITCH-2-1

Custom FreeSWITCH Module Development

We write, patch, and extend FreeSWITCH modules in C – including audio forking via WebSocket for real-time ASR, TTS/ASR integrations (Google, AWS, NVIDIA Riva), SRTP handling, dialplan logic, and custom call control. 
icon-freeSWITCH-2-2

drachtio Architecture and Development

We design and build Node.js-based SIP call-control applications on drachtio-srf, including B2BUAs, SIP proxies, SIPREC recording servers, WebRTC gateways, and load-balancing proxies across FreeSWITCH clusters.

icon-freeSWITCH-2-3

RTPengine Integration and Media Pipeline Design

We handle SDP negotiation, SRTP key management, codec transcoding decisions, and RTP stream correlation (including multi-leg SIPREC recordings) so media flows correctly end-to-end. 

icon-freeSWITCH-2-4

Kubernetes Deployment and Container Architecture

We containerize FreeSWITCH, drachtio, and RTPengine in Docker and deploy them on Kubernetes, including AWS EKS with CloudFormation/CDK, to help your platform scale without breaking calls.
icon-freeSWITCH-2-5

Mid-Project Recovery and Codebase Extension

We step into stalled or orphaned FreeSWITCH and drachtio projects, examine the existing codebase, get development moving again, and create defensible IP for your organization.
icon-freeSWITCH-2-6

SIPREC Call Recording System Implementation

We build SIPREC recording servers using drachtio + RTPengine, tested against Ribbon SBC, Cisco CUBE, OpenSIPS, and Oracle, with post-processing pcap streams to FLAC/WAV, ASR pipeline integration, and encryption at rest on RDS/S3.
Common Development Challenges

Building Production-Grade Call Processing Systems on Open Source

Open-source call-processing platforms are powerful but require deep architectural knowledge and hands-on integration experience. ECG solves the architectural complexity so you can ship a working system.

icon-freeSWITCH-3-1

SIP and RTP Integration Complexity

The interaction between drachtio, RTPengine, and FreeSWITCH is complex. We'll debug issues with packet captures, ng-protocol trace logs, and FreeSWITCH ESL event streams.
icon-freeSWITCH-23-2

Kubernetes Breaks VoIP Assumptions

Devs deploying a VM-based FreeSWITCH into Kubernetes hit broken registrations, one-way audio, and dropped calls. We know how to structure pod networking, service types, and SBC configuration to make it work. 
icon-freeSWITCH-3-3

Duplicate Call Legs and SIPREC Correlation

Service providers using dual SBC setups send multiple SIPREC legs for the same call. We've implemented the deduplication logic in live multi-SBC environments. 
icon-freeSWITCH-3-4

Open Source Gaps Require Custom Code

When you need mod_audio_fork for real-time ASR, a custom Redis pub/sub interface for drachtio, or a Kubernetes operator that understands FreeSWITCH clustering, the community probably hasn't written it yet. We write it. 
icon-freeSWITCH-3-5

Security and Compliance on Open Source Stack

FreeSWITCH, Redis, and PostgreSQL accumulate CVEs. Auditors require patch currency, encrypted data at rest, TLS/SRTP on all media, and evidence of a patching process. We help teams establish and execute that process.
icon-freeSWITCH-3-6

Turning a Working Prototype into Defensible IP

Have a functioning call-processing system but no clean documentation or separation of proprietary logic? We structure the IP, write technical documentation, and position the system for deployment. 

OUR CLIENTS

Trusted by Industry Leaders

Join other organizations that enjoy expert engineering support with ECG.

Maryland_Logo_rgb_white
logo-usdeptofjustice
segra
momentum-logo-white
KPU-Logo-white
freeSWITCH-5-1 (1)
WHY CHOOSE ECG

Open Source Expertise Grounded in Production Experience

We're the open source telecom partner that can write the code, not just install it. 

ECG's engineers have been designing and building voice systems since the mid-1990s. Our team has done real production work on FreeSWITCH, drachtio, RTPengine, Redis, and Kubernetes – not just whiteboard design. When you bring us in, you're getting engineers who have already made the mistakes on their own time so they don't make them on yours, and we'll teach your team to maintain and extend the system after we leave.

Success Stories From Our Clients

ECG is definitely the right team for our network!

Nicole Rodriguez

AVP Switching and Wireless Data Engineering | AT&T Mobility

ECG's broad scope of clients means they know what's happening before we do. We stay competitive with ECG as our guide.

Mark Hayes

VP of Voice Engineering | Momentum Telecom

ECG has really cool technology!

Jeff Pulver

Voice over IP Pioneer

ECG delivers exceptional quality and service via their software products and consulting services. Speaking as someone with direct large scale enterprise delivery with their team, my personal experience has been universally positive.

Joe Pfiefer

Assistant Director | U.S. Department of Justice

I'm happy to say I've partnered with ECG at a number of service providers. You guys have been an outstanding engineering and operations partner for my teams.

Tom Faherty

VP | Databank

ECG is a reliable partner.

Edwin Martirosyan

COO | BluIP

GET STARTED WITH ECG TODAY

Book Your 30-Minute Connect Call

Get in touch with ECG for products and services that support your crucial voice infrastructure needs. 

Experience the ECG Advantage

Whether you’re a service provider, enterprise, or government agency, your voice infrastructure is in good hands with ECG.

_Ñëîé_1

Proven Expertise

Our team has decades of proven experience building and supporting voice networks.

_Ñëîé_1

Powerful Partnerships

Our strategic alliances are designed to help deliver customer-centric, total solutions to our clients.

_Ñëîé_1

Elevated Network Design

We draw from experience with dozens of service providers to create straightforward, manageable designs.

_Ñëîé_1

Comprehensive Support

Our team will assist in your technical projects, support your goals, automate processes, and train your team.

How We Help

Expert Support for Open Source Call Processing Development

Building a production FreeSWITCH solution requires knowing which open source components fit together, what to write from scratch, and how to deploy at scale. That's where ECG comes in.

freeSWITCH-9-1

Call Processing and FreeSWITCH Development

Getting a production-grade open source call processing system built right requires making the right architectural decisions upfront. We help you design the stack, select the right FreeSWITCH vs Asterisk choice or drachtio-based approach, and implement the custom pieces that define your competitive advantage.

  • We design the signaling layer, media layer, state layer, and deployment topology (Docker Compose for dev, Kubernetes/EKS for production) and document the tradeoffs so you understand why each choice was made
  • We develop custom FreeSWITCH modules in C and Node.js SIP applications on drachtio, including audio processing, call control, Kafka/Redis inter-node messaging, and CloudFormation/CDK infrastructure-as-code
  • We establish security and compliance baseline, including TLS/SRTP encryption everywhere, Kubernetes pod security policies, RDS encryption at rest, SIP authentication hardening, and BAA-readiness review
  • We provide architecture diagrams, runbooks, and recorded walkthroughs documenting not just what the system does but why it was designed that way
freeSWITCH-9-2

Troubleshooting and Operational Support for Open Source Platforms

When a FreeSWITCH cluster starts dropping calls, RTPengine loses audio after re-INVITE, or a drachtio application stops processing SIP signaling correctly, you need someone who can read the logs and know what they mean. We will: 

  • Perform packet capture and SIP/RTP trace analysis, correlating multi-leg captures from SBC, drachtio, FreeSWITCH, and RTPengine to find exactly where signaling or media goes wrong
  • Inspect Redis and PostgreSQL state to identify stale call state, miscorrelated legs, and schema issues that cause incorrect routing or recording behavior, tracing calls through the system
  • Diagnose Kubernetes workload issues including pod crash analysis, SIP registration failures from misconfigured service networking, RTP port range exhaustion, and upgrade-related regressions
  • Identify whether problems stem from configuration errors, upstream FreeSWITCH/RTPengine/drachtio bugs, or gaps in your custom code layer, and we fix or work around them while maintaining relationships with upstream maintainers
freeSWITCH-9-3

Open Source VoIP Optimization and Integration

Beyond getting the system running, the real leverage comes from integrating it into AI pipelines, scaling it efficiently, and extending it with proprietary features that create business value. We help you get more out of the stack you've already built by:

  • Connecting FreeSWITCH audio fork modules or RTPengine recordings into speech-to-text pipelines to enable real-time transcription, call summarization, and sentiment analysis on the call stream
  • Right-sizing EKS node groups, implementing call-concurrency-based auto-scaling, and reducing idle GPU costs by tuning Kubernetes scaling thresholds
  • Connecting additional SBCs, adding SIPREC recording paths, implementing STIR/SHAKEN call attestation, and extending Redis-backed routing to support more carriers or enterprise call flows
Frequently Asked Questions

Common Questions About FreeSWITCH Development and Open Source Call Processing 

Get answers to questions about what FreeSWITCH is, how it compares to other open-source platforms, and how to build production call-processing systems on open source.

 FreeSWITCH is an open-source soft switch and media server – a telephony platform that routes calls, processes media, and handles SIP signaling. Unlike proprietary phone systems, FreeSWITCH gives you complete control over the source code, so you can customize every aspect of call processing.

ECG has deployed FreeSWITCH for service providers building carrier-grade platforms, enterprises building custom voice applications, and companies integrating voice into AI workflows. 

Both are open-source VoIP platforms, but they're architected differently. Asterisk is older and has a larger ecosystem of add-on modules, but it's more monolithic. FreeSWITCH has a cleaner modular architecture where you can plug in different signaling layers (drachtio), media proxies (RTPengine), or custom handlers.

Asterisk vs FreeSWITCH comes down to use case: Asterisk works well for straightforward PBX and IVR deployments, while FreeSWITCH is better when you need to build something custom or non-standard. At ECG, we've worked with both and will recommend whichever fits your requirements. 

FreeSWITCH is a full-featured media server with its own dialplan scripting (XML, Lua) and event socket interface. drachtio is a SIP proxy/signaling framework controlled via Node.js, typically used for signaling control while delegating media to either FreeSWITCH or RTPengine.

They are often used together: drachtio handles SIP signaling logic in JavaScript, FreeSWITCH provides media processing, and RTPengine handles high-efficiency media proxying.

Use FreeSWITCH directly if you need one-box simplicity. Use drachtio + FreeSWITCH if you're building a multi-component platform where signaling and media are handled by separate systems.

RTPengine is a high-performance media proxy developed by Sipwise, designed to handle millions of concurrent RTP streams efficiently using Linux kernel-level packet processing. In a FreeSWITCH or drachtio deployment, it's controlled via the ng protocol over UDP. drachtio sends "offer," "answer," and "delete" commands to RTPengine to set up and tear down media flows.

RTPengine handles codec transcoding, SRTP/SRTCP encryption, and call recording (producing pcap files). It removes FreeSWITCH from the media path for sessions that require no media processing, dramatically reducing CPU load and improving scalability. 

There are several:

  • SIP signaling is source-IP-sensitive, so pod IP instability breaks registrations. You need stable endpoints, typically via NodePort or a dedicated SBC in front.

  • RTP requires large UDP port ranges that most Kubernetes container networking interfaces don't handle cleanly out of the box.

  • FreeSWITCH clustering requires inter-node communication (often via Kafka or a configuration server) to share dialplan state and call routing.

  • Auto-scaling based on CPU percentage is the wrong metric; you need concurrency-aware scaling based on call count.

  • Kubernetes upgrades (e.g., EKS 1.30 → 1.35) require upgrading nodes and add-ons in sequence, with careful validation of SIP registration and media behavior after each step.

At ECG, we've built and operated FreeSWITCH on EKS using CloudFormation/CDK, and we know where each of these issues appears. 

FreePBX is a web-based configuration layer on top of Asterisk. It makes Asterisk easier to manage for traditional PBX use cases (desk phones, queues, voicemail). FreeSWITCH is a lower-level platform that requires more programming but offers more control.

Use FreePBX if you're building a traditional on-premises PBX. Use FreeSWITCH if you need custom call control logic, SIP trunking gateways, voice APIs, or integration with AI/ASR pipelines. The decision of FreeSWITCH vs FreePBX usually comes down to how much customization you need versus how much you want out-of-the-box PBX features. 

Redis serves as the low-latency in-memory state layer for decisions that must be made during a call – too slow to go to PostgreSQL. In practice this includes:

  • SIP registration lookups (is this user registered and where?)

  • In-call routing decisions (LCR, fraud scoring, number blacklists)

  • Call-leg correlation for SIPREC deduplication (using Redis locks keyed on caller + callee + timestamp window)

  • Pub/sub event streaming between components.

Production deployments using FreeSWITCH exclusively use Redis for in-call routing decisions precisely because it delivers sub-millisecond lookup times at scale. ECG has implemented Redis-backed deduplication, routing, and pub/sub layers in both our own products and client systems. 

 Yes, and we do it regularly. We read existing codebases – FreeSWITCH XML dialplans, custom C modules, drachtio Node.js applications, Redis schemas, Kubernetes manifests – reconstruct what the system is doing, identify what's broken or incomplete, and pick up development from there.

We've migrated FreeSWITCH customer configurations to BroadWorks, extended drachtio SIPREC recording servers with custom Redis deduplication logic, and taken over stalled Kubernetes VoIP deployments. The starting point doesn't have to be clean for us to be useful. 

ECG's engineers can support your team through FreeSWITCH architecture design, custom module development in C, dialplan optimization, Kubernetes deployment planning, security and compliance review, and mid-project rescue.

We can also help you evaluate whether FreeSWITCH is the right platform for your use case, or whether Asterisk, a proprietary platform, or a combination approach makes more sense. 

Ready to Experience the ECG Difference?

Get in touch for products that support your crucial voice infrastructure needs.