Same extension but 2 different outbound CID for 2 trunks

We are planning to use FreePBX for 2 departments (or you can say 2 brands or companies).
We have 2 SIP peer trunks as our service provider.
Each service provider allocated 100 consecutive numbers, 200 in total.
Company A extension from 100 - 149
Company B extension from 250 - 299
Company A and Company B can make internal calls (it is the same FreePBX anyway)
Company A will mainly use SIP Trunk A for outbound calls
Company B will mainly use SIP Trunk B for outbound calls
All extensions have their own direct line numbers

We have 2 SIP trunks here to increase redundancy. In case of 1 SIP trunk went down, they can use the remaining one for outbound calls. So, it happens to be, we have 50 numbers left for both trunks so why don’t we allocate them too? So the extensions in Company A can have a dedicated outbound caller ID on SIP Trunk B and likewise for Company B. And we have a problem.

For each extensions, we can only assign 1 Outbound CID, which we did. For instance, SIP Trunk A gives us 6000100 to 6000199 and SIP Trunk B gives us 7000200 to 7000299. We assigned 6000100 to extension 100, 6000101 to 101 and so on. How can I assign the second outbound caller ID, let’s say 7000200 for extension 100 and 7000201 for extension 101? Likewise, extension 250 could have 7000250 for SIP Trunk B and 6000150 for SIP Trunk A?

It seems pretty natural and normal for my thoughts but I just don’t know where I can set 2.

Things we want to avoid

  • Make 2 FreePBXs
  • 2 Extensions for each actual person
  • Paid addons

Things we would comply

  • Custom Dialplan
  • Free addons
  • Other Open Source PBX solutions

Thanks in advanced!


Faced with the constraints imposed here I would:

Do your providers let you spoof caller ID? Why not set the caller ID to be the same no matter what trunk they call out of?

1 Like

Well, we surely cannot spool the caller ID or we can pretend ourselves an emergency number. If we set a number that we don’t own, the ISP will simply correct the caller ID to the trunk’s prime number, usually 00.

If so, when extensions 100 to 149 have to use SIP Trunk B, their caller ID will be 7000200 and 7000200 only as 00 is the prime number of SIP Trunk B. That’s not good because when the customer calls back, all calls are now going to 100’s extension.

But we own those 200 numbers (100 each per trunk), so we can freely assign those 200 numbers to the extensions. If the caller ID exists in the trunk, our ISP will simply take that caller ID and call the other party.

This is called “multi-tenant” operation, and FreePBX doesn’t do it very well.

There are options in the Outbound Route that allow you to process a call (including the Caller ID) on a “per extension” basis. You can do a lot with that.

If you want “per extension” caller IDs, there’s no way short of custom code to do that. This custom code will probably be applied through a database lookup/edit of the CID in one of the custom hooks that are available.

Do you mean two instruments, or two extensions per instrument. If the former, I can see that, but it’s not required. If you mean the latter, you can program two buttons on your instrument-per-desk to act as different extensions.

There is no way for the system to know “magically” what caller ID you are going to want, or what extension you are calling from. You have to do something to give the system a way to figure that out.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.