Network Working Group                                      D. Mavrakis
Request for Comments: 2122                   Monaco Telematique MC-TEL
Category: Standards Track                                     H. Layec
                                                                  ETSI
                                                           K. Kartmann
                                          Telecommunication+Multimedia
                                                            March 1997

                        VEMMI URL Specification

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1) Abstract

   A new URL scheme, "vemmi" is defined. It allows VEMMI client software
   and VEMMI terminals to connect to multimedia interactive services
   compliant to the VEMMI standard (Enhanced Man-Machine Interface for
   Videotex and Multimedia/Hypermedia Information Retrieval Services),
   sometimes abbreviated as "VErsatile MultiMedia Interface".

   VEMMI is a new international standard for on-line multimedia
   services, that is both an ITU-T (International Telecommunications
   Union, ex.  CCITT)  International Standard (T.107) [2] and an
   European Standard (ETSI European Telecommunications Standard
   Institute) standard (ETS 300 382  [3], obsoleted by ETS 300 709 [1]).

   VEMMI could be described as an on-line multimedia protocol describing
   both the man-machine interface and the client/server exchange
   protocol.  VEMMI operates usually on a single continuous session
   between a client and a host and supports an object-oriented, event-
   driven, client/server oriented and platform independent multimedia
   interface. The well-known tcp port number 575 has been assigned by
   IANA to the VEMMI protocol [13].

   A description of the VEMMI standard along with its last approved
   version is publicly available on the Web: see the URL
   http://www.etsi.fr/ecs/projects/vemmi/vemmi.htm). A presentation of
   VEMMI can be found on http://www.mctel.fr/VEMMI/vemmien_intro.html







Mavrakis, et. al.           Standards Track                     [Page 1]


RFC 2122                VEMMI URL Specification               March 1997


2) VEMMI URL scheme utility and operability:

   - VEMMI service selection: A VEMMI multimedia server will listen on
     its VEMMI well-known port for incoming connections. The server
     could of course be engaged in many simultaneous connections, and
     after a connection is established, the terminal must be able to
     select the desired VEMMI application, as a same system may host
     different VEMMI applications.
     The best mechanism to fully describe the VEMMI service to activate
     is the URL mechanism.
     - Reporting user action to a remote server: The VEMMI protocol
     establishes a continuous TCP/IP link between the terminal and the
     server during the whole user session. During a session managing
     VEMMI objects, the user actions are usually reported back to the
     server using the VEMMI user data report mechanism that is an
     integral part of the VEMMI protocol.
     However, in some case, the URL mechanism may be required to send
     back reports to a remote host. VEMMI is for example able to display
     HTML documents within a multimedia display area in a VEMMI dialog
     box. these HTML documents may be managed either by the VEMMI server
     (acting as a proxy gateway) or directly by the client software that
     will issue itself the HTTP requests on the network and browse
     across documents on the Web as a standard Web browser (the link to
     the VEMMI server is kept and used for interacting with other VEMMI
     objects and components but the VEMMI server may not be informed of
     the user navigation on the Web inside the multimedia area).
     In such a case, the URL mechanism could also be used to report the
     user actions and commands within a HTML document to be reported to
     the VEMMI server or even another system.
   - Extension of Web browsers: The VEMMI protocol is quite
     complementary to HTTP/HTML used by Web browsers, and several
     networks operators have decided to support jointly Web and VEMMI
     (seen as complementary protocols). Thanks to the VEMMI URL, Web
     browsers will be able to activate a VEMMI client software module to
     start a VEMMI session to the requested service when the user
     activate a vemmi URL included in the HTML document.

3) Description of the VEMMI scheme

   The VEMMI URL scheme is used to designate multimedia interactive
   services conforming to the VEMMI standard (ITU/T T.107 and ETS 300
   709).

   A VEMMI URL takes the form:
       vemmi://<host>:<port>/<vemmiservice>;
       <attribute>=<value>





Mavrakis, et. al.           Standards Track                     [Page 2]


RFC 2122                VEMMI URL Specification               March 1997


   as specified in Section 3.1. of RFC 1738. If :<port> is omitted, the
   port defaults to 575 (client software may choose to ignore the
   optional port number in order to increase security). The
   <vemmiservice> part is optional and may be omitted.

   This URL does not designate a data object, but rather a multimedia
   interactive service. A VEMMI service starts a multimedia session
   managing multimedia objects and interacting with the user during the
   session. To the difference of other stateless protocols, the link
   between the client and the server is usually maintained during the
   whole session (although in some cases other mechanisms may be used,
   see below).

   The <vemmiservice> is the name of the VEMMI service to activate. This
   field is not mandatory and could be omitted for example if the remote
   host manages only one VEMMI service or activates a VEMMI service by
   default when no service is specified. If this field is omitted in the
   URL and the server requests it, it is assumed that the VEMMI client
   software will prompt the user for it.

   In addition, after the <vemmiservice>, optional attributes and values
   (parameters) associated with the VEMMI service may be specified as
   part of the URL. When present, each parameter (attribute/value pair)
   is separated from each other and from the rest of the URL by a ";"
   (semicolon). The name of the attribute and its value are separated by
   a "=" (equal sign). If present, these fields are used to transmit
   additional data useful for service selection or to request to perform
   a specific processing. For example, the $USERDATA field can be
   specified to transmit additional user-specified data to the VEMMI
   service.

4) Client/server dialog during service selection

   The VEMMI client will interpret the VEMMI URL to connect to the
   remote host and to access the specified VEMMI service. After
   connecting to the remote system, the host may prompt the VEMMI client
   for service name and user identification.

   Before starting the VEMMI session, a VEMMI terminal is in 'standard'
   mode and may display the data received from the network in a videotex
   or telnet terminal window. As the VEMMI session may be started
   anytime during an interactive videotex or telnet session, the VEMMI
   service selection is performed by a simple dialog between the client
   and the server.

   The service, username and password information are transmitted by the
   client software to the host in answer to the corresponding requests
   received from the host. The following behavior is expected from the



Mavrakis, et. al.           Standards Track                     [Page 3]


RFC 2122                VEMMI URL Specification               March 1997


   client:
   - wait for the optional request strings from the host server
     ('service:', 'username:' and 'password:') and answer them
     (respectively by <vemmiservice> value defined in the URL and the
     <username> and <password> entered by the user if required).  The
     terminal answer may be sent automatically if the answers are known
     (that is if they are specified in the URL or terminal
     configuration) or it may prompt the user for the needed
     informations.  When parameters (attribute and value pairs) are
     present in the URL, these fields will be sent following the
     <vemmiservice> transmitted to the host in answer to the 'service:'
     request received from the host, separated from the <vemmiservice>
     value by a semicolon.
   - the client answers must always be followed by a Carriage Return
     (CR). If a Line Feed (LF) is transmitted after the CR, it will be
     ignored by the server.
   - in both cases, the server may echo the characters received from the
     client terminal, the received CR being echoed as CR LF. The server
     may echo the password characters as stars or any other scrambled
     output for safety purpose.
   - the client must also be ready to start the VEMMI session as soon
     as it receives the VEMMI_Open command. Before starting this VEMMI
     session, the terminal is in 'standard' mode and may display the
     data received from the network in a videotex or telnet terminal
     window (this is the reason why the service, username and password
     data are requested by the server using a telnet or videotex
     compatible dialog).

   Should an error occur during VEMMI service activation, the remote
   host may inform the user by displaying the error cause. It is
   recommended that, when possible and applicable, the status code
   syntax described in HTTP [8] [9] be used to facilitate automatic
   processing by the client of the host answer during error or normal
   operation.

   If a VEMMI client software wants to request a VEMMI object without
   establishing a continuous VEMMI session, such a request may also be
   performed using a HTTP request for the vemmi object encoded using the
   Internet media type application/vemmi (pending registration by IANA
   [10]). In the same way, HTTP could be used in some cases to exchange
   data pertaining to a VEMMI session with or without setting the keep-
   alive keyword in the Connection header to request a persistent
   connection [9]. Protocol switching using the upgrade header field may
   be used in such case to switch to vemmi protocol [9]. This possible
   use of HTTP for VEMMI is not described in this document.






Mavrakis, et. al.           Standards Track                     [Page 4]


RFC 2122                VEMMI URL Specification               March 1997


5) Proposed syntax

   The proposed BNF syntax is encoded as specified in RFC 1738 [5] [14]:

; vemmi (see ITU-T T.107 and ETSI ETS 300 709)

vemmiurl      = "vemmi://" hostport [ "/" vemmiservice *[ parameter ] ]
vemmiservice  = *[ uchar | "/" | "?" | ":" | "@" | "&" | "=" ]
parameter     = ";" attribute "=" value
attribute     = *[ uchar | "/" | "?" | ":" | "@" | "&" ]
value         = *[ uchar | "/" | "?" | ":" | "@" | "&" ]

   This syntax: - allows the user to specify the remote host address by
     its name or numeric address. Although he could select a specific
     port, it is expected the information providers and VEMMI software
     will mostly use the port number assigned to VEMMI (575) [13]. For
     security reasons, the username and password could not be specified
     in the URL.
   - allows him to select a specific VEMMI service if the remote host
     manages several different VEMMI services.
   - allows also to send additional data to the service using the
     parameter syntax, either during the service selection phase or when
     the user selects a vemmi hyperlink within a HTML document displayed
     in a VEMMI multimedia area. To the difference of the params syntax
     used in [4], the parameter syntax requires each value to be labeled
     by an attribute. The parameter attribute names are case-
     insensitive. Parameter values may or may not be case-sensitive,
     depending on the attribute.

   All the values of fieldname beginning by a dollar ($) sign are
   reserved for specific use, including:
   - $COMMAND: VEMMI command to be returned to the host when the VEMMI
     session do not use a continuous link.
   - $CONTEXTDATA: context data.
   - $OBJECT_REQUEST: requests the retransmission of a given VEMMI object.
   - $USERDATA: user data specific by the user and to be processed by the
     VEMMI service.

6) Examples:

   Some examples of VEMMI URLs along with the corresponding
   client/server dialog are presented below, they are for information
   only:

   a) A simple VEMMI URL and the corresponding dialog for a VEMMI
      service that does not enforce access control might be:
        URL: vemmi://zeus.mctel.fr/demo




Mavrakis, et. al.           Standards Track                     [Page 5]


RFC 2122                VEMMI URL Specification               March 1997


      In this case, the exchange between client and server will be as
      follow (the server requests are presented left, client answers
      right):
   service:        demo
   200 OK                     {status code returned by the VEMMI host}

   b) The service name may be omitted (for example if the remote server
      hosts only one VEMMI service), and the URL might then be:
        URL: vemmi://zeus.mctel.fr
      In this case, the VEMMI interactive session is started immediately
      by the host without requesting first the service name (should the
      client receive a service request from the host, it will prompt the
      user for service name).

   c) The URL could not include the username and password. In this case,
      should they be requested by the host, the VEMMI client may use a
      default value specified for this service or prompt the user for
      them (for example it could propose anonymous and user e-mail
      address as defaults):
        URL: vemmi://mctel.fr/demo
      In this case, the exchange between client and server may be as
      follows (server requests at the left, client answers at the right):
   service:        demo
   login:          anonymous       {user has been prompted for username}
   password:       mavrakis@ties.itu.ch  {user prompted for password}
   401 Unauthorized                {an anonymous user is not allowed to
                                    access the service}

   d) Some services may use additional data transmitted in the parameter
      fields, for example:
        URL: vemmi://mctel.fr/demo;$USERDATA=smith;account=1234
      If no access check is done by the host, the dialog might be:
   service:        demo;$USERDATA=smith;account=1234
   200 OK
    ...starting VEMMI session...

7)  Procedure to use when a VEMMI URL is encountered in a HTML document
    without VEMMI support:

   The VEMMI URL support may be built-in in some Web browsers, or
   offered by an associated software or plug-in interworking with the
   user browser, for example using the WWW_RegisterProtocol API command
   to register the new VEMMI protocol.

   When a Web browser encounters a VEMMI URL without having VEMMI support,
   two cases may occur:
   - some browsers will detect an unrecognized scheme and signal an
     unrecoverable error directly.



Mavrakis, et. al.           Standards Track                     [Page 6]


RFC 2122                VEMMI URL Specification               March 1997


   - others will manage it as a relative URL [4] and will build a
     complete URL including the VEMMI URL and will request it from the
     host having sent the current document. In this case the host will
     usually return the error "not found".

   Among the mechanisms that could be used in order to offer a friendly
   interface to both users with and without VEMMI support:
   - when the second case occurs and the relative URL including the
     vemmi:// string is transmitted to the server, the HTTPD server may
     be modified in order to recognize such URL and to propose the
     downloading of a VEMMI client software.
   - the HTML document including the vemmi URL allowing to start the
     VEMMI session may propose both options, for example:
        If your browser supports VEMMI, directly
        <A HREF="vemmi://ares.mctel.fr/TEST">start the interactive
        multimedia service</A>, otherwise
        <A HREF="ftp://ftp.mctel.fr/vemmi.exe">download first a VEMMI
        client software</A>.
   - the application/vemmi MIME type is defined below (to allow for
     example exchange of vemmi objects). A possible way is for the
     server to look in the HTTP Accept header field and to deduce that if
     application/vemmi is supported, then the VEMMI support exists (in
     this case, application/vemmi is to be defined in the browser and
     associated with the vemmi decoder).

8) Security Considerations:

   The VEMMI URL scheme is subject to the same security implications as
   the general URL scheme [5] [14], so the usual precautions outlined in
   [5] [14] apply (for example, it is not allowed to store the username
   and password in the URLs).

   Furthermore, among VEMMI objects that could be used during the
   interactive session, metacode objects (representing a sequence of
   VEMMI commands) and operative objects (they are executable programs
   to be run on the client platform) may be downloaded and/or started.

   In order to protect the user against the activation of an harmful
   operative object, it is strongly recommended that the users use the
   configuration menu of their VEMMI software to disable the option of
   running operative objects when receiving potentially unsafe VEMMI
   objects, or at least enable the option to request first user approval
   before starting the execution of an operative object.

   The VEMMI remote interactive services may vary widely in their access
   control policies; in practice, when a prompt for username or password
   is received, the VEMMI terminal should request them from the user.
   The VEMMI terminal implementation could support additional features,



Mavrakis, et. al.           Standards Track                     [Page 7]


RFC 2122                VEMMI URL Specification               March 1997


   for example proposing by default "anonymous" as username and the user
   Internet e-mail address as password, or looking in an encrypted local
   database for user identification on this service.

   Such an identification mechanism using the username/password scheme
   is unsecure and is provided for backwards compatibility only. The
   VEMMI services requiring a safe identification procedure must rely on
   other alternative mechanisms (e.g. S/KEY or other). In numerous
   cases, the user identification procedure will be performed by the
   VEMMI service.

9) application/vemmi MIME type

   VEMMI is a multimedia interactive service and VEMMI objects are
   usually exchanged through a continuous VEMMI multimedia session.
   However, VEMMI objects could also be transmitted and exchanged using
   other mechanisms, for example using HTTP, through e-mail, and so
   on... The assignment of a MIME media type application/vemmi will
   allow this transport and exchange of VEMMI objects, and this
   paragraph describes this MIME type.

   Furthermore, for Web browsers not supporting the addition of new URL
   protocol scheme, the VEMMI MIME type may also be used to transmit,
   instead of a VEMMI object, a text file containing the VEMMI URL to
   activate to connect to a VEMMI server.

9A) DESCRIPTION:

   MIME media type name: "application"

   MIME subtype name: "vemmi"

   Required parameters: none

   Optional parameters:
   - version:
     an optional version number may be specified, in the format:

       version=<integer>

     The version number is a numeric integer whose is encoded as the
     <version> parameter defined in ETS 300 709 (e.g. version=100), and
     whose the first digit represents the major VEMMI version number.
     It must be pointed out that the VEMMI objects includes the VEMMI
     version and a timestamp.






Mavrakis, et. al.           Standards Track                     [Page 8]


RFC 2122                VEMMI URL Specification               March 1997


9B) ENCODING CONSIDERATIONS:

   The "base64" mechanism is preferred because VEMMI use a native 8-bit
   binary file format. However, as VEMMI includes its own 7-bits
   encoding mechanisms, VEMMI data could also be transmitted in 7-bit
   mode.

9C) SECURITY CONSIDERATIONS:

   Refer to paragraph 8.

9D) INTEROPERABILITY CONSIDERATIONS:

   VEMMI is designed to be fully platform independent, and the VEMMI
   objects and contents could interoperate between any platform. The
   only exception are the VEMMI operative objects that could be binary
   programs specific to a given hardware platform and operating system.

10) Liaison address:

   For all technical questions regarding this request, please contact:

           Daniel Mavrakis
           Monaco Telematique MC-TEL
           P.O. Box 225
           MC 98004 Monte-Carlo Cedex
           PRINCIPALITY OF MONACO
           EMail: Mavrakis@mctel.fr
           Tel: (+377) 9216 8860
           Fax: (+377) 9330 4545

   Comments may also be addressed to:

           Mr. Herve Layec,
           ETSI STC TE1
           06921 SOPHIA ANTIPOLIS Cedex
           FRANCE
           EMail: herve.layec@dri.france-telecom.fr
           Tel: (+33) 2 99 12 73 01
           Fax: (+33) 2 99 38 49 61











Mavrakis, et. al.           Standards Track                     [Page 9]


RFC 2122                VEMMI URL Specification               March 1997


           Mr. Kurt Kartmann
           Consulting
           Telecommunication+Multimedia
           Gabelsbergerstr. 2
           D-64807 DIEBURG
           GERMANY
           EMail: k.kartmann@t-online.de
           Tel: (+49) 6071 1528
           c/o Deutsche Telekom AG
           Tel. (+49)6151 834965, Fax (+49) 6151 834284

   The authors thank the other members of the ETSI TE1 VEMMI Working
   Group for their comments:

      - Michael Blaschitz (michael.blaschitz@etsi.fr)
      - Agnelo Fernandes (agnelo@telepac.pt)
      - Daniel Allonsius (daniel.allonsius@is.belgacom.be)
      - Stefaan Herrebout (Stefaan.Herrebout@mail.interpac.be)
      - Francisca Oliva (oliva@tid.es)
      - Herwart Wermescher (Herwart.Wermescher@infonova.telecom.at)

11) References:

   [1] "Enhanced Man-Machine Interface for Videotex and
       Multimedia/Hypermedia Information Retrieval Services (VEMMI
       revision 1)", ETS 300 709 standard (European Telecommunications
       Standards Institute), September 1996.
       This document is available on the Web in HTML format: see
       http://www.etsi.fr/ecs/projects/vemmi/vemmi.htm

   [2] "Enhanced Man-Machine Interface for Videotex and Other
       Information Retrieval Services (VEMMI)", ITU-T T.107 standard
       (International Telecommunications Union), March 1995.

   [3] "Videotex Enhanced Man-Machine Interface service (VEMMI)",
       ETS 300 382 standard (European Telecommunications Standards
       Institute), February 1995.

   [4] Fielding, R., "Relative Uniform Resource Locators", RFC 1808, UC
       Irvine, June 1995.

   [5] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform Resource
       Locators (URL)", RFC 1738, December 1994.

   [6] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700,
       October 1994.





Mavrakis, et. al.           Standards Track                    [Page 10]


RFC 2122                VEMMI URL Specification               March 1997


   [7] Mavrakis, D., "VEMMI and Internet", TD 44, ETSI TE1 plenary
       meeting in Brussels, October 20, 1995.

   [8] Berners-Lee, T., Fielding, R., and H. Frystyk: "Hypertext Transfer
       Protocol - HTTP/1.0", RFC 1945, MIT/LCS, UC Irvine, May 1996.

   [9] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., and T.
       Berners-Lee, Transfer Protocol - HTTP/1.1", RFC 2068, UC Irvine,
       January 1997.

   [10] Freed, N., Klensin, J., and J. Postel, "Multipurpose Internet
        Mail Extensions (MIME) Part Four Registration Procedures", BCP
        13, RFC 2048, November 1996.

   [11] Masinter, L., Zigmond, D., and H. Alvestrand, "Guidelines and
        Process for new URL Schemes", Work in Progress.

   [12] Berners-Lee, T., and D. Connolly, "Hypertext Markup Language
        Specification - 2.0", RFC 1866, MIT/LCS, November 1995.

   [13] "Port Numbers",
        ftp://venera.isi.edu/in-notes/iana/assignments/port-numbers

   [14] T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource
        Locators (URL)", Work in Progress.


























Mavrakis, et. al.           Standards Track                    [Page 11]