Unified communications, owned end to end
One wire.
Every channel your business actually sends on.
BitsPath is the comms platform that doesn't make you choose between a CPaaS, a webmail provider, and a PBX vendor. Voice in pure Rust, SMS over a real SIGTRAN stack, per-tenant business email backed by Stalwart, WhatsApp Business Cloud, transactional email, and push, sitting under one CRM, one campaign engine, one agent inbox, and one Darwan permission set. Bring your own provider keys: your carrier rates stay between you and your carrier.
- Pure-Rust PBX, no FreeSWITCH
- SIGTRAN/SS7 SMS in-tree
- Stalwart webmail per tenant
- Wenme OAuth 2.1 + Darwan
- BYO carrier, BYO SMTP
- MassTransit on RabbitMQ
{
"tenant_id": "tnt_01HX...",
"contact_id": "ctc_01HX...",
"channels": ["voice","sms","email","mail","whatsapp"],
"policy": "first-success",
"template": "tpl_billing_overdue_v3"
}- VOICEVoice / SIPSIP/RTP/SRTP/WebRTC:5060
- SMS SMS / SIGTRANArena + SMPP + SS7 MAP:2775
- EMAILEmail / SMTPPostal relay + DKIM:587
- MAIL Webmail / JMAPStalwart IMAP/JMAP:443
- WHATSWhatsApp Cloud APIMeta Graph API:443
Illustrative dispatch shape from the Messaging service. The same envelope fans out to Voice, SMS, Email, Stalwart, and WhatsApp Cloud without channel-specific glue in the caller.
01 / What is BitsPath?
BitsPath is KaritKarma's multi-tenant unified communications platform: one product, one auth model, every channel a business actually sends on.
The platform is nineteen .NET 10 projects: fourteen services (Tenancy, Messaging, Push, Voice facade, CRM, Billing, Campaigns, Journeys, Conversations, Analytics, Contact Center, Knowledge Base, Community, Developer), two gateways (the YARP ApiGateway and the EventsGateway webhook ingest), and three shared libraries, talking over MassTransit on RabbitMQ.
Voice and SMS run on a separate pure-Rust runtime: four crates implement a carrier-grade SIP and media stack, five more implement SCTP, M3UA, SCCP, TCAP, and MAP for direct SIGTRAN/SS7 interconnect.
The mailbox engine is Stalwart, embedded inside the BitsPath product boundary; the webmail is a custom Next.js JMAP client that ships search operators, schedule send, vacation autoresponder, and a Gmail-clean theme.
Authentication is exclusively Wenme OAuth 2.1 with mandatory PKCE, validated against the EdDSA + RS256 JWKS.
Authorization is exclusively Darwan: 152 seeded permission strings across 16 categories, enforced both on .NET (279 [RequirePermission] attributes across 45 controllers) and Rust (require_permission() on the Voice API's 225 endpoints).
Carrier and SMTP credentials are bring-your-own, held in a per-tenant vault with circuit-breaker failover between providers.
02 / Channel fabric
Every transport your business pays a different vendor for. Built into one product.
Channel adapters are first-class. The same Messaging service envelope fans out to Voice, SMS over Arena, SMPP, or SIGTRAN, Postal or generic SMTP, Stalwart IMAP/JMAP, and Meta WhatsApp Cloud. Bring your own provider keys per tenant; delivery rides your own contracts.
- Per-tenant credential vault, never global.
- Circuit-breaker failover: postal to smtp; arena to sigtran to smpp.
- Delivery receipts converge on EventsGateway.
- M01
Voice PBX, pure Rust
Carrier-grade SIP and media in Axum, no FreeSWITCH, no Asterisk.
Four Rust crates own the voice path: bitspath-sip (parser, transactions, UDP/TCP/TLS/WebSocket), bitspath-pbx (registrar, routing, CDR, IVR, ring groups), bitspath-media (RTP/RTCP/SRTP, G.711/G.722, jitter buffer, conference mixing), bitspath-call (B2BUA, NAT latching, str0m WebRTC). The five-crate SS7 stack powers SMS.
BYO SIP trunk or run on your own DID inventory.voice.bitspath.com - M02
SMS over SMPP + SIGTRAN
Direct operator interconnect, not just aggregator API resale.
Five SS7 crates ship in-tree: bitspath-sctp (async transport), bitspath-m3ua (ASP state machine), bitspath-sccp (Global Title translation), bitspath-tcap (transaction manager), bitspath-map (sendRoutingInfoForSM, mt-ForwardSM, mo-ForwardSM). The bitspath-smsgw binary exposes a priority queue REST API.
BYO Arena aggregator key, your own SMPP bind, or a SIGTRAN interconnect.Direct SIGTRAN/SS7 interconnect - M03
Transactional and marketing email
MJML drag-and-drop editor, Postal-relayed, full engagement telemetry.
GrapeJS + grapesjs-mjml composes templates client-side, MJML renders server-side. Postal stays the outbound MTA so reputation and warmup survive. Delivery webhooks feed the unified contact timeline through EventsGateway.
BYO Postal server or any SMTP relay of your own.Postal + generic SMTP adapters in code - M04
Stalwart webmail, per-tenant business email
Custom Next.js JMAP client over a Rust mailbox engine.
Stalwart provides SMTP, IMAP, JMAP, CalDAV, CardDAV, and S/MIME inside the BitsPath product boundary (same repo, same release train). The webmail ships Gmail-style search operators, bulk select, star/flag, mobile swipe gestures, schedule send + 3s undo (commit-on-unmount), vacation autoresponder, and an M365-style app switcher.
Per-tenant domain MX -> mail.bitspath.com; app-password protocol for IMAP clients.webmail.bitspath.com, Stalwart JMAP backend - M05
WhatsApp Cloud API
Official Meta Cloud API, template management, session windows.
Template review and storage, opt-in capture, 24-hour session-window tracking, media + interactive button support. The Conversations service surfaces inbound threads on the agent inbox with SignalR realtime push.
BYO Meta Business account + WABA phone number.Meta Cloud API, WhatsApp Business Account - M06
Push: device registry today, dispatch next
Per-tenant FCM and APNs credential vault plus a device-token registry.
The Push service ships a device-token registry and per-tenant FCM and APNs credential storage. The send pipeline is not yet wired to FCM or APNs, and BitsPath does not market push delivery until it is. Register devices and store credentials now; dispatch lands without an API change.
BYO FCM project + APNs credentials, stored per tenant.Registry + credential vault in code
03 / Service map
Sixteen deployable services. One YARP gateway. One Wenme + Darwan trust path.
Each service owns its EF Core context and Postgres schema. MassTransit on RabbitMQ 4.2 handles async fan-out. The Voice runtime is a separate Rust process, but speaks the same Wenme JWT (EdDSA + RS256) and the same 64 seeded pbx.* Darwan permissions as the .NET ContactCenter service.
Messaging
:5002The send fabric. Six provider adapters: Postal, generic SMTP, Arena, SMPP, SIGTRAN gateway, WhatsApp Cloud, behind a circuit-breaker resolver. MassTransit over RabbitMQ for async + retry.
ApiGateway / YARP
:5000YARP reverse proxy. /api/* fans out to every service. A CookieToBearer middleware converts the Wenme session cookie into an Authorization: Bearer header for downstream calls.
EventsGateway
:5003Webhook ingest for delivery reports, billing events, and Darwan cache invalidation. Verifies HMAC signatures, idempotent by event id, drops noisy retries.
CRM
:5004Unified contact store. Custom fields, consent flags, segments, lists, import. Every channel event lands on the contact timeline. 6 crm.* permissions.
Campaigns
:5006Multi-channel broadcast engine with background workers. A/B testing, send-time optimization, throttled delivery against per-provider rate caps.
Journeys
:5294Visual @xyflow/react builder. Branching, delays, wait-for-event, channel switches. One orchestrator runs all six channels.
Conversations
:5292Omnichannel agent inbox over SignalR. Threads merge inbound across Email, SMS, WhatsApp. No per-agent pricing model.
Analytics
:5204Delivery, engagement, funnel reports. Recharts 3.7 in the portal, raw event API for downstream BI exports.
Voice (Rust)
SVC.15 . :8080Pure-Rust Axum API + SIP server on host network. 64 seeded pbx.* permissions enforced via require_permission() on every handler. WebRTC bridge via str0m, TURN via coturn.
ContactCenter
SVC.10 . :5210Agent desktop on the Voice PBX. Queues, transfers, supervisor barge, whisper, listen. Reuses the same 64 seeded pbx.* permission strings Voice enforces.
Tenancy
Tenants, users, roles, onboarding. Syncs the Wenme JWT subject to the internal user row on first login. The seed account links by email, then pins on the Wenme sub on next sign-in.
:5001Billing
Usage metering, credit packs, plan tiers. Per-tenant ledger with daily roll-ups.
:5005KnowledgeBase
Self-service help center. Article CRUD, search, public surface. 4 knowledge.* permissions.
:5215Community
Community forum module. Threads, replies, moderation. 4 community.* permissions.
:5220Developer
Webhooks with delivery tracking, API keys, API logs, sandboxed extension engine.
:5225Push
Device-token registry and per-tenant FCM/APNs credential vault. The dispatch path is not yet wired to FCM/APNs; registry and credential storage are real today.
registry04 / Webmail . Stalwart
Business email for tenants who don't want to be a Google customer.
The mailbox engine is Stalwart, a single Rust binary that handles SMTP, IMAP, JMAP, CalDAV, CardDAV, WebDAV, integrated spam filtering, S/MIME, and OpenPGP at rest. It lives inside the BitsPath product boundary, the way FreeRADIUS lives inside ISPChamp. Postal stays the outbound relay so a tenant's mailbox outbound never poisons the transactional API reputation envelope.
- bitspath.com . marketing + product site
- app.bitspath.com . tenant portal + admin
- webmail.bitspath.com . JMAP webmail (Next.js 16.2)
- mail.bitspath.com . Stalwart SMTP/IMAP/JMAP/CalDAV
- voice.bitspath.com . Rust PBX, SIP on host network
Webmail with Gmail-grade UX
Search operators (from:, subject:, has:attachment, older_than:), bulk select with vim navigation, star and flag, mobile swipe gestures, schedule send, 3-second undo-send with commit-on-unmount (no silent drops), vacation autoresponder with iTIP REPLY on calendar RSVP. Cookie-backed preferences, theme registry, M365-style app switcher.
Auth that respects IMAP reality
Webmail uses Wenme OAuth 2.1 directly. IMAP and SMTP clients cannot speak OAuth, so BitsPath issues per-device app passwords (the Google, Apple, and Proton pattern). Stalwart validates against Wenme's public app-password verification endpoint, never an admin API.
Per-tenant S3-compatible storage
Stalwart's S3 backend writes to S3-compatible object storage, one bucket per tenant. Encryption uses Stalwart's built-in S/MIME and OpenPGP support. Outbound mailbox traffic relays through Postal so reputation routes through warmed IPs.
Multi-tenant by domain, white-labellable
Customer domain MX records point at mail.bitspath.com. Resellers can CNAME webmail.<reseller>.com to the BitsPath webmail. One Stalwart instance handles N domains; one Next.js webmail serves N reseller skins.
feat(webmail): /search route with Gmail-style operators (P1.1)
feat(webmail): bulk select + star/flag + mobile swipe gestures
feat(webmail): schedule send + 3s undo-send window
feat(webmail): vacation polish + iTIP REPLY on RSVP
feat(webmail): Gmail-clean light theme as default + theme registry
feat(webmail): M365 app switcher + Wenme avatar dropdown
feat(webmail): Gmail-style settings deep-dive (general/account/identities)
fix(webmail): undo-send commits on unmount, not silently drops05 / Voice + SIGTRAN
A PBX KaritKarma wrote. Not an Asterisk fork dressed up as a product.
Four Rust crates own the voice path. Five more own SS7 for direct operator SMS. The PBX runs as a host-network SIP server alongside the API container, with WebRTC bridged via str0m (ICE and DTLS-SRTP implemented) and TURN served by coturn. The same Wenme JWT and the same seeded pbx.* permissions enforce every endpoint.
120K+ lines of Rust telephony
Four pure-Rust crates own the voice path: bitspath-sip, bitspath-pbx, bitspath-media, bitspath-call. No C dependencies in the call leg, no FreeSWITCH, no Asterisk. FreeSWITCH has been fully removed.
Full SIGTRAN/SS7 stack
bitspath-sctp + m3ua + sccp + tcap + map crates power the bitspath-smsgw binary for direct operator SMS interconnect, not just aggregator API resale.
64 seeded pbx.* permissions
Voice (Rust) and ContactCenter (.NET) share the same seeded pbx.* permission strings. require_permission() runs on the Voice API's 225 REST endpoints with the unified darwan_tenant_id forwarded from Portal.
WebRTC via str0m + coturn
Browser legs land on a B2BUA that bridges WebRTC to SIP with ICE and DTLS-SRTP implemented, without transcoding G.711. The media bridge runs hot-path on the same Rust process.
06 / How BitsPath compares
Twilio. SendGrid. Postmark. WhatsApp BSPs. Google Workspace. One platform replaces the whole spreadsheet.
Every row below is sourced from the BitsPath codebase at commit 270617c and from the live deployment at bitspath.com, webmail.bitspath.com, mail.bitspath.com, and voice.bitspath.com.
Scroll for full table
| Capability | BitsPath | Twilio | SendGrid | Workspace |
|---|---|---|---|---|
| Voice PBX in the same product | Pure Rust PBX | Yes (proprietary) | ||
| Direct SS7 / SMPP interconnect | SIGTRAN crates in-tree | |||
| Per-tenant business email + webmail | Stalwart-backed JMAP webmail | Hosted only | ||
| BYO provider credentials, per tenant | ||||
| Omnichannel agent inbox, no per-agent fee | Flex, per-agent | |||
| Single auth + RBAC (Wenme + Darwan) | OAuth 2.1 + 152 perms | Vendor IAM | Vendor IAM | Google IAM |
| BDT pricing, contracts under Bangladesh law | US/EU regions | |||
| Self-host or sovereign deploy | Docker Compose appliance |
07 / How to onboard a tenant
Four calls. First message under the same hour.
The onboarding flow is documented as a HowTo schema so AI engines and voice assistants can quote it verbatim. Every step maps to a real endpoint in the BitsPath gateway.
- 01
Provision the tenant
POST /api/tenancy/tenants with company metadata. Tenancy syncs a Wenme tenant, creates a Darwan tenant id, and seeds the default roles plus the 152 baseline permissions across 16 categories.
- 02
Wire your sender identities
Add Postal or SMTP credentials, an Arena aggregator key, an SMPP bind or SIGTRAN interconnect, and a Meta WhatsApp Business phone number. Per-tenant credential vault, never global. FCM and APNs credentials can be stored ahead of push dispatch.
- 03
Verify the mailbox domain (optional)
If you want per-tenant business email, point MX records at mail.bitspath.com, add the DKIM and SPF rows BitsPath generates, and provision mailboxes from the portal. Stalwart picks them up live.
- 04
Send the first message
Trigger a single send via the API or compose a Journey in the visual builder. The Messaging service routes through the chosen provider, captures the delivery webhook on EventsGateway, and lands the event on the CRM contact timeline within seconds.
08 / Stack
What BitsPath is actually built on.
- Platform runtime
- .NET 10, ASP.NET Core, EF Core 10.0.5
- Voice runtime
- Rust 2024 edition, Axum 0.8, SQLx
- Frontend
- Next.js 16.2, React 19.2, Tailwind CSS 4, shadcn/ui
- Realtime
- SignalR (Conversations) + JMAP (Webmail)
- Message bus
- MassTransit over RabbitMQ 4.2
- Data
- PostgreSQL 18, Redis 8.6, S3-compatible object storage
- Mailbox engine
- Stalwart (Rust): SMTP / IMAP / JMAP / CalDAV / S/MIME
- Telephony
- SIP/RTP/SRTP/WebRTC + SCTP/M3UA/SCCP/TCAP/MAP
09 / Frequently asked
The questions enterprise buyers actually ask.
Every answer is mirrored into the FAQPage JSON-LD on this page, so AI answer engines can quote it as a single source of truth.
What is BitsPath?
BitsPath is KaritKarma's multi-tenant unified communications platform. It is 19 .NET 10 projects (14 services, 2 gateways, 3 shared libraries) plus a pure-Rust voice and SS7 stack, plus a Stalwart-backed JMAP webmail, all wired into one product. The platform delivers Voice (carrier-grade PBX), SMS (Arena aggregator, direct SMPP, or SIGTRAN), Email (transactional and marketing via Postal or any SMTP relay), per-tenant business email (Stalwart SMTP/IMAP/JMAP/CalDAV), and WhatsApp Business Cloud API, with CRM, Campaigns, Journeys, Conversations inbox, Analytics, Contact Center, Knowledge Base, and Community sitting on top. A push device registry and credential vault ship ahead of push dispatch. Authentication is Wenme OAuth 2.1 with mandatory PKCE; authorization is 152 Darwan permissions across 16 categories.
How is BitsPath different from Twilio?
BitsPath ships its own carrier-grade PBX written in pure Rust (no FreeSWITCH, no Asterisk) and its own SIGTRAN/SS7 stack so SMS can ride a direct operator interconnect, not just aggregator API resale. The application layer (CRM, Campaigns, Journeys, Conversations) is included, not per-agent priced. Customers bring their own provider credentials, so delivery rides their own carrier and relay contracts rather than a resold rate card. Pricing is in BDT with contracts under Bangladesh law, which Twilio does not offer.
Does BitsPath support WhatsApp Business Cloud API?
Yes. BitsPath integrates the official Meta Cloud API for WhatsApp Business. Tenants connect their own Meta Business account and WABA phone number; BitsPath handles template review and storage, opt-in capture, 24-hour session-window tracking, media payloads, interactive buttons, and inbound message ingest. Inbound conversations land on the omnichannel agent inbox with SignalR realtime push.
Does the webmail support IMAP and SMTP clients like Outlook and Apple Mail?
Yes. The mailbox engine is Stalwart (open-source Rust, single binary handling SMTP, IMAP, JMAP, CalDAV, CardDAV, WebDAV, S/MIME, and OpenPGP at rest). Modern web sessions use the JMAP webmail with Wenme OAuth 2.1 directly. Legacy IMAP and SMTP clients use per-device app passwords (the same pattern Google, Apple, and Proton ship). App passwords are scoped to a single mailbox, revocable, and validated through Wenme's public verification endpoint, never a Wenme admin API.
Can BitsPath replace FreeSWITCH or Asterisk?
Yes. The Voice service is a complete carrier-grade PBX built in pure Rust across four crates: bitspath-sip (parser, transactions, UDP/TCP/TLS/WebSocket), bitspath-pbx (registrar, routing, CDR, IVR, ring groups), bitspath-media (RTP/RTCP/SRTP, G.711/G.722, jitter buffer, conference mixing), and bitspath-call (B2BUA, NAT latching, str0m WebRTC). FreeSWITCH has been fully removed from the product, there are no C dependencies in the call leg, no GPL licensing concerns, and seeded pbx.* permission strings are enforced via Darwan on every Voice API endpoint.
What happens to my existing carrier and SMTP relationships when I move to BitsPath?
They survive. BitsPath's bring-your-own-provider model means existing SIP trunks, SMPP binds and SIGTRAN interconnects, SMTP credentials (Postal or any SMTP relay of your own), Arena aggregator keys, and your Meta WhatsApp Business account all keep working, stored in a per-tenant credential vault with circuit-breaker failover between providers. BitsPath becomes the orchestration, CRM, and inbox layer on top. IP reputation and warmup history stay with the underlying relay, and delivery rides your own provider contracts.
10 / Get started
Replace the spreadsheet.
Move your channels to one wire.
Wire your channels into one product. Bring your carrier, your SMTP, your WABA number. BitsPath becomes the CRM, the campaign engine, the journey builder, the agent inbox, the webmail, and the PBX. Your provider contracts stay yours.
A personalized walkthrough of BitsPath with one of our specialists. No commitment required.
- +880 9638 100300 . sales . 9-18 BDT
- [email protected] . [email protected]
- Dhaka, Bangladesh . BDT pricing . BD-law contracts