Minutes: SIMPLE IETF 56  17Mar03 1530-1730
Reporters: Dean Willis, Pekka Pessi
Editor: Robert Sparks

Summary:
 - Announced the impending SIMPLE Interop
 - Called for volunteers to host a SIMPLE Interim before Vienna
 - Consensus points
   * Publish - Handling hard state will be left to local policy
             - HTTP vs SIP discussion does not belong in requirements
               document
             - Meaning of "tuple" is unclear and needs attention
   * RPIDS - draft (except ) accepted as starting point 
       for charter item
   * isComposing - strong support to seek bringing this draft
       into charter
   * Filtering and partial notification requirements - strong
       support to seek bringing these drafts into charter 

==============================================================================
Notes reported by Dean Willis

Chaired by Robert Sparks, Jon Peterson

1530 Called to Order, Peterson

Topic: Agenda Bash -- no objections

Topic: Administrivia. 

Revised charter pending. Reviewers needed for documents (Rohan volunteered).
Interop event needed. Volunteer for hosting by Jasomi at Banf or Calgary,
3rd or 4th week of April. Proposal for interim meeting before Vienna. 

Topic: Message Sessions, Ben Campbell

History reviewed in slides. Message Session Relay Protocol (MSRP) work
attempted to resolve dependecy on co-media. Design work decided to abandon
co-media. Current draft is similar to  cpm-msg-approach but addresses
multi-nat scenarios, common firewalls, multiple IM sessions on a transport
session. Some co-media issues resolved around bidirectional communications,
and relay support. Note that this protocol does not address relay discovery,
but relies on knowledge in endpoints. Note that in slides, all requests have
hop-by-hop responses except for SEND operation, which is end to end. 

Open issue: ACK related bug in offer-answer, may address with UPDATE. Do we
need a refresh mechanism for BIND? There is also a race condition when
tearing down a session (between release and leave). Question re: refreshing
the BIND: Could we do one BIND instead of multiples using crypto cookies ?
(Send text).

Open Issues: Need to fully define msrp URI scheme.  Do we needs msrps:?

Open Issues: Security. Digest auth on BIND needs to be specified. Question:
What do we get out of having digest auth on BIND? Do we need an msrps:
scheme? Note that there are three identities here -- the user identity, the
server identity, or an alias identity. This authentication is for protecting
the "bind" side of the relay. Currently, the "visit" side is not
authenticated. Note that the usage of TCP servers behind a firewall is no
more secure than running a UDP server behind a firewall. Further
conversation to list.

Topic: Publication of presence data: Jon Peterson, Sean Olson

Requirements document broken off from mechanism document: Jon Peterson

Open isue: Hard state requirements. Discussion defines "hard state" as the
default condition or absence of freshly published state. Question: Is there
a requirement for hard state? Poll: Should this be in scope of requirements?
Argument: This is a matter of local policy on the compositor function. So,
"hard state" as defined here is just policy. Audience (Henning): I agree
that this is a special case of policy. Is the manipulation of policy part of
the requirements?  Question: Where does discussion of HTTP vs SIP live?
Requirements, or implementation?  

Publication mechanism: Sean Olson

Changes since last draft simplified, now very much like "options" request.
Added new out-of-sync response code and versioning requirements, met by
time-stamp of CPIM-PIDF. PUBLISH is now non-dialog, soft-state, and
logically scoped to a tuple. S/MIME is used for privacy and integrity, and
compositor must respect end-to-end security requirements from the publisher.
Discussion: PUBLISH with an expiration has granularity of the contained
document, not individual tuples. This might preclude composite of end-to-end
protected tuples. 

Issues: Need better definition of tuple. Discussion: This is one of the most
fundamental things to work on, but we argued against defining it in IMPP.
Much discussion on definitions illustrated we don't have one. Issue, do we
need Facet header for authorization of tuple watching. Question: Can we say
that RPIDS is a better PIDF that people will actually use? Unresolved. 

Topic: RPIDS, Henning Schulzrinne

Motiviation and overview given on slides. In short, a presence information
format for publication and notification. Adds device capabilities.
Represents groups, with status within the group. Suggestion that group
representation be abstracted into a different document. There is also an
aspect of list composition functions that is needed. Issue: label tag, which
is similar to the pidf id tag but has defined semantics on setting by
presentity and applies to publication rather than notification side. In
short, there should be no two tuples in the same presence document that have
the same label. Issue: elements, no discussion. Issue: what is a tuple.
Three models presented: common AOR, generated by capability set, and
contacts representing devices (wityh privacy and duration issues). Proposed
that we document all three, but where? Comment: This does need to get
resolved -- can we get this nailed down by interim? Can we adopt this as a
WG effort? Poll: document seems widely-read. Given that, should this
document be a wg iterm reflected in charter? Strong consensus indicated.

Topic: IsComposing (istyping) state indication (vs idle): Henning
Schulzrinne

Slightly revised, open issues under discussion, poll to make WG status? This
will require deliverable add on charter. Poll to add iscomposing to SIMPLE
charter? Strong consensus shown. Comment from future AD: Would like to have
discussion of extensibility model. Comment (Bon Wyman): There have been
notifications of IPR on istyping. Can we work around this IPR?  Comment from
AD: Part of the WG's evaluation is around IPR issues, so this discussion is
valid, and consideration should be given to the IETF's IPR declarations page


Topic: Data Manipulation, Jonathan Rosenberg

Point: This is general application data manipulation and is worthy of a
broader discussion. ACAP provides a model. Proposal includes algebraicly
scoped lists of lists-or-nodes. The ACAP data model seems to be a good fit,
bu the protocol itself has issues around persistent connections, lack of
intermediary support, underlying security primitives (SASL), and syntax
inconsistent with SIP. Discussion ranged around comparison of ACAP attribute
model and relationship to XML. Question raised as to "why look at ACAP --
it's old" Comment: Could we use WebDAV? Comment: The configuration work in
SIPPING could probably support this. Further discussion deferred to list.
Note that this basic piece of functionality is a critical show-stopper for
SIMPLE deployments. 

Topic: SIP List Events, Adam Roach

Revised as a full event class rather than as a template. Open issue:
filters, several points need review. Author requests review of the XML usage
(Sean Olson volunteered). Proposal for downstream forking example received
no objections. Needs more eyeballs. 

Topic: Partial Notification Filtering, Hisham Khartabil

Motivation and requirements presented. Proposed solution is XPath
expressions, leaving an open issue around triggering ("when", as opposed to
"what"). Poll: Is there a need for this sort of thing? Discussion:
Watcherinfo and others are using similar functions, so it is probably
useful. Discussion: Xpath may not have sufficient expressivity. Poll: Have
reqs drafts been read? Yes. Poll to bring reqs drafts onto charter, mostly
positive. 

Topic: Partial Notifications Mikko Lonnfors  

Defines requirements for partial notifications. Discussion: One requirement
is to "not change charging model" -- that's probably out of scope for this
WG. Poll: "go forward with this draft": moderately positive, no negatives. 

===============================================================================
Notes reported by Pekka Pessi

Administrativia
---------------
* interop
* interim meeting before Vienna
  - call for volunteers/sponsors

Message Sessions (Campbell)
---------------------------
* draft-campbell-simple-im-sessions-01
* MSRP
  - attempts to solve problems related with COMEDIA
  - lot like message sessions discussed in Atlanta
  - differences:
    - no comedia
    - handle intermediaries more explicitly
    JR: more than NATs, handling intermediaries within different admin
       domains
    - supports common fw policies, where parties behind

 - problems with COMEDIA
   - no good way to match incoming connection to particular session 
   - NAT breaks COMEDIA usage of source addr and port
   JR: comedia uses port number as principal multiplexing identifier,
       that cannot be used with intermediaries

 - implicit support for two or more relays
 - MSRP primitives:
  - BIND: establish session 
    - relay discovery protocol is out of scope
  - VISIT: associate connection with a session 
 - Host/Visitor:
   
 - diagram explaining host/visitor relationship
 - diagram explaining one relay case: host-relay-visitor case
 - diagram explaining two relay case: host-relay-relay-host
   - this is tricky
   - relays can establish connections between each other based on DNS
     information from message uris
     
 - Open issues:
   - ACK-related Bug in o/a handling:
   - refresh mechanism for BIND
   - race condition when tearing down a session

 Aki Niemi: BIND only once, use a cookie to make difference between 
            sessions
 Rohan Mahy: use soft state for BINDing

 - msrp: URI scheme
 - SDP encoding assumes that the host and visitor temp URIs have same domain
  
 - Additional work needed for security
   - digest authentication
   - msprs needed for security?

  Jon Peterson: what are security properties we need?
  JR: relay wants to make sure that only a authenticated user
      may set up binding on it?
  RS: use TLS to prevent anonymous usage?
  AN: what is the identity that is being authenticated
  BC: authentication is only between host and relay
  Cullen Jennings: do we need to authenticate visitor?
  JR: provide same level of protection as in COMEDIA, 
      make msrp URIs unguessable to prevent anyone from being a visitor
  CJ: make sure that no-one can use this to create a generic
      socket server that can be exported outside firewall
   - end-to-end security
     - MIKEY, etc.

  RS: object very very soon on the mailing list if this 
      draft is not on the right path

PUBLISH requirements
--------------------

- there is hard state and soft state for the presence
  * Requirements for hard state (or default state)
  * Use PUBLISH or something else to set the hard state
  * Hard state in or out?
  Aki Niemi: there should be such a concept; when you are out of
             the coverage you should have somthing to deliver to subscribers
  Sean Olson: should hard/default state be CLOSED?
  RJ: the default state is a matter of policy, policy covers hard state
  Adam Roach: installation of hard state is out-of-scope of PUBLISH
  HS: this is a special case of policy, there should be mechanisms to upload
      the default document
  SO: it is requirement for presence/publish system, it can be done with
      data manipulation, too
  JP: should the default presence document contain a CLOSE tuple or may it
       be empty without any tuples at all?
- HTTP v. SIP discussion is out of scope of the requirement doc


draft-olson-simple-publish-02
-----------------------------
- updates from -01: 
- was too complex, removed extra headers
- added 494 Out of Sync
- because removed headers, added set of requirements for the 
  semantics of the PUBLISH body (that are fulfilled by CPIMP)

- versioning handled by the body ( for CPIMP)
- no dialog
- PUBLISH handles only soft state
- PUBLISH is scoped to a tuple
  => each tuple can be manipulated separately
- when end-to-end security (like S/MIME) is used, compositor 
  must respect that

HS: we must be very careful with tuple-ids
SO: publisher can handle each tuple separately
JR: this is extremely PIDF-specific
SO: this is only model that makes sense if you want to manipulate tuples
    separately

- Issues:
  - examples were missing Max-Forwards
  - definition of tuple is unclear?
  BC: important issue
  JP: each tuple is identified by an unique contact address of my PC?
  AN: (does a tuple contain a) contact address of you?
  Dean Willis: tuples are attribute-value pairs for presentity?
  - Do we need Facet header for authorization of tuple watching (ie. "Who
    sees what?")
  AN: this is definitely a policy issue

RPIDS
-----
 * richer presence information than basic PIDF
   - SIP-aware, translatable to CPIM easily
 * merged with cp-based documents for describing presentity properties
 * Draft overview
   - Presence status
   - Timed status: new thing 
     - e.g., person was in a meeting an hour ago
   - Device capabilities
   - Allow presentity to represent groups
 * Problems:
    - groups can contain groups
    - at odds with list presence (but more efficient)
    - ok, ditch groups for now
 BC: agree
 RS: was going to ask pulling groups to a document of its own
 RJ: current list does not handle the combined status very well, the
     status of the group is useful and should be kept
 * Problems:
   - PIDF has id tuple tag
     - allows handling of diffent tuples 
     - who owns each id? how to handle it?
 RJ: "id" is for receivers, something else is needed for composition
   - use "label" tag on backend side
   - also use something like css (which has id and class)
     - each element has two kind of identifiers
     -> enables policy filtering
 * Open Issues:
   - extending 
   - ortogonality: how to combile activities
  - What is a tuple?
   - AOR, custom address for each capability set, device address?
  HS: solicits comments
  JR: this is most important issue
  Brian Rosen: have a bar bof
  
  => Hum accepting this draft as working group item 

is-composing
============

* Bob Wyman: there is some IPR issues
* Patrik Fältström: WG should take into consideration potential IPR when
                    processing a document, nothing more, nothing less
             
Data Manipulation
=================
* manipulate buddy lists
* manipulate authorization policy
* examples

ACAP (RFC2244)
* generic mechanism for application-independent access to per-user
  application configuration data from multiple clients
- Presence list with ACAP
- Authorization policy with ACAP: requires defining processing logic of
  authorization entries, no need for scripts
- Data model of ACAP is fine, protocol is bad
  - sasl (ACAP security model) is not compatible with S/MIME etc
  - no intermediaries allowed

HS: has concerns with data model
C. Huitema: why unearth this protocol? why not LDAP or SNMP?
JR: take things that work, replace things that won't for use
RM: use something that has a URI

AN: document has two sides, nice datamodel and so-and-so protocol
JP: split document? take it to list

Presence Lists (Adam Roach)
===========================
* take 3: an extension to sip-events
  - list contents as a multipart
  - meta info in xml mime body part
* open issue: filters? do they apply to top-level list, the nodes, or both?
RM: do we need to take this to sipping?
JR: we are chartered to do this

Presence Filters (Hisham Khartabil)
===================================
* eliminate unnecessary and unwanted notifications and contents
* solution based on XML style sheets (XPath)
JR: triggering stuff is needed (winfo)
    there is many different stuff going on here
    filter can be generic, triggering probably package-specific
HS: while xpath can do simple arithmetic, semantics of triggering and
    filtering may be different, xpath may not be enough, CPL-like approach
    might be better?
JP: motivation/requirements draft can be taken in charter
Dean Willis: solutions documents might be better in SIP WG

Partial Notifications (Mikko Lönnfors)
======================================
* send only the modified parts to watchers
BC: charging model? 
ML: requirements coming from 3GPP
JP: more reviewers needed for these drafts