WebAPI/PresentationAPI:Protocol Draft: Difference between revisions
< WebAPI
Jump to navigation
Jump to search
(add sequence diagram) |
(→Architecture: update for controlling page and presented content) |
||
Line 21: | Line 21: | ||
[[File:2UAs_Protocol_Architecture_overview.png|thumb|650px|Architecture overview of 2-UAs Protocol]] | [[File:2UAs_Protocol_Architecture_overview.png|thumb|650px|Architecture overview of 2-UAs Protocol]] | ||
=== Controlling Page === | |||
* request a presentation session via PresentationRequest | |||
* interact with Presented Content via PresentationConnection | |||
=== Presented Content === | |||
* page loaded by Receiving User Agent for a presentation session | |||
* interact with Controlling Page via PresentationConnection | |||
=== Controlling User Agent === | |||
* display controlling page | |||
* display pairing information and provide UI to resolve device challenge | |||
=== Receiving User Agent === | |||
* display presented content | |||
* generate challenge for pairing procedure | |||
* display pairing information | |||
=== PresentationControlClient === | === PresentationControlClient === | ||
* query for available PresentationControlServer | * query for available PresentationControlServer | ||
Line 30: | Line 43: | ||
* register as an service profile on mDNS | * register as an service profile on mDNS | ||
* handle session creation / reconnection / termination | * handle session creation / reconnection / termination | ||
* generate | * generate auth token / cryptography key for pairing procedure | ||
=== mDNS Query === | |||
* mDNS stack that supports service query over mDNS protocol | |||
=== mDNS Registration === | === mDNS Registration === | ||
* mDNS stack that supports service registration over mDNS protocol | * mDNS stack that supports service registration over mDNS protocol | ||
=== WebRTC === | === WebRTC === | ||
* WebRTC stack that provides Data Channel implementation | * WebRTC stack that provides Data Channel implementation | ||
* Generate SDP for exchanging offer/answer over presentation control protocol | * Generate SDP for exchanging offer/answer over presentation control protocol | ||
== Protocol Details == | == Protocol Details == |
Revision as of 10:12, 1 April 2016
This is a draft of protocol proposal for 2-UAs Presentation Scenario
Requirement
- Device Discovery
- Device information: unique name, user-friendly name, address for ctrl server
- Device capability: resolution, supported media type, supported apps, supported IO capability
- Protocol information: protocol version
- Service Launching
- Service information: app/page URL
- Session information: session Id, bootstrap info for communication
- Controlling message: launch, reconnect, terminate
- User settings: preferred locale
- Communication
- establish dedicate transportation channel
- Security
- device challenge: OOB channel, passkey
- data encryption: key derived from challenge, key exchange for communication channel
Architecture
Here is the high-level architecture overview of 2-UAs protocol
Controlling Page
- request a presentation session via PresentationRequest
- interact with Presented Content via PresentationConnection
Presented Content
- page loaded by Receiving User Agent for a presentation session
- interact with Controlling Page via PresentationConnection
Controlling User Agent
- display controlling page
- display pairing information and provide UI to resolve device challenge
Receiving User Agent
- display presented content
- generate challenge for pairing procedure
- display pairing information
PresentationControlClient
- query for available PresentationControlServer
- query device capability for device filtering
- initiate connection to server
- trigger session creation / reconnection / termination
- reply to device challenge during pairing procedure
PresentationControlServer
- register as an service profile on mDNS
- handle session creation / reconnection / termination
- generate auth token / cryptography key for pairing procedure
mDNS Query
- mDNS stack that supports service query over mDNS protocol
mDNS Registration
- mDNS stack that supports service registration over mDNS protocol
WebRTC
- WebRTC stack that provides Data Channel implementation
- Generate SDP for exchanging offer/answer over presentation control protocol
Protocol Details
Service Discovery
Device Pairing
Establish Control Channel
Start Presentation
- STEP 1: find device (mDNS/DNS-SD: _presentation-ctrl._tcp)
- STEP 1a: query device capability (send query message: supported media type, supported URL format)
- STEP 2: setup control channel to remote device (send connect message: device name, protocol version, supported challenge method)
- STEP 2a: device challenge / device pairing (send challenge message: ) (send resolve message: ) (send auth message: encrypted auth token)
- STEP 3: launch app / page (send launch message: url, session Id)
- STEP 4: setup communication channel (send offer message: SDP for DataChannel) (send answer message: SDP for DataChannel)
- STEP 4a: establish DataChannel via SDP
- STEP 5: close control channel (send close message: )
Establish Data Channel
Terminate Presentation
- STEP 1: setup control channel to remote device (send connect message: auth token)
- STEP 1a: complete challenge with stored information
- STEP 2: terminate app / page via session Id (send terminate message: session Id)
- STEP 3: close control channel (send close message: )
Close Connection
Resume Connection
- STEP 1: setup control channel to remote device (send connect message: auth token)
- STEP 1a: complete challenge with stored information
- STEP 2: reconnect app / page via session Id (send reconnect message: session Id)
- STEP 3: setup communication channel (send offer message: SDP for DataChannel) (send answer message: SDP for DataChannel)
- STEP 3a: establish DataChannel via SDP
- STEP 4: close control channel (send close message: )