1 cpcp hisham khartabil xcon wg ietf 59, seoul
DESCRIPTION
3 Start-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)TRANSCRIPT
2
CPCP 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
3
Start-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)
4
Start-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
5
Key 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
6
Conference 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?
7
XCAP Usage for CPCP
8
Create a Conference PUT http://xcap.example.com/services/conferences/users/Alice/conference12.xml HTTP/1.1 Content-Type:application/conference-policy+xml
<?xml version="1.0" encoding="US-ASCII"?> <Conference xmlns="urn:ietf:params:xml:ns:conference-policy“ xmlns:conference-settings="urn:ietf:params:xml:ns:conference-settings"
xmlns:conference-time="urn:ietf:params:xml:ns:conference-time“> <Conference-settings> <Conference-URI>sip:[email protected]</Conference-URI>
<Conference-URI>tel:+358123456789</Conference-URI><Conference-URI>h323:[email protected]</Conference-URI>
</Conference-settings><Conference-time>
<Conference-occurrence> <Start-time>2004-06-16T10:00:00Z</Start-time> <Stop-time>2004-06-16T12:00:00Z</Stop-time> </Conference-occurrence> </Conference-time></Conference>
9
User suggested Conference URI
PUT200
XCAP Server Alice
PUT409
XCAP Server Alice
Accepted Rejected. Server May suggest an alternative
10
Server assigned Conference URI PUT http://xcap.example.com/services/conferences/users/Alice/conference.xml HTTP/1.1 Content-Type:application/conference-policy+xml
<?xml version="1.0" encoding="US-ASCII"?> <Conference xmlns="urn:ietf:params:xml:ns:conference-policy“ xmlns:conference-settings="urn:ietf:params:xml:ns:conference-settings"
xmlns:conference-time="urn:ietf:params:xml:ns:conference-time“> <Conference-settings>
</Conference-settings><Conference-time>
<Conference-occurrence> <Start-time>2003-06-16T10:00:00Z</Start-time> <Stop-time>2003-06-16T12:00:00Z</Stop-time> </Conference-occurrence> </Conference-time></Conference>
11
Server assigned Conference URI (1)
PUT200
SUBSCRIBE
XCAP Server Alice
NOTIFY
200
200
PUT200
GET
XCAP Server Alice
200
12
Adding an Access Control ListPUT http://xcap.example.com/services/conferences/users/Alice/conference.xml/
Conference/ACL HTTP/1.1Content-Type: text/plain<ACL> <ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-
URI> <ACL-target-URI Access-type=“Allowed">sip:*@example2.com</ACL-target-URI> <ACL-target-URI Access-type=“Blocked">sip:[email protected]</ACL-target-
URI></ACL>
13
Adding a Dial-out ListPUT http://xcap.example.com/services/conferences/users/Alice/conference.xml/
Conference/DL HTTP/1.1Content-Type: text/plain <DL> <DL-target> <DL-target-URI>sip:[email protected]</DL-target-URI> </DL-target> <DL-target> <DL-target-URI>sip:[email protected]</DL-target-URI> </DL-target></DL>
14
What do we have so far?HTTP/1.1 200 OK<?xml version="1.0" encoding="US-ASCII"?> <Conference xmlns="urn:ietf:params:xml:ns:conference-policy“ xmlns:conference-settings="urn:ietf:params:xml:ns:conference-
settings" xmlns:conference-time="urn:ietf:params:xml:ns:conference-time“>
<Conference-settings> <Conference-URI>sip:[email protected]</Conference-URI>
<Conference-URI>tel:+358123456789</Conference-URI><Conference-URI>h323:[email protected]</Conference-URI></Conference-settings><Conference-time>
<Conference-occurrence> <Start-time>2003-06-16T10:00:00Z</Start-time> <Stop-time>2003-06-16T12:00:00Z</Stop-time> </Conference-occurrence> </Conference-time> <ACL> <ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-
URI> <ACL-target-URI Access-type=“Allowed">sip:*@example2.com</ACL-target-URI> <ACL-target-URI Access-type=“Blocked">sip:[email protected]</ACL-target-
URI> </ACL> <DL> <DL-target> <DL-target-URI>sip:[email protected]</DL-target-URI> </DL-target> <DL-target> <DL-target-URI>sip:[email protected]</DL-target-URI> </DL-target> </DL> </Conference>
•GET http://xcap.example.com/services/conferences/users/Alice/conference.xml HTTP/1.1•200 looks like:
15
Conference Server Behaviour (1)
PUT200
XCAP server Conference Server Alice
??? Interface undefined
16
Conference Server Behaviour (2)
PUT200
XCAP server Conference Server Alice
SUBSCRIBE
NOTIFY
200
200
NOTIFY
200
Conf. Server needs to have r/w access
17
Adding a User (before or after conference start)
PUT http://xcap.example.com/services/conferences/users/Alice/conference.xml/Conference/ACL/ACL-target-URI[4] HTTP/1.1
Content-Type: text/plain<ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-URI>
18
Adding Multiple Users (1)• If XCAP does not allow more than 1 element to be insertedPUT http://xcap.example.com/services/conferences/users/Alice/conference.xml/
Conference/ACL HTTP/1.1Content-Type: text/plain<ACL> <ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-
URI> <ACL-target-URI Access-type=“Allowed">sip:*@example2.com</ACL-target-URI> <ACL-target-URI Access-type=“Blocked">sip:[email protected]</ACL-target-
URI> <ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-
URI></ACL>
19
Adding Multiple Users (2)• If XCAP does allow more than 1 element to be insertedPUT http://xcap.example.com/services/conferences/users/Alice/conference.xml/
Conference/ACL/ACL-target-URI[4|5|6] HTTP/1.1Content-Type: text/plain<ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-URI><ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-
URI><ACL-target-URI Access-type=“Blocked">sip:*@*</ACL-target-URI>
20
Removing user from DLDELETE http://xcap.example.com/services/conferences/users/Alice/conference.xml/
Conference/DL DL-target/DL-target-URI[1] HTTP/1.1
21
Blocking a User from Joining• We added John, now we want to block himPUT http://xcap.example.com/services/conferences/users/Alice/conference.xml/
Conference/ACL/ACL-target-URI[4] HTTP/1.1Content-Type: text/plain<ACL-target-URI Access-type=“blocked">sip:[email protected]</ACL-target-URI>• A GET on the ACL will show<ACL> <ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-URI> <ACL-target-URI Access-type=“Allowed">sip:*@example2.com</ACL-target-URI> <ACL-target-URI Access-type=“Blocked">sip:[email protected]</ACL-target-
URI> <ACL-target-URI Access-type=“Blocked">sip:[email protected]</ACL-target-URI> <ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-
URI> <ACL-target-URI Access-type=“Blocked">sip:*@*</ACL-target-URI></ACL>
22
Expelling a User from Joining• Peter is being disruptive, we want to expel himPUT http://xcap.example.com/services/conferences/users/Alice/conference.xml/
Conference/ACL/ACL-target-URI[3] HTTP/1.1Content-Type: text/plain
<ACL-target-URI Access-type=“Expelled">sip:[email protected]</ACL-target-URI>• A GET on the ACL will show<ACL> <ACL-target-URI Access-type=“Allowed">sip:[email protected]</ACL-target-URI> <ACL-target-URI Access-type=“Allowed">sip:*@example2.com</ACL-target-URI> <ACL-target-URI Access-type=“Blocked">sip:[email protected]</ACL-target-URI> <ACL-target-URI Access-type=“Blocked">sip:[email protected]</ACL-target-URI> <ACL-target-URI Access-type=“Expelled">sip:[email protected]</ACL-target-URI> <ACL-target-URI Access-type=“Blocked">sip:*@*</ACL-target-URI></ACL>
23
Why 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.
24
Changing Conference Stop-timePUT
http://xcap.example.com/services/conferences/users/Alice/conference.xml/Conference/Conference-time/Conference-occurrence/Stop-time HTTP/1.1
Content-Type: text/plain
<Stop-time>2003-06-16T14:00:00Z</Stop-time>
25
Who can subscribe to Conference Event package?
• Using Privilege Control ListPUT
http://xcap.example.com/services/conferences/users/Alice/conference.xml/Conference/PCL HTTP/1.1
Content-Type: text/plain<PCL> <PCL-target> <PCL-target-URI>sip:[email protected]</PCL-target-URI>
<Privileges>RIGHT_TO_SUBSCRIBE_TO_CONF_EVENT_PACKAGE</Privileges>
</PCL-target></PCL>
26
Conference Security Control• Setting security levels and parameters to the conferencePUT
http://xcap.example.com/services/conferences/users/Alice/conference.xml/Conference/SC HTTP/1.1
Content-Type: text/plain
<SC> <Visibility>visible</Visibility> <Security-mechanism TLS="false" S-MIME="true"/> <SC-target> <SC-target-URI>sip:*@example2.com</SC-target-URI> <Authorization-mechanism
password="1a2b3c4d">Digest</Authorization-mechanism> </SC-target></SC>
27
Floor 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
<Conference-floor-policy> <Floor moderator-controlled="true"> <Media-types> <Audio/> </Media-types> <Algorithm>
<Moderator-controlled/> </Algorithm> <Max-floor-users>1</Max-floor-users> <Moderator-URI>sip:[email protected]</Moderator-URI> </Floor> </Conference-floor-policy>
28
Media Policy• Introduced into the latest version• Contains Media types allowed in this conference• Allows focus to know what media to INVITE users to. <Conference-media-policy> <Media-types> <Audio/> </Media-types> </Conference-media-policy>
29
XML Namespaces (1)• Each feature is in its own XML namespacexmlns:conference-mp="urn:ietf:params:xml:ns:conference-mp"xmlns:conference-fp="urn:ietf:params:xml:ns:conference-fp"xmlns:conference-sc="urn:ietf:params:xml:ns:conference-sc"xmlns:conference-dl="urn:ietf:params:xml:ns:conference-dl"xmlns:conference-pcl="urn:ietf:params:xml:ns:conference-pcl"xmlns:conference-acl="urn:ietf:params:xml:ns:conference-acl"xmlns:conference-time="urn:ietf:params:xml:ns:conference-time"xmlns:conference-info="urn:ietf:params:xml:ns:conference-info"xmlns:conference-settings="urn:ietf:params:xml:ns:conference-
settings• Helps introduce new features into the conference policy by
introducing a new namespace• Eg: key participants
30
XML 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
<access-rights> <xcap-usage>conference-pollicy</xcap-usage> <document>http://xcap.example.com/services/conferences/users/Alice/
conference12.xml</document> <ns> urn:ietf:params:xml:ns:conference-time</ns> <access-right>read</access-right> <target-uri>sip:[email protected]</target-uri><access-rights>
31
Missing• 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
32
What 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?