Target release | 1.0 |
---|
Epic | |
---|
Document status | |
---|
Document owner | |
---|
Designer | |
---|
Developers | |
---|
QA | |
---|
|
Goals
- Align BLF and Extension behavior for PFKs on Snom desk phones by using XML definitions instead
- Improve user experience
- Improve performance
Background and strategic fit
BLF is a valuable feature for Snom customers, like enterprises who are looking to assist in connecting their customers to a live, available person as well as save business phone use time. Overall, it enables businesses to streamline their communication and better serve customers. BLF aka Extension monitoring has been utilized in numerous ways by businesses using Snom phone systems with multiple extensions. The current implementation appears to be kind of duplicated, but with a few little differences and erroneous behaviour.
Assumptions
- Use case#1: A secretary's phone shall display the call status of the boss's line, allowing the secretary to know whether the boss is on a phone call or not. This will enable the secretary to make the decision to put the new caller on hold or let them through to the boss.
- Use case#2: Call centers and customer support groups have also a need for BLF: it enables employees to see if their colleagues are free to take a support call or if their supervisor is on another line and unable to help another customer.
- Use case#3: BLF is needed by teams working on a specific project: supervisors can monitor team members' extensions and vice versa so all team members are aware of each other's current status.
Requirements
# | Requirement title | Functionality | Importance | Notes |
---|
1 | D8XX_BLF-XML_FR-1 | On D8xx IP phones, any PFK (programmable function key - physical or virtual) can be assigned to a function, which allows monitoring state changes of the configured SIP extension on another IP phone. This function shall be called "BLF-XML". The following state changes shall be visualized: - monitored SIP extension is in idle mode => idle
- monitored SIP extension seizes a line => busy
- monitored SIP extension receives an incoming call => ringing
- monitored SIP extension places an outgoing call => busy
- monitored SIP extension dials or accepts an incoming call => busy
| Must Have | This means, that the D8xx phone acts as a User Agent Client (UAC) and the IP phone of the monitored extension acts as User Agent Server (UAS). |
2 | D8XX_BLF-XML_FR-2 | On Snom IP phones acting as UAS, any SIP extension having an active subscription of its state changes, shall sent a notification SIP message (NOTIFY) to the UAC, at least when one of the following state changes occur: - from any state => idle
- from any state => trying
- from any state => early
- from any state => busy
| Must Have | Fully implemented |
3 | D8XX_BLF-XML_FR-3 | The assignment shall be configured either manually via web user interface (WUI) and/or phone user interface (PUI), and automatically via auto-provisioning (HTTP/TFTP setting server), SRAPS, or remote management (TR-069). | Must Have | Fully implemented |
4 | D8XX_BLF-XML_FR-1-1 | On D8xx series, during an active subscription, state changes of the monitored SIP extension shall be visualized on both, PFK LED and PFK label. | Must Have | |
5 | D8XX_BLF-XML_FR-1-1-1 | The PFK LED behaviour and colour shall be according to this table state | idle | ringing | busy |
---|
LED behaviour | off | blinking | on |
---|
LED colour | - | red | red |
---|
| Must Have | |
6 | D8XX_BLF-XML_FR-1-1-2 | The PFK label shall be composed of 3 areas: Label area | Screenshot |
---|
(A) icon area | | (B) name area | (C) state area |
| Must Have | |
7 | D8XX_BLF-XML_FR-1-1-2-1 | The label icon area (A) shall contain the following distinguishable graphical symbol, representing the state State | idle | ringing | busy |
---|
Description | person with a handset | person with a handset plus an arrow (pointing towards the handset) | person with a handset and 2 sound waves (heading away from the handset) |
---|
Graphical symbol | | | |
---|
Colour | white | red | red |
---|
| Must Have | |
8 | D8XX_BLF-XML_FR-1-1-2-2 | The label name area (B) shall contain the following text representing the display name or number (configurable) of the monitored / calling party state | idle | ringing | busy |
---|
roles | Monitored party | Calling party > monitored party | Calling party <> monitored party |
---|
text | 101 or Alex | 102 > 101 or Alice > Alex | 102 <> 101 or Alice <> Alex |
---|
text colour | white | white | white |
---|
| Must Have | |
9 | D8XX_BLF-XML_FR-1-1-2-3 | The label state area (C) shall contain the following text representing the state state | idle | ringing | busy |
---|
text | idle | ringing | busy |
---|
colour | white | white | white |
---|
| Must Have | Fully implemented |
User interaction and design
User interaction |
| Protocols | Design reference |
---|
UAS | UAC | State | UAS => UAC | UAC | Figma | Screenshot |
---|
does nothing | does nothing | Idle |
|
|
| |
---|
seizes a line | does nothing | Trying |
NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="..."
state="full"
entity="sip:101@...">
<dialog id="..." >
<state>trying</state>
</dialog>
</dialog-info> |
|
NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="..."
state="full"
entity="sip:101@...">
<dialog id="..." >
<state>trying</state>
</dialog>
</dialog-info> |
|
|
|
---|
hangs up | does nothing | Terminated |
NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="..."
state="full"
entity="sip:101@192.168.245.1">
<dialog id="..."
direction='initiator'
call-id='...'
local-tag=""
remote-tag="">
<state>terminated</state>
<local>
<identity display="B">sip:101@...</identity>
<target uri="sip:101@...;line=...">
<param pname="x-line-id" pval="0" />
</target>
</local>
</dialog>
</dialog-info> |
|
|
|
|
---|
incoming call | does nothing | Early |
NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="..."
state="full" entity="...">
<dialog
id="..."
direction='recipient'
call-id='...'
local-tag="..."
remote-tag="...">
<state>early</state>
<local>
<identity display="B">
sip:101@...
</identity>
<target uri="sip:101@...;line=...">
<param pname="x-line-id" pval="0" />
</target>
</local>
<remote>
<identity display="C">
sip:102@...
</identity>
<target uri="sip:102@..."/>
</remote>
</dialog>
</dialog-info> |
|
|
|
|
---|
|
|
|
|
|
|
|
---|
|
|
|
|
|
|
|
---|
|
|
|
|
|
|
|
---|
|
|
|
|
|
|
|
---|
|
|
|
|
|
|
|
---|
|
|
|
|
|
|
|
---|
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|
(e.g. How we make users more aware of this feature?) | Communicate the decision reached |
Not Doing
- List the features discussed which are out of scope or might be revisited in a later release.