How a UCaaS Operator Cut Softphone Costs and Stopped Waiting on a Vendor
Marcus paid per-seat for Bria on dormant users, and every customer request went into someone else's feature queue.
Active-user billing, a white-labeled app he controls, and integrations he ships himself in two to four weeks.
Marcus runs the product side of a regional UCaaS operator with about 5,000 seats across SMB and reseller channels.
That means he owns the softphone app, the billing relationship with the underlying vendor, and the roadmap conversations that never went anywhere fast. The company had built its branded app on Bria, the softphone from CounterPath.
It worked, for a while. Then the ground under it started shifting: the pricing, and who owned the vendor.
We sat down with Marcus to hear what happened.
What did you do first?
We just ran with what we had. Bria was the softphone, our back-end handled the switching, and for a long time that split worked fine. Bria did the calling, we did the billing and the customer relationships, everybody stayed in their lane.
We didn't think about it much. It was infrastructure, like the lights being on.
What was the breaking point?
Two things landed at once. First, the pricing. We were on per-seat licenses, $2.95 to $4.95 a user a month depending on the tier, and our customer mix was shifting toward resellers with seasonal and project-based workforces. A big chunk of the seats we were paying full price for weren't logging in, weren't placing calls, some months at all. We were paying full license for users who had effectively left.
Second, the ownership question. CounterPath, the company behind Bria, got bought by Alianza. Alianza also owns MetaSwitch, a back-end switching platform that a lot of operators run their whole voice stack on. Suddenly the softphone we depended on and a major back-end competitor were sitting under the same roof.
We had seen this pattern before, when BroadSoft ended up under Cisco and operators watched pricing move in ways they didn't control. Nobody wanted to say it out loud: we do not want to find out what happens at our next renewal.
How did that feel? And commercially?
Uneasy is the honest word. We didn't have a burning fire, we had a slow one. Every enterprise account that asked for something Bria couldn't do, a CRM screen pop, a billing view inside the app, a button that talked to their dispatch system, went into somebody else's feature queue. Not ours. We would wait, and wait, and sometimes just never hear back.
Commercially, we were bleeding margin on dormant seats every single month, and strategically we were exposed to a renewal with a vendor who now had less reason to be generous.
Per-seat licenses on dormant users
$2.95 to $4.95 a user a month while resellers with seasonal staff left seats unused
The vendor got bought by a competitor
CounterPath went to Alianza, which also owns MetaSwitch; a renewal nobody wanted to test
Switched to Acrobits on an open framework
active-user billing, white-labeled app, back-end untouched, relaunched in 2 to 4 weeks
Dormant seats went to zero cost
$0.12 per active user single-brand, $0.42 with per-vertical branding; the app became the differentiator
What changed?
We looked at Acrobits. What sold us first was the billing model, active-user billing instead of per-seat. You only pay for a user who actually registers and completes at least one call in the billing period. A dormant seat costs nothing. And if the same person logs in from their phone, their laptop, and their desk, that is one identity, one charge, not three.
But the bigger shift was underneath that. Cloud Softphone runs on what Acrobits calls an open framework, and that is a real distinction from open source. Open source means the code is public and you're on your own to make it work and keep it working. An open framework means somebody else owns the hard part, the voice and video engine that has to work flawlessly on every phone, tablet, and OS version on the planet, and they are good at it because it is the only thing they do.
What stays open, genuinely open, is everything you build on top. We didn't have to touch our back-end. It stayed exactly where it was. We white-labeled the new app under our own developer accounts and relaunched in two to four weeks.
How they used Acrobits
The subscriber billing portal went into the app as a Web Tab. The page where a customer checks their plan, their usage, changes a setting, is now one tap away instead of a separate login on a separate site.
Enterprise and vertical dispatch and CRM dashboards were wired in with the IPC SDK. For logistics, field service, and dispatch-heavy accounts, the IPC SDK is the bridge that lets a web page inside the app see and react to live call state. A dispatcher's screen shows an active call and updates a job record automatically when it ends, without touching a phone system console.
Neither one needed a vendor ticket. They built both themselves, on their own timeline.
If you had to teach this to someone, what is the one idea?
Unified communications happens in the UI.
It's not the switch, it's not the back-end, it's not even really "the softphone" as a separate thing anymore. It's whatever shows up on the screen someone is already looking at when they place or take a call. Billing, CRM, dispatch, support, all of it living in the same window as the dial pad.
Web Tabs and the IPC SDK are just the mechanism for putting your own stuff in that window instead of asking someone else to.
What they needed
- Active-user billing so dormant seats cost nothing and one person on three devices is one charge, not three
- An open framework, not open source, where a vendor carries the voice and video engine and everything built on top stays open
- His back-end left untouched, with a white-labeled relaunch under his own developer accounts in two to four weeks
- Customer-specific integrations he ships himself, on his own timeline, with no vendor feature queue
- White-label branding so the app is his differentiator, not a vendor's product with his logo on it
Technical detail
Features that did the work
Web Tabs
any web tool, the subscriber billing portal or a CRM, renders as a native tab inside the dialer, one tap away instead of a separate login on a separate site.
IPC SDK
web content in those tabs reads live call state and reacts to it. A dispatcher's dashboard updates a job record when a call ends. Standard web code, native behavior.
White-label branding
the app carries the operator's brand under its own developer accounts, not the vendor's.
Active-user billing
pay only for a user who registers and completes a call in the period. One identity across phone, laptop, and desk is one charge, not three.
Open framework
the vendor owns the cross-device voice and video engine; everything the operator builds on top stays open, without a rip-and-replace of the back-end.
Don't wait for the renewal notice to force the conversation.
Separate the two questions everyone blurs together: who owns the plumbing, and who owns the experience your customers touch. They don't have to be the same vendor, and they shouldn't be. For years we treated our softphone as someone else's product with our logo on it. It should have been the other way around the whole time.