Views

Difference between revisions of "Asterisk Feature Busy Lamp Field (BLF)"

The Wiki of Unify contains information on clients and devices, communications systems and unified communications. - Unify GmbH & Co. KG is a Trademark Licensee of Siemens AG.

Jump to: navigation, search
(Using the FPK)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The busy lamp feature allows users to monitor the dialog state of another phone/user extension. This is indicated by the LEDs in an FPK. This feature is called "Busy Lamp Field" in the [[Asterisk]] community. Sometime the term 'Direct Station Selection' is used for the same functionality.
+
The busy lamp feature allows users to monitor the dialog state of another phone/user extension. This is indicated by the [[LED]]s in an [[FPK]]. In the [[Asterisk]] community, this feature is called "Busy Lamp Field"; sometimes the term 'Direct Station Selection' is used for the same functionality.
  
 
The feature is available for [[OpenStage]] 40/60/80.
 
The feature is available for [[OpenStage]] 40/60/80.
Line 7: Line 7:
 
== For Users ==
 
== For Users ==
  
The basic Busy Lamp field feature allows the user to monitor the dialog state of another phone/user extension. The dialog state is shown by a distinct LED behavior:
+
The basic Busy Lamp Field feature allows the user to monitor the dialog state of another phone. The dialog state is shown by a distinct LED behavior:
  
 
* LED '''off''' -> Watched extension is '''idle'''
 
* LED '''off''' -> Watched extension is '''idle'''
Line 13: Line 13:
 
* LED '''on''' -> Watched extension is '''busy/connected'''
 
* LED '''on''' -> Watched extension is '''busy/connected'''
  
In the basic configuration pressing the FPK will call the monitored persion in any call state.
+
In the basic configuration, pressing the FPK will call the monitored person in any call state.
  
 
'''Example:'''
 
'''Example:'''
  
There are four users: Leo, Alice, Joe and Bob. Leo is watching the extensions of Alice, Bob and Joe. Each of the extensions are configured on an specific FPK. The example shows the three different extension status. Joe is talking to annother persion, Alice gets a call, her phone is ringing and Bob is in idle like Leo is. The following picture shows this example:
+
There are four users: Leo, Alice, Joe and Bob. Leo is watching the extensions of Alice, Bob and Joe. Each of the extensions is configured on an specific FPK. The example shows the three different extension statuses. Joe is talking to another persion, Alice gets a call, her phone is ringing and Bob is in idle state, like Leo. The following picture illustrates this example:
  
[[Image:FPKBLFStatus.gif|thumb|left|300px|Extension status on FPK: Joe is in busy, Alice is in ringing and Bob is in idle state]]<br clear="left"/>
+
[[Image:FPKBLFStatus.gif|thumb|left|300px|Extension status on FPK: Joe is in busy state, Alice is in ringing state, and Bob is in idle state]]<br clear="left"/>
  
Leo can see at any time the status of the other people by watching the LEDs on the FPK.
+
Leo can see the status of the other people at any time by watching the LEDs on the FPK.
  
=== Using FPK ===
+
=== Using the FPK ===
  
The OpenStage phone supports the BLF functionality in two differen FPK functions types.  
+
The OpenStage phone supports the BLF functionality in two different FPK function types.  
  
The ''BLF-Type'' can be used in scenarious, where team members want to pick up the call for each other team members.
+
The BLF type can be used in scenarios where team members want to pick up the call for other team members.
  
The ''Server Feature''-Type can be used in receiptions for example, where the receptionist wants to see the call status of all employees, but never wants to pick up the call for someone.
+
The server feature type can be used in receptions, for example, where the receptionist wants to see the call status of all employees, but never wants to pick up the call for someone.
  
The OpenStage FPK is able to perform different actions depending on the satus of the FPK.  
+
Depending on the configured type and the status of the observed party, different actions are performed.
  
'''BLF-Type:'''
+
'''BLF Type:'''
  
 
{|
 
{|
Line 39: Line 39:
 
! Action by Key Press       
 
! Action by Key Press       
 
|-
 
|-
|off
+
|Off
|Wachted Party is called
+
|Watched party is called
 
|-
 
|-
|blinking
+
|Blinking
|Incoming call for watched persion is picked up
+
|Incoming call for watched person is picked up
 
|-
 
|-
|on
+
|On
|Nothing
+
|Watched party is called
 
|-
 
|-
 
|}
 
|}
  
'''Server Feature-Type:'''
+
'''Server Feature Type:'''
  
 
{|
 
{|
Line 56: Line 56:
 
! Action by Key Press       
 
! Action by Key Press       
 
|-
 
|-
|off
+
|Off
|Wachted Party is called
+
|Watched party is called
 
|-
 
|-
|blinking
+
|Blinking
|Wachted Party is called
+
|Watched party is called
 
|-
 
|-
|on
+
|On
|Wachted Party is called
+
|Watched party is called
 
|-
 
|-
 
|}
 
|}
Line 69: Line 69:
 
== For Administrators ==
 
== For Administrators ==
  
=== Using FPK "BLF" ===
+
=== Configuring the "BLF" Type ===
  
 +
To assign the '''BLF''' function to the FPK, proceed as follows:
  
The FPK are administrated as '''BLF'''. This is one option of the FPK programming options. The configuration can be found in
+
Open the web interface and navigate to
  
''Administrator Pages -> System -> Features -> Program Keys'':
+
'''Administrator Pages''' > '''System''' > '''Features''' > '''Program Keys'''.
  
The FPK function is ‘''BLF''’. Select this option and press ''Edit''
+
Select the '''BLF''' option and press '''edit'''.
  
 
[[Image:BLFPickUpFPKConfig.png|left|thumb|450px|Basic BLF Configuration with BLF Key]]<br clear="left"/>
 
[[Image:BLFPickUpFPKConfig.png|left|thumb|450px|Basic BLF Configuration with BLF Key]]<br clear="left"/>
  
Within the server feature four options are given:
+
Now, configure the parameters for the BLF feature:
  
 
[[Image:BLFPickUpFPKParam.jpg|framed|left|Basic BLF Configuration Parameters]]<br clear="left"/>
 
[[Image:BLFPickUpFPKParam.jpg|framed|left|Basic BLF Configuration Parameters]]<br clear="left"/>
Line 86: Line 87:
 
'''Key label''' - This is the label of the selected FPK <br />
 
'''Key label''' - This is the label of the selected FPK <br />
 
'''Monitored Phone''' - This is the SIP URI/phone number of the monitored phone <br />
 
'''Monitored Phone''' - This is the SIP URI/phone number of the monitored phone <br />
'''Audible Alert''' - These checkbox activates a short beep/ringing alert, if LED status changes to blinking <br />
+
'''Audible Alert''' - This checkbox activates a short beep/ringing alert, if LED status changes to blinking <br />
'''Popup on alert''' - These checkbox activates a popup message, if LED status changes to blinking <br />
+
'''Popup on alert''' - This checkbox activates a popup message, if LED status changes to blinking <br />
  
 
'''Example:'''
 
'''Example:'''
  
If Bob has the extension numer ''222'', the parameters will be:
+
If Bob has the extension number "222", the parameters will be:
  
'''Key label''' - ''Bob'' <br />
+
'''Key label''' - "Bob" <br />
'''Monitored Phone''' - ''222'' <br />
+
'''Monitored Phone''' - "222" <br />
'''Audible Alert''' - ''yes'', a short beep or ringing tone is done, if Bob gets a call.<br />
+
'''Audible Alert''' - "yes": a short beep or ringing tone sounds when Bob gets a call.<br />
'''Popup on alert''' - ''yes'', a popup is shown, if Bob gets a call. <br />
+
'''Popup on alert''' - "yes": a popup is shown when Bob gets a call. <br />
  
 
'''Remark:'''
 
'''Remark:'''
  
It migth be neccessry to configure an BLF Pickup Group Feature Key to enable the function. This can be done at  
+
It might be necessary to configure a BLF pickup code to ensure that the pickup functionality will be started at Asterisk. This can be done at  
  
''Administrator Pages -> System -> Features -> Services'':
+
'''Administrator Pages''' > '''System''' > '''Features''' > '''Services''':
  
 
[[Image:BLFPickUpGroupFK.jpg|thumb|left|450px|BLF Pickup Code Configuration]]<br clear="left"/>
 
[[Image:BLFPickUpGroupFK.jpg|thumb|left|450px|BLF Pickup Code Configuration]]<br clear="left"/>
  
=== Using FPK "Server Feature" ===
+
=== Configuring the "Server Feature" Type ===
  
The FPK are administrated as '''Server Key'''. This is one option of the FPK programming options. The configuration can be found in
+
To assign the '''Server Feature''' function to the FPK, proceed as follows:
  
''Administrator Pages -> System -> Features -> Program Keys'':
+
Open the web interface and navigate to
  
The FPK function is ‘''Server Feature''’. Select this option and press ''Edit''
+
'''Administrator Pages''' > '''System''' > '''Features''' > '''Program Keys''':
 +
 
 +
Select the '''Server Feature''' option and press '''edit'''.
  
 
[[Image:BLFBasicFPKConfig.png|left|thumb|450px|Basic BLF Configuration with Server Key]]<br clear="left"/>
 
[[Image:BLFBasicFPKConfig.png|left|thumb|450px|Basic BLF Configuration with Server Key]]<br clear="left"/>
  
Within the server feature four options are given:
+
Now, configure the parameters for the BLF feature:
  
 
[[Image:BLFBasicFPKParam.jpg|framed|left|Basic BLF Configuration Parameters]]<br clear="left"/>
 
[[Image:BLFBasicFPKParam.jpg|framed|left|Basic BLF Configuration Parameters]]<br clear="left"/>
  
'''Key label''' - This is the label of the selected FPK <br />
+
'''Key label''' - This is the label of the selected FPK. <br />
'''Feature Code''' - This code is sent within an INVITE message, if the key is pressed in idle status <br />
+
'''Feature Code''' - This code is sent within an INVITE message when the key is pressed in idle status. <br />
'''DTMF Digits''' - These Digits are sent as DTMF signals, if the key is pressed during a call <br />
+
'''DTMF Digits''' - These Digits are sent as DTMF signals when the key is pressed during a call. <br />
'''LED control''' - A Subscribtion is sent to the given URL <br />
+
'''LED control''' - A subscription is sent to the given URL. <br />
  
 
'''Example:'''
 
'''Example:'''
  
If Bob has the extension numer ''222'', the parameters will be:
+
If Bob has the extension number "222", the parameters will be:
  
'''Key label''' - ''Bob'' <br />
+
'''Key label''' - "Bob" <br />
'''Feature Code''' - ''222'', pressing the FPK will always call Bob independant of his line status.. <br />
+
'''Feature Code''' - "222": pressing the FPK will always call Bob, independent of his line status. <br />
'''DTMF Digits''' - n.a..,  not neccessary in this feature <br />
+
'''DTMF Digits''' - not neccessary in this feature. <br />
'''LED control''' - ''222@192.168.6.10'', a subscription for the LED will be sent to the server at the IP address <span style="color: red;">192.168.6.10</span>. If no IP address is given, the request will be automatically sent to the configured SIP proxy server. <br />
+
'''LED control''' - "222@192.168.6.10", a subscription for the LED will be sent to the server with the IP address <span style="color: red;">192.168.6.10</span>. If no IP address is specified here, the request will be automatically sent to the SIP server configured for this phone under '''System''' > '''Registration'''. <br />
  
 
== Technical Background ==
 
== Technical Background ==
  
The BLF feature gives the user the possiblity to watch one other users dialog state. To support the feature [http://www.ietf.org/rfc/rfc4235.txt RFC 4235] is used.
+
The BLF feature gives the user the possiblity to watch the dialog state of other users. The feature is implemented according to [http://www.ietf.org/rfc/rfc4235.txt RFC 4235]. This document defines a dialog event package for the SIP Events architecture, along with the data format used in notifications for this package. The dialog package allows users to subscribe to state changes relating to another user. When the subscription is made, the user will receive a notification as soon as the state of an INVITE-initiated dialog on the other user's side changes.
 
 
This document defines a dialog event package for the SIP Events architecture, along with a data format used in notifications for this package. The dialog package allows users to subscribe to another user and to receive notification of the changes in state of INVITE -initiated dialog usages in which the subscribed- to user is involved.
 
  
The framework is startet with an initial subscription from the watching phone. The following table shows the subscription from Leo for Joe's extension:  
+
The framework is started with an initial subscription from the watching phone. The following table shows the subscription from Leo for Joe's extension:  
  
 
{|
 
{|
Line 172: Line 173:
 
|}
 
|}
  
After that the Asterisk PBK sends Notification to Leo's phone to tell the status of Joe's line. The table below shows an example Notification:
+
After that the Asterisk PBK sends a notification to Leo's phone to tell the status of Joe's line. The table below shows an example notification:
  
 
{|
 
{|
Line 192: Line 193:
 
|}
 
|}
  
Within the Notify the line status is delivered in the XML body. The OpenStage phone support three line status
+
The line status is delivered in the XML body of the notify message. OpenStage phones supports three different line statuses:
  
 
=== Idle (LED off) ===
 
=== Idle (LED off) ===
Line 198: Line 199:
 
The idle state is notified within the dialog event subscription. The dialog state in the message body is '''terminated''' or '''left empty'''.  
 
The idle state is notified within the dialog event subscription. The dialog state in the message body is '''terminated''' or '''left empty'''.  
  
Here is an example for Joes idle state sent to Leo.
+
Here is an example for Joe's idle state sent to Leo.
 
   
 
   
 
''Message:''<br />
 
''Message:''<br />
Line 231: Line 232:
 
The ringing state is notified within the dialog event subscription. The dialog state in the message body is '''early'''.  
 
The ringing state is notified within the dialog event subscription. The dialog state in the message body is '''early'''.  
  
Here is an example for Joes ringing state sent to Leo.
+
Here is an example for Joe#s ringing state sent to Leo.
  
 
''Message:'' <br />
 
''Message:'' <br />
Line 263: Line 264:
 
The connected/busy state is notified within the dialog event subscription. The dialog state in the message body is '''confirmed'''.  
 
The connected/busy state is notified within the dialog event subscription. The dialog state in the message body is '''confirmed'''.  
  
Here is an example for Joes connected/busy state sent to Leo.
+
Here is an example for Joe's connected/busy state sent to Leo.
  
 
''Message:'' <br />
 
''Message:'' <br />

Latest revision as of 13:59, 3 August 2016

The busy lamp feature allows users to monitor the dialog state of another phone/user extension. This is indicated by the LEDs in an FPK. In the Asterisk community, this feature is called "Busy Lamp Field"; sometimes the term 'Direct Station Selection' is used for the same functionality.

The feature is available for OpenStage 40/60/80.

The feature description uses always the same example background with fixed names, numbers and IP addresses. The example configuration can be found in Asterisk Feature Example Configuration.

For Users

The basic Busy Lamp Field feature allows the user to monitor the dialog state of another phone. The dialog state is shown by a distinct LED behavior:

  • LED off -> Watched extension is idle
  • LED blinking -> Watched extension is ringing
  • LED on -> Watched extension is busy/connected

In the basic configuration, pressing the FPK will call the monitored person in any call state.

Example:

There are four users: Leo, Alice, Joe and Bob. Leo is watching the extensions of Alice, Bob and Joe. Each of the extensions is configured on an specific FPK. The example shows the three different extension statuses. Joe is talking to another persion, Alice gets a call, her phone is ringing and Bob is in idle state, like Leo. The following picture illustrates this example:

Extension status on FPK: Joe is in busy state, Alice is in ringing state, and Bob is in idle state

Leo can see the status of the other people at any time by watching the LEDs on the FPK.

Using the FPK

The OpenStage phone supports the BLF functionality in two different FPK function types.

The BLF type can be used in scenarios where team members want to pick up the call for other team members.

The server feature type can be used in receptions, for example, where the receptionist wants to see the call status of all employees, but never wants to pick up the call for someone.

Depending on the configured type and the status of the observed party, different actions are performed.

BLF Type:

LED Status Action by Key Press
Off Watched party is called
Blinking Incoming call for watched person is picked up
On Watched party is called

Server Feature Type:

LED Status Action by Key Press
Off Watched party is called
Blinking Watched party is called
On Watched party is called

For Administrators

Configuring the "BLF" Type

To assign the BLF function to the FPK, proceed as follows:

Open the web interface and navigate to

Administrator Pages > System > Features > Program Keys.

Select the BLF option and press edit.

Basic BLF Configuration with BLF Key

Now, configure the parameters for the BLF feature:

Basic BLF Configuration Parameters

Key label - This is the label of the selected FPK
Monitored Phone - This is the SIP URI/phone number of the monitored phone
Audible Alert - This checkbox activates a short beep/ringing alert, if LED status changes to blinking
Popup on alert - This checkbox activates a popup message, if LED status changes to blinking

Example:

If Bob has the extension number "222", the parameters will be:

Key label - "Bob"
Monitored Phone - "222"
Audible Alert - "yes": a short beep or ringing tone sounds when Bob gets a call.
Popup on alert - "yes": a popup is shown when Bob gets a call.

Remark:

It might be necessary to configure a BLF pickup code to ensure that the pickup functionality will be started at Asterisk. This can be done at

Administrator Pages > System > Features > Services:

BLF Pickup Code Configuration

Configuring the "Server Feature" Type

To assign the Server Feature function to the FPK, proceed as follows:

Open the web interface and navigate to

Administrator Pages > System > Features > Program Keys:

Select the Server Feature option and press edit.

Basic BLF Configuration with Server Key

Now, configure the parameters for the BLF feature:

Basic BLF Configuration Parameters

Key label - This is the label of the selected FPK.
Feature Code - This code is sent within an INVITE message when the key is pressed in idle status.
DTMF Digits - These Digits are sent as DTMF signals when the key is pressed during a call.
LED control - A subscription is sent to the given URL.

Example:

If Bob has the extension number "222", the parameters will be:

Key label - "Bob"
Feature Code - "222": pressing the FPK will always call Bob, independent of his line status.
DTMF Digits - not neccessary in this feature.
LED control - "222@192.168.6.10", a subscription for the LED will be sent to the server with the IP address 192.168.6.10. If no IP address is specified here, the request will be automatically sent to the SIP server configured for this phone under System > Registration.

Technical Background

The BLF feature gives the user the possiblity to watch the dialog state of other users. The feature is implemented according to RFC 4235. This document defines a dialog event package for the SIP Events architecture, along with the data format used in notifications for this package. The dialog package allows users to subscribe to state changes relating to another user. When the subscription is made, the user will receive a notification as soon as the state of an INVITE-initiated dialog on the other user's side changes.

The framework is started with an initial subscription from the watching phone. The following table shows the subscription from Leo for Joe's extension:

192.168.0.247 192.168.0.10 SIP Message
Request: SUBSCRIBE SIP: Request: SUBSCRIBE sip:333@192.168.0.10:5060
Joe's phone ------------------> Asterisk
Status: 401 Unauthorized SIP: Status: 401 Unauthorized
Joe's phone <------------------ Asterisk
Request: SUBSCRIBE SIP: Request: SUBSCRIBE sip:333@192.168.0.10:5060
Joe's phone ------------------> Asterisk
Status: 200 OK SIP: Status: 200 OK
Joe's phone ------------------> Asterisk

After that the Asterisk PBK sends a notification to Leo's phone to tell the status of Joe's line. The table below shows an example notification:

192.168.0.247 192.168.0.10 SIP Message
Request: NOTIFY SIP: Request: NOTIFY sip:444@192.168.0.247:5060
Joe's phone <------------------ Asterisk
Status: 200 OK SIP: Status: 200 OK
Joe's phone ------------------> Asterisk

The line status is delivered in the XML body of the notify message. OpenStage phones supports three different line statuses:

Idle (LED off)

The idle state is notified within the dialog event subscription. The dialog state in the message body is terminated or left empty.

Here is an example for Joe's idle state sent to Leo.

Message:
NOTIFY sip:444@192.168.0.247:5060;transport=udp SIP/2.0
v: SIP/2.0/UDP 192.168.0.10:5060;branch=z9hG4bK38e76e71;rport
f: <sip:333@192.168.0.10:5060;transport=udp>;tag=as4aa60d2a
t: Leo Demo 444 <sip:444@192.168.0.10>;tag=cc29a24a90;epid=SCBCC441
m: <sip:333@192.168.0.10>
i: 46c0a8f00bff87e0
CSeq: 102 NOTIFY
User-Agent: Asterisk Gemeinschaft
Max-Forwards: 70
o: dialog
c: application/dialog-info+xml
Subscription-State: active
l: 208
Body:
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="0" state="full" entity="sip:333@192.168.0.10:5060">
<dialog id="333">
<state>terminated</state>
</dialog>
</dialog-info>

Ringing (LED blinking)

The ringing state is notified within the dialog event subscription. The dialog state in the message body is early.

Here is an example for Joe#s ringing state sent to Leo.

Message:
NOTIFY sip:444@192.168.0.247:5060;transport=udp SIP/2.0
v: SIP/2.0/UDP 192.168.0.10:5060;branch=z9hG4bK66a6adf2;rport
f: <sip:333@192.168.0.10:5060;transport=udp>;tag=as6576596c
t: Leo Demo 444 <sip:444@192.168.0.10>;tag=9304448a7d;epid=SCBCC441
m: <sip:333@192.168.0.10>
i: 7a5553c742843273
CSeq: 103 NOTIFY
User-Agent: Asterisk Gemeinschaft
Max-Forwards: 70
o: dialog
c: application/dialog-info+xml
Subscription-State: active
l: 225
Body:
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="1" state="full" entity="sip:333@192.168.0.10:5060">
<dialog id="333" direction="recipient">
<state>early</state>
</dialog>
</dialog-info>

Connected/Busy (LED on)

The connected/busy state is notified within the dialog event subscription. The dialog state in the message body is confirmed.

Here is an example for Joe's connected/busy state sent to Leo.

Message:
NOTIFY sip:444@192.168.0.247:5060;transport=udp SIP/2.0
v: SIP/2.0/UDP 192.168.0.10:5060;branch=z9hG4bK3685f474;rport
f: <sip:333@192.168.0.10:5060;transport=udp>;tag=as05967368
t: Leo Demo 444 <sip:444@192.168.0.10>;tag=2ad7b4ac94;epid=SCBCC441
m: <sip:333@192.168.0.10>
i: 4a6a3f0f21b83343
CSeq: 103 NOTIFY
User-Agent: Asterisk Gemeinschaft
Max-Forwards: 70
o: dialog
c: application/dialog-info+xml
Subscription-State: active
l: 207
Body:
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="1" state="full" entity="sip:333@192.168.0.10:5060">
<dialog id="333">
<state>confirmed</state>
</dialog>
</dialog-info>

Complete Example Call Flow

A example call flow has been recorded. At the end of this call flow Joe is in busy (LED on), Alice is in ringing (LED blinking) and Bob is in idle state (LED off).

The complete example call flow: zip.png  BLFBasicCallFlow

See also