Feature SLA with Asterisk 1.4.4 and freePBX 2.3.0alpha

SLA is a mainstream request for us but there is no way to implement it as freePBX (currently freePBX 2.3.0alpha) does not support it yet.

How can I change the dialplans created with freePBX in order to support SLA?

I have 5 internal sip extensions and 2 external lines.

Everything I tried so far jut break freePBXs’ dialplans!!!

the very nature of how SLA was implemented will probably be a huge challenge to find a way, if possible, to use it in freepbx. Some of us have discussed it at long length. They have implemented a feature that is really designed to make a key system only - Central Office trunks shared on lines and nothing more, not shared extensions which could then be programmed into shared ‘trunks’ if that were the desired effect.

As a result - SLA will not be considered for 2.3. We will rack our brains again after 2.3 is out to try to find a way that it might be twisted into something we can leverage in a future release.

If you or anyone else can breadboard some workable solutions, and start generating ideas amongst us on how to usefully leverage the current implementation of SLA - it would be highly valuable.

Just like to know the progress on the SLA features coming along?

We are still waiting to hear form those early adopters out there in the community to see if anyone has played with it and has anything to report. I would say the deafening silence out there is not an encouraging sign.

Philippe Lindheimer - FreePBX Project Lead
http//freepbx.org - IRC #freepbx

I think the feature everyone wants Digium to include with Asterisk is more of a shared call appearance than shared lines. Shared lines are great for small square key-system functionality but doesn’t provide what many users of larger systems are looking for. It looks like if Digium was able to put code for sharing ZAP and SIP trunks, they could figure out how to share call appearances (extensions) between phones. If they ever get that into Asterisk, we will all want to figure out how to add that functionality into FreePBX.

Along those lines, I believe it will require that there be an option on each extension in FreePBX to indicate what kind of SIP phone is being used and then offer a button layout that can be created and converted to a .cfg file the phone uses to download. Support from Aastra, Polycom, Snom, etc. would be needed to insure firmware for those phones is Asterisk compliant for the feature. It appears that Aastra is doing it for other PBX’s and could probably accommodate Asterisk with little modification.

I think the provisioning module is a great start to customize phones in general but that the configs need to be linked to the extensions form in FreePBX so you can pull in a standard config and then more easily customize buttons for a particular phone. This form could be laid out like the buttons on the form and would be customized based on the type of set you indicate is being used.

I think it becomes a question of design: Do you create a separate login/account for each button on the phone or do you figure out a way to have true bridged appearances of other extensions? The SIP standard seems to limit the options here.

I’m a huge advocate of shared call appearances/bridged extensions and will enjoy providing input once we have a viable feature from Asterisk to incorporate.

I agree with you completely on the Shared Line need and have expressed that elsewhere in other forums as you may have read. As far as the need for Integrated End Point Management within FreePBX, I’ll be putting out a draft and probably some breadboarded code soon as soon as I can get a few priorities done which means probably after Astricon. It is not really related to this but would/should accommodate such when it comes some day.

Philippe Lindheimer - FreePBX Project Lead
http//freepbx.org - IRC #freepbx

It seems like the companies that want SLA are those small 1-4 line shops that have less than 8 extentions. Based on what I’ve heard from customers and leads who want an SLA type system, simple is better.

Therefore could this be an option:

In the Add/Edit extention screen, add a box that says “SHARED”. If SHARED is checked, then more than one SIP device can connect to that extention at any time and all data sent to that extention is passed to all SIP devices connected to it.

Then on each phone, you can connect each line to a separate extention directly thus giving us a SLA type experience.

Here’s an example:

Add extentions 101, 102, 103 and 104 and mark all four as shared extentions. If SHARED is turned on, then set Call Waiting to Disable.

Configure a Ring Group so it rings these 4 extentions using the RING Strategy. This way if 101 is busy, ring 102. If 101 and 102 is busy, ring 103, etc…

Then on each phone, map Line 1 to extention 101, Line 2 to extention 102, Line 3 to extention 103, and Line 4 to extention 104.

Finally, configure the inbound route to either go to the IVR or directly to the Ring Group defined above.

Wala, you now have a fully functional SLA type system.

Just a thought…

Anaheim, CA

Dean -
My experience is different from yours. Almost every medium to large company with whom I am familiar uses Bridged/Shared Call Appearances.

Here is a typical example to demonstrate what I mean:

A manager/admin setup that works as follows:

Sarah, a manager, has a phone on her desk with call appearances for her main number (x-3123). She also has a phone on her office conference table with its own number (x-3302) but also with shared call appearances for her main number (x-3123). She shares a conference room with Ed, John, Steve, Susan and Simon. All their phone numbers have shared call appearances that conference room’s phone.

Molly (Sarah’s administrative assistant) has a phone with shared call appearances for Sarah, Ed and Susan (two other Executive Team members for whom she provides shared coverage with Wendy and Lisa).

When a call comes in for Sarah on x-3123, Molly can answer it, and just by looking at those little red and green lights on her phone she can tell if Sarah is on a call or not. She can then place this call on hold (not park it, just hit that red hold button) and call Sarah announcing this call.

Sarah can answer this call just by pressing that button next to the flashing light (indicating a call on hold) and picking up her phone. She does not have to use call pick up. She can also pick this call up on her office conference table, or in the Executive Team’s conference room in exactly the same way, not needing to understand or know anything else (“press the button with my name on it next to the blinking green led”).


any news for SLA module ?

I have same problem like ‘akatran’.
My workaround is using DEVSTATE function in Asterisk, with which I could indicate the status of the SIP lines and display it on the BLF buttons of the phones.
This was quit easy to do.
But each time when I applied something in FreePBX, it overwrites all my modifications !

For me its seems to be not complicate to add.
Here one of my entries as example :

include => ext-did-0002-custom
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => 33811951781,1,Set(__FROM_DID=${EXTEN})
exten => 33811951781,n,Gosub(app-blacklist-check,s,1)
exten => 33811951781,n,ExecIf($[ “${CALLERID(name)}” = “” ] ,Set,CALLERID(name)=${CALLERID(num)})
exten => 33811951781,n,Set(_CALLINGPRES_SV=${CALLINGPRES${CALLINGPRES}})
exten => 33811951781,n,SetCallerPres(allowed_not_screened)
exten => 33811951781,n,Set(DEVSTATE(Custom:DND299)=RINGING)
exten => 33811951781,n,Goto(ext-queues,300,1)

I created a “virtual extension” 299 in FreePBX to associate with BLF status on my Linksys phones.

With this simple line, the system tell me that there is an incoming call from
line “33811951781” and change the state of the BLF lamp on my phone to blinking.

A macro should verify permanently the state of this SIP channel (RINGING/BUSY/NOTINUSE etc) and should set the DEVSTATE value to show the actual state.

Thats nearly the same as we can see with normal extensions.

Maybe a solution will be, to add in FreePBX Trunk settings a line where we can set following :

“SLA = (virtual number)” — if its empty, its no used

The same for ringgroups and queues.
It should be like the "CID Name Prefix:"
If a member of the ringgroup/queue hangup a call for the associated Trunk,
the DEVSTATE should be change.

IMO, this can be a first step to get SLA working in FreePBX.

Thats my 5 cents.
I hope this will help to find a solution.

would it be simpler to do the following?

write a small SIP proxy that would register to an extension and let devices register to it on an alternate port (not 5060,maybe 65060). Then simply proxy request from the device that registered to it on to asterisk. Asterisk would see the proxy as a phone. That proxy could then track what it’s current task is and send hints back to each phone that is connected. Spawn as many of these little proxies as needed for each shared extension. no modifications need to asterisk or freepbx other than pointing the phone’s config to the proxy. considering it is most likely on the same box (but wouldnt have to be) as asterisk it would just be a matter of changing the port number for that extension.

I would think that you could do this is python or perl (the proxy function for sure) but I dont know how you would push the hint back to the phones.

just some random though. thanks for reading.