- Joined
- Feb 28, 2025
- Messages
- 2
- Reaction score
- 0
I am managing a multitenant V20 deployment that requires mapping multiple peer-to-peer SIP trunks to the same Provider IP.
To maintain isolation, we have implemented 802.1Q subinterfaces at the OS level to ensure traffic for each tenant/trunk enters the server on a distinct VLAN. While routing at the network layer is correctly partitioned—verified by successfully sourcing pings from the respective subinterfaces—3CX is failing to differentiate the trunks at the application level. Because the Provider IP is identical for all trunks, 3CX ignores the VLAN ingress and defaults to the first configured trunk in the list, effectively hijacking the traffic.
Since 3CX does not natively support binding a trunk object to a specific local interface, we are hitting an application-layer limitation where the PBX is blind to our VLAN-based separation.
Is there any way in a multitenant V20 environment to force a peer-to-peer trunk to associate its identity with the specific local interface or subinterface where the INVITE was received?
To maintain isolation, we have implemented 802.1Q subinterfaces at the OS level to ensure traffic for each tenant/trunk enters the server on a distinct VLAN. While routing at the network layer is correctly partitioned—verified by successfully sourcing pings from the respective subinterfaces—3CX is failing to differentiate the trunks at the application level. Because the Provider IP is identical for all trunks, 3CX ignores the VLAN ingress and defaults to the first configured trunk in the list, effectively hijacking the traffic.
Since 3CX does not natively support binding a trunk object to a specific local interface, we are hitting an application-layer limitation where the PBX is blind to our VLAN-based separation.
Is there any way in a multitenant V20 environment to force a peer-to-peer trunk to associate its identity with the specific local interface or subinterface where the INVITE was received?