Subject: My CAP proposal for 2.7

From: Doug Royer <[email-masked]>
Date: Mon, 18 Oct 1999 15:00:01 -0700

Here is my proposal for section 2.7.2 (DNS after DC).

2.7.1 DNS
<TBD>

2.7.2 SLP
[EDITORS NOTE: This section still needs some work, but you
will get the idea]

This section assumes that the reader is familiar with RFC2608
and RFC2609. The Service Location Protocol (SLP) as defined in [RFC2608]:
 
   "The Service Location Protocol provides a scalable framework for the
   discovery and selection of network services.  Using this protocol,
   computers using the Internet need little or no static configuration
   of network services for network based applications.  This is
   especially important as computers become more portable, and users
   less tolerant or able to fulfill the demands of network system
   administration."

Each service defines itself so that client applications may locate
the service using predefined parameters that apply to that specific
service. Below are the definitions for the CAP "Service Template"
as defined in [RFC2609].

	Name of submitter: "Doug Royer" <[email-masked]>
	Language of service template: en
	Security Considerations: <TBD>

	Template Text:
	------------------------template begins here--------------------
	template-type=Calendar-Access-Protocol

	# The version will be updated to 1.0 as CAP becomes an RFC.
	template-version=0.0

	template-description=
	The Calendar-Access-Protocol service provides the location
	of iCalendar services.

	# Services can be located or defined with one or more
	# of the following parameters:
	#
	#		<port> Port number CAP service is listening to.
	#
	#		<calendar> Find calendar by calendar name.
	#
	#		<user> User name associated with the service.
	#		Aids in locating a calendar or calendars
	#		associated with a user name <string>.
	#	
	#		<scheme> CAP is the only SCHEME supported
	#
	#		<email> Find calendars associated with an
	#		email address.
	#
	#		<upn> Find calendars associated with a UPN.
	#		
	template-url-syntax=
		url-options	=	url-port / url-calendar /
					url-user / url-scheme /
					url-email / url-upn

		# The port number(s) the CAP server listens on.
		url-port	=	"ports=" ports-list
		ports-list	=	port / port "," ports-list
		port		=	1*DIGIT
	
		# The CalID for the calendar.
		url-calendar	=	"CalID=" calid-list
		calid-list	=	CalID / CalID "," CalID

		# A user associated with a calendar user.
		url-user	=	"user=" user-list
		user-list	=	user / user "," user-list
		user		=	# A CU as defined by
					# the CS implementation,

		# Which URL-scheme's are supported by the CS:
		url-scheme	=	"scheme=" scheme-list
		scheme-list	=	scheme / scheme "," scheme-list
		scheme		=	CAP # Only CAP supported at
					    # this time.

		# Names of calendars associated with an email address.
		url-email	=	"mailto=" email-list
		email-list	=	email / email "," email-list
		email		=	# An RFC822 email address

		# Names of calendars associated with a UPN.
		url-upn		=	"mailto=" upn-list
		upn-list	=	upn / upn "," upn-list
		upn		=	# An RFC822 upn address

	-------------------------template ends here---------------------

Example of SLP advertisement:

	URL = service:Calendar-Access-Protocol://cal.example.com/ports=1234
	Attributes = (location-description=Net iCal server1),
	(CalID=Doug.Royer,Steve.Mansour,Conference-RM1),
	(user="Doug Royer", "Steve Mansour", "Conference Room 1"),
	(scheme=CAP),
	(email="[email-masked]","[email-masked]","[email-masked],
	"[email-masked]","[email-masked]"),
	(upn=[email-masked],[email-masked]),
	(template-url-syntax=\0D
	url-options = url-port / url-calendar /	url-user \0D
	/ url-scheme /	url-email / url-upn \0D
	url-port = "ports=" ports-list \0D
	ports-list = port / port "," ports-list \0D
	port = 1*DIGIT \0D
	url-calendar = "CalID=" calid-list \0D
	calid-list = CalID / CalID "," CalID \0D
	url-user = "user=" user-list \0D
	user-list = user / user "," user-list \0D
	url-scheme = "scheme=" scheme-list \0D
	scheme-list = scheme / scheme "," scheme-list \0D
	scheme = CAP \0D
	url-email = "mailto=" email-list \0D
	email-list = email / email "," email-list \0D
	url-upn = "mailto=" upn-list \0D
	upn-list = upn / upn "," upn-list\0D)

++++++++++++++++++++++++

[RFC2608] Guttman, Perkins, Veizades, Day, "Service Location
protocol, Version 2", RFC2608, June 1999.

[RFC2609] Guttman, Perkins, Kempf, "Service Templates and
Service: Schemes", RFC2609, June 1999.