A modem pool described as shipping with free software raises a question the product page does not answer: free relative to what, and until when. The bundled tool is genuinely usable, and the limits that matter appear at volume rather than during evaluation, which is why they are worth establishing before a campaign rather than during one.
This guide sets out what is actually free in a bundled package, which limits appear first as volume rises, when a paid or self-built alternative becomes cheaper, and how to compare the two on three-year cost rather than on licence price.
What is actually free in a bundled package?
The desktop tool, not the capacity it drives.
The distinction matters because the constraint that appears first is rarely the licence.
Three things are genuinely free in most bundles. The desktop application itself, which handles composition, submission and reporting. The ability to run the pool at whatever rate the network accepts. And basic export of delivery reports, which is the function that keeps a deployment legitimate rather than the one that costs money.
What is not free is everything the tool does not provide. Where a requirement extends beyond the desktop interface — an API, per-user access, retention beyond the tool’s store, or a second operator working concurrently — the cost is not a licence upgrade but a different piece of software. Framing the comparison that way prevents the common error of assessing the bundle against a paid tool when the real alternative is a build.
The modules themselves behave the same in either case, which is what makes the comparison tractable. The command references published by Quectel and SimCom describe what any driving software has to do, so the question is which software does it with the operational properties you need.
Which limits appear first at volume?
Pacing control, then reporting, then concurrency.
The order is predictable, and each limit is visible before it becomes a delivery problem.
Pacing appears first. A tool with a fixed send rate cannot be tuned to what the network accepts, so it either underuses a pool that could send faster or overruns a network that starts rejecting. Reporting appears next, when a campaign generates more records than the interface comfortably displays and the operator needs an export to reason about the result. Concurrency appears last, when more than one person or process needs to drive the pool at once and the desktop tool assumes a single operator.
A fourth limit belongs on the list because it is about evidence rather than throughput: retention. A report held only in the tool has a retention period set by the tool, and a delivery dispute that arrives after that period cannot be answered from the record. Exporting at the end of each campaign is the mitigation, and it works until the volume makes manual export impractical.
Establishing which of the four applies to your operation is the whole of the assessment. A deployment that sends short, infrequent campaigns may never reach any of them, in which case the bundle is not merely adequate but correct.
When does a paid or self-built alternative pay?
When a missing function costs more than the alternative.
The comparison is against effort avoided rather than against licence price.
Three situations justify the move. Where an application must send without a person operating a desktop interface, because the manual step becomes the constraint on the process rather than the radio. Where access must be attributable, because a shared desktop login cannot answer which operator sent a particular campaign. And where the volume of reporting makes manual export a recurring task rather than an occasional one.
The self-built path is worth costing explicitly rather than dismissing. Driving modules directly from your own code requires implementing discovery, encoding, pacing, batching, retry logic and reporting — which is a substantial piece of work before it does anything useful. The bundle has already done that work, and replacing it means paying for it again in engineering time.
A middle path exists and is often the right answer: keep the pool, and put an API in front of it by using a gateway device for the traffic that needs programmatic access while the bundle continues to serve campaign work. That avoids both the licence question and the build, at the cost of running two interfaces over one or two estates.

What does a self-built path require?
Six components, none of which is optional.
The list is what makes the build-versus-bundle comparison honest.
- Module discovery and stable addressing, so that a restart does not rebind the software to the wrong module.
- Encoding and segmentation, because message length determines both cost and delivery time.
- Pacing and queue management, tuned to what the network accepts rather than to a default.
- Batch state, so that an interrupted campaign resumes rather than restarting.
- Delivery reporting and export, with states that distinguish submission from delivery.
- Observability, including registered channel count, because the health of a pool is the number of usable channels rather than the number of attached devices.
Each of those components is a source of operational incidents when it is absent, and each has to be maintained as modules, drivers and networks change. A build that implements five of the six will be judged by the sixth, usually during an incident.
Where the requirement is an API rather than a build, a gateway device provides the same six components as part of the product. The SK-SMS Gateway range exposes SMPP and an HTTP API from the 4-port model at $238.00 upward, which converts the build question into a purchase question.
How do you compare the two on three-year cost?
Capital, effort, and the incidents it does not prevent.
The comparison improves once the third line is included, and that line is the one usually omitted.
| Cost line | Bundled software | Alternative path |
|---|---|---|
| Acquisition | Included with the pool | Licence, or engineering time to build |
| Configuration effort | Low, because the workflow is pre-built | Moderate to high, depending on integration |
| Operating effort | Rises with volume where export is manual | Lower at volume, because reporting is automated |
| Retention and evidence | Depends on manual export | Configurable, and usually longer |
| Maintenance | Vendor update cycle | Yours, including module and driver changes |
The line that changes decisions is operating effort at volume. A deployment that exports reports weekly will not recover the cost of a build; one that needs per-campaign attribution for several customers will.
Where the volume is genuinely marginal, the honest answer is that the bundle is the cheaper option and the question should be revisited when the volume changes rather than answered pre-emptively. Recording the trigger — the volume or the requirement at which the decision is revisited — is more useful than making the decision early.
What triggers a review of the decision?
A change in volume, access or retention requirement.
A decision made once and not revisited becomes an assumption, and the bundle-versus-build question changes with the deployment around it.
Three triggers are worth recording at the outset. A material increase in campaign volume, because reporting effort scales with it. A second operator or process needing to drive the pool, because the desktop tool assumes one. And a new retention or attribution obligation, because those requirements are contractual rather than technical and tend to arrive with a customer rather than with growth.
Recording the trigger turns a future decision into a scheduled one. Without it, the deployment is reviewed when something fails rather than when the requirement changes, which means the review happens under pressure and usually results in the quickest available change rather than the right one.
Where the pool serves several customers, the attribution requirement usually arrives first. A shared desktop login cannot answer which customer’s campaign produced a particular message, and that question tends to arrive from a customer rather than from internal reporting. Where per-customer attribution is expected, the requirement should be treated as a design input rather than as a reporting improvement.

Module behaviour is documented by Quectel and SimCom, and any driving software has to work within those references. Where the traffic is commercial, M3AAWG publishes the operational practice material, market rules for the North American market are described by the CTIA, and the equipment side is covered by the ETSI standards catalogue.
Conclusion
Free bundled software is genuinely free for the work it was designed to do, and the limits that matter appear in a predictable order: pacing control, reporting volume, then concurrent access, with retention as a fourth constraint that affects evidence rather than throughput. The alternative is rarely a paid tool and usually a build, which makes the comparison a question of effort avoided rather than licence price.
The comparison should include the cost of the incidents a missing component does not prevent, and it should record the trigger at which the decision is revisited. Where the requirement is programmatic access rather than a desktop workflow, a gateway device provides the interface as part of the product, which turns the build question into a purchase question and removes the maintenance burden from your team.
Establish which limit applies before a campaign finds it. Send your campaign volumes, access requirements and retention obligations to service@telarvo.com, or review the published models on the SMS modem solution pages.
FAQ
Is the software that comes with a modem pool really free?
The desktop tool is included and is genuinely usable for composition, submission and reporting. What is not included is anything beyond that interface: an API for another system to call, per-user access control, concurrent operation, and retention beyond the tool’s own store. Those are not licence upgrades but different software, which changes how the comparison should be framed.
Which limit appears first as volume grows?
Pacing control, because a tool with a fixed send rate either underuses the pool or overruns what the network accepts. Reporting volume follows, when a campaign generates more records than the interface comfortably displays. Concurrent access comes last, when more than one person or process needs to drive the pool. Retention is a fourth constraint that affects evidence rather than throughput.
Is it cheaper to build our own sending software?
Rarely at low volume. A build has to implement module discovery, encoding, pacing, batch state, delivery reporting and observability before it does anything useful, and it has to be maintained as modules and drivers change. The honest comparison includes the cost of the incidents a missing component does not prevent, and a deployment that exports reports occasionally will not recover that cost.
Can we keep the pool and add an API instead?
Yes, and it is often the right answer. Running a gateway device for the traffic that needs programmatic access, while the bundled software continues to serve campaign work, avoids both the licence question and the build. The cost is running two interfaces over the estate, which is simpler than maintaining a bespoke sending stack.