...
# | 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:
| 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:key type called "BLF-XML", and a key number, which corresponds to a SIP extension on another IP phone in the same VoIP environment. The following functionality is required:
Dialog states of the configured SIP extension shall be monitored, processed and translated according to its direction:
| 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 | Fully implemented | |||||||||||||||||||||||||||||||||||||||||||||||||
5 | D8XX_BLF-XML_FR-1-1-1 | The PFK LED behaviour and colour shall be according to this table
| Must Have | Partly implemented | |||||||||||||||||||||||||||||||||||||||||||||||||
6 | D8XX_BLF-XML_FR-1-1-2 | The PFK label shall be composed of 3 areas:
| Must Have | Fully implemented | |||||||||||||||||||||||||||||||||||||||||||||||||
7 | D8XX_BLF-XML_FR-1-1-2-1 | The label icon area (A) shall contain the following graphical symbol and colour
| Must Have | Partly implemented | |||||||||||||||||||||||||||||||||||||||||||||||||
8 | D8XX_BLF-XML_FR-1-1-2-2 | The label name area (B) shall contain a text using either the display name or number (configurable) of the monitored / calling party. Depending on the available space, the text shall be scrolled.
| Must Have | Partly implemented | |||||||||||||||||||||||||||||||||||||||||||||||||
9 | D8XX_BLF-XML_FR-1-1-2-3 | The label state area (C) shall contain a text and colour representing the translated state
| Must Have | Partly implemented |
User interaction and design
User interaction | SIP message | XML definition | Visual result | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
UAS | UAC | UAS => NOTIFY => UAC | UAC NOTIFY parsing rules | PFK LED | PFK label | |||||||||||||||||||||||||||||||||||||||||||||||||||||
goes offhook | monitoring quick dial allowed | dialog state => trying
<state>trying</state>
| translate dialog state trying => offhook (quick dial, pick-up not allowed)
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
goes onhook | monitoring quick dial allowed | <state>terminated</state>dialog state => terminated
| translate dialog state terminated => idle (quick dial allowed, pick-up not allowed)
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
incoming call ringing | monitoring pick up allowed | <state>early</state> <state>proceeding</state>dialog state => early/proceeding
| translate dialog state early/proceeding => ringing (quick dial not allowed, pick-up allowed)
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
incoming call accepted | monitoring quick dial allowed | <state>confirmed</state>dialog state => confirmed
| translate dialog state confirmed => talking (quick dial, pick-up not allowed)
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
102 <> 101 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
talking | Incoming call terminated | monitoring quick dial allowed |
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Incoming call terminated | dialog state => terminated
| translate dialog state terminated => idle (quick dial allowed, pick-up not allowed)
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Outgoing call ringing | dialog state => early/proceeding<state>terminated</state>
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
101 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
idle | Outgoing call ringing | monitoring quick dial allowed |
| translate dialog state early/proceeding & direction "initiator" => calling (quick dial, pick-up not allowed)
<state>early</state>
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
101 > 103 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
calling |
translates_to="ringing">/dialog-info/dialog/state[.="early"]
</level1>
<level1-1
translates_to="calling">/dialog-info/dialog[@direction="initiator"]
</level1-1>
<level2
translates_to="ringing">/dialog-info/dialog/state[.="proceeding"]
</level2>
<level2-1
translates_to="calling">/dialog-info/dialog[@direction="initiator"]
</level2-1>
</NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)"
when="on press"
states="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> |
101 > 103 | |
calling |
dialog state => confirmed
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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' />
</target>
</local>
<remote>
<identity display="D">sip:103@...</identity>
<target uri="sip:103@..."/>
</remote>
</dialog>
</dialog-info> |
translate dialog state confirmed => talking (quick dial, pick-up not allowed)
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
...
<NotifyParsingRules type="state">
...
<level4
translates_to="talking">/dialog-info/dialog/state[.="confirmed"]
</level4>
</NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)"
when="on press"
states="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)"/> |
quick dial allowed
<state>confirmed</state>
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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' />
</target>
</local>
<remote>
<identity display="D">sip:103@...</identity>
<target uri="sip:103@..."/>
</remote>
</dialog>
</dialog-info> |
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
...
<NotifyParsingRules type="state">
...
<level4 translates_to="talking">/dialog-info/dialog/state[.="confirmed"]</level4> </NotifyParsingRules>
...
<action>
<invite target="$(subscr_uri)" when="on press" states="calling, talking, offhook, idle"/>
...
</action> |
101 <> 103 | |
talking |
quick dial allowed
<state>dialog state => terminated</state>
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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>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="D">sip:103@...</identity> <target uri="sip:103@..."/> </remote> </dialog> </dialog-info>-info> |
translate dialog state terminated => idle (quick dial allowed, pick-up not allowed)
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
... <NotifyParsingRules type="state"> ... <level5 translates_to="idle"/> </NotifyParsingRules> ... <action> <invite target. <action> <invite target="$(subscr_uri)" when="on press" states="idle"/> <invite target="$(remote_uri)" when="on press" state="ringing" request_uri="$(subscrremote_uri)" when="on press" states="calling, talking, offhook, idle"/> ... replaces="$(call_id);to-tag=$(remote_tag);from-tag=$(local_tag)"/> </action> |
101 | |
idle |
Questions
...