
Connecting GoHighLevel to a Flat-Rate SIP Trunk
GHL's native LC Phone markup eats into outbound margins on every minute. Wiring UnlimCall's SIP trunk into your GoHighLevel sub-account eliminates per-minute billing and replaces it with a flat $99/seat/month — or a daily rate of $4.95 per active seat.
Why the Native LC Phone Model Costs More at Scale
GoHighLevel's LC Phone layer is a Twilio resell. Every outbound minute carries a per-minute termination charge that compounds as you add agents. A 10-agent team running 4 hours of live talk time per agent per day — a normal productivity floor for outbound sales — generates roughly 2,400 minutes per day. At common LC Phone rates, that is a non-trivial line item that scales linearly with headcount.
Flat-rate SIP trunking inverts the model. Once a seat is provisioned, that agent dials as many minutes as their shift allows with no per-minute counter running. The economics favor any team where agents average more than 90–120 minutes of connected talk time per day, which is essentially every team running a real outbound operation.
What "BYO SIP" Means in GoHighLevel
GoHighLevel's BYOC (Bring Your Own Carrier) setting allows a sub-account to route calls through an external SIP trunk rather than LC Phone. In practice, this means:
- The sub-account uses an externally provisioned DID for its outbound caller ID
- SIP INVITE messages originate from GHL's softphone or dialer layer and are routed to your trunk's SIP endpoint
- Call events (answer, duration, disposition) still post back into GHL's CRM timeline via GHL's internal event hooks
The trunk itself handles termination — carrier relationship, STIR/SHAKEN attestation for US and Canadian numbers, and route selection. UnlimCall manages that layer across 33 markets.
Provisioning the Trunk: Step by Step
The connection requires three things: a SIP endpoint, an outbound credential set, and a caller ID number assigned to the trunk.
First, provision a seat from the UnlimCall portal. The portal generates a SIP domain, a username, and a credential token — these are the values you will enter into GoHighLevel's BYOC configuration panel.
Second, assign a caller ID. UnlimCall provisions DIDs on demand across 33 live markets. You request the number for the country you are calling into and it is provisioned directly to your seat — there is no inventory pool to pull from and no waiting for an available number.
Third, enter the SIP credentials into GoHighLevel under Settings > Phone Numbers > Bring Your Own Carrier. The domain field takes UnlimCall's outbound SIP gateway address; username and password come from the portal.
Fourth, test with a single outbound call from the GHL dialer to confirm the call completes, audio is clean, and the caller ID renders correctly on the receiving end.
STIR/SHAKEN and Caller ID Attestation
STIR/SHAKEN attestation — the framework that causes carriers to display "Verified" or a similar trust signal on US and Canadian calls — is handled at the trunk level. UnlimCall signs outbound calls to the US and Canada with an A-attestation when the DID is provisioned and owned on the account. This attestation passes through the SIP chain to the terminating carrier.
GHL's softphone and dialer pass the caller ID in the SIP From header. The trunk picks it up and applies the attestation certificate to that number. No additional configuration is needed in GHL for attestation to function — it is trunk-side.
See the network overview for attestation coverage by market.
Call Outcome Sync and CRM Timeline Updates
GHL records call outcomes in the contact timeline automatically when a call routes through its dialer layer, regardless of which trunk terminates the call. Duration, disposition, and recording URL (if GHL recording is enabled) all post to the contact record.
For more granular disposition sync — flagging calls as "voicemail," "connected-not-interested," or routing specific outcomes to GHL workflows — use GHL's outbound call webhook trigger combined with a workflow action. The webhook fires on call completion and can carry custom disposition codes set by your agents during or after the call.
For teams connecting external systems or custom dialers to the same trunk, the integrations and custom SIP setup guide covers the additional configuration steps.
Takeaways
- LC Phone is a per-minute Twilio resell; flat-rate SIP eliminates the per-minute counter for agents averaging more than 90–120 minutes of talk time daily.
- GoHighLevel's BYOC setting routes calls through an external trunk without losing CRM timeline functionality.
- Caller IDs are provisioned on demand across 33 markets — no pool to allocate from.
- STIR/SHAKEN attestation for US and Canadian DIDs is handled at the trunk level, requiring no additional GHL configuration.
- Daily rate is monthly ÷ 20: a $99/seat/month plan runs $4.95 per active seat-day.
Ready to Run Flat-Rate Minutes Through GoHighLevel
Compare the per-minute total on your last LC Phone invoice against the UnlimCall seat pricing for your agent count. The math is usually clear after one month of call data.