How to enable Caller ID forwarding in 3CX

There have been a few scenarios where an end user might want to show the 'original' callers id when transferring or forwarding calls to an external part, this is a short guide on how to achieve this.

Published 2021-06-04


Some use cases for this would be because:

  • The end user wishes to divert calls to a sales person after hours, and retain the original callers number.
  • The end user wishes to divert calls to personal mobile number when in Do Not Disturb, Lunch Break or other preferred status.
  • Some other ungodly reason...
⚠ Be Aware

This method is O.K. to use when the SIP Trunk provider does not require the AuthID parameter set for From : Display Name, From : User Part, Remote Part ID - Calling Party : Display Name or Remote Part ID - Calling Party : User Part in the SIP Trunk > Outbound Parameters settings.

This will also utilise 2 SIP Channels in the process (one for the inbound call, one for the outbound call), preferred method is the Mobile App.

In testing this there was a total of four (4) scenarios executed:

Scenario 1 - Forward External Call to External Number ✔️ Worked as expected
  1. Party 1 called from Mobile Number to Demo Phone System
  2. Party 2 transferred the call to a Mobile Number
  3. Mobile Phone displayed Party 1 as the Caller ID
Scenario 2 - Do Not Disturb settings with forward to an External Number ✔️ Worked as expected
  1. Party 1 setup a DnD Configuration to forward calls to an External Number, and set himself as DnD
  2. Party 2 called from the Phone System to another Phone System
  3. Party 2 answered the call, and transferred the number to Party 1's Extension, which forwarded the call to Party 1s Mobile
  4. Party 1 recieved the call with a Caller ID presenting to him
Scenario 3 - After Hours settings with forward to an External Number ✔️ Worked as expected
  1. Party 2 configured After-Hours settings to forward calls to an External Number
  2. Party 2 called from another Phone System to Demo Phone System
  3. Demo Phone System automatically forwarded the call to the Configured External Number
  4. Party 2 recieved the call with a Caller ID presenting to him
Scenario 4 - Passing External Call to Internal Extension then Forward to External Number 🚩 Worked as 'expected', but didn't pass on the Original Callers ID
  1. Party 1 called the Demo Phone System from his mobile
  2. Party 1 answered the call, and transferred it to Party 2' Extension
  3. Party 2 answered the call, and transferred it to External Number (Mobile)
  4. Party 2 recieved the call with a Caller ID presenting to him (This happened because 3CX reconigsed the Original Caller ID being the internal extension's, not the original caller).

🔧 Configuration steps

‼ Please Ensure

There is a current backup available in the event you have to roll settings back!!!!

  1. Log into the Management Console (https://client.3cx.com.au/)
  2. Go to 'SIP Trunk'
  3. Go to 'Outbound Parameters'
  4. Change 'Remote Party ID' from 'OutboundCallerId' to 'OriginatorCallerID'
  5. Scroll back up and click OK. Note this will force a refresh of the SIP trunk registration which will drop all active calls
  6. Done

Suggest setting up a temporary DnD rule, or testing the after-hours forwarding rule to see if it has applied correctly.

If you need any help setting this up, or have any other questions about 3CX; don't be afraid to reach out to me!


AuthorChristopher Talke

Topics3CX, Caller ID and Telephony

Find an issue with this post? Think you could clarify, update or add something? All my posts are available to edit on Github!