conference control manipulation protocol (ccmp) draft-ietf-xcon-ccmp-02.txt authors: mary barnes...
DESCRIPTION
2 XCON Protocol: CCMP March 24, 2009 00 version of the draft Dublin 72): —Baseline protocol specification based on agreement for semantic approach: –CCMP was based on Web Services and SOAP –CCMP made use of discrete methods and operations Prototype implementation available from University of Napoli: —Used as a proof-of-concept both for protocol specification and for its actual exploitation in real-world conferencing scenarios —Demo at IETF 72 Recent CCMP historyTRANSCRIPT
Conference Control Manipulation Protocol
(CCMP)draft-ietf-xcon-ccmp-02.txt
Authors: Mary Barnes ([email protected]) Chris Boulton ([email protected])
Simon Pietro Romano ([email protected]) Henning Schulzrinne ([email protected])
XCON WGIETF-74 Meeting
San Francisco, CA, Tuesday March 24, 2009
2 XCON Protocol: CCMP March 24, 2009
A brief reminder of the most recent history of the CCMPChanges since -01 versionOverview of Protocol & Implementation Issue DiscussionWay ForwardComments/Questions
Agenda
3 XCON Protocol: CCMP March 24, 2009
00 version of the draft (@ Dublin 72):— Baseline protocol specification based on agreement for semantic
approach:– CCMP was based on Web Services and SOAP– CCMP made use of discrete methods and operations
Prototype implementation available from University of Napoli:— Used as a proof-of-concept both for protocol specification and for its
actual exploitation in real-world conferencing scenarios— Demo at IETF 72
Recent CCMP history
4 XCON Protocol: CCMP March 24, 2009
Recent CCMP history (cont.)
Version -01 (@ Minneapolis 73) proposed to adopt REST— Even though the protocol specification was kept independent of the
chosen transport protocol
Resources associated with URIsCCMP Provided means to:
— Access information: Active/scheduled conferences, Blueprints, Conference users
— Manipulate Conference Objects: creation, updating, deletion
Prototype implementation available from University of Napoli— Integrated in the client (http://www.meetecho.com)
5 XCON Protocol: CCMP March 24, 2009
-02 version approach: background…
Feedback from IETF 73 (useful suggestions also from APP area people):— A transport-independent protocol can hardly be defined as a RESTful
one– Some REST requirements:
– Need to map application-level protocol error codes onto HTTP error codes
– Need to map CRUD operations onto correspoding HTTP methods:• Create POST• Retrieve GET• Update PUT• Delete DELETE
— Lesson learned:– Don’t say you go REST if you want to stay awake!
6 XCON Protocol: CCMP March 24, 2009
-02 version approach: core features
HTTP single verb transport + CCMP body—XML-based CCMP requests
– carried inside the body of HTTP POST messages—XML-based CCMP responses
– carried inside the body of HTTP 200 OK messages– Application-level errors (and related error codes) are
transparent to HTTP—CCMP messages use a MIME type of
‘application/ccmp+xml’– Appearing inside ‘Content-Type’ and ‘Accept’ HTTP
header fields
7 XCON Protocol: CCMP March 24, 2009
CCMP request messages
Operation________
Request Type
Retrieve Create Update Delete
blueprintsRequest √ N/A N/A N/A
blueprintRequest √ N/A N/A N/A
confsRequest √ N/A N/A N/A
confRequest √ √ √ √usersRequest √ N/A √ N/A
userRequest √ √ √ √sidebarsByValRequest
√ N/A N/A N/A
sidebarByValrequest √ N/A √ √sidebarsByRefrequest
√ N/A N/A N/A
sidebarByRefRequest
√ N/A √ √
8 XCON Protocol: CCMP March 24, 2009
CCMP-managed Resources
Conference Object:— compliant with the XCON data model— uniquely addressable through an XCON URI
Blueprints:— same as conference objects…
Users:— a set of <user> elements
User:— a single <user> element— directly addressable through the XCON-USERID
CCMP Protocol overview: a call flows perspective
Call flow dumps based on work carried Call flow dumps based on work carried out @ University of Napoliout @ University of Napoli
12 XCON Protocol: CCMP March 24, 2009
Storyboard
Alice asks for blueprints— blueprintsRequest
She then makes a drill-down query for a specific blueprint— blueprintRequest
She creates a new conference by cloning the existing blueprint — confRequest/create
She modifies conference-related information— confRequest/update
She specifies a list of users to be added to the conf— usersRequest
She joins the conf— userRequest
She makes a third-party join to the conf on behalf of another user— userRequest
13 XCON Protocol: CCMP March 24, 2009
Alice asks for blueprints
14 XCON Protocol: CCMP March 24, 2009
Drill-down query: blueprintRequest
15 XCON Protocol: CCMP March 24, 2009
Conference creation through cloning
16 XCON Protocol: CCMP March 24, 2009
Modification of conf info
17 XCON Protocol: CCMP March 24, 2009
Adding users to the conf
18 XCON Protocol: CCMP March 24, 2009
Joining the conference
CCMP Protocol implementation
Implementation based on work carried Implementation based on work carried out @ University of Napoliout @ University of Napoli
20 XCON Protocol: CCMP March 24, 2009
Implementation choices
Data model implemetation:— JAXB (Java XML Binding)
– Easy creation of Java classes from data model (xsd) classes– Marshalling facilities:
– From Java classes to XML documents– Unmarshalling facilities
– From XML documents to Java classes
Conference objects database:— Apache xindice (http://xml.apache.org/xindice/) native XML database
– Storing, querying (XPath), updating (XUpdate) of XML documents
HTTP stack:— Apache ‘commons’ implementation
21 XCON Protocol: CCMP March 24, 2009
CCMP in action: the * client
Send a confsRequest (with a “retrieve”
operation) message to the conf server
*http://www.meetecho.com
22 XCON Protocol: CCMP March 24, 2009
“confsRequest” answer from server…
23 XCON Protocol: CCMP March 24, 2009
confsRequest: behind the scenesNative XML database (Xindice, http://xml.apache.org/xindice/ ) used for storing conference objects
24 XCON Protocol: CCMP March 24, 2009
Creating a new conference via blueprints
25 XCON Protocol: CCMP March 24, 2009
“blueprintsRequest” answer from server
Send a blueprintRequest to
the conf server
26 XCON Protocol: CCMP March 24, 2009
blueprintsRequest: behind the scenesNative XML database (Xindice, http://xml.apache.org/xindice/ ) used for storing blueprints
27 XCON Protocol: CCMP March 24, 2009
“blueprintResponse” and creation through blueprint cloning
blueprintResponse Prepare new conf object from blueprint
Send confRequest/create to the conf server…
28 XCON Protocol: CCMP March 24, 2009
The newly created conference…
29 XCON Protocol: CCMP March 24, 2009
XML-DB view of the new conference
30 XCON Protocol: CCMP March 24, 2009
Main open issue as per IETF 72, IETF 73
Additional data required in data model:— Data element(s) for parent and child information supporting key
framework concepts:– Cloning– Manipulating conference data
— Data elements for “main-conference/sidebar” relationship
Proposal: Update data model for this element(s) Clarify text in document
We (a few of us, indeed ) had a discussion on the mailing list related to this topic: Did we reach consensus?
31 XCON Protocol: CCMP March 24, 2009
Way Forward
Move forward based on Issue resolutionComplete protocol document and prototype,
including error handling and securitySolicit additional feedback from WG and
potential developer community...
32 XCON Protocol: CCMP March 24, 2009
ANY COMMENTS/Questions?
33 XCON Protocol: CCMP March 24, 2009
No problem at all, as long as you keep on providing a means for carrying CCMP messages back and forth
A ‘crazy’ example:—Use mediactrl control channel between UAC and AS
(i.e. conference control server)
What if you don’t want to use HTTP as the CCMP transport protocol?
ApplicatiApplicationon
ServerServer MediaMediaServerServerUserUser
AgentAgent
User Signalling(e.g. SIP) SIP (Media Dialog)
RTP/SRTP
TCP/TLS (ControlChannel)
SIP (Control Dialog)
‘Standard’ mediactrl approach
Conf. Conf. ControlControlServerServer MediaMedia
ServerServerUserUser
AgentAgentSIP (Media Dialog)
RTP/SRTP
TCP/TLS (ControlChannel)
SIP (Control Dialog)
‘mediactrl-enabled’ CCMP approach
SIP (Media Dialog)
TCP/TLS (ControlChannel)
SIP (Control Dialog)
34 XCON Protocol: CCMP March 24, 2009
“mediactrl-enabled” CCMP transport
CCMP becomes a control package, like all other mediactrl packages (mixer, IVR, etc..)
UAC-initiated CONTROL messages to the AS used to trigger AS-initiated CONTROL messages to the MS
Notifications:— Provided for free by the mediactrl framework:
– through exploitation of the asynchronous expedition of unsolicited AS-generated CONTROL messages to the UAC…