Skip to content
CLIRoutes

Integration · PBX & softswitch

3CX setup for CLIRoutes

3CX uses provider templates for its trunk wizard. CLIRoutes works with the generic SIP trunk template, which exposes every field you need. This guide covers V20 menus; older versions use the same fields under slightly different names.

Tested on
3CX V20 (Linux and Windows)
Template
Generic SIP Trunk
Auth
Register or IP based
Signalling
sip.example-carrier.net:5060 UDP
Codecs
PCMA, PCMU, G729

Before you start

  • 3CX system owner or admin role.
  • Your 3CX public IP on the CLIRoutes endpoint, or SIP credentials.
  • Authorised caller IDs and any DIDs you want to receive on the trunk.

Placeholders in angle brackets, such as <ACCOUNT_ID>, come from your portal. The host shown is a placeholder; use the one listed under Portal → Network.

Set up 3CX

  1. 01

    Add the trunk

    Go to Admin → Voice & Chat → Add Trunk. Select your country, choose Generic SIP Trunk as the provider and enter your main number (an authorised caller ID or DID).

  2. 02

    Set registrar and authentication

    Fill in the fields below. Number of SIM calls must not exceed the channel limit on your endpoint, or 3CX will attempt calls we reject with 503.

    Trunk · General
    Registrar/Server/Gateway .. sip.example-carrier.net
    Port ...................... 5060
    Outbound Proxy ............ (blank)
    Number of SIM calls ....... <CHANNEL_LIMIT>
    Type of Authentication .... Register/Account based   (or IP based)
    Authentication ID ......... <ACCOUNT_ID>
    Password .................. <SIP_PASSWORD>
  3. 03

    Configure caller ID

    On the Caller ID tab set Outbound Caller ID to an authorised number. Under Options → Outbound Parameters, map *P-Asserted-Identity* to *OutboundCallerId* so we receive the number in the header we validate.

  4. 04

    Choose codecs

    On Options → Codec priority, order PCMA, PCMU, then G729. Remove codecs you do not use so negotiation stays predictable.

  5. 05

    Create an outbound rule

    Go to Admin → Outbound Rules → Add. Match calls starting with 00, route them via the CLIRoutes trunk and strip two digits so we receive country code plus number. Add a second rule for + if your users dial from contacts.

    Outbound rule
    Calls to numbers starting with ... 00
    Route 1 ........................... CLIRoutes
    Strip digits ...................... 2
    Prepend ........................... (blank)
  6. 06

    Route inbound DIDs and test

    For each DID, add it on the trunk DIDs tab and create an inbound rule pointing to an extension, ring group or IVR. Then call a mobile you control from an extension, confirm the caller ID, and call one DID from outside.

Inbound and outbound parameters

3CX reads the called number for inbound calls from a configurable header. We send the DID in the Request-URI and To header in country code plus number format, so set *CalledNum* to *Request Line URI: User Part*. For outbound, the generic template already populates From with the caller ID; adding the PAI mapping above makes validation consistent across all destinations.

Troubleshooting

SymptomLikely causeFix
403 ForbiddenSource IP not allow-listed, wrong credentials, or caller ID not authorisedCheck Portal → Endpoints and Caller IDs
484 Address IncompleteNumber sent in national format or with a leftover prefixSend country code + number, no + or 00
One-way or no audioNAT not handled or RTP blockedSet external address, open the RTP range
Trunk shows redRegistration failed or firewall check failingRun Firewall Checker; re-enter credentials

Last verified by the CLIRoutes routing team. Menus can change between releases; if a field has moved, tell us.

FAQ

3CX questions

Can’t find what you need? Our routing team answers within the hour, around the clock.

Is CLIRoutes a certified 3CX provider?

No. We work with the generic SIP trunk template, which 3CX supports fully. Certification only affects whether a prefilled template appears in the wizard.

Can 3CX present a different caller ID per user?

Yes. Set Outbound Caller ID on each user, and leave the trunk value as the default. Every number must be authorised in the portal.

Do I need a static IP for 3CX?

Only for IP-based authentication. With registration, 3CX re-registers when its address changes.

Why do calls drop after a few minutes?

Usually a session timer or NAT keep-alive issue. Make sure the 3CX Firewall Checker passes and SIP ALG is disabled on your router.