• V20: 3CX Re-engineered. Get V20 for increased security, better call management, a new admin console and Windows softphone. Learn More.

How to configure BLF buttons on IP Phone to serve 3 separate trunks

Status
Not open for further replies.

rudek

Free User
Joined
May 15, 2012
Messages
22
Reaction score
0
Hi all,
I have spent many hours searching on the forum but could not find a solution for the following setup:

- We have multiple IP phones by Htek and Snom as well as a few 3CX softphones
- we have 3 companies served by the same VoIP provider Peoplefone, we have 3 separate trunks each with an external call number (say A, B and C), one for each of the 3 companies
- we have multiple IVRs setup for each company to deal with voice instructions for In/Out of office hours

How can we setup 3 BLF buttons on the phones to do the following:

1) when someone rings number B from the outside, the second BLF button should blink to indicate that someone called company B. Similar for A and C, of course
2) when we want to call out, press one of the 3 buttons first to select one of the trunks to call out, so that the callee sees the correct number of the correct company (as set in the 3 outbound rules, one for each trunk) and then either type a number or use the phonebook to call

Thanks in advance,
Rudek
 
Point 1 requires that you have a DID service with your provider. You would then create DYD rules to direct calls to an extension assigned to a particular key.

https://www.3cx.com/docs/manual/inbound-did-call-routing/

If you have one trunk group, then for point 3, you will simply show a different outgoing DID number depending on which key you use. This is done by putting that number in the Outside Caller ID setting for each extension (key). When that key is used to call out, that number will show.
 
Hi leejor, thanks. On the outbound side that does not work for us because we want to use the same extensions for all 3 companies. That is why we have set up 3 separate trunks, each with the distinctive number - so we just want to assign buttons to select the trunk for the outgoing calls.

Inbound we want to avoid using inbound rules because they seem to need separate extensions and we want to use the same extension for all incoming calls.

Anyone have any tips for using trunks only?

Rudy
 
Hello @rudek

Please note that you cannot have BLF keys indicate that a call is arriving at trunk B as BLF keys can only monitor extensions ringing. You can however create an inbound rule for those trunks and give the rules unique names. You will also need to navigate to Contacts / Options and select the option Prepend Name under "Add Group, Queue or DID/DDI Names to Caller ID". You will then have the name of the company on the display of the phone along with the caller ID.

To call out you need to setup an outbound rule for each trunk and select the trunk by using a Prefix. That way you can display the correct outbound caller ID
 
Thanks YiannisH_3CX,

You can however create an inbound rule for those trunks and give the rules unique names. You will also need to navigate to Contacts / Options and select the option Prepend Name under "Add Group, Queue or DID/DDI Names to Caller ID". You will then have the name of the company on the display of the phone along with the caller ID.
Rudek: we did try using the standalone inbound rules first. But the inbound rules can only point to extensions and we need them to point to IVRs. So instead we used the "Route Calls To" section of the Trunk settings to direct each trunk to its own IVR. Actually, it would be fine only to see the name of the trunk on the phone display, we could skip trying to assign it to a BLF button for incoming calls.
The other issue nevertheless is that we found no way to assign the extension ringing to a BLF key. How do we do that?

To call out you need to setup an outbound rule for each trunk and select the trunk by using a Prefix. That way you can display the correct outbound caller ID
That is exactly what we tried yesterday. E.g. on one outbound rule for one trunk, we added the prefix **7 and stripped 3 digits on the Route for that trunk. But we found no way how to assign that prefix specifically to a BLF button and have it dial **7 and then wait for manual input or for the user to select a number from the phonebook. We tried in a few different ways, and mostly got "this number is not valid" in response. A tip how to do that specifically step-by-step would be great!
-Rudek
 
we did try using the standalone inbound rules first. But the inbound rules can only point to extensions and we need them to point to IVRs. So instead we used the "Route Calls To" section of the Trunk settings to direct each trunk to its own IVR. Actually, it would be fine only to see the name of the trunk on the phone display, we could skip trying to assign it to a BLF button for incoming calls.
The way the inbound rules work is exactly the same as assigning a destination to the main trunk number. Just create an inbound rule and select the number you want routed to the IVR. Then under the "Route calls to" select extension and choose the extension number of the IVR.

The other issue nevertheless is that we found no way to assign the extension ringing to a BLF key. How do we do that?
You can assign BLF keys through extension settings. Edit an extension and navigate to the BLF tab. There you can assign BLF keys to the extension.

That is exactly what we tried yesterday. E.g. on one outbound rule for one trunk, we added the prefix **7 and stripped 3 digits on the Route for that trunk. But we found no way how to assign that prefix specifically to a BLF button and have it dial **7 and then wait for manual input or for the user to select a number from the phonebook. We tried in a few different ways, and mostly got "this number is not valid" in response. A tip how to do that specifically step-by-step would be great!
The users will need to type the prefix along with the number as you cannot assign a BLF key to hold after pressed for the user to dial a number.
 
Hi YiannisH_3CX,

The way the inbound rules work is exactly the same as assigning a destination to the main trunk number. Just create an inbound rule and select the number you want routed to the IVR. Then under the "Route calls to" select extension and choose the extension number of the IVR.

-> should we then delete the routing in the trunk settings or keep both trunk and inbound rules? Which has precedence?

You can assign BLF keys through extension settings. Edit an extension and navigate to the BLF tab. There you can assign BLF keys to the extension.

-> Sorry, but I don't get it. I know how to assign keys in principle, but not how to assign a key to an inbound rule? BTW, why can we not assign a line to a key on the 3CX softphone? It says "legacy device unsupported".


The users will need to type the prefix along with the number as you cannot assign a BLF key to hold after pressed for the user to dial a number.
-> nor really very elegant and we need to teach everyone how to do it. Is there really no other way? BTW, we tried typing **7 (one of the prefixes) and then calling up a stored number form the phone book or from the missed calls list and that call can't connect. Any ideas?
 
we tried typing **7 (one of the prefixes) and then calling up a stored number form the phone book or from the missed calls list and that call can't connect.

Unfortunately, stringing together a dialled number in SIP, does not work that well, as the "destination" wants all digits at the same time, in an Invite. It can work when using some analogue phone with the number being stored, then the remainder manually dialled, but, all digits are being sent as DTMF. the entire string is seen as a whole. It can work from your mobile, as the first group is processed by the provider, the digits after the pause are sent as DTMF.

Check the Activity Log to see what is actually being sent to 3CX when you attempt a call of this type
 
ok, so that is a no go. It is disappointing that you can not e.g. reply to a missed call using a certain outgoing number...

Could you please comment on the other two topics above?
 
Sorry, but I don't get it. I know how to assign keys in principle, but not how to assign a key to an inbound rule? BTW, why can we not assign a line to a key on the 3CX softphone? It says "legacy device unsupported".

You assign an inbound rule to a destination. that destination is an extension number, or another number within 3CX that is assigned to something like a ring group or IVR. You don't assign the other way around.

should we then delete the routing in the trunk settings or keep both trunk and inbound rules? Which has precedence?

If both result in calls going to the same destination, I don't see the harm, but, I haven't tried it.
 
ok, many thanks. We will have to see if we can use 3CX at all with these limitations for our use case.
 
Why would you not simply set up 3 extensions (not BLF keys) on each phone? Using incoming routing, each key (extension) would receive calls from a particular trunk, or DID name can also be added). Outbound rules can be created so that when a particular key is used, the outgoing call will route over a particular trunk, and send the desired Caller ID. You would not even have to prefix numbers as outbound rules can be restricted to certain extensions.
 
So part of the problem (and we see this a lot with customers) is your are trying to make 3CX fit a requirement that was defined by your previous phone system. Instead of trying to do everything exactly the same, how about you define your business needs and then see how 3CX with it's feature set can accomplish it.

For example:
1) when someone rings number B from the outside, the second BLF button should blink to indicate that someone called company B. Similar for A and C, of course

This would be better stated something like this:
We need a way to determine which company was dialed. We currently do this by having them mapped to different buttons

With your original request, you have a very specific scope further complicated by having a mix of phones. With a more relaxed approach, the answer would be to simply enable the 3CX option to preface the CID with the Inbound Rule/Ring Group/Queue name which should work on any phone with a display. That is the easiest way to identify the calls.

2) when we want to call out, press one of the 3 buttons first to select one of the trunks to call out, so that the callee sees the correct number of the correct company (as set in the 3 outbound rules, one for each trunk) and then either type a number or use the phonebook to call

For this request it can be accomplished a number of ways. But given how you would prefer the system to work in your first request the easiest way to accomplish both would be to provision the phones via 3CX normally. Then web into the phones and manually add additional extensions to each phone. Then you can route your inbound calls to a ring group with the Company A/B/C extension and when you press the line key for the corresponding extensions you can call out the correct trunk with properly configured outbound rules. You'll probably want to remove the provisioning path from the phones after you configure them as well. Alternatively you can make custom templates to accomplish the same thing.

There isn't much that 3CX can't do, but when you try to make 3CX emulate what your previous system did you can paint yourself into a corner.
 
Hi cobaltit and leejor, thanks for your thoughts. The whole concept that we have is not so much a result of wanting to copy an old phone system (which we don't have) but to simplify the setup. We also don't have a person (me, who has never configured a phone system before :() who, after configuring the system to work, can spend more than a few minutes of time per week on the maintenance of the system so we wanted it configured as simply as possible for ease of maintenance and adding new phones/people later on.

We currently have 6 people, each with a phone. Some of them also work from home and use a softphone, so the total is more like 10 phones. Each of these people needs to be able to see which of the 3 companies is being called (and be able to answer a call by "welcome to A" in 3 languages) and respond using the correct company number when e.g. returning a missed call. We have In/Out of office IVRs with different routing in 3 languages.

With what you are proposing, if I understand it correctly we'd have to create 3x10 extensions and configure each of them correctly in ring groups, with inbound and outbound rules and IVRs for in/out of office routing. Also, I did not want to use each phone's web config and only have settings which can be managed from the 3CX phone provisioning pages for maintenance reasons. But I have not yet figured out a way to have more than one extension assigned to a phone using only the 3CX provisioning.

It is all a bit complex and since am learning 3CX on the go, even more so. I am hoping that the above generic description might help if someone who is experienced can take the time and do a quick writeup of how would they configure the system with those requirements.

Thanks for your time and help so far!
Rudek
 
should we then delete the routing in the trunk settings or keep both trunk and inbound rules? Which has precedence?
The Inbound rule for the main trunk number is directly linked with the destination of the main trunk number. If you make a change to the main trunk numbers destination the same change will apply to the inbound rule and vice versa.

It is all a bit complex and since am learning 3CX on the go, even more so. I am hoping that the above generic description might help if someone who is experienced can take the time and do a quick writeup of how would they configure the system with those requirements.
Reading your requirements and how you want the system to need as little maintenance as possible i would recommend avoiding multiple accounts on devices and custom templates.
3CX supports only 1 account per device so you can only provision one. Also the 3CX client can only have one account running at the same time.
Since you have the 3 trunks you can easily identify which trunk the call is coming from by adding a Inbound rule and you can easily select a trunk the call should go out from.

The easiest way for me is to use a prefix to select the trunk the call should go out from. For example Company A has prefix 11 company B has prefix 22 etc. You can also use Caller ID reformatting to add the prefix to the numbers so that the users can redial directly without needing to add anything.
https://www.3cx.com/docs/cid-reformatting/

This way there is no need for additional accounts on phones and custom templates and maintenance will become much easier.


BTW, we tried typing **7 (one of the prefixes) and then calling up a stored number form the phone book or from the missed calls list and that call can't connect. Any ideas?

Stored numbers that do not have the prefix added cannot be called from the same outbound rule. You will have to either add the prefix to the number before dialling or add an outbound rule to handle these numbers. Missed calls can be handled the way i suggested above.
 
Hi all and thanks again for your help. I thought I would report back on the current status of my configuration work:

1) I was able with your help to figure out how to show the called company with each incoming call.
Display of inbound called number for the 3 companies: Created an inbound DID rule for each of the 3 trunks and give the rules unique names like “For Company A”. In each of the Trunk settings, also choose InboundParameters/ CallerNumber/”CalledNum” set to “Contact:User Part”. You will also need to navigate to Contacts / Options and select the option Prepend Name under "Add Group, Queue or DID/DDI Names to Caller ID". The way the inbound rules work is exactly the same as assigning a destination to the main trunk number – i.e. they are synched. Then under the "Route calls to" select extension or choose the extension number of the IVR. You will then see the name of the company (Company A/B/C) on the display of the phone along with the caller ID when someone calls.

2) Determining the outgoing trunk to use for each call:
The easiest way for me is to use a prefix to select the trunk the call should go out from. For example Company A has prefix 11 company B has prefix 22 etc.
This works, but it has to be done manually. Users have no easy way to reply to a missed call or use stored phonebook numbers and prepend the prefix. I am still looking for help on how to make it easy for users to select an outgoing trunk (=one of 3 numbers, one for each company ), then type a phone number manually / reply to a missed call / select a stored phonebook number.

Thanks for any further ideas for 2).
Rudek
 
Status
Not open for further replies.

Getting Started - Admin

Latest Posts

Forum statistics

Threads
141,615
Messages
748,821
Members
144,725
Latest member
NGPMH
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.