Multiple external IP addresses

So we have 13 locations, for each location i want to be able to split the available channels so we can protect each locations available ones.

I spoke with our provider (Gamma in the UK) and they assured me we could have a trunk for each location, this would mean the # of channels would be protected for each location. I’ve just asked them to add the 3rd trunk and now they are saying they can’t because it’s going to the same IP address and asked if i could add any other IP addresses.

Obliviously this comes as an additional cost but i have two queries;

  • Is there a way to protect channels (incoming/outgoing) for each location of handsets
  • If not, if i were to purchase additional IP’s is it possible to configure FreePBX with them all?

In principle you can do both. Could you explain your idea of “protecting” channels a little more?


So i have 13 schools (locations), depending on the size of the school they have between 2 to 3 channels each. Due to the nature of schools they have busy times during the beginning and end of the school day. If i had a single trunk with all the channels a single school may use upwards of 5 channels, if all locations do this one of the schools would run out of available channels.

Originally i liaised with Gamma and they said we could set up a trunk for each location, this is working fine for 2 locations we’ve setup. I can route the calls from certain extensions to their outbound route and inbound route through the trunk. Gamma are now saying they cannot have multiple trunks coming from the same IP address despite us already having two.

So all locations have extensions that go to a central FreePBX or does each location has its own FreePBX?

Single PBX, all handsets connect to it via VPN

You don’t need that.

Why do you have to set up a trunk for each school if all your calls are going through the same PBX?

All you need is one trunk with enough channel capacity to support all the concurrent calls that you need.
Can’t your provider give you that?

1 Like

If all your extensions are connected to a single FreePBX, then with only one trunk with enough channels would be enough. Then with some coding, you can test if an outbound call is coming from a site that has used all its intended channels, and if so, play a busy signal. I guess you would need to set a channel counter for each site to keep track of current used channels. I don’t recall any module that has something like this already implemented, but I might be wrong.
In any case, I think that you can probably get enough channels and make a thoroughly calculation of channels usage, and you probably won’t even need to restrict calls.

Please re-read the initial post. During certain times of the day calls balloon, these are primary schools and so don’t have;

  • the money to purchase loads of channels
  • the personnel to answer all the calls

For this reason we need to throttle it by the amount of channels for each location.

Are you able to elaborate on the some coding part?

There might be an economic incentive to move from a “trunk/channel” billing model to a straight “per minute” billing mode. This way, you aren’t constrained by the channel limitations, and aren’t paying for channels you aren’t using during the “slack” parts of the day.

By using a single trunk, you should already be in a “cost per minute” billing arrangement, especially since you are doing the trunking yourself. The “typical” tools one would use to manage this include setting up individual trunks that point at the remote locations and managing the channel count per connection. Since you are using individual extensions through a VPN, this tool isn’t really available to you.

This leads us back to the “coding” concept. The idea is that each extension is part of a “virtual trunk” that you now have to manage. A variable needs to be established that either counts to a max or counts down to zero (with each extension being the event that increments or decrements the counter for each location).

For example, you could set up an individualized outbound context for the extensions at each location. Establish a counter variable for the location as a limit, and anytime someone calls the PBX from one of those extensions, the variable would be decremented. As the calls hang up, it would increment. When it gets to zero, the context would send the call to a hang-up destination that says something that makes sense for your people.

Now, having said that, if you can get away from a static “channel” limit and into a “per minute” model, your constraints:

are mitigated. On a per-minute plan, your usage is based on actual (not theoretical) usage. In my experience, this is the difference between using a traditional Phone Company and an actual SIP provider. The second part (personnel) can be mitigated through the use of a queue that allows people to stay on the line, leave a message, or schedule a call-back.

With a little more flexibility in your solution set, you may find that your limitations are artificially holding back your thinking and making your job a lot harder than it needs to be,

Then it would be better to get a provider that sets no restrictions on concurrent calls, but charges per minute.

Then at the end of each month you look at the call records and you will then be able to determine what calls charges belong to which school.

That’s an easy solution but unfortunately we are already tied up into the contract. Maybe a little wiggle room due to them mis-selling so i’ll investigate it.

The current solution is packaged with minutes.

They are selling you trunks with channel limits, and literally no one but a traditional phone company still does that. Also, there is absolutely no reason to have more than one trunk, even if you have 100 phone numbers.

If you are in the US, check out VOIP Innovations or Sangoma’s VOIP offering for a sample of the kinds of numbers you can save. Seriously, it sounds like they are trying to bill you T1s and selling you VOIP, which is a misrepresentation of the service offering.

If you’re not bound by an NDA, I’m curious how many channels you have and the monthly cost.

Also, what is your approximate monthly minutes usage (inbound, outbound to fixed, outbound to mobile)?

How many months left on your contract?

During the surge of calls at the beginning and end of the day, approximately what percentage are outgoing?

How are incoming calls handled when staff is unavailable (caller waits in queue, call goes to voicemail, automatic callback, etc.)?

It may make sense to add a secondary provider for outbound calls, especially if your contract allows you to reduce the number of channels with Gamma.

I use to UK (and many other places) and find their quality and reliability to be excellent. (My account is in USD so the prices and rates below are in $.)

Calls to UK fixed lines are $0.0048/min. (except London $0.0022); mobiles vary by operator but average ~$0.009. Free Phone numbers are free. Billing is per second (no roundup to next minute).

There is no monthly cost for outbound channels, though $1 per channel of your prepaid balance is inaccessible (e.g. if you have 50 channels you have $50 on deposit that you can’t spend, though it would be refunded if you ever cancel the service.)

You can try them at no cost (sign up then open a ticket asking for test credit).

Unfortunately, they don’t offer a suitable metered incoming plan. Incoming channels are quite expensive at $6.60/mo.; DDIs are $0.40/mo., with unlimited minutes and no per minute charges.

Also, take a look at . UK DDIs are $0.75/mo. + $0.004/min.; get as many channels as needed at no cost. Outbound rates are comparable to Voxbeam, though I’ve no experience calling UK with them.

Just going back to the original question;

Is it not possible to have multiple external IP address on the FreePBX server? could i not configure it to listen on which would mean it would listen on all available IP addresses?

Sure, but you also need outbound packets to be sourced from the proper IP address and you couldn’t do that at the routing level, because multiple trunks could be associated with the same IP address at Gamma.

What you can do is set up the machine with several pjsip transports, each listening on a separate private address. Your router/firewall would map these to corresponding external IP addresses. If you have multiple public IPs from your ISP, I suggest doing a test using two addresses before attempting to set it up for 13 schools.

Alternatively, consider implementing some custom call processing logic in FreePBX that rejects calls from or to a school if they are already using a certain number of channels, e.g. by playing an engaged tone.

However, IMO you can probably find a solution that doesn’t block any calls, with less work and minimal additional expense.

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