Can I achieve the following with FreePBX?

Hey everyone, I’m completely new to FreePBX and I’m wondering how much flexibility it has. What I’m looking to accomplish is setting up a phone system for a referral service. Basically, I will own over 100 different local phone numbers. When someone calls one of those phone numbers, I would like my PBX to pull a specific phone number from a database and forward the call to that phone number. In addition to that, I would need the PBX to complete the following actions each time someone calls one of my phone numbers:

  1. Use an algorithm to determine which number in the database to forward the call to.

  2. Play a short intro to notify the person receiving the forwarded call that the call is from me and ask them to press 1 to receive the call.

  3. Record the first 3 minutes of the call and save it to disk.

  4. Record the following details about the call and save them in a database:
    a. Caller’s phone number
    b. Phone number the call was forwarded to
    c. Date of call
    d. Time of call
    e. Duration of call
    f. File name of voice recording

Should I be able to achieve these functions with FreePBX and the proper custom scripting or am barking up the wrong tree?

Thank you very much

FreePBX doesn’t really come into play much. You can use it to setup your trunks and make the PBX functions work.

All the database and call flow stuff is controlled by Asterisk. You certainly can script this in Asterisk if you are a programmer.

I would say most of thos can be done natively.

Not really sure what you mean when you say “specific” are you meaning a pre-determined phone number that will be assigned?

If so you could use inbound routes and set up the number to route to an extension of your choice, I use this all the time, not for what you are wanting to do but I set mine to route spam numbers to an destination, in this case to terminate the call.

You could set an inbound route up to wait for the inbound on a certain number and do the same but to an extension.

Only trouble is, you would need a lot of trunks to do this with, which would cost you some serious cash.

I do not know of any other way to do this…

Not necessarily. If the traffic is modest, as I would expect in this application, just use a provider that offers a “virtual PRI” pricing model (cheap numbers, expensive trunks).

Using Anveo Direct as an example, assuming you need 100 number but only 3 simultaneous incoming calls:

US: 100 DIDs @ $0.19, 3 trunks @ 11.25, total MRC is $52.75
UK: 100 DIDs @ $0.35, 3 trunks @ 6.50, total MRC is $54.50
AU: 100 DIDs @ $1.10, 3 trunks @ 15.50, total MRC is $156.50

If all three trunks are in use, additional callers would hear a busy signal and would likely try later.

There are dozens of providers offering this style of pricing.

It sounds like he is buildig a service… maybe the next google voice. I would assume the intro message is a marketing blurb. In theory the cost of the lines is passed to the client weather that be the end user or the company buying ad time.