...
# | Requirement title | Functionality | Importance | Notes |
---|
1 | D8XX_BLF-XML_FR-1 | 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, when one of the following state changes occur: - from any state => terminated
- from any state => trying
- from any state => early/proceeding
- from any state => confirmed
| Must Have | Fully implemented |
2 | D8XX_BLF-XML_FR-2 | 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 (UAS) on another IP phone. This function shall be called "BLF-XML". The following states of the monitored SIP extension (UAS) shall be processed and translated depending on the call direction: UAS state | Dialog state (NOTIFY) | Direction | Translated state |
---|
idle mode | terminated | - | idle | offhook / dialling | trying | initiator | offhookbusy | incoming call ringing | early/proceeding | recipient | ringing | incoming call accepted | confirmed | recipient | talking | outgoing call ringing | early/proceeding | initiator | busycalling | outgoing call accepted | confirmed | initiator | talking |
| Must Have | Partly 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 Dialog state | terminated | trying | early/proceeding | confirmed |
---|
Translated state | idle | offhook | calling | ringing | talking |
---|
Direction | - | initiator | initiator | recipient | initiator/recipient |
---|
LED behaviour | off | on | on | blinking | on |
---|
LED colour | - | red | red | red | red |
---|
| Must Have | |
6 | D8XX_BLF-XML_FR-1-1-2 | The PFK label shall be composed of 3 areas: (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 graphical symbol and colour Dialog state | terminated | trying | early/proceeding | confirmed |
---|
Translated state | idle | offhook | calling | ringing | talking |
---|
Direction | - | initiator | initiator | recipient | initiator/recipient |
---|
Graphical symbol | | | | | |
---|
Colour | white/green | white/orange | white/orange | white/orange | white/red |
---|
| Must Have | |
8 | D8XX_BLF-XML_FR-1-1-2-2 | The label name area (B) shall contain the following a text representing using either the display name or number (configurable) of the monitored / calling party. Depending on the available space, the text shall be scrolled. Dialog state | terminated | trying | early/proceeding | confirmed | confirmed |
---|
Translated state | idle | offhook | calling | ringing | talking | talking |
---|
Direction | - | initiator | initiator | recipient | initiator | recipient |
---|
TargetText (using target) | local | local > | local > remote | remote > local | remote <> local | local <> remote |
---|
Text (number)colour | white | white | white | white | white | white |
---|
Example (using number) | 101 | 101 >
| 101 > 102 | 102 | number | number >
101 <> 102 | 102 > 101 | 102 <> 101
| 101 <> 102
|
---|
Text Example (using display name) | Alex | Alex > | Alex > Alice | Alice > Alex | Alice <> Alex | Alex <> Alice | text colour | white | white | white | white | white |
---|
| Must Have | |
9 | D8XX_BLF-XML_FR-1-1-2-3 | The label state area (C) shall contain the following a text and colour representing the translated state Dialog state | terminated | trying | early/proceeding | confirmedtext |
---|
Translated state | idle | offhook | diallingcalling | ringing | talking |
---|
colourDirection | white- | whiteinitiator | whiteinitiator | white |
---|
| Must Have | Partly implemented | recipient | initiator/recipient |
---|
text | idle | offhook | calling | ringing | talking |
---|
colour | white | white | white | white | white |
---|
| Must Have | Partly implemented |
User interaction and design
User interaction | Dialog State | SIP message | XML definition | Visual result |
---|
UAS | UACUAS | UAS => NOTIFY => UAC | UAC NOTIFY parsing rules | PFK LED | PFK label |
---|
goes offhook | monitoring quick dial allowed | <state>trying</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| 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> |
|
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<NotifyParsingRules type="state">
...
<level3 translates_to="offhook">/dialog-info/dialog/state[.="trying"]</level3>
...
</NotifyParsingRules>
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, in_a_calltalking, offhook, freeidle"/>
...
</action> |
|
|
 | 101 > | offhook |
|
---|
goes onhook | monitoring terminatedquick dial allowed | <state>terminated</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| 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> |
|
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<NotifyParsingRules type="state">
...
<level5 translates_to="idle"/>
</NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, in_a_calltalking, offhook, idle"/>
...
</action> |
|
|
 | 101 | idle |
|
---|
incoming call ringing | monitoring pick up allowed | <state>early</state> <state>earlyproceeding</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| 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> |
Image Removed | 102 > 101ringing | incoming call accepted | monitoring | confirmed | theme | Confluence |
---|
title | XML definition |
---|
|
<state>confirmed</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| NOTIFY
...
<?xml<NotifyParsingRules versiontype="1.0state"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="..."
state="full"
entity="sip:101@...">
<dialog
id="..."
direction='recipient'
call-id='...'
local-tag="..."
remote-tag="...">
<state>confirmed</state>
<local>
<identity display="B">sip:101@...</identity>
<target uri="sip:101@...;line=...">
<param pname="x-line-id" pval="0" />
<param pname="+sip.rendering" pval='yes' />
</target>
</local>
<remote>
<identity display="C">sip:102@...</identity>
<target uri="sip:102@..."/>
</remote>
</dialog>
</dialog-info> |
|
---|
Image Removed | 102 <> 101 |
talking |
Incoming call terminated | monitoring | terminated | <state>terminated</state>
Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
|
NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="8"
state="full"
entity="sip:101@192.168.245.1">
<dialog id="ef358a486677031ad4ecaac68710cef9"
direction='recipient'
call-id='b5c0006472bc-8x9sdw8f8qdr'
local-tag="7196pmgjev"
remote-tag="nyeqpi7kqy">
<state>terminated</state>
<local>
<identity display="B">sip:101@192.168.245.1</identity>
<target uri="sip:101@192.168.245.251:60158;line=caioqij3">
<param pname="x-line-id" pval="0" />
</target>
</local>
<remote>
<identity display="C">sip:102@192.168.245.1</identity>
<target uri="sip:102@192.168.245.1"/>
</remote>
</dialog>
</dialog-info> |
<level1 translates_to="ringing">/dialog-info/dialog/state[.="early"]</level1>
...
<level2 translates_to="ringing">/dialog-info/dialog/state[.="proceeding"]</level2>
...
</NotifyParsingRules>
<NotifyParsingRules
type="variable"
id="call_id"
state="ringing">
<level1 fetch_attribute="call-id">/dialog-info/dialog[@call-id]</level1>
</NotifyParsingRules>
<NotifyParsingRules
type="variable"
id="remote_tag"
state="ringing">
<level1 fetch_attribute="remote-tag">/dialog-info/dialog[@remote-tag]</level1>
</NotifyParsingRules>
<NotifyParsingRules
type="variable"
id="local_tag"
state="ringing">
<level1 fetch_attribute="local-tag">/dialog-info/dialog[@local-tag]</level1>
</NotifyParsingRules>
<NotifyParsingRules
type="variable"
id="remote_uri"
state="ringing">
<level1 fetch_attribute="uri">/dialog-info/dialog/remote/target[@uri]</level1>
</NotifyParsingRules>
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, talking, offhook, idle"/>
<invite target="$(remote_uri)" when="on press" state="ringing" request_uri="$(remote_uri)" replaces="$(call_id);to-tag=$(remote_tag);from-tag=$(local_tag)"/>
</action> |
|
|
Image Added | 102 > 101 | ringing |
| incoming call accepted | monitoring quick dial allowed | <state>confirmed</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="..."
state="full"
entity="sip:101@...">
<dialog
id="..."
direction='recipient'
call-id='...'
local-tag="..."
remote-tag="...">
<state>confirmed</state>
<local>
<identity display="B">sip:101@...</identity>
<target uri="sip:101@...;line=...">
<param pname="x-line-id" pval="0" />
<param pname="+sip.rendering" pval='yes' />
</target>
</local>
<remote>
<identity display="C">sip:102@...</identity>
<target uri="sip:102@..."/>
</remote>
</dialog>
</dialog-info> |
|
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<NotifyParsingRules type="state">
...
<level4 translates_to="in_a_call">/dialog-info/dialog/state[.="confirmed"]</level4> </NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, talking, offhook, idle"/>
...
</action> |
|
|
Image Added | 102 <> 101 | talking |
|
---|
Incoming call terminated | monitoring quick dial allowed | <state>terminated</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="8"
state="full"
entity="sip:101@192.168.245.1">
<dialog id="ef358a486677031ad4ecaac68710cef9"
direction='recipient'
call-id='b5c0006472bc-8x9sdw8f8qdr'
local-tag="7196pmgjev"
remote-tag="nyeqpi7kqy">
<state>terminated</state>
<local>
<identity display="B">sip:101@192.168.245.1</identity>
<target uri="sip:101@192.168.245.251:60158;line=caioqij3">
<param pname="x-line-id" pval="0" />
</target>
</local>
<remote>
<identity display="C">sip:102@192.168.245.1</identity>
<target uri="sip:102@192.168.245.1"/>
</remote>
</dialog>
</dialog-info> |
|
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<NotifyParsingRules type="state">
...
<level5 translates_to="idle"/>
</NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, talking, offhook, idle"/>
...
</action> |
|
|
Image Added | 101 | idle |
|
---|
Outgoing call ringing | monitoring quick dial allowed | <state>early</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="13"
state="full"
entity="sip:101@...">
<dialog
id="..."
direction='initiator'
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> |
| Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
|
...
<NotifyParsingRules type="state">
...
<level5 translates_to="idle"/>
</NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, in_a_call, offhook, idle"/>
...
</action> |
---|
Image Removed | 101 |
idle |
Outgoing call ringing | monitoring | early | <state>early</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="13"
state="full"
entity="sip:101@...">
<dialog
id="..."
direction='initiator'
call-id='...'
local-tag="..."
remote-tag="">
<state>early</state>
<local>
<identity display="BD">sip:101@103@...<;user=phone</identity>
<target uri="sip:103@...;user="sip:101@...;line=...">
<param pname="x-line-id" pval="0" />
</target>
</local>
<remote>
<identity display="D">sip:103@...;user=phone</identity>
<target uri="sip:103@...;user=phone"/>
</remote>
</dialog>
</dialog-info>phone"/>
</remote>
</dialog>
</dialog-info> |
|
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<NotifyParsingRules type="state">
...
<level5 translates_to="idle"/>
</NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, talking, offhook, idle"/>
...
</action> |
|
|
 | 101 > 103 | calling |
| Outgoing call accepted | monitoring confirmedquick dial allowed | <state>confirmed</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="..."
state="full"
entity="sip:101@...">
<dialog
id="..."
direction='initiator'
call-id='...'
local-tag="..."
remote-tag="...">
<state>confirmed</state>
<local>
<identity display="B">sip:101@...</identity>
<target uri="sip:101@...;line=...">
<param pname="x-line-id" pval="0" />
<param pname="+sip.rendering" pval='yes' 'yes' />
</target>
</local>
<remote>
<identity display="D">sip:103@...</identity>
<target uri="sip:103@..."/>
</remote>
</target>dialog>
</local>
<remote>
<identity display="D">sip:103@...</identity>
<target uri="sip:103@..."/>
</remote>
</dialog>
</dialog-info></dialog-info> |
|
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<NotifyParsingRules type="state">
...
<level5 translates_to="idle"/>
</NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, talking, offhook, idle"/>
...
</action> |
|
|
 | 101 <> 103 | talking |
|
---|
Outgoing call terminated | monitoring quick dial allowed | <state>terminated</state> Code Block |
---|
language | xml |
---|
title | NOTIFY |
---|
linenumbers | true |
---|
collapse | true |
---|
| NOTIFY
...
<?xml version="1.0"?>
<dialog-info
xmlns="urn:ietf:params:xml:ns:dialog-info"
version="..."
state="full"
entity="sip:101@...">
<dialog
id
id="..."
direction='initiator'
call-id='...'
local-tag="..."
remote-tag="...">
direction='initiator'
call-id='...'
local-tag="..."
remote-tag="...">
<state>terminated</state>
<local><state>terminated</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="BD">sip:101@103@...</identity>
<target uri="sip:101@...;line=...">
<param pname="x-line-id" pval="0" />
</target>
</local>
<remote>
<identity display="D">sip:103@...</identity>
<target uri="sip:103@..."/>
</remote>
</dialog>
</dialog-info>103@..."/>
</remote>
</dialog>
</dialog-info> |
|
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<NotifyParsingRules type="state">
...
<level5 translates_to="idle"/>
</NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, talking, offhook, idle"/>
...
</action> |
|
|
 | 101 | idle |
|
---|
|
|
|
|
|
|
---|
Questions
Below is a list of questions to be addressed as a result of this requirements document:
...