Version 9 of 3CX PhoneSystem introduces a more powerful control set for Forwarding Rules. Each extension can be in any one of 5 different statuses:
- Out of Office
- Custom #1
- Custom #2
Version 9 also allows us to define, for each extension number, the user’s mobile number (cell phone number).
Forwarding to an External Number Directly
For each of these different statuses, we can specify the destination of the call to be either the extension’s mobile number, or some other external number (or Skype ID).
Forwarding to an External Number using the Rebound™ Feature
Sometimes it is not sufficient to simply forward the call to an external destination without an announcement. For these cases, we can invoke the Rebound™ feature, which will announce to the destination that a call is coming in from a particular number, and allow the destination whether to accept the call, or send the call to the extension’s voicemail box.
Diverting a call to another number
Version 9 also introduces the possibility to DIVERT a call using a SIP-specific response “302 Moved Temporarily”. This basically instructs the original sending entity (typically a VoIP Provider or a Gateway device) that the call needs to be sent another number. The details of this other number will be in the “Contact” field of the 302 Response.
A few points to keep in mind when using this feature:
- Not all Gateway Brands and/or Models can handle this correctly. Specifically, there is no way for this to function correctly with an FXO Gateway device since an FXO line does not have sufficient signalling functionality to process a Call Diversion request.
- Not all VoIP Providers can handle this correctly
- An extension can be reached via more than one inbound channel (VoIP Provider or Gateway device). If you create a Forwarding Rule to DIVERT calls, the call may be handled differently, depending on whether the inbound channel can correctly handle Call Diversion or not.
Considering these points, you should only use the DIVERT feature if you are certain that all the inbound channels delivering calls to the extension can handle Call Diversion correctly.
Retaining Original CallerID
When an inbound call is delivered to an extension, the caller’s number (CallerID) is typically visible on the phone’s LCD display. If the call is forwarded to an external number via the forwarding rules, in most cases we would want the original caller’s number to propagate to the destination phone so that
If a call is DIVERTED to another number by an extension, this is effectively the PBX telling the original sending entity (VoIP Provider or Gateway device) that the call should be delivered to another number. At this stage, the telecoms provider should terminate the call to the PBX and attempt a call to the number the PBX specified as the Diversion destination. In most cases, that number will be outside the PBX, and therefore 3CX PhoneSystem is not in control of how a telecoms provider presents a call to a Diversion destination. Under normal circumstances this should work, but should issues occur in this area, it will be necessary to invoke the support of the VoIP Provider or Gateway Vendor.
Which type of Forwarded Calls can deliver the original Caller ID?
Calls forwarded using the “302 Diversion Header” mechanism will, in effect, NOT be forwarded by 3CX PhoneSystem, but will simply cause the telecom provider to re-establish the call to the new destination directly.
Calls forwarded using the Rebound™ feature will NOT provide the Caller ID of the original caller within the call parameters. In any case, the Caller ID is announced to the destination in the audio stream by the IVR.
This means that only forwarding rules of type “External Number or Skype ID” WITHOUT the Rebound™ option can deliver the original Caller ID to the destination.
How does it work?
A quick look at the “Outbound Parameters” will show how 3CX PhoneSystem builds its SIP messages to the Gateway or VoIP Provider.
Each SIP field is populated with the contents of a particular variable. The key to the Outbound Caller ID functionality lies in the variable called “OutboundCallerID” – typically placed in the “From : User Part” SIP field.
3CX PhoneSystem populates the value of the “OutboundCallerID” variable based on the following rules:
- Start from a blank value
- Replace with the outbound channel’s “Outbound Caller ID”
- Identify the channel which will deliver the outbound call
- Replace with the value of the “Outbound Caller ID” field visible from the “Edit Port” page in the Management Console
- If available, replace with the value of the forwarding extension’s “Outbound Caller ID” field visible from the “Other” tab of the “Edit Extension” page in the Management Console. This means that if the extension’s Outbound Caller ID is blank, the outbound channel’s Outbound Caller ID will persist.
- If the call is not being made directly from an extension (i.e. not a simple outbound call, but an inbound call being forward to an external number), replace with the value of the Caller’s Number. You can check what the PBX has identified as the caller’s number by looking at the log messages when the call originally reached the PBX from the VoIP Provider or from the PSTN Gateway – for example:
Looking for inbound target: called=14044786515; caller=14049876543
How can this functionality be disabled?
Following from the previous description that this functionality is linked to the “OutboundCallerID” variable bound to the SIP Fields in the Outbound Parameters page, we can deduce that we need to change the “OutboundCallerID” variable to some other variable, depending on what behaviour we want to see.
Changing to “Outbound Line Caller ID” would simply deliver the outbound channel’s “Outbound Caller ID”. Another possibility would be to set it to some custom value – typically the company’s main DID/DDI number.
What symptoms you see when the telecoms channels do not support it?
Some telecoms channels will interpret an attempt to use this functionality as an attempt to spoof your Caller ID number. The telecoms provider can react in one of the following ways if it does NOT allow this functionality:
- Provider replaces CallerID with “unknown” or “anonymous” or something similar
- Provider replaces CallerID with the main number assigned to your telephone line or VoIP Provider account
- Provider disallows the call and the call fails to forward to the external destination