System Design

Hi All,

I’m looking for a bit of help on high level design for this setup.

We are running 3 seperate companies, each with seperate DIDs, from the one office and one phone system.

We need to be able to differentiate between companies for both incoming and outgoing calls. What’s the best practice way to acheive this? I had 2 options in mind.

Option 1:
Incoming calls : I can setup incoming routes for each DID, and use prefixes. So when a call comes in on Company Bs DID, the caller ID will read “B:999999999”, etc.

Outgoing calls : I could use dial patterns. So dial a 1 first to dial out as Company A, dial 2 to dial out as Company B, etc.

Option 2:
Setup an extension for each user for each company. So user at desk 1, would have extension 201 for company A, 301 for company B, 401 for Company C. All SIP phones have at least 3 lines.

Incoming calls: Incoming route for each DID, ring appropriate extensions for that company. Line key flashes to determine company.

Outgoing calls: User presses line key for company they want to dial out as, can dial number as it is.

My users prefer the dial out method in option 2 - Being able to press the line key, and dial number as it is.

But my main issue with option 2, is how to make the BLF lights work correctly. With 3 extensions for each user, I can only monitor 1 extension. If user 2 is on the phone for Company B, then the BLF does not show them as busy.

Is there a way to acheive this?

FreePBX :
Asterisk : 10.11.0
Phones : Yealink T28P

Option 2 is the way to go. You are going in the right direction but are missing some pieces to make it elegant and user friendly.

You can create outbound routes for each extension that defaults that user to the company they most frequently interact with.

The second part is you can setup a custom hint in Asterisk to monitor a logical “or” state (extension 100 or 104 or 106). You can hint any valid regular expression (supporting full Boolean expressions, variable evaluation and database access).

FreePBX is just a window to Asterisk. While very powerful mastering the extensability of the underlying Asterisk is key to system design and troubleshooting.