FreePBX | Register | Issues | Wiki | Portal | Support

Multiple phones sharing an extension with Line Keys (SLA/BLA/SCA)

(Darren Hollick) #1

I have been working on this for a few days with no luck. I have read through several posts on these forums with lots of useful information but not enough to accomplish what I’m looking to do and many of them are so old that they may not be relevant anymore. Here is what I have and what I want to do.

FreePBX Distro: 10.13.66-22
Asterisk: 13.18.3
Grandstream GXP2170 Firmware:

Imagine a 3 phone scenario with a manager, an assistant, and one other phone. All the phones have their own extension using PJSIP as the driver. The manager would like to have three “line keys” on his phone for his extension that incoming calls progressively ring on. (so far this is a fairly simple setup and we’ve been able to do all this) The assistant would like to have the same three “line keys” for the manager so that when any of them are ringing her phone also rings and if the manager puts someone on hold on of those keys she can pick it up. She could also use of those keys to make an outbound call as the manager.


  • 1 Extension registered on 2 phones
  • Each phone has 3 buttons representing “call slots”
  • They are shared across both phones so ringing, talking, and on hold indications are shown on both phones.
  • (Bonus) Either phone can use the buttons to instantly create a bridge and join a call

I’ve heard of, what seems to be, a very old solution in asterisk using DAHDI but I’m hoping that there is a better way of doing this now with PJSIP. I think one of the reasons that this question comes up over and over on these forums is because users migrating from something Avaya or BroadSoft are accustomed this behavior. I would really appreciate any help!

(Andrew Nagy) #2

This is the definition of a key system. You can code your own key system into asterisk using c or ari. But nothing like this exists out of the box

(Darren Hollick) #3

Thank you for helping me with the terminology I didn’t know to call it a Key System. When you say there is no solution out of the box do you mean at in asterisk using the dial plan or just in FreePBX?

(Dave Burgess) #4

PJ-SIP allows you register two phones on the same extension, so that’s easy. You can even register all three phones on the same extension. The problem is that you don’t have three lines per extension. you have three extensions per line. You could probably (if the phone supports it) set up three extensions and share all three across three phones.

The rest gets progressively harder. For example, the method the phone uses to put the call “on-hold” can make it a challenge for you to pick the call up somewhere else. You can simulate this using a parking slot, but it might be a crap shoot as to whether or not your “on hold” function allows the call to be picked up on a different instrument.

Doing this with DAHDI is a snap, since the phone is just connected to the line, and the magic happens on the line. Doing this with SIP (PJ-SIP or Chan-SIP) is harder, since the line Is no longer the focus of the system. The extension is the thing…

I can see why you’d have trouble getting this to work like a 1950’s three-phone key system. SIP doesn’t work the same way, so simulating it become a real challenge.

(Andrew Nagy) #5

You can’t do something like this with just dialplan. You need to write something in with ARI (using whatever language you want) or in C. There is no other option.

(Darren Hollick) #6

Thank you very much @tm1000 and @cynjut. I agree that this is a very old behavior that I would prefer users get away from however since it has continued to be available even on SIP systems from some of the other big providers users still like that experience.

However, since it’s not possible we will reset our users expectations and offer them the best we can with a combination of PJSIP shared registrations, BLF keys, and parking buttons. Thanks again!

(Andrew Nagy) #7

If this is something you feel you need or could offer as a selling point feel free to comment that in this thread

(David Johnson) #8

If its so “easy” to write this in C or ARI, why hasn’t anyone published this? I have done a lot of software development in my day and if I knew enough about asterisk I would take this on. It is clearly a desired feature that many have asked for and I don’t understand why the philosophy is to “change the users expectations”? If the users are asking for it why doesn’t anyone just provide a module to do it? Sounds like the perfect scenario for a commercial module that many would pay to have! Isn’t that what drives software development, the potential for sales? Sure there are many work around you can do that are “similar” but they are not the same. In the example above with a manager, secretary, and maybe even an other (like a conference table in a managers office) where this very feature is very desirable.

Another perfect example is in my house. I have phones all over the place and when a call come in I answer it where ever I am. If the call isn’t for me its much easier to just page all “pickup line 2 its your mom” then to figure out where my wife is and transfer the call to the extension nearest her. Yeah, call park can work here until you have 2 calls in park and then its which is is mom and which one is for someone else in the house. I also run a home office on the same system so we can have several calls on hold at the same time. What we need is a nice commercial module that simulates a good old key system, even if its only for a few of lines on my phone.

(Andrew Nagy) #9

Someone has. Digium interns wrote this code for ARI in nodejs as a proof of concept about three years ago along with a voicemail replacement. The code is in its most basic form and has not been maintained in three years but it can be found on github and it’s been in github for three years as a proof of concept.

Also I never said it was “easy” I said it was doable.

As for sangoma. I have passed your thoughts and others thoughts along to product management