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.
Hans.zeiner (talk | contribs) |
Hans.zeiner (talk | contribs) (→Technical Backround) |
||
Line 62: | Line 62: | ||
'''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 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 /> | ||
− | == Technical | + | == 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 one other users dialog state. To support the feature [http://www.ietf.org/rfc/rfc4235.txt RFC 4235] is used. |
Revision as of 09:28, 18 December 2008
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 feature is available for OpenStage 40/60/80.
The feature description uses always the same example backround with fixed names, numbers and IP addresses. The example configuration can be found in
Preview:Asterisk Feature Example Configuration
Contents
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:
- 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 persion 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 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:
Leo can see at any time the status of the other people by watching the LEDs on the FPK.
Using FPK
For Administrators
Using FPK "BLF"
Using FPK "Server Feature"
The FPK are administrated as Server Key. This is one option of the FPK programming options. The configuration can be found in
Administrator Pages -> System -> Features -> Program Keys:
The FPK function is ‘Server Feature’. Select this option and press ‘Edit’
Within the server feature four options are given:
Key label - This is the label of the selected FPK
Feature Code - This code is sent within an INVITE message, if the key is pressed in idle status
DTMF Digits - These Digits are sent as DTMF signals, if the key is pressed during a call
LED control - A Subscribtion is sent to the given URL
Example:
If Bob has the extension numer 222, the parameters will be:
Key label - Bob
Feature Code - 222, pressing the FPK will always call Bob independant of his line status..
DTMF Digits - n.a.., not neccessary in this feature
LED control - 222@192.168.6.10, a subscription for the LED will be sent to the server at the IP address 192.168.6.10. If no IP address is given, the request will be automatically sent to the configured SIP proxy server.
Technical Background
The BLF feature gives the user the possiblity to watch one other users dialog state. To support the feature RFC 4235 is used.
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:
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 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 |
Within the Notify the line status is delivered in the XML body. The OpenStage phone support three line status
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 Joes 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 Joes 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 Joes 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).
BLFBasicCallFlow the complete example call flow