<?xml version="1.0" encoding="UTF-8"?>


<rfc category="info" ipr="full3978" docName="draft-houri-speermint-presence-im-provision-00.txt">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="no" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<?rfc compact="yes" ?>

    <front>
        <title abbrev='Presence & IM Provisioning'>Presence & Instant Messaging Provisioning</title>
    <author initials="A." surname="Houri" fullname="Avshalom Houri">
      <organization>IBM</organization>
      <address>
	<postal>
	  <street>Science Park</street>
	  <city>Rehovot</city> <region></region> <code></code>
	  <country>Israel</country>
 	</postal>
	<email>avshalom@il.ibm.com</email>
      </address>
    </author>

<author initials="G." surname="Perzy" fullname="Gil Perzy">
      <organization>IBM</organization>
      <address>
	<postal>
	  <street>Science Park</street>
	  <city>Rehovot</city> <region></region> <code></code>
	  <country>Israel</country>
 	</postal>
	<email>gilper@il.ibm.com</email>
		  </address>
    </author>

 <author initials="E." surname="Aoki" fullname="Edwin Aoki">
<organization>AOL  LLC</organization>
<address> <postal> <street>401 Ellis St.</street> 
<city>Mountain View</city> <region>CA</region> <code>94043</code> 
<country>USA</country> </postal> <email>aoki@aol.net</email> </address> 
 </author>

<author initials="S." surname="Parameswar" fullname="Sriram Parameswar"> 
<organization>Microsoft Corporation</organization> <address> <postal> 
<street>One Microsoft Way</street> <city>Redmond</city> <region>WA</region> 
<code>98052</code> <country>USA</country> </postal> 
<email>Sriram.Parameswar@microsoft.com</email> </address> </author>

    <date month="October" year="2008"/>
       <area>Real Time Applications and 
    Infrastructure</area> <workgroup>SPEERMINT WG</workgroup> <keyword>I-
    D</keyword> <keyword>Internet-Draft</keyword> <keyword>SPEERMINT</keyword> 
    <keyword>provisioning</keyword>

    <abstract>
		
		<t>NOTE: This is still an initial draft of this document</t>

    <t>The document defines data for provisioning between two presence and IM 
    domains and the methods that can be used to convey the data between the 
    domains.</t>

    </abstract>

    </front>

    <middle>

<section title="Introduction">

    <t>The document uses the terminology as defined in <xref target="I-D.ietf-speermint-terminology"/>
    unless otherwise stated.</t>

    <t>Real Time Collaboration (RTC) services become as prevalent and essential 
    for users on the Internet as email. While RTC services can be implemented 
    directly by users in a point-to-point fashion, they are often provided for 
    or on behalf of a Peer Network of users within an administrative domain.  As 
    the use of these services grows, users increasingly have the need to 
    communicate with users not only within their own Peer Network but with those 
    in other Peer Networks as well (similar to the old Public Switched Telephony 
    Network (PSTN) that enabled global reachability).  In practice, each Peer 
    Network is controlled by some domain, and so there is a need to provide for 
    easier establishment of connectivity between Peer Networks, and the 
    management of the relationships between the Peer Networks.  This document 
    details a set of parameters that may need to be sent between Peer Network in order to
    enable better communication and user experience for presence and IM peering.</t>

<t>The same provisioning parameters can be used also between a client and server 
and not necessarily only between servers. When used between client and a server 
they can enable the client to discover the capabilities of the server and for 
the server to discover the capabilities of the client.</t>

<t><list style="empty">
    <t>NOTE: This document does not define a protocol for conveying the 
    provisioning data but defines the payload (XML) for the provisioning 
    informaiton.</t>

    <t></t>

    <t>NOTE: There may be a need to do some negotiation between the Peer 
    Networks. If there is such a need for some of the provisioning parameters, 
    the negotiation mechanism will be added to future versions of this document.</t>
</list></t>

</section>

<section title="Provisioning Parameters">

<section title="Connectivity">

<t>In order to enable connectivity between two Peer Network it is often 
necessary to specify connectivity parameters that the other Peer Network needs 
to know in order to connect. The following is an initial list of such parameters.</t>

<t><list style="symbols">

<t>DNS names of the Peer Network - Defines the DNS names that can be used in 
order to reach to the presence and IM proxies of the other Peer Network.</t>

<t>Usage of SRV records - Indication whether SRV records are used by the other Peer Network.</t>

<t>Usage of TLS - Indication whether the other Peer Network assumes TLS only connectivity.</t>

</list></t>


</section>

<section title="Authorization & Privacy">

<t>Privacy and authorization considerations can affect the amount of traffic 
between Peer Networks considerably. If no optimizations are enabled for privacy 
or authorization then there is a need to create a subscription for each user 
that subscribes to another user and get notifications for each subscription. 
Several optimizations are being defined in order to enable optimized 
communication while adhering to the privacy and authorization requirements.</t>

<t>The following parameter define what optimization is supported.</t>

<t><list style="symbols">

<t>view-sharing support - Indicates whether the <xref target="I-D.ietf-simple-view-sharing" /> is 
supported and what mode of the view sharing levels is supported.</t>

</list></t>

</section>

<section title="Presence Features">

<t><list style="symbols">

<t>PIDF extensions - List of PIDF <xref target="RFC3863" /> extensions that are 
supported by the Peer Network.</t>

<t>PIDF mapping - Mapping between standardized PIDF extensions and special PIDF 
attributes that are used in the Peer Network.</t>

<t>Support for list subscription - Indicates whether the Peer Network will 
accept list subscriptions  <xref target="RFC4662"/> from users at the other Peer 
Network</t>

</list></t>

</section>

<section title="Chat Features">	

<t>Sending instant messages between Peer Networks can be done in several 
variants and have several associated features that may be supported or not. The 
following parameters are parameters that can be either supported or not and it 
is necessary for the other Peer domain to know if they are supported.</t>

<t><list style="symbols">

<t>Logging indication - Indicates whether the chat that is coming to the Peer 
Network form other Peer Networks is being logged. This indication will allow the 
Peer Network that receives this indication to display an alert to their users 
once they are to be engaged in a chat with a user from the logging Peer 
Network.</t>

<t>IM mode - Indicates what type of IM messaging is supported:</t>

<t><list style="symbols">
<t>Page Mode IM - In this use case a user from one Peer Network sends a page 
mode <xref target="RFC3428"/> IM to a user on another Peer Network.</t>

<t>Session Based IM - In this use case a user from one Peer Network creates a 
Message Session Relay Protocol (MSRP) <xref target="RFC4975"/> session with a 
user from another Peer Network. Another alternative for session based IM is 
indicated in section 2 <xref target="RFC3428"/>.</t>

</list></t>


<t>Is typing indicator - Indicates whether RFC 3934 (Indication of Message 
Composition for Instant Messaging) is supported by the Peer Network.</t>

<t>Rich Text support - Indicates if rich text chat is supported by the Peer 
Network. If rich text is supported then a list of the HTML formats that are 
supported should be also provided.</t>

<t>Emoticons support - Indicates if textual emoticons are supported by the Peer 
Network. If emoticons are supported then there will be a mapping of common 
emoticons text to their meaning.</t>

<t>Image support - Indicates if sending animated images inside a chat is enabled 
and what types of images are supported</t>

<t>N-way chat - Indicates whether multi-participant textual chat (<xref 
target="I-D.ietf-simple-chat" />) is enabled.</t>

<t>File transfer - Indicated whether sending files from a user in one Peer 
Network to a user in another Peer Network is enabled.
See <xref target="I-D.ietf-mmusic-file-transfer-mech" />
for more details.</t>

</list></t>

</section>

<section title="Clearing House Services">

<t>A Federation as defined in <xref target="I-D.ietf-speermint-terminology"/>
enables peering between multiple Peer Networks. A 
federation may be implemented by means of a central service providing a 
hub for the Peer Networks or, alternatively, Peer Networks may connect to 
each other in a peer-to-peer fashion. One of the most important services 
that this type of federation should provide is authorized interconnection 
that enables each Peering Network to securely identify other Peering 
Networks. Other services that might be provided include an N-way chat 
server, lawful interception, logging and more. This type of federation is 
also known as a "Clearing House".</t>

<t>As non-VoIP services are usually text-based and consume less bandwidth, they 
may benefit from having a central service that will do central services such as 
logging for them. For example, instead of requiring each Peer Network to log 
all messages that are being sent to the other Peer-Network, this service can be 
done by the Clearing House.</t>

<t>When a Peer Network will connect to a Clearing house it will provide and be 
provisioned with parameters as if when connecting to a normal Peer Network. The 
following parameters are additional parameters that are important when 
connecting to Clearing House:</t>

<t><list style="symbols">

<t>Peer Network Privacy - Indication if all other Peer Networks in the clearing 
house should be able to see and interact with this Peer Network. if the Peer 
Network indicates that it does not wish to be seen, then a list of the other 
Peer Networks that should see this Peer Network should be provided.</t>

</list></t>

</section>

</section>


<section title="XML Schema">

<t>The XML schema for provisioning for presence and IM defines the various 
attributes that will be sent from the provisioning Peer Network to the 
requesting Peer Network. The XML scheme will be added to the document later 
based on feedback regarding the required provisioning parameters.</t>

</section>

<section title="XML Schema Examples">

<t>TODO: provide XML examples</t>

</section>

<section title="Conveying Protocols">

<t>There are several options for querying and conveying the provisioning paremeters.</t>

<t>The SIP OPTIONS method is described in <xref target="RFC3261" /> section 11. It enables on UA to 
query the capabilities of another user agent. The intention here is that there 
will be a well known address and port from which the provisioning can be queried 
using the OPTION method. The may be a need to create a mutual TLS when 
connecting to the proxy that provides the OPTIONS reply as the Peer Network may 
want to send different replies according to the Peer Network that is asking.</t>

<t>It is also possible to use the SIP config framework
	<xref target="I-D.ietf-sipping-config-framework" />
	in order to provide configuration parameters 
between Peer Networks. However, It may be that in most cases the config framework 
may be much more then what is really needed and only subset of the functionality 
provided in the framework will be needed..</t>

<t>Retrieving the provisioning data can also be done using HTTP GET request to 
a well known URL (e.g. domain/pres-im-provisioning). Using HTTP may be simpler 
then using the SIP OPTIONS method but in cases where there is a need to send 
different provisioning information to different Peer Networks the will be a need 
to authenticate the requestor of the provisioning data via HTTP.</t>

<t>XEP 115 (Entity Capabilities - http://www.xmpp.org/extensions/xep-0115.html) 
defines a way to distribute capabilities of an entity in XMPP. The same 
mechanism can be adapted to  discover capabilities between servers also.</t>

</section>

<section title="IANA Considerations">

<t>This document has no actions for IANA.</t>

</section>

<section title="Security Considerations">


<t>When Peer Network A peers with Peer Network B, there are several security 
issues that the administrator of each Peer Network will need mechanisms 
to verify:</t>

<t><list style="symbols">

<t>All communication channels between Peer Network and between each Peer 
Network and the clearing house have their authenticity and confidentiality 
protected.</t>

<t>The other Peer Network is really the Peering Network that it claims to 
be.</t>

<t>The other Peer Network is secure and trustful such that information 
that is passed to it, will not reach a third party. This includes information 
about specific users as well as information about the authorization 
policies associated with user information.</t>

<t>The other Peer Network is secure and trustful such that it will not 
modify or falsify data that it presents to its users except as required by 
the authorization policy provided.</t>

<t>If there is a third party (e.g. a clearing house) involved in the 
connection between the two Peering Networks that element is also verified 
to be secure.</t>

</list></t>

<t>The same issues of security are even more important from the point of 
view of the users of the Peer Networks. Users will have the concern on how 
their privacy is being adhered to when their presence information is being 
sent to the other Peer Network. Users today are concerned about providing 
their email address to a third party when they  register to a domain; 
Presence contains much more sensitive information and the concern of 
users here will be even deeper.</t>

<t>The privacy issue is even harder if we take into account that in order to 
enable scalable peering between big Peer Networks there are some optimizations 
that may require migration of the privacy definitions of users between Peer 
Network. We can imagine the fiasco 
if a user of one Peer Network will be able to see the privacy information and 
will learn he/she are listed in a block list of a close friend.</t>

</section>

</middle>

    <back>
			<references title="Informative References">
				<?rfc include="reference.RFC.3261" ?>
				<?rfc include="reference.RFC.3428" ?>
				<?rfc include="reference.RFC.3863" ?>
				<?rfc include="reference.RFC.4662" ?>
				<?rfc include="reference.RFC.4975" ?>
				<?rfc include="reference.I-D.ietf-speermint-terminology" ?>
				<?rfc include="reference.I-D.ietf-simple-chat" ?>
				<?rfc include="reference.I-D.ietf-mmusic-file-transfer-mech" ?>
				<?rfc include="reference.I-D.ietf-simple-view-sharing" ?>
				<?rfc include="reference.I-D.ietf-sipping-config-framework" ?>
			</references>
    </back>
</rfc>
