...
Interactions | SIP NOTIFY XML body | XML definition | Result | Result |
---|
UAS | UAS => UAC | UAC translation rules | PFK LED & label (number) | PFK LED & label (display name) |
---|
goes offhook | dialog state => trying 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> |
| translate state => offhook - quick dial not allowed
- pick-up not allowed
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="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 > | offhook |
|
🔴 | Image Added | Alex > | offhook |
|
---|
goes onhook | dialog state => terminated 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>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> |
| translate state => idle - quick dial allowed
- pick-up not allowed
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="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 | idle |
|
⚪️ | Image Added | Alex | idle |
|
---|
incoming call ringing | dialog state => early/proceeding 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> |
| translate state => ringing - quick dial not allowed
- pick-up allowed
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<NotifyParsingRules type="state">
<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="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> |
|
🟠 |  | 102 > 101 | ringing |
|
🟠 | Image Added | Alice > Alex | ringing |
|
---|
incoming call accepted | dialog state => confirmed 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> |
| translate state => talking - quick dial not allowed
- pick-up not allowed
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<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)"/>
</action> |
|
🔴 |  | 102 <> 101 | talking |
|
🔴 | Image Added | Alice <> Alex | talking |
|
---|
Incoming call terminated | dialog state => terminated 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@...">
<dialog id="..."
direction='recipient'
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="C">sip:102@...</identity>
<target uri="sip:102@..."/>
</remote>
</dialog>
</dialog-info> |
| translate state => idle - quick dial allowed
- pick-up not allowed
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="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 | idle |
|
⚪️ | Image Added | Alex | idle |
|
---|
Outgoing call ringing | dialog state => early/proceeding 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>
<identity display="D">sip:103@...;user=phone</identity>
<target uri="sip:103@...;user=phone"/>
</remote>
</dialog>
</dialog-info> |
| translate state => calling - quick dial not allowed
- pick-up not allowed
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<NotifyParsingRules type="state">
<level1
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 |
|
🔴 | Image Added | Alex > Tita | calling |
|
---|
Outgoing call accepted | dialog state => confirmed 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' />
</target>
</local>
<remote>
<identity display="D">sip:103@...</identity>
<target uri="sip:103@..."/>
</remote>
</dialog>
</dialog-info> |
| translate state => talking - quick dial not allowed
- pick-up not allowed
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | XML definition |
---|
linenumbers | true |
---|
collapse | true |
---|
| ...
<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)"/>
</action> |
|
🔴 |  | 101 <> 103 | talking |
|
🔴 | Image Added | Alex <> Tita | talking |
|
---|
Outgoing call terminated | dialog state => terminated 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>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> |
| translate state => idle - quick dial allowed
- pick-up not allowed
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="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 | idle |
|
⚪️ | Image Added | Alex | idle |
|
---|
|
|
|
|
|
---|
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|
Shall we visualize all possible translation states? | Alexander Feldt I'd agree, for these reasons: - Snom phones (acting as UAS) already provide all information in NOTIFY body
- It's cleaner, e.g. when the UAS goes offhook or calls somebody, currently "talking" is visualized, which is not true.
- It could be an advanced sales feature?
|
Shall we allow quick dial only in idle state? | Alexander Feldt Technically, we could allow quick dial in any state, except ringing... |
Shall we create new icons or reuse those already existing ones? | Alexander Feldt I really question icons, that are so small, that there is no visible difference to the user, like and , therefore I vote for better distuingishable icons. |
How can a specific icon be addressed using XML definitions? | |
How shall the D8XX:PFK-mapping:BLF-XML:Monitoring:Visualization:Label:name-area be configured to use either number or display name? |
|
Tita Petre Is the above list of requirements enough input to create a proper testplan? |
|
...