Table of Contents
Click a heading to jump to that section on this page.
Bridged Line Appearance (BLA) or Shared Lines with sipXecs
As part of release 4.2 Bridged Line Appearance (BLA) support is available (also known as Shared Appearances, Shared Line Appearances, etc). The service is called the Shared Appearance Agent (SAA) as that terminology best matches the underlying Internet Drafts, current and future. This feature allows a single SIP user to be added as a shared line on several phones, and calls to be passed around between the phones by placing them on hold on one and taking them off hold on another. Lights indicate the status of the shared line (solid = "seized" (placing a call or on a call); flashing = held). A common use case is a boss/admin setup, whereby an incoming call rings at both sets, can be answered by the admin, and placed on hold to be picked up by the boss. This document describes how to use the feature, and how the feature is implemented.
Lines are marked as "Shared" on the Phones screen under the Users->Users dropdown.
When a "shared" user is added as a line onto a phone which supports Shared Lines, the line on the phone will automatically be configured as shared so that the phone will do its part to make the feature work (i.e. initiate the appropriate subscription). Note that at this time, only Polycom sets are supported for shared lines.
It is possible to have more than one button assigned to the shared line. To configure this for Polycom sets, select the phone under Devices / Phones, go to the Line page, select the Line you want to appear more than once, go to the Registration page, click Show Advance Settings, and set the lineKeys parameter to the number of buttons you want assigned to the line.
The list of SIP users which can be "shared" between multiple devices is configured in etc/sipxpbx/appearance-groups.xml. This file is checked every couple of seconds for changes, and new appearance groups are created or removed without requiring a restart of the service.
Using the Feature
Outgoing calls are made as usual; the line button light will appear solid at all sets to indicate that the line is in use (unlike RLS, this happens as soon as the button is pressed; i.e. the line is "seized"). An incoming call will alert at all sets with appearances of the shared AOR (user). The call can be answered at any set; the line button light will appear solid at all sets to indicate that the line is in use.
Note that both incoming and outgoing calls can still be made while the line is "seized": the set will increment the "appearance id" for each call. Sets with more than one appearance of the shared AOR will assign each successive "appearance id" to a new button.
If a call is placed on hold, the light will flash at all sets. The call can be retrieved from any set in the group by pressing the button with the flashing light.
A glare scenario occurs when two people simultaneously attempt to "seize" the same appearance id (i.e. both press the first button for the shared AOR). This is resolved in the SAA by rejecting one attempt. Note that if one person seizes the line while it is already lit, the set will increment the appearance id and glare will not occur. Other race conditions (e.g. simultaneous answer, or simultaneous retrieval from hold) are resolved by other parts of the system or by the sets without SAA involvement.
Some slight changes in phone behaviour might be noticed. For example, when a shared user transfers a call, the transferee does not get music-on-hold: this is because a true "held" call could be picked up by other appearances of the shared user.
SAA implements draft-anil-sipping-bla-02, which is what the Polycom sets support. Note that there are several other flavours of shared line appearance draft specs: draft-anil-sipping-bla-03 is essentially the same as draft-anil-sipping-bla-02; draft-anil-sipping-bla-04 extends 02/03 and changes some event package names; draft-ietf-bliss-shared-appearances-03 is currently under discussion; and there are other proprietary implementations. For practical reasons sipXecs has implemented draft-anil-sipping-bla-02, as that is what exists today on our main supported device.
Subscriptions are established from the Shared Appearance Agent to each phone registered to the shared AOR, and from each phone with an appearance of the shared AOR to the Shared Appearance Agent. Phones send NOTIFYs to the SAA containing details about the calls they are managing (in the form of dialog;sla events), and these are sent to all phones subscribed to the shared AOR. (Note that the current implementation sends them to ALL phones subscribed, including the one that sent in the NOTIFY in the first place).
The I-D describes the concept of "line appearance resources" to allow calls to be mapped to a specific line appearance instance, so that it would display on the same button on each phone in the group. At this time we have implemented only limited support for this. The choice of line appearance is left to the sets on incoming calls (not specified in an Alert-Info header with an x-line-id parameter in the INVITE, as per the spec).
- Currently we only support & test with Polycom phones. Community testing would be welcome.
- We do not place an Alert-Info header in an INVITE to the phone, containing an x-line-id parameter, as specified in draft-anil-sipping-bla-02.
- We use 409 Conflict instead of a 500 final response in a glare scenario of two phones attempting to "seize" the shared line at the same time with the same appearance ID
- We treat as "exclusive" any call dialog with an empty appearance ID (x-line-id) and do not forward these dialogs to other sets in the group (this prevents the music-on-hold call from being shown at all sets)
- Shared lines should not be placed into Intercom groups, as the call may be answered at any one of the sets configured with a shared line.
After a long period on hold, it is sometimes necessary to press the flashing button twice to retrieve the call.
Below is some additional info on its capabilities:
Q: What is the difference between a "Shared" line and any other line on the phone?
A: The shared line is like any other line on the phone (in the sense that you can make and receive calls on it), except that others see the status of that line. The big difference is that calls can be handed back and forth between sets with an appearance of the shared line just by putting the call on hold on one set and taking it off hold (by pressing the button with the flashing light) on another - no transfer required.
Q: How are Shared or Bridged Lines different from BLF?
A: A Busy Lamp Field (BLF) allows a set to display the status of another user (busy or ringing), but a BLF button is not an appearance of that user. It is not possible to answer calls on that button. In the sipx implementation, pressing a BLF button initiates a speed dial call to that user, rather than dialing a call "as" that user, which is the case for SAA.
Q: Can I join a call in progress at another set?
A: Not directly. One of the parties on the active call can conference in other sets (including other sets with appearances of the shared line), but it is not possible to conference in several users by pressing the "busy" line button.
Q: Is there a limit on how many other users can add this shared line to their phone and have it function like a BLA line?
A: A somewhat artificial limit of 20 subscriptions per shared line is enforced (i.e. 20 sets with an appearance of the same shared line). This was inherited from the RLS and can be modified or removed if we so decide.
Q: Let's assume the user w/ extension 250 wants a BLA appearance of line 200 on his phone. Both user 200 and user 250 have several phones registered, all Polycom. Will BLA function between any of the phones of users 200 and 250 provided the shared line 200 is registered on all phones?
A: Yes. Once we get the configuration for the shared line feature integrated into sipXconfig, then all appearances of the shared line (200 in this case) will be made shared, and calls can be shared between any set with an appearance of it. (After some discussion on the list, we agreed that in the first implementation anyway, a simple "all appearances of this line are shared" was preferred to a per-device setting).
Q: Is the number of phones each user can register to line 200 limited in any way?
A: There are no limits enforced on how many phones can be registered to a single address. For SLA the limit mentioned above would apply.
Q: User 250 registered line 200 on his phone as a BLA line. Line 250 itself is 'Shared' and user 300 registered line 250 as a BLA line on his phone. Does this work? In particular can user 250 put calls on hold on both lines 200 and 300 (and not get confused)?
A: Yes, subject to the physical limitations of the set. Lights will be flashing beside the lines labelled 200 and 300 (or, on the smaller set e.g. IP330, phone icon 1 for Line 1 and 2 for Line 2 - this might be confusing but if users are stuck with this set there is no labelling capability except for a bit of tape).
Q: On an attendant console (Polycom with up to 3 sidecars) the admin would like to configure as many different shared lines as there are line keys (the UI says I can have max 34 lines). This allows the attendant to use the BLA function with all the contacts registered on the attendant console phone instead of just using speed dial and BLF. Does this work?
A: I don't think there is any reason that it would not work, provided that the phone can process all the required subscriptions for all the different lines.
Q: If shared line 200 rings on the assistants phone (extension 250) while user 200 (the boss) is on the phone (i.e. using line 200 on his phone), is the assistant able to see the 'On the phone status' while line 200 rings? The assistant needs to take a decision whether to pickup the shared ringing line 200.
A: As soon as one appearance of the shared line goes off-hook (even to dial), all other appearances of it will show that the line is in use. When another call comes in, the phone presents it depending on its capabilities... if the phone has only one button assigned to the line, it changes from solid red (indicating line in use) to flashing green. So the assistant would not know that the line was in use somewhere else unless they saw it before it started flashing. If the set has more than one button assigned to the line, the incoming call is presented on another button, and you can see that one call is in progress on the line, while another is ringing.