Title: CPCP
1CPCP
- Hisham Khartabil
- XCON WG
- IETF 59, Seoul
- hisham.khartabi_at_nokia.com
2CPCP Requirements
- Changes since draft-ietf-xcon-cpcp-reqs-00
- Removed the concept of hidden user. Anonymous is
enough. - Anonymous membership modified. It now requires
that only authenticated users are allowed to join
a conference - Removed conference inactivity requirement.
- Added media type requirement (e.g. audio, video)
- Added floor control policy requirements
3Start-time Stop-time Open Issue (1)
- What does start-time and stop-time mean for a
conference created using CPCP? What are the
requirements - The CPCP Start Time is a choice made by creator
- - A specified Earliest Mixing Time (which can
be NOW or a time delta/GMT), and - - The time the first participant arrives
- - OR -
- - The time a Key Participant arrives
- The CPCP End Time is a choice made by creator
- - A specified End of Mixing Time (which can be
NOW, NEVER, or a time delta/GMT), and - - The time the last participant leaves
- - OR -
- - The time the last Key Participant leaves
- - OR -
- - Persistent (e.g., only the time (condition
1) matters)
4Start-time Stop-time Open Issue (2)
- In the current solution proposal, we need the
following - The CPCP Start Time is a choice made by creator
- - A specified Earliest Mixing Time (which can
be NOW or a time delta/GMT), and - - The time the first participant arrives
- - OR -
- - The time a Key Participant arrives
- The CPCP End Time is a choice made by creator
- - A specified End of Mixing Time (which can be
NOW, NEVER, or a time delta/GMT), and - - The time the last participant leaves
- - OR -
- - The time the last Key Participant leaves
- - OR -
- - Persistent (e.g., only the time (condition
1) matters) - Need to further enhance the XML document to
enable the full support
5Key Participants
- New term and requirement that emerged from list
discussion - Need to add requirement
- Need to modify solution to enable assigning key
participants to a conference
6Conference ends when creator leaves
- Currently creator can not indicate that the
conference ends when he leaves. Discussion on the
list seems to want that feature. - Current requirements and proposed solution does
not require it. - Should we add as a requirement?
7XCAP Usage for CPCP
8Create a Conference
- PUT http//xcap.example.com/services/conference
s/users/Alice/conference12.xml HTTP/1.1 - Content-Typeapplication/conference-policyxml
- lt?xml version"1.0" encoding"US-ASCII"?gt
- ltConference xmlns"urnietfparamsxmlnsconfe
rence-policy - xmlnsconference-setting
s"urnietfparamsxmlnsconference-settings" - xmlnsconference-time"urnietf
paramsxmlnsconference-timegt - ltConference-settingsgt
- ltConference-URIgtsipxcon_at_example1.comlt/Confer
ence-URIgt - ltConference-URIgttel358123456789lt/Conference-UR
Igt - ltConference-URIgth323xcon_at_example1.comlt/Conferen
ce-URIgt - lt/Conference-settingsgt
- ltConference-timegt
- ltConference-occurrencegt
- ltStart-timegt2004-06-16T100000Zlt/Start-time
gt - ltStop-timegt2004-06-16T120000Zlt/Stop-timegt
- lt/Conference-occurrencegt
- lt/Conference-timegt
- lt/Conferencegt
9User suggested Conference URI
Alice
Alice
XCAP Server
XCAP Server
PUT
PUT
200
409
Rejected. Server May suggest an alternative
Accepted
10Server assigned Conference URI
PUT http//xcap.example.com/services/conference
s/users/Alice/conference.xml HTTP/1.1
Content-Typeapplication/conference-policyxml
lt?xml version"1.0" encoding"US-ASCII"?gt
ltConference xmlns"urnietfparamsxmlnsconferen
ce-policy
xmlnsconference-settings"urnietfparamsxmlns
conference-settings"
xmlnsconference-time"urnietfparamsxmlnsconf
erence-timegt ltConference-settingsgt lt/Confere
nce-settingsgt ltConference-timegt
ltConference-occurrencegt ltStart-timegt2003-0
6-16T100000Zlt/Start-timegt ltStop-timegt2003-
06-16T120000Zlt/Stop-timegt lt/Conference-occu
rrencegt lt/Conference-timegt lt/Conferencegt
11Server assigned Conference URI (1)
Alice
Alice
XCAP Server
XCAP Server
PUT
PUT
200
200
GET
SUBSCRIBE
200
200
NOTIFY
200
12Adding an Access Control List
- PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/ACL HTTP/1.1 - Content-Type text/plain
- ltACLgt
- ltACL-target-URI Access-typeAllowed"gtsipbob_at_e
xample1.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeAllowed"gtsip_at_exa
mple2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeBlocked"gtsipsarah
_at_example2.comlt/ACL-target-URIgt - lt/ACLgt
13Adding a Dial-out List
- PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/DL HTTP/1.1 - Content-Type text/plain
- ltDLgt
- ltDL-targetgt
- ltDL-target-URIgtsipalice_at_example1.comlt/DL-ta
rget-URIgt - lt/DL-targetgt
- ltDL-targetgt
- ltDL-target-URIgtsiptom_at_example2.comlt/DL-targ
et-URIgt - lt/DL-targetgt
- lt/DLgt
14What do we have so far?
- GET http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml HTTP/1.1 - 200 looks like
- HTTP/1.1 200 OK
- lt?xml version"1.0" encoding"US-ASCII"?gt
- ltConference xmlns"urnietfparamsxmlnsconfe
rence-policy - xmlnsconference-setting
s"urnietfparamsxmlnsconference-settings" - xmlnsconference-time"urnietf
paramsxmlnsconference-timegt - ltConference-settingsgt
- ltConference-URIgtsipxcon_at_example1.comlt/Confer
ence-URIgt - ltConference-URIgttel358123456789lt/Conference-UR
Igt - ltConference-URIgth323xcon_at_example1.comlt/Conferen
ce-URIgt - lt/Conference-settingsgt
- ltConference-timegt
- ltConference-occurrencegt
- ltStart-timegt2003-06-16T100000Zlt/Start-time
gt - ltStop-timegt2003-06-16T120000Zlt/Stop-timegt
- lt/Conference-occurrencegt
- lt/Conference-timegt
- ltACLgt
- ltACL-target-URI Access-typeAllowed"gtsip
bob_at_example1.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeAllowed"gtsip
_at_example2.comlt/ACL-target-URIgt
15Conference Server Behaviour (1)
Conference Server
Alice
XCAP server
PUT
Interface undefined
???
200
16Conference Server Behaviour (2)
Conference Server
Alice
XCAP server
SUBSCRIBE
200
NOTIFY
200
PUT
200
Conf. Server needs to have r/w access
NOTIFY
200
17Adding a User (before or after conference start)
- PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/ACL/ACL-targe
t-URI4 HTTP/1.1 - Content-Type text/plain
- ltACL-target-URI Access-typeAllowed"gtsipjohn_at_exa
mple2.comlt/ACL-target-URIgt
18Adding Multiple Users (1)
- If XCAP does not allow more than 1 element to be
inserted - PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/ACL HTTP/1.1 - Content-Type text/plain
- ltACLgt
- ltACL-target-URI Access-typeAllowed"gtsipbob_at_e
xample1.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeAllowed"gtsip_at_exa
mple2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeBlocked"gtsipsarah
_at_example2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeAllowed"gtsipjohn_at_
example2.comlt/ACL-target-URIgt - lt/ACLgt
19Adding Multiple Users (2)
- If XCAP does allow more than 1 element to be
inserted - PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/ACL/ACL-targe
t-URI456 HTTP/1.1 - Content-Type text/plain
- ltACL-target-URI Access-typeAllowed"gtsipjohn_at_exa
mple2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeAllowed"gtsippeter_at_ex
ample2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeBlocked"gtsip_at_lt/ACL
-target-URIgt
20Removing user from DL
- DELETE http//xcap.example.com/services/conference
s/users/Alice/conference.xml/Conference/DL
DL-target/DL-target-URI1 HTTP/1.1
21Blocking a User from Joining
- We added John, now we want to block him
- PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/ACL/ACL-targe
t-URI4 HTTP/1.1 - Content-Type text/plain
- ltACL-target-URI Access-typeblocked"gtsipjohn_at_exa
mple2.comlt/ACL-target-URIgt - A GET on the ACL will show
- ltACLgt
- ltACL-target-URI Access-typeAllowed"gtsipbob_at_e
xample1.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeAllowed"gtsip_at_exa
mple2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeBlocked"gtsipsarah
_at_example2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeBlocked"gtsipjohn_at_
example2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeAllowed"gtsippeter
_at_example2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeBlocked"gtsip_at_lt/
ACL-target-URIgt - lt/ACLgt
22Expelling a User from Joining
- Peter is being disruptive, we want to expel him
- PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/ACL/ACL-targe
t-URI3 HTTP/1.1 - Content-Type text/plain
- ltACL-target-URI Access-typeExpelled"gtsipjohn_at_ex
ample2.comlt/ACL-target-URIgt - A GET on the ACL will show
- ltACLgt
- ltACL-target-URI Access-typeAllowed"gtsipbob_at_e
xample1.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeAllowed"gtsip_at_exa
mple2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeBlocked"gtsipsarah
_at_example2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeBlocked"gtsipjohn_at_
example2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeExpelled"gtsippete
r_at_example2.comlt/ACL-target-URIgt - ltACL-target-URI Access-typeBlocked"gtsip_at_lt/
ACL-target-URIgt - lt/ACLgt
23Why not just make Peter blocked
- Blocked means not allowed to join, but can still
be dialled-out to in the next conference
occurrence, if the user in on the DL. - Expelled means that in the next conference
occurrence, the user will not be dialled out to,
even if s/he is on the DL.
24Changing Conference Stop-time
- PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/Conference-ti
me/Conference-occurrence/Stop-time HTTP/1.1 - Content-Type text/plain
- ltStop-timegt2003-06-16T140000Zlt/Stop-timegt
25Who can subscribe to Conference Event package?
- Using Privilege Control List
- PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/PCL HTTP/1.1 - Content-Type text/plain
- ltPCLgt
- ltPCL-targetgt
- ltPCL-target-URIgtsipalice_at_example1.comlt/PCL-
target-URIgt - ltPrivilegesgtRIGHT_TO_SUBSCRIBE_TO_CONF_EVENT
_PACKAGElt/Privilegesgt - lt/PCL-targetgt
- lt/PCLgt
26Conference Security Control
- Setting security levels and parameters to the
conference - PUT http//xcap.example.com/services/conferences/u
sers/Alice/conference.xml/Conference/SC HTTP/1.1 - Content-Type text/plain
- ltSCgt
- ltVisibilitygtvisiblelt/Visibilitygt
- ltSecurity-mechanism TLS"false"
S-MIME"true"/gt - ltSC-targetgt
- ltSC-target-URIgtsip_at_example2.comlt/SC-target
-URIgt - ltAuthorization-mechanism password"1a2b3c4d"
gtDigestlt/Authorization-mechanismgt - lt/SC-targetgt
- lt/SCgt
27Floor Control Policy
- Introduced into the latest version
- Contains
- Does conference have floor or not
- Moderator controlled or not
- Who is the moderator
- Number of floors
- Media per floor
- What algorithm is used to moderate (FCFS, random,
etc) - Max floor users at one time
- ltConference-floor-policygt
- ltFloor moderator-controlled"true"gt
- ltMedia-typesgt
- ltAudio/gt
- lt/Media-typesgt
- ltAlgorithmgt
- ltModerator-controlled/gt
- lt/Algorithmgt
- ltMax-floor-usersgt1lt/Max-floor-usersgt
- ltModerator-URIgtsipAlice_at_example.comlt/Modera
tor-URIgt
28Media Policy
- Introduced into the latest version
- Contains Media types allowed in this conference
- Allows focus to know what media to INVITE users
to. - ltConference-media-policygt
- ltMedia-typesgt
- ltAudio/gt
- lt/Media-typesgt
- lt/Conference-media-policygt
29XML Namespaces (1)
- Each feature is in its own XML namespace
- xmlnsconference-mp"urnietfparamsxmlnsconfer
ence-mp" - xmlnsconference-fp"urnietfparamsxmlnsconfer
ence-fp" - xmlnsconference-sc"urnietfparamsxmlnsconfer
ence-sc" - xmlnsconference-dl"urnietfparamsxmlnsconfer
ence-dl" - xmlnsconference-pcl"urnietfparamsxmlnsconfe
rence-pcl" - xmlnsconference-acl"urnietfparamsxmlnsconfe
rence-acl" - xmlnsconference-time"urnietfparamsxmlnsconf
erence-time" - xmlnsconference-info"urnietfparamsxmlnsconf
erence-info" - xmlnsconference-settings"urnietfparamsxmlns
conference-settings - Helps introduce new features into the conference
policy by introducing a new namespace - Eg key participants
30XML Namespaces (2)
- This will also help with assigning privileges
(Authorization) - Different users need to have different conference
policy access rights - All participants have read rights to
conference-time - Only creator has read/write rights to
conference-time - Introduce a new XCAP usage document that assigns
users access (read/write) rights to certain parts
of the conference policy based on namespaces
and/or elements - ltaccess-rightsgt
- ltxcap-usagegtconference-pollicylt/xcap-usagegt
- ltdocumentgthttp//xcap.example.com/services/confer
ences/users/Alice/conference12.xmllt/documentgt - ltnsgt urnietfparamsxmlnsconference-timelt/n
sgt - ltaccess-rightgtreadlt/access-rightgt
- lttarget-urigtsipjohn_at_example.comlt/target-urigt
- ltaccess-rightsgt
-
31Missing
- Asserting identity some conferences may require
it, others may not - Need to enable a conference creator to indicate
if anonymous participants are allowed to join or
not, with the condition that their identity is
asserted
32What Next?
- 3GPP waiting
- No other proposals
- OMA Push-To-Talk Over Cellular will make a
protocol selection some time in the future - They is great interest in harmonising the effort
and minimise implementation and adoption of
services - Interoperability
- WG item?