Hey all,
Posting this because I just spent way too long chasing a problem that looked like a FreePBX/PJSIP dialplan bug, but the root cause ended up being Spectrum’s extremely strict CallerID formatting requirements. This will save other admins a lot of pain.
I’ve handled quite a large number of PBX’s, and Spectrum SIP trunks, but I’ve only encountered this issue on my newest deployments using PJSIP for the Spectrum Trunk, so this may be PJSIP specific. And yes, Copilot wrote my summary here (which I’ve reviewed).
Symptoms
When placing outbound calls through a Spectrum PJSIP trunk, you may see:
-
Calls failing immediately
-
Calls being sent out with the wrong dial string, such as:
PJSIP/<number>@Spectrum…instead of the expected:
PJSIP/Spectrum/<number> -
FreePBX appears to append a suffix like
@Spectrumto the dial -
You might find an unexpected line like:
Set(TDIAL_SUFFIX=@spectrum) -
Nothing in the GUI seems wrong
-
PJSIP endpoint settings look clean
-
No dial patterns contain “@spectrum”
-
No custom dialplan overrides
-
No Advanced Settings causing it
It’s extremely confusing because the dialplan looks wrong, but nothing you change in FreePBX makes any difference.
Root Cause (Spectrum‑Specific (and PJSIP-specific?))
Spectrum does not accept CallerID strings that contain formatted display names or quotes.
This includes:
"Caller Name" <1234567890>
"Caller Name"
Caller Name <1234567890>
<1234567890>
If you send anything other than a plain numeric CID, Spectrum silently rejects the INVITE.
When that happens, Asterisk tries alternative dialing forms (fallback SIP‑URI logic), and that’s when you see dial strings like:
PJSIP/number@spectrum
This makes it look like FreePBX is generating a bad dial string — it isn’t.
Spectrum is rejecting the first INVITE due to the CNAM display format.
The Fix (Simple, Carrier‑Compliant)
Set your Outbound CallerID to numbers only.
Correct (Accepted by Spectrum):
1234567890
or
11234567890
Incorrect (Rejected by Spectrum):
"Business Name" <1234567890>
"Business Name"
Business Name <1234567890>
<1234567890>
This single change immediately stops the fallback dialing behavior and restores correct PJSIP dial syntax.
Where to Set This in FreePBX
Connectivity → Trunks → (Spectrum Trunk) → General → Outbound CallerID
Use ONLY the number:
1234567890
Apply Config → Reload.
You’re done.
Optional: Force Trunk CID System‑Wide
(Note, this solution does not work if you do indeed need multiple outbound callerIDs)…
If you want to ensure no extension accidentally introduces CNAM:
Settings → Advanced Settings → Always Use Trunk CID → Yes
This forces FreePBX to always use the clean numeric CID you configured.
Why This Matters
This issue is incredibly misleading because:
-
The dialplan looks wrong
-
The PJSIP trunk looks correct
-
No custom dialplan exists
-
No dial manipulation rules include a suffix
-
Asterisk’s fallback behavior masks the real issue
But the entire problem boils down to Spectrum requiring unformatted numeric CallerID only.
Hope this helps someone!
If you’re using Spectrum — especially Spectrum Fiber or Business Voice trunks — and your outbound calls behave strangely or your dialstring is being rewritten, check your CallerID formatting first.
This fix eliminated the issue immediately.