Conference Control Manipulation Protocol (CCMP) draft-ietf-xcon-ccmp-03.txt Authors: Mary Barnes Chris Boulton Simon Pietro Romano Henning Schulzrinne XCON WG IETF-75 Meeting Stockholm, Sweden, Friday July 31, 2009
1 XCON Protocol: CCMP July 31, 2009 Brief reminder about the CCMP approach Changes since -02 version Issues Discussion Way Forward Comments/Questions Agenda
2 XCON Protocol: CCMP July 31, 2009 CCMP approach since -02 version 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
3 XCON Protocol: CCMP July 31, 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 elements User: —a single element —directly addressable through the XCON-USERID
4 XCON Protocol: CCMP July 31, 2009 CCMP request messages Operation ________ Request Type RetrieveCreateUpdateDelete blueprintsRequest √ N/A blueprintRequest √ N/A confsRequest √ N/A confRequest √√√√ usersRequest √ N/A √ userRequest √√√√ sidebarsByValRequest √ N/A sidebarByValrequest √√√√ sidebarsByRefrequest √ N/A sidebarByRefRequest √√√√
5 XCON Protocol: CCMP July 31, 2009 Message-independent CCMP error codes success: —Successful completion of the requested operation badRequest: —Syntactically malformed request invalidPassword: —Target conference object's password contained in the request is wrong passwordRequired: —Conference password missing in a request to access a password-protected conference object. unauthorized: —User not allowed to perform the required operation forbidden: —Operation not allowed (e.g., cancellation of a blueprint) requestTimeout: —The time required to serve the request has exceeded the envisaged service threshold serverInternalError: —The server cannot complete the required service due to a system internal error notImplemented: —Operation envisaged in the protocol, but not implemented in the contacted server.
6 XCON Protocol: CCMP July 31, 2009 Message-dependent CCMP error codes Operation ________ Response code CreateRetrieveUpdateDelete modified All create requests N/A All update requests N/A objectNotFound userRequest, sidebarByValRequest, sidebarByRefRequest All retrieve requests, EXCEPT: blueprintsRequest, confsRequest All update requests All delete requests userNotFound userRequest (3rd party invite with third user entity) (*) userRequest invalidConfUserID All create requests, EXCEPT: userRequest with no confUserID (**) All retrieve requestsAll update requests All delete requests forbiddenDeleteParent N/A All delete requests forbiddenChangeProtected N/A All update requests N/A
7 XCON Protocol: CCMP July 31, 2009 'userNotFound’ and 'invalidConfUserID' (*) 'userNotFound' in answer to a 'userRequest/create' operation: —in the case of a third-party invite: –this code can be returned if the 'confUserId' (contained in the 'entity' attribute of the 'userInfo' parameter) of the user to be added is unknown —in the case above: –if instead it is the 'confUserID' of the sender of the request that is invalid: – an 'invalidConfUserID' error code is returned to the client (**) 'invalidConfUserID' is not sent in answers to 'userRequest/ create' messages having a 'null' confUserId: —this case is associated with a user who is unaware of his own XCON- USERID, but wants to enter a known conference.
8 XCON Protocol: CCMP July 31, 2009 About conference users We assume users (and associated user profiles) are NOT created via CCMP ‘userRequest/create’ operation —is not used to “create” a new user… —…but rather to add an existing user to a conference Is such approach: —Clear enough in the draft? —Accepted as a shared assumption?
9 XCON Protocol: CCMP July 31, 2009 Main modifications since -02 version (1/2) Definition of the ‘operation’ parameter modified: —Now part of the general ccmp-request-message-type –xsd updated (also in the draft appendix) –Sample call flow updated (section 8 of the draft) New error codes added: —Related to users management: –invalidConfUserId, userNotFound —Related to operations on password-protected conference objects: –passwordRequired, invalidPassword Security considerations section enriched: —Brand-new material about: –Overall considerations –Assuring that the Proper Conferencing Server has been contacted –User Authentication and Authorization –Security and Privacy of Identity
10 XCON Protocol: CCMP July 31, 2009 Main modifications since -02 version (2/2) Revised normative statements for the various protocol messages and operations Added descriptions for all the operation types, as appropriate Added section to describe requirements for an HTTP implementation to support CCMP Updated section on notifications XCON SIP event package is default… …some discussion of an HTTP callback mechanism Misc editorial nits qualifying message names in the text, etc., etc., etc.
11 XCON Protocol: CCMP July 31, 2009 Main open issues (1/3) How to behave in case of ‘success’ with ‘create’ and/or ‘update’ operations? —In what cases do we send back to the client the (successfully created/modified) conference object? –E.g.: is this needed in cases like creation by cloning? – In such case, if I get back a code of ‘success’ with no conf object information, I can: Make a ‘confRequest/retrieve’ operation on the newly created object (whose confObjId can be found in the response…) Should we extend such approach also to responses carrying a response code of ‘modified’? —As before, I become aware of the modifications by issuing a subsequent ‘retrieve’ targeting the modified object…
12 XCON Protocol: CCMP July 31, 2009 Main open issues (2/3) When creating sidebars or conferences through blueprint cloning: —Should we include the modifications that we want to be applied to the cloned object directly in the cloning (i.e. ‘create’) request? –Remind that, currently: – I first ‘create’ a new object through cloning – I then ‘update’ the newly created object to let it fit my original requirements –With the envisaged modification: – I send a single ‘create’ request containing the modifications that have to be applied to the cloned object
13 XCON Protocol: CCMP July 31, 2009 Main open issues (3/3) Should we consider adding “filters” to CCMP requests? —E.g. something like: –blueprintsRequest ( “give me just blueprints associated with no video content” ) –confsRequest (“just active conferences”) –confsRequest (“just those in which I’m currently participating”) —Aim: –Reduce traffic between client and server –Avoid overwhelming clients with bunches of un-needed information – Client-side filtering might be resource-consuming, especially in the case of mobile nodes –… —Note well: –Filters might take the form of xpath queries
14 XCON Protocol: CCMP July 31, 2009 Way Forward Move forward based on issues resolution Complete protocol document Solicit additional feedback from WG and potential developer community Propose WGLC (soon...) for this draft?
15 XCON Protocol: CCMP July 31, 2009 ANY COMMENTS/Questions?