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

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

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?

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.

1 Like

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.

1 Like

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!

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


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.

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

He never said it would be easy and what I don’t understand is why people continuously come to the developers of a corporate PBX system and ask them why it isn’t a key-based system. Do you go to Chevy and admonish their developers because the Bolt can’t haul gravel? If a corporate PBX doesn’t suit your needs then maybe you should be looking at something other than Asterisk.

I’m sorry. I didn’t mean to offend you I was just indicating what my customers are asking for… I am an ISP and I implement VoIP services. We have to go through hoops to “simulate” a key system with features like PJ-SIP but many corporate offices operate in a different manner. The key system worked because thats how a loft of offices worked not because thats the only why the phone system PBX could be configured. As a developer myself we dont write code and tell the customer they have to live with it the way we coded it, if they want it another way thats the way we write it. I was just saying considering the number of people who ask for a key like ability I’m surprised no one has done it.

What would be useful in this discussion is to detail what you think a key line implementation looks like or is supposed to work like. I can pass that along to product management.

And also not trying to offend anyone the product is called FreePBX and the PBX bit refers to a “Private Branch exchange” , perhaps:-

will clarify the difference a bit.

A long while ago there was a ‘split’ of asterisk and FreeSwitch was born, one reason was to better support SLA/KSU/PBX functionality for small systerms ( KSU tend to peg out at a couple dozen lines and a few dozen more stations, PBX’s are designed to scale to hundreds if not thousands of users)

If you want a PBX, then I suggest you won’t find a better open source solution than FreePBX, if you demand shared lines/calls then perhaps a better match for you as an ISP with incalcitrant clients might be found starting with :-

1 Like

Just as a FYI the reason Asterisk has never released a proper SLA on SIP Phones is all SIP phones follow the Broadsoft SLA system and legally Broadsoft last I looked never released this as a RFC or spec so us implementing it would lead to legal nightmares. This was covered a few years ago in a Asterisk mailing list in depth.

People ask well FreeSwitch and Kamilo do it so why won’t Asterisk or FreePBX follow them. Our answer has been they don’t have a business that does 100M in revenue to risk like we do. Plain and simple.

Now does that mean we can not do SLA oir own way. Of course we could and we can make our phones work with our own way which is something we are evaluating in product management.

Here is what Tony is talking about (A comment from our own @jsmith)

I’m glad that people are anxious to make Asterisk better, but we need to
make sure we do it in a responsible manner. We want other people to
respect the licensing of Asterisk, so we need to respect the licensing
of other things as well. In this case, the item that was sent to list
says it’s confidential and can only be distributed under license. I
hate to imagine the problems it might cause the Asterisk developers to
use it without proper permissions.

In short, the Boy Scout in me is saying “Let’s be careful and play by
the rules!”

Jared Smith
Community Relations Manager
Digium, Inc.

Not sure how this morphed into a discussion on SLA? As far as ability to emulate a key system I completely understand the differences between a PBX and a KEY system. I have over 35 years of experience in the industry with 20 of those years at New York Telephone and AT&T. I started with Stepper switches, migrated to key systems and then many variants of PBX systems and eventually VoIP services.

I am not saying we need to fully emulate a key system I am just saying we need a simple way to have a line ring on multiple phones and if picked up on any extension and placed on hold it continues to blink and be available from ANY of the phones it was ringing on.

On many PBX systems this was called a “line appearance” Programming wise we would add the line as a “CO line” and assign it a number and then on any phone you wanted it to ring on you would add a CO line appearance (i.e.: CAPxxx). Any phone you added the CAPxxx (xxx was a 3 digit number to make it unique) line to would ring when that line was called (side note, you would be able to set the ring per extension to be none, 3, 6, 12, etc…NONE would blink but not ring, and a number [3,6,9,12] would blink immediately but would delay # rings before it would actually ring that phone).

PJ-SIP and call park come close but are clumsy at best.

I would be willing to provide any input desired on such feature.

The title of this thread has the acronym “SLA” in it

So with your experience you probably , as I had to , understood 1A2 systems in the real world , 25 or even 50 pair wiring to each phone, banks of relays and backend connections to FXO pairs (probably Centrex) to Bell to do the clever sh!t

This is SLA/SCA programming, complicated , prone to error and ever changing , each ringing pair needs to be hardwired to a Lamp on any other associated phone, It just can’t scale well.

So to replicate that in a VOIP environment you would need to synthesize SLA/SCA which as otherwise noted needs to be an acceptable extension to SIP, Broadsoft was brought up as a non RFC compliant extension to SIP, Asterisk wont do that for explained reasons. FreeSwitch however accepts that challenge.

Have you tried it yet?

Since I started this mess I guess I will jump in here again.

@tm1000 I really appreciate your civility and desire to work towards helping people (in my humble opinion this forum could use more of that) when you said…

I think it’s worth considering that even inside large PBX system there are scenarios where small implementations of a of the features I was originally describing in my first post are desirable. (given what @tonyclewis said I will avoid any existing acronyms) Today we use things like PJSIP, findme/followme, and parking to do the best we can but I do understand clients asking for this ability. Even when using those features here is what is missing/different from what I my clients were talking about:

  • Today we have to have a Line button, a Park button, and a BLF to accomplish the goal of two phones being able to both ring, place a call on hold and have the other pick it up, and see when the other person is on the phone. That could be simplified into one button. It could indicate if either phone is in use, if the user that is not on the phone presses the button it joins the callers in a bridge, and if one person puts the caller on hold either phone can press the button to pick it up.
  • Something I didn’t mention but is someone implied is that it would limit the number of incoming calls to the number of “call” buttons you have. For example if an executive and their assistant both had 3 buttons on their phones then they could only accept 3 calls and then after that calls would follow an alternate dial plan, usually voicemail.

@tm1000 I hope that answers your question.

In general I think the solutions we have today are workable and that’s what I explain to my clients. However, in the interest of continuing to make FreePBX the best solution available, I think a feature like this would enable FreePBX systems to compete with the SLA feature of Broadsoft systems and other similar systems (such as Cisco’s).

1 Like

Direct parking is simple. Asuming you are using BLF.

And you label the keys Line 1 and Line 2. Even if we all know it is simply park 1 (71) and Park 2 (72).

I’ve never had a client not be able to handle that level retraining when moving from a key system to FreePBX.

1 Like

Thanks, this will work, can you provide a little more information on how you set that up?