You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 38 Next »

Target release1.0
Epic

XQI-2015 - Getting issue details... STATUS

Document status
DRAFT
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 

ImportanceNotes
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:

UAS stateDialog state (NOTIFY)Translated state
idle modeterminatedidle

offhook / dialling

trying

busy
incoming call ringing

early/proceeding

ringing

incoming call accepted

confirmed

talking

outgoing call ringing

early/proceeding

busy

outgoing call accepted

confirmed

talking

Must Have

Partly implemented

3D8XX_BLF-XML_FR-3The 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
4D8XX_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

5D8XX_BLF-XML_FR-1-1-1

The PFK LED behaviour and colour shall be according to this table

Dialog stateterminated

trying

early/proceeding

confirmed
Translated stateidleoffhookcallingringingtalking
Direction-initiatorinitiatorrecipientinitiator/recipient
LED behaviouroffononblinkingon
LED colour-redredredred

Must Have

Partly implemented

6D8XX_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

Fully implemented

7D8XX_BLF-XML_FR-1-1-2-1

The label icon area (A) shall contain the following graphical symbol and colour

Dialog stateterminated

trying

early/proceeding

confirmed
Translated stateidleoffhookcallingringingtalking
Direction-initiatorinitiatorrecipientinitiator/recipient
Graphical symbol
Colourwhite/greenwhite/orangewhite/orangewhite/orangewhite/red

Must Have

Partly implemented

8D8XX_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

Dialog stateterminated

trying

early/proceeding

confirmedconfirmed
Translated stateidleoffhookcallingringingtalkingtalking
Direction-initiatorinitiatorrecipientinitiatorrecipient
Targetlocallocal >local > remoteremote > localremote <> locallocal <> remote
Text (number)numbernumber > 

101 <> 102102 > 101102 <> 101

101 <> 102

Text (display name)AlexAlex >Alex > AliceAlice > AlexAlice <> AlexAlex <> Alice
text colourwhitewhite
whitewhitewhite

Must Have

Partly implemented

9D8XX_BLF-XML_FR-1-1-2-3

The label state area (C) shall contain the following text representing the state

Dialog stateterminatedtryingearly/proceedingconfirmed
textidlediallingringingtalking
colourwhitewhitewhitewhite

Must Have

Partly implemented

User interaction and design

User interactionDialog StateSIP messageXML definitionVisual result
UASUACUASUAS => NOTIFY => UACUAC NOTIFY parsing rulesPFK LEDPFK label
goes offhookmonitoring

<state>trying</state>

NOTIFY
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>
XML definition
...
<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_call, offhook, free"/>
  ...
</action>



101 >
offhook
goes onhookmonitoringterminated

<state>terminated</state>

NOTIFY
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>
XML definition
...
<NotifyParsingRules type="state">
  ...
  <level5 translates_to="idle"/>
</NotifyParsingRules>
...
<action>
  <invite target="$(subscr_uri)" when="on press" states="calling, in_a_call, offhook, idle"/>
  ...
</action>



101
idle
incoming call ringingmonitoringearly

<state>early</state>

NOTIFY
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>



102 > 101
ringing
incoming call acceptedmonitoringconfirmed

<state>confirmed</state>

NOTIFY
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>



102 <> 101
talking
Incoming call terminatedmonitoringterminated

<state>terminated</state>

NOTIFY
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>
XML definition
...
<NotifyParsingRules type="state">
  ...
  <level5 translates_to="idle"/>
</NotifyParsingRules>
...
<action>
  <invite target="$(subscr_uri)" when="on press" states="calling, in_a_call, offhook, idle"/>
  ...
</action>



101
idle
Outgoing call ringingmonitoringearly

<state>early</state>

NOTIFY
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>



101 > 103
calling
Outgoing call acceptedmonitoringconfirmed

<state>confirmed</state>

NOTIFY
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>



101 <> 103
talking
Outgoing call terminatedmonitoringterminated
NOTIFY
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>



101
idle







Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcome

Not Doing

  • No labels