Blog

Engineering insights from the Miuda.ai team

· Miuda Team

Running a Call Center on RustPBX

A contact center is more than a PBX with queues. It needs skill-based routing to send calls to the right agent, real-time monitoring for supervisors, wrap-up time for agents to finish notes, and overflow logic to prevent callers from waiting forever.

RustPBX’s CC (Contact Center) addon provides all of this out of the box. This post walks through setting up a functional call center – from skill groups to supervisor monitoring.

Rust Telephony Call Center AI Customer Service
Read more →
· Miuda Team

SipFlow: Call Signaling, Recordings, and Cluster Deployment

Debugging SIP calls usually means running tcpdump, downloading PCAP files, and opening Wireshark. It works, but it’s slow, requires server access, and doesn’t scale.

SipFlow is RustPBX’s built-in signaling capture system. It records every SIP message and RTP packet, stores them efficiently, and presents a visual timeline in the web console. Need a recording? Generate a WAV from the captured RTP data with one click. Need to debug a call from last week? Query it by call ID.

And when a single node isn’t enough, SipFlow supports cluster deployment with consistent hashing.

Rust Telephony SIP SBC
Read more →
· Miuda Team

Operations Made Easy: Archive, ACME, and Transcript

Running a telephony platform isn’t just about connecting calls. Day-to-day operations involve renewing TLS certificates before they expire, archiving old call records so the database doesn’t grow forever, and transcribing recordings for quality audits.

RustPBX bundles three addons that handle these chores automatically. Here’s how each one works.

Rust Telephony SIP
Read more →
· Miuda Team

Privacy Numbers Made Easy with JSON-RPC Routing

Ride-hailing apps, delivery platforms, and marketplaces all share a common requirement: connect two parties on a phone call without revealing their real numbers. This is the classic privacy number (AX/NXA) use case.

RustPBX’s SBC addon includes a JSON-RPC router that makes this straightforward. Every incoming call can query your backend API, get the real destination, rewrite the numbers, and connect the call – all in real time.

Rust Telephony SBC CRM Integration SIP
Read more →
· Miuda Team

Building a Simple SBC: Routes, Trunks, and WebRTC

Your team can call each other internally. Now you need to connect to the PSTN through a carrier, let customers call in from web browsers, and manage it all without spinning up a separate SBC appliance.

RustPBX’s SBC addon handles this in a single runtime – no Janus, no FreeSWITCH, no extra media servers.

Rust Telephony SBC WebRTC SIP
Read more →
· Miuda Team

Configuring Extensions for Internal VoIP Communication

Every PBX starts with the same basic need: let people inside the organization call each other. Whether your team uses desk phones, softphones, or web browsers, it all comes down to configuring extensions and getting them registered.

This post walks through setting up internal VoIP communication in RustPBX from scratch, using its web console.

Rust Telephony SIP WebRTC
Read more →
· Miuda Team

Rust vs Go: WebRTC Data Channel Performance Benchmark

In the world of real-time communication, performance is paramount. WebRTC has become the standard for peer-to-peer audio, video, and data transfer. While the browser implementations are well-known, server-side and native implementations are crucial for building scalable infrastructure, gateways, and high-performance clients.

This article presents a performance benchmark comparing three prominent WebRTC implementations, with the code available at restsend/rustrtc:

  1. RustRTC: A pure Rust implementation of WebRTC (the project under test).
  2. webrtc-rs: The most popular Rust implementation (a port of Pion).
  3. Pion: The industry-standard Go implementation of WebRTC.
WebRTC Rust Go Benchmark
Read more →