MSP Contract Checklist: Adding Hosted Voice Clauses

Tom Reed · Updated 9 November 2026
An MSP contract is the managed services agreement that sets what you deliver to a client, on what terms, and how either side can leave. When you add hosted voice, extend it with clauses for the voice term, phone numbers, support scope, the carrier and the exit. Here is the checklist. If you resell SessionPBX, you hold the client contract and invoice the client yourself. SessionPBX is a multi-tenant PBX you can run on your own servers, or SessionTalk can host it for you.
This guide is for MSPs, ITSPs, VoIP providers and IT resellers who already have a managed services agreement with their clients and want to add resold voice to it. It covers the clauses worth thinking about, not legal wording, and it does not replace advice from a lawyer.
What is an MSP contract, and why does voice need its own clauses?
An MSP contract is usually a managed services agreement (MSA) plus a schedule or statement of work for each service you provide. Your existing schedules probably cover devices, support requests, security and backups. Voice brings in things those schedules do not normally cover: phone numbers, a third-party carrier, emergency calling, call recording and user apps on people's own phones and computers.
Our advice is to add a voice schedule to the MSA you already have rather than write a separate contract. The master terms stay as they are, and the voice schedule carries the clauses that are specific to calling. If you have not yet decided whether to hold the client contract at all, VoIP reseller vs referral agent models explains why a reseller does.
This post is general information, not legal advice. Have a lawyer review the final contract before you use it with a client.
Who is the contract between when you resell SessionPBX?
The client contracts with you, and you contract with SessionTalk as a partner. The client does not pay SessionTalk and does not sign anything with SessionTalk. You set your own price and your own terms, and SessionTalk pays no commissions and makes no payouts, so the client relationship stays with you from the first signature.
Write that into the voice schedule in plain words: the parties are your company and the client, and you are the single supplier of voice. If you have not yet worked out how the invoice itself is structured, VoIP billing for resellers covers who bills whom. Pricing the service is a separate job, covered in how to set your VoIP price as an MSP, and none of that belongs in this post.
What term and renewal should a voice schedule have?
Decide whether the voice term follows the main MSA or stands on its own, and then say so. Either can work. A voice schedule that follows the MSA renews with it. A separate voice term lets you add voice to a client who is already mid-contract without reopening everything else.
Cover renewal and notice in words: how the term renews, who can give notice, and what form that notice takes. SessionTalk bills partners monthly or annually for hosted plans and annually for self-hosted licences, so line your client term up with what you are committed to upstream. That way you are never holding a longer commitment than the one your client has signed. The figures are your own to set, and they belong in your schedule, not in a blog post.

Which clauses cover phone numbers and the carrier?
SessionPBX is a bring-your-own SIP trunk phone system. External calls run over the SIP trunk you connect, from any SIP-compliant carrier, and that carrier supplies the numbers and bills the call charges. Internal team calls are included, with no per-minute charge from SessionTalk.
The contract should therefore say three things plainly:
- Who holds the carrier account. Usually that is you, but if the client brings their own trunk, say so.
- Who owns the numbers. The numbers belong with the carrier account they sit on, so name whose account that is.
- How numbers move at exit. Decide what happens to them when the client leaves.
SessionTalk does not supply phone numbers, so plan that part with your carrier. SessionTalk does not offer porting, so use the business phone number porting checklist to work through it with your carrier.
For the trunk itself, how to connect a SIP trunk to a hosted PBX covers the trunk setup that the carrier clause refers to.
How should you define support scope and service levels?
Support is where voice contracts are most often vague. A table of who handles what removes most of the arguments:
| Area | Usually handled by | Contract note |
|---|---|---|
| User adds, moves, changes | You (MSP) | Define the request route and response times in your own terms |
| Softphone app issues (tier 1) | You | Apps on Windows, macOS, iOS and Android, set up by QR or link |
| Carrier faults, numbers, call charges | Your SIP carrier, via you | Name the carrier account holder |
| PBX platform (self-hosted) | You run the server; SessionTalk for software | Hosting, patching windows and data location are yours |
| PBX platform (hosted by SessionTalk) | SessionTalk, via you | The client raises tickets with you, not SessionTalk |
Several of the pages that rank for MSP contracts lead with a section on service levels, but yours are your own to write. Be careful here. The service levels in your contract are your own commitments to your client, so set them on what your team and your carrier can actually deliver. SessionTalk does not publish a service level you can pass on, and you should not imply one. For partner terms, use the SessionPBX partner page rather than guessing.
For the first line of support, give your helpdesk a runbook. Our guide to tier 1 softphone troubleshooting is a good starting point for the app-side questions your clients will raise first.
What about users, devices and apps?
Seats are counted per user. Each user runs a SessionTalk softphone on Windows, macOS, iOS or Android, set up by QR code or desktop link, so nobody types SIP settings by hand. Point your contract at the softphone apps your clients' users run so the client knows what they are being given.
Add a device clause as well. It should say whose phones and computers the apps run on, whether personal devices are allowed, and what happens to the app when someone leaves. The device onboarding and offboarding checklist is a handy model for the leaver wording.
App logo branding can be an optional line in the schedule. It puts your logo and product name in the SessionTalk softphone. It is included on Teams Business and is an add-on on Teams Phone. Teams Phone and Teams Business are SessionPBX plan names, and SessionPBX is a standalone phone system that isn't related to Microsoft Teams. Only add the line if you offer the branding to the client.

Does self-hosted or hosted change the contract?
Yes, because it changes who runs the server. We lean towards self-hosted multi-tenant on your own servers, with every client kept separate. Self-hosted is available to approved partners only, with annual licences, and server, hosting and network costs are yours. Because you run the server, the contract should say that you are responsible for hosting, for where the data sits and for maintenance windows.
SessionTalk can also host it for you in the UK (London), the US (New York) or Singapore, and each region has its own database. If you go that way, name the region in the data location clause so the client knows where their data is.
The trade-offs between the two are in self-hosted PBX vs PBX hosting for VoIP resellers, and the tenancy model is explained in multi-tenant PBX for MSPs. The contract only needs to record which one you chose and what that makes you responsible for. For the cutover itself, MSP customer onboarding for hosted PBX covers the steps, and the contract just needs to say who does them.
What should the exit clause say?
Exit is the clause people skip and later wish they had written. Keep it short and specific. It should cover:
- Number release. Who does what with the numbers, using the carrier account holder you named earlier.
- Data export. What you hand over, for example call history and voicemail, and in what form.
- App removal. The users are removed and the softphones stop working for that client.
- The final invoice. What is billed at the end and when it is due, on your own terms.
Keep every one of those in your own terms, not in terms borrowed from another contract.
If you are still building the wider voice offering, adding hosted PBX voice services as an MSP covers the business case that sits behind the contract.
Voice contract checklist
- The parties: your company and the client. The client does not contract with SessionTalk
- The services: hosted voice on SessionPBX, the user seats and the softphone apps
- Where it runs: self-hosted on your servers, or hosted by SessionTalk (name the region)
- The carrier: who holds the SIP trunk account, and that numbers and call charges come from it
- Number ownership and how numbers move at exit
- Support scope, matching the table, and your own service levels
- Emergency calling: a plain statement of the client's responsibilities and your carrier's, with no platform claims
- Call recording and data: who is the controller, how long recordings are kept, and the data location
- Term, renewal and notice, on your own terms
- Charges and invoicing: you invoice the client, as covered in the billing guide
- Changes: how seats are added or removed
- Exit: number release, data export, app removal and the final invoice
- Get the final version reviewed by your own lawyer
FAQ
What should an MSP contract include for VoIP?
Add a voice schedule that names the parties, the service, where it runs, the carrier and number ownership, support scope, recording and data, term and renewal, invoicing, how seats change, and the exit. Each clause should be in your own terms, and a lawyer should review the final version.
Do I need a separate contract for hosted voice?
Usually no. Add a voice schedule to the managed services agreement you already have, so the master terms stay as they are and the schedule carries the clauses specific to calling. Use a separate voice term only if the client is mid-contract and you do not want to reopen everything else.
Does SessionTalk provide an SLA I can pass on to clients?
No, so do not promise one. The service levels in your client contract are your own commitments, set on what you and your carrier can deliver. Check the SessionPBX partner page for partner terms, and keep your client wording separate from anything SessionTalk publishes.
Who owns the phone numbers?
They come from the SIP carrier you connect, so ownership follows the carrier account. Write who holds that account, and what happens to the numbers at exit, into the contract. SessionTalk does not supply or port numbers, so plan that move with your carrier.
Does self-hosting change my obligations?
Yes. When you self-host, you run the server, so hosting, maintenance windows and data location are yours to commit to in the contract. SessionTalk can host SessionPBX for you instead, in London, New York or Singapore, in which case the client still raises tickets with you.
Can my logo appear on the apps?
Yes, through app logo branding: your logo and product name in the SessionTalk softphone. It is included on Teams Business and is an add-on on Teams Phone. Treat it as an optional line in the voice schedule, and only add it if you offer the branding to the client.
Ready to add resold voice to your managed services agreement? Apply to the SessionPBX Partner Programme. Want to check what your clients get first? See SessionPBX features.


