Skip to content

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 unsafe call path
  • 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"],
  "policy": "first-success",
  "template": "tpl_billing_overdue_v3"
}
routing
  • VOICEVoice / SIP:5060
  • SMS SMS / SIGTRAN:2775
  • EMAILEmail / SMTP:587
  • MAIL Webmail (Stalwart):443
  • WHATSWhatsApp Cloud API:443
20
.NET projects
csproj in src/
159
Darwan permissions
across 17 categories
4
Public surfaces
www, app, webmail, mail
6
Provider adapters
Postal, SMTP, Arena, SMPP, SIGTRAN, WhatsApp
build . platform 270617cbus . rabbitmq 4.2

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?

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 twenty .NET 10 projects in one src/ tree: services (Tenancy, Messaging, Push, Voice facade, CRM, Billing, Campaigns, Journeys, Conversations, Analytics, Contact Center, Knowledge Base, Community, Developer), the YARP ApiGateway, the EventsGateway webhook ingest, and shared libraries, talking over MassTransit on RabbitMQ 4.3.

Voice is delivered by BitsPath Voice, KaritKarma's separate pure-Rust carrier-grade PBX product: a complete SIP and media stack plus a SIGTRAN/SS7 suite for direct operator SMS interconnect. The platform-side Voice service models CallSession, CallFlow, and VoiceCampaign and routes through it.

The mailbox engine is Stalwart, embedded inside the BitsPath product boundary; the webmail is a custom Next.js client that ships schedule send, a vacation autoresponder, mail filters, report-phishing handling, and message snooze.

Authentication is exclusively Wenme OAuth 2.1 with mandatory PKCE, validated against the EdDSA + RS256 JWKS.

Authorization is exclusively Darwan: 159 seeded permission strings across 17 categories (63 of them pbx.*), enforced across the .NET controllers and the BitsPath Voice runtime alike.

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, the Stalwart webmail, and Meta WhatsApp Cloud. Bring your own provider keys per tenant; delivery rides your own contracts.

Provider model
  • Per-tenant credential vault, never global.
  • Circuit-breaker failover: postal to smtp; arena to sigtran to smpp.
  • Delivery receipts converge on EventsGateway.

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.3 handles async fan-out. The Voice runtime is the separate BitsPath Voice product, but speaks the same Wenme JWT (EdDSA + RS256) and the same 63 seeded pbx.* Darwan permissions as the .NET ContactCenter service.

Dispatch fabric + gateways
SVC.02

Messaging

:5002

The send fabric. Provider adapters for Postal, generic SMTP, an SMS aggregator, a direct SMPP bind and WhatsApp Cloud, behind a circuit-breaker resolver, with a SIGTRAN gateway adapter awaiting the carrier tier. MassTransit over RabbitMQ for async and retry.

Six provider adapters
PostalSMTPArenaSMPPSIGTRANWhatsApp Cloud
SVC.00

ApiGateway / YARP

:5000

YARP 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.03

EventsGateway

:5003

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

Engagement engines
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.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. 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.

Voice plane . Rust + .NET

Voice (facade)

SVC.15 . :8080

Platform-side Voice service models CallSession, CallFlow and VoiceCampaign, routing through the BitsPath Voice pure-Rust softswitch. Darwan checks the voice permission on every authorized action.

ContactCenter

SVC.10 . :5210

Agent desktop over the Voice engine. Ring groups, queues, queue agent pause and transfers today; supervisor listen, whisper and barge are programme work on the engine. Reuses the same Darwan voice permissions Voice enforces.

Tenant + platform ops
SVC.01

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.

:5001
SVC.05

Billing

Usage metering, credit packs, plan tiers. Per-tenant ledger with daily roll-ups.

:5005
SVC.11

KnowledgeBase

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

:5215
SVC.12

Community

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

:5220
SVC.13

Developer

Webhooks with delivery tracking, API keys, API logs, sandboxed extension engine.

:5225
SVC.14

Push

Live push dispatch over FCM HTTP v1 (per-tenant Google service-account JWT) and APNs (ES256 .p8 key), with a device-token registry and automatic dead-token deactivation.

FCM + APNs

04 / Webmail . Stalwart

Business email for tenants who don't want to be a Google customer.

The mailbox engine is Stalwart, a Rust SMTP mail server that lives inside the BitsPath product boundary, the way FreeRADIUS lives inside ISPChamp. The webmail is a custom Next.js client shipping schedule send, a vacation autoresponder, mail filters, report-phishing handling, and message snooze. Postal stays the outbound relay so a tenant's mailbox outbound never poisons the transactional API reputation envelope.

Surface map
  • bitspath.com . marketing + product site
  • app.bitspath.com . tenant portal + admin
  • webmail.bitspath.com . custom Next.js webmail (Next.js 16.2)
  • mail.bitspath.com . Stalwart SMTP mail server
  • BitsPath Voice . pure-Rust PBX (separate product)

Custom Next.js webmail

The webmail is a custom Next.js client, not a repackaged roundcube. Schedule send, a vacation autoresponder, mail filters, report-phishing handling, and message snooze ship on top of the Stalwart Rust mail server.

Wenme OAuth 2.1 sign-in

The webmail authenticates through Wenme OAuth 2.1, the same trust path as the rest of the platform. One identity, one session model across the portal, the inbox, and the admin console.

Stalwart mail server, in-product

Stalwart is the SMTP mail server inside the BitsPath product boundary: same repo, same release train. Outbound mailbox traffic relays through Postal so a tenant's mailbox reputation never poisons the transactional API envelope.

Per-tenant business email

Each tenant hosts business email on its own domain. Customer MX records point at mail.bitspath.com; one Stalwart instance and one webmail serve every tenant on the platform.

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): report-phishing handling + message snooze
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 + Push

Voice and Push, on one platform.

The platform-side Voice service models CallSession, CallFlow and VoiceCampaign and routes through BitsPath Voice, KaritKarma's separate pure-Rust softswitch. Four SIP transports, every leg anchored on the engine, and recording enforced before the call connects. Push rides FCM HTTP v1 and APNs on per-tenant credentials. Each card below says whether it runs today.

See the BitsPath Voice product
4
SIP transports on the engine
v17.0
WhatsApp Graph base
FCM + APNs
Push providers
6
Messaging adapters
Live

Voice via BitsPath Voice

The platform-side Voice service models CallSession, CallFlow and VoiceCampaign and routes through BitsPath Voice, the separate pure-Rust softswitch. SIP over UDP, TCP, TLS and WebSocket, every leg anchored, and no unsafe code anywhere a caller's packet is parsed.

Live

Push over FCM and APNs

FCM HTTP v1 with per-tenant Google service-account JWTs and APNs with ES256 .p8 auth keys. Device tokens register per tenant and dead tokens deactivate automatically, so a delivery list does not rot.

Live

The tape is encrypted and swept

Recordings are written per call, encrypted at rest under AES-256-GCM with the master key held as deployment configuration, and deleted by a retention sweep that runs on the switch under each tenant's own policy. Making the tape a precondition of connecting the call is still being finished, and the Voice page marks it Planned.

Planned

SIGTRAN carrier tier

Direct operator interconnect is programme work. The SCTP, M3UA, SCCP, TCAP and MAP layers are written and tested against the specifications, and nothing in the product calls them yet. SMS today rides an aggregator key or your own SMPP bind.

Full PBX + SIGTRAN detail

SIP and media internals, the SS7 stack, and the carrier-grade call engine live in the BitsPath Voice product. The BitsPath platform routes through it and shares its permission model.

BitsPath Voice

06 / BitsPath Live

One app for the working day, not a second dialler.

BitsPath Live is the root portal programme for banks and enterprises: communication as one module of the working day, sitting next to mail, calendar and tasks rather than in a separate application nobody opens. Four of its modules run on the platform today. The rest are an application build on services that already exist, and they are marked Planned here rather than implied.

How to read this list

No module carries a date, because none is on the public record. A Planned module is an application built on a service that already runs, which is why it is a programme rather than a new system. Ask for the phasing and we will give you the same answer in writing.

LivePartialPlanned
  • Live

    Calls

    Extensions, queues, IVR, voicemail and recording on the BitsPath Voice engine.

  • Live

    Mail

    Per-tenant business email and webmail on the Stalwart mail server.

  • Live

    Calendar

    Agenda and room booking on the platform today.

  • Live

    People

    Directory and presence across the tenant.

  • Partial

    Chat

    Customer conversations and the chat widget run today. A team messaging client does not.

  • Planned

    Tasks

    One task list fed by calls, mail and chat rather than a fourth inbox.

  • Planned

    Meetings

    Recorded meetings on a media server inside the tenant.

  • Planned

    Announcements

    Publish, then read and acknowledge, with the acknowledgement tracked.

  • Planned

    Files

    Documents attached to the record they belong to, under the same retention policy.

  • Planned

    Regulatory circulars

    A circular ingested once, then fanned out as one task per employee on the same task list, not a second one.

  • Planned

    Webinar

    Registration, live one-to-many audio and screen share, moderated questions, and an attendance report. Built on the conference mixing and recording the engine carries.

  • Planned

    Learning

    Course catalogue, mandatory assignment by role or branch, quizzes with a pass mark, and certificates that expire and recertify.

Why it can sit in a bank at all

The whole portal runs in the tenant's own environment on infrastructure in Bangladesh, operated by a Bangladeshi company. Under the Bangladesh Bank Guidelines on Cloud Computing (BRPD Circular No. 05, 16 March 2023, cl. 2.3.1.2 and 2.3.4.5) customer financial and sensitive data is restricted from a cross-border cloud without prior approval, so hosting it here opens no approval case at all.

Read the jurisdiction argument

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

  • Voice PBX in the same product

    BitsPath
    Pure Rust PBX (BitsPath Voice)
    Twilio
    Yes (proprietary)
    SendGrid
    Not included
    Workspace
    Not included
  • Your own SMPP bind, no per-message markup

    BitsPath
    Included
    Twilio
    Not included
    SendGrid
    Not included
    Workspace
    Not included
  • Per-tenant business email + webmail

    BitsPath
    Stalwart-backed webmail
    Twilio
    Not included
    SendGrid
    Not included
    Workspace
    Hosted only
  • BYO provider credentials, per tenant

    BitsPath
    Included
    Twilio
    Not included
    SendGrid
    Not included
    Workspace
    Not included
  • Omnichannel agent inbox, no per-agent fee

    BitsPath
    Included
    Twilio
    Flex, per-agent
    SendGrid
    Not included
    Workspace
    Not included
  • Single auth + RBAC (Wenme + Darwan)

    BitsPath
    OAuth 2.1 + 159 perms
    Twilio
    Vendor IAM
    SendGrid
    Vendor IAM
    Workspace
    Google IAM
  • BDT pricing, contracts under Bangladesh law

    BitsPath
    Included
    Twilio
    Not included
    SendGrid
    Not included
    Workspace
    US/EU regions
  • Self-host or sovereign deploy

    BitsPath
    Docker Compose appliance
    Twilio
    Not included
    SendGrid
    Not included
    Workspace
    Not included

08 / 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 roles plus the 159 baseline permissions across 17 categories.

  2. 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 push credentials are configured per tenant, and dispatch is live.

  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 from the portal. 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.

09 / Stack

What BitsPath is actually built on.

Platform runtime
.NET 10, ASP.NET Core, EF Core 10.0.9
Voice runtime
Pure-Rust softswitch in the BitsPath Voice product (separate page)
Frontend
Next.js 16.2, React 19.2, Tailwind CSS 4, shadcn/ui
Realtime
SignalR (Conversations) + webmail (Next.js)
Message bus
MassTransit over RabbitMQ 4.3
Data
PostgreSQL 18.4, Redis 8.8, S3-compatible object storage
Mailbox engine
Stalwart (Rust): SMTP mail server + custom Next.js webmail
Telephony
SIP over UDP, TCP, TLS and WebSocket, RTP and SRTP (BitsPath Voice)

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

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

Engineering contact