- Joined
- Jun 20, 2025
- Messages
- 2
- Reaction score
- 3
Hello 3CX Community,
I’m running 3CX v20 U5 with two PBXs bridged together via SIP trunk. On PBX A I have a DID (let’s call it 0123456789) and I need any call arriving on that DID to be blind-transferred (single-leg) to an extension on PBX B (for example 16804). PBX B is reachable only via the SIP bridge and the extension 16804 exists there.
I have tried several Call Flow Designer (CFD) approaches, including:
My Outbound Rule on PBX A is set to match any 5-digit number starting with “1” (pattern ^1\d{4}$) and send it over the SIP bridge to PBX B.
What I expect:
What actually happens:
Thank you in advance for your help.
—
PBX A: 3CX v20 U5
PBX B: 3CX (bridged via SIP trunk)
DID on PBX A: 0123456789 → target ext on PBX B: 16804
I’m running 3CX v20 U5 with two PBXs bridged together via SIP trunk. On PBX A I have a DID (let’s call it 0123456789) and I need any call arriving on that DID to be blind-transferred (single-leg) to an extension on PBX B (for example 16804). PBX B is reachable only via the SIP bridge and the extension 16804 exists there.
I have tried several Call Flow Designer (CFD) approaches, including:
- ConditionalComponent → TransferComponent
- Condition: session.did == "0123456789"
- Transfer Destination: constant "16804"
Result: No outbound dial-out is ever triggered; the call always follows the default DID assignment on PBX A.
- Execute C# Code + TransferComponent
- Used CFDFunctions.GetVariableValue in an Execute C# Code block to return "16804"
- Transfer then set to ComputeDestination()
Result: Still no outbound call leg, and no Outbound Rule is applied.
- MakeCallComponent
- Originate a second call leg from an internal (e.g. 771) to 16804
Result: Works, but creates two call legs in conference; I need a true single-leg blind transfer
- Originate a second call leg from an internal (e.g. 771) to 16804
- Call-Processing Script (C#)
- Tried the “Inbound DID Routing” sample with ExternalNumber.16804.
Result: Compiles and logs, but does not actually dial out as expected.
- Tried the “Inbound DID Routing” sample with ExternalNumber.16804.
My Outbound Rule on PBX A is set to match any 5-digit number starting with “1” (pattern ^1\d{4}$) and send it over the SIP bridge to PBX B.
What I expect:
- Call arrives on DID 0123456789 at PBX A
- CFD (or call-processing script) performs a blind transfer to 16804
- PBX A sees “16804” matches the Outbound Rule, sends it over the bridge
- PBX B extension 16804 rings, single-leg call for the caller
What actually happens:
- TransferComponent either is ignored (when number not recognized as internal) or results in a second call leg (with MakeCall)
- No single-leg outbound call via the Outbound Rule
- Has anyone successfully implemented a CFD TransferComponent to an external extension on another bridged 3CX PBX, in a single-leg fashion?
- Are there special settings or syntax in CFD (TransferComponent or Execute C# Code) to force a true blind transfer to an external number that invokes the Outbound Rules?
- If CFD cannot do this, what is the recommended way (C# call-processing script or other) to achieve this scenario?
Thank you in advance for your help.
—
PBX A: 3CX v20 U5
PBX B: 3CX (bridged via SIP trunk)
DID on PBX A: 0123456789 → target ext on PBX B: 16804