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. Pay zero delivery markup.

  • 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
POST /api/messaging/dispatch
202 Accepted
payload
{
  "tenant_id": "tnt_01HX...",
  "contact_id": "ctc_01HX...",
  "channels": ["voice","sms","email","mail","whatsapp","push"],
  "policy": "first-success",
  "template": "tpl_billing_overdue_v3"
}
routing
  • VOICEVoice / SIP:5060
  • SMS SMS / SIGTRAN:2775
  • EMAILEmail / SMTP:587
  • MAIL Webmail / JMAP:443
  • WHATSWhatsApp Cloud API:443
  • PUSH Push:443
15
Service projects
13 services + gateway + widget
158
Darwan permissions
across 16 categories
5
Live surfaces
marketing, app, dash, webmail, mail
$0
Delivery markup
bring your own carrier keys
build . platform 270617cregion . BD-DC-01

Live dispatch shape from the Messaging service. The same envelope fans out to Voice, SMS, Email, Stalwart, WhatsApp Cloud, and Push without channel-specific glue in the caller.

01 / What is BitsPath?

definition . for engineers and AI engines

BitsPath is KaritKarma's multi-tenant unified communications platform: one product, one auth model, every channel a business actually sends on.

The platform is fifteen ASP.NET Core 10 service projects (Tenancy, Messaging, EventsGateway, CRM, Billing, Campaigns, Journeys, Conversations, Analytics, Contact Center, Knowledge Base, Community, Developer, plus the YARP API gateway and the embeddable Widget) talking over MassTransit 8.5.7 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: 158 permission strings across 16 categories, enforced both on .NET (140+ [RequirePermission] attributes across 24 controllers) and Rust (require_permission() on all 255+ Voice handlers). The platform brings your own carrier and SMTP credentials and charges zero markup on delivery, billing only the application subscription and metered platform usage.

02 / Six channels

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 SMPP or SIGTRAN, Postal SMTP, Stalwart IMAP/JMAP, Meta WhatsApp Cloud, FCM, and APNs. Bring your own provider keys per tenant; BitsPath never sits in the cost-per-message path.

Provider model
  • Per-tenant credential vault, never global.
  • Failover routing within each channel family.
  • 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 5-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, Twilio, Vonage, Infobip, or your own SMPP bind.
    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 4.18 renders server-side. Postal stays the outbound MTA so reputation and warmup survive. Delivery webhooks feed the unified contact timeline through EventsGateway.

    BYO SMTP, Postal, SendGrid, AWS SES, or your own MTA.
    Postal-backed SMTP, dedicated IP pool
  • 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 10 realtime push.

    BYO Meta Business account + WABA phone number.
    Meta Cloud API, WhatsApp Business Account
  • M06

    Push, iOS and Android

    FCM and APNs unified behind one schedule + targeting API.

    Device-token lifecycle, silent + display payloads, topic and segment targeting, scheduled and triggered delivery. Reuses the same Journeys orchestration as every other channel.

    BYO FCM project + APNs certificate.
    FCM and APNs, per-tenant credentials

03 / Service map

Fifteen service projects. One YARP gateway. One Wenme + Darwan trust path.

Each service owns its EF Core context and Postgres schema. MassTransit 8.5.7 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 62 pbx.* Darwan permissions as the .NET ContactCenter service.

SVC.00

ApiGateway / YARP

:5000

YARP 2.3 reverse proxy. /api/* fans out to every service. A CookieToBearer middleware converts the Wenme session cookie into an Authorization: Bearer header for downstream calls.

SVC.01

Tenancy

:5001

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.

SVC.02

Messaging

:5002

The send fabric. Channel adapters for SMTP, SMPP, WhatsApp Cloud, Stalwart, Postal. MassTransit 8.5.7 over RabbitMQ for async + retry. 16 messaging.* permissions.

SVC.03

EventsGateway

:5003

Webhook ingest for delivery reports, billing events, and Darwan cache invalidation. Verifies HMAC signatures, idempotent by event id, drops noisy retries.

SVC.04

CRM

:5004

Unified contact store. Custom fields, consent flags, segments, lists, import. Every channel event lands on the contact timeline. 6 crm.* permissions.

SVC.05

Billing

:5005

Usage metering, credit packs, plan tier, LoneSock Pay integration. Per-tenant ledger with daily roll-ups.

SVC.06

Campaigns

:5006

Multi-channel broadcast engine with background workers. A/B testing, send-time optimization, throttled delivery against per-provider rate caps.

SVC.07

Journeys

:5294

Visual @xyflow/react builder. Branching, delays, wait-for-event, channel switches. One orchestrator runs all six channels.

SVC.08

Conversations

:5292

Omnichannel agent inbox over SignalR 10. Threads merge inbound across Email, SMS, WhatsApp. No per-agent pricing model.

SVC.09

Analytics

:5204

Delivery, engagement, funnel reports. Recharts 3.7 in the portal, raw event API for downstream BI exports.

SVC.10

ContactCenter

:5210

Agent desktop on the Voice PBX. Queues, transfers, supervisor barge, whisper, listen. Reuses the same 62 pbx.* permission strings Voice enforces.

SVC.11

KnowledgeBase

:5215

Self-service help center. Article CRUD, search, public surface. 4 knowledge.* permissions.

SVC.12

Community

:5220

Community forum module. Threads, replies, moderation. 4 community.* permissions.

SVC.13

Developer

:5225

Webhooks, API keys, OpenAPI surface, sandbox. 5 developer.* permissions.

SVC.14

Voice (Rust)

:8080

Pure-Rust Axum API + SIP server on host network. 62 pbx.* permissions enforced via require_permission() on every handler. WebRTC bridge via str0m, TURN via coturn.

04 / 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.

Surface map
  • app.bitspath.com . console for transactional comms
  • dash.bitspath.com . per-tenant mailbox + plan 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 storage, encrypted at rest

Stalwart's S3 backend writes to PV / MinIO at storage.lonesock.pro. 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.

Webmail commit log . last session
270617c..59111a6
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 drops

05 / 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 on host network on a dedicated voice VM at 103.139.235.232 with WebRTC bridged via str0m and TURN served by coturn. The same Wenme JWT and the same 62 pbx.* permissions enforce every endpoint.

255+
Voice API endpoints
9
Rust telephony crates
62
pbx.* permissions
Edge SCTP
M3UA/SCCP/TCAP/MAP

~20,000 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.

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.

62 pbx.* Darwan permissions

Voice (Rust) and ContactCenter (.NET) share the exact same 62 permission strings. require_permission() runs on all 255+ Voice API 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 without transcoding G.711. The media bridge runs hot-path on the same Rust process.

Crate index
bitspath-sip~3,500 lines . parser, transactions, UDP/TCP/TLS/WebSocket
bitspath-pbx~6,650 lines . registrar, routing, CDR, IVR, ring groups
bitspath-media~3,000 lines . RTP/RTCP/SRTP, G.711/G.722, jitter, conference
bitspath-call~7,000 lines . B2BUA, NAT latching, str0m WebRTC
bitspath-sctpasync SCTP transport (trait, mock for macOS dev)
bitspath-m3uaRFC 4666 ASP state machine, ASPUP/ASPAC handshake
bitspath-sccpGlobal Title translation, SSN routing
bitspath-tcaptransaction manager, BER encoding, Begin/End/Continue
bitspath-map3GPP TS 29.002 SMS subset: SRI-SM, MT-FSM, MO-FSM

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.

CapabilityBitsPathTwilioSendGridWorkspace
Voice PBX in the same productPure Rust PBXYes (proprietary)
Direct SS7 / SMPP interconnectSIGTRAN crates in-tree
Per-tenant business email + webmailStalwart-backed JMAP webmailHosted only
BYO provider, zero delivery markup
Omnichannel agent inbox, no per-agent feeFlex, per-agent
Single auth + RBAC (Wenme + Darwan)OAuth 2.1 + 158 permsVendor IAMVendor IAMGoogle IAM
Bangladesh hosting, BDT pricing, local data residencyTier-3 DC, APNIC AS 64005US/EU regions
Self-host or sovereign deployDocker 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.

  1. 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 Owner, Admin, Member, Viewer, and Developer roles plus the 158 baseline permissions.

  2. 02

    Wire your sender identities

    Add SMTP or Postal credentials, an SMPP bind or aggregator key, a Meta WhatsApp Business phone number, an FCM project, and APNs certs. Per-tenant credential vault, never global. Verification jobs run on save.

  3. 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 through dash.bitspath.com. Stalwart picks them up live.

  4. 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.3
Voice runtime
Rust 2024 edition, Axum 0.8, SQLx
Frontend
Next.js 16.1, React 19.2, Tailwind 4, shadcn/ui
Realtime
SignalR 10 (Conversations) + JMAP (Webmail)
Message bus
MassTransit 8.5.7 over RabbitMQ 4.2
Data
PostgreSQL 18, Redis 8.6, MinIO (Stalwart S3)
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 15 .NET 10 service projects 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 (over SMPP or direct SIGTRAN), Email (transactional and marketing via Postal), per-tenant business email (Stalwart SMTP/IMAP/JMAP/CalDAV), WhatsApp Business Cloud API, and Push (FCM + APNs), with CRM, Campaigns, Journeys, Conversations inbox, Analytics, Contact Center, Knowledge Base, and Community sitting on top. Authentication is Wenme OAuth 2.1 with mandatory PKCE; authorization is 158 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 and pay zero delivery markup, paying instead for the platform subscription. Hosting runs from KaritKarma's APNIC AS 64005 Tier-3 data centre in Dhaka with BDT pricing and BD-law contracts, 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 10 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). There are no C dependencies in the call leg, no GPL licensing concerns, and 62 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, SMTP credentials (Postal, SendGrid, AWS SES, or your own MTA), aggregator keys (Arena, Twilio, Vonage, Infobip), FCM projects, and APNs certificates all keep working. BitsPath becomes the orchestration, CRM, and inbox layer on top. IP reputation and warmup history stay with the underlying relay, and there is no per-message markup on delivery.

10 / Get started

Replace the spreadsheet.
Move your channels to one wire.

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. Pay zero markup on the wire.

Engineering contact
  • +880 9638 100300 . sales . 9-18 BDT
  • sales@karitkarma.com . contracts@karitkarma.com
  • Tier-3 DC Dhaka . APNIC AS 64005 . BDT pricing

Wire your channels into one product.

Get a personalized walkthrough of BitsPath with one of our specialists. No commitment required.