Internet Engineering Task Force Internet Draft Wu/Schulzrinne/Lennox Columbia University draft-wu-cpl-schema-02.txt March 3, 2003 Expires: September 2003 An Extensible Markup Language Schema for Call Processing Language (CPL) STATUS OF THIS MEMO This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress". The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt To view the list Internet-Draft Shadow Directories, see http://www.ietf.org/shadow.html. Abstract This document provides an Extensible Markup Language (XML) Schema for the Call Processing Language (CPL). The original CPL specification only provides a Document Type Declaration (DTD) to describe the structure of the language. Compared with XML DTDs, XML schemas have many advantages such as performing stricter type checking, providing pre-defined data types and being able to derive new data types from existing ones. We further split the CPL schema into two parts, one contains elements common to all the telecommunication entities, such as user agents or presence agents. The other contains elements, such as 'proxy', specifically for network servers. Wu/Schulzrinne/Lennox [Page 1] Internet Draft CPL-Schema March 3, 2003 1 Introduction The Call Processing Language (CPL) [1] is a language that can be used to describe and control Internet telephony services. It is based on the Extensible Markup Language (XML) [2], a common hierarchical format for describing structured data. There are two primary formats used to describe the structure of an XML document. The older one, the Document Type Declaration (DTD) is part of the original XML specification; the newer one, the XML schema [3] was defined later. At the time the CPL specification was written, the XML schema specification had not yet been finalized, so the CPL specification only provides a DTD for the CPL. Compared with XML DTDs, XML schemas have many advantages. XML schemas perform stricter type checking and provide many pre-defined data types. Also, XML schemas allow the derivation of new data types from existing ones, making it easier to use XML schemas for CPL extensions. This document therefore defines an XML schema for the CPL. And we recommend that all future extensions of CPL should use schema definitions only. We notice that the original CPL standard contains elements specifically for network servers, such as the 'proxy' and 'redirect' actions. To make CPL applicable to the other entities, such as user agent or presence agent, we put the elements specifically for network servers in a separate XML schema, and keep the elements common to all the entities in a schema, named base CPL schema. With the separation, it is easier to define CPL extensions for user agents or presence agents, without dealing with the actions user agents or presence agents cannot perform. All the future CPL extensions MUST base on the base CPL schema. 2 Overview of the schema Most of the data types defined in the CPL DTD can be easily translated to an XML schema. However, two limitations on XML schema make several data types of CPL difficult to define. The first limitation is that several CPL data types are defined as having case-insensitive values, whereas XML schemas cannot easily define case-insensitive strings, so in the CPL schema, we have to use string patterns to define some tokens. For example, we have to use to define the token 'YEARLY' in a case-insensitive manner. The second limitation of XML schema is that it only allows white space as a list delimiter. However, the time-switch of CPL follows Internet Calendaring and Wu/Schulzrinne/Lennox [Page 2] Internet Draft CPL-Schema March 3, 2003 Scheduling Core Object Specification (iCalendar COS), RFC 2445 [4], which uses comma (,) as its list delimiter. So we cannot use to define some data types, such as the ByDayType, which contains a list of days of the week. We have to use string pattern to define the list. In addition, the time format in iCalendar is different from that provided in XML schema, so we have to use to define the time, instead of using type. To make CPL more extensible, in the XML schema of CPL, we introduce three abstract elements, namely 'trigger', 'switch', and 'action', which accordingly have the abstract type 'TriggerType', 'SwitchType', and 'ActionType'. Trigger is mapped to the top-level call processing action, such as 'incoming', in the original CPL standard. Any CPL trigger MUST be defined as the substitutionGroup of the abstract 'trigger' element, and have the type extended from the 'TriggerType'. Switch and action are the same as those defined in the original CPL standard. Any CPL switch MUST be defined as the substitutionGroup of the abstract 'switch' element, and have the type extended from the 'SwitchType'. Any CPL action MUST be defiend as the substitutionGroup of the abstract 'action' element, and have the type extended from the 'ActionType'. 3 The XML schema of the CPL The following are two XML schemas. One is the base CPL schema, the other is the CPL extensions for network servers. We have checked the schema with the examples in the original CPL specification. The namespace URIs for elements defined by this specification are URNs [5], using the namespace identifier 'ietf' defined by [6] and extended by [7]. The URN for the base CPL schema is: urn:ietf:params:xml:ns:cpl The URN for the CPL extensions for network servers is: urn:ietf:params:xml:ns:cpl:nserver The base CPL schema is as below: Wu/Schulzrinne/Lennox [Page 3] Internet Draft CPL-Schema March 3, 2003 Wu/Schulzrinne/Lennox [Page 4] Internet Draft CPL-Schema March 3, 2003 Wu/Schulzrinne/Lennox [Page 5] Internet Draft CPL-Schema March 3, 2003 Wu/Schulzrinne/Lennox [Page 6] Internet Draft CPL-Schema March 3, 2003 Wu/Schulzrinne/Lennox [Page 7] Internet Draft CPL-Schema March 3, 2003 Wu/Schulzrinne/Lennox [Page 8] Internet Draft CPL-Schema March 3, 2003 Wu/Schulzrinne/Lennox [Page 9] Internet Draft CPL-Schema March 3, 2003 Wu/Schulzrinne/Lennox [Page 10] Internet Draft CPL-Schema March 3, 2003 Wu/Schulzrinne/Lennox [Page 11] Internet Draft CPL-Schema March 3, 2003 The CPL schema for network servers is as below: Wu/Schulzrinne/Lennox [Page 12] Internet Draft CPL-Schema March 3, 2003 Wu/Schulzrinne/Lennox [Page 13] Internet Draft CPL-Schema March 3, 2003 4 IANA considerations 4.1 URN Sub-Namespace Registration This section registers two new XML namespaces, as per the guidelines in [7] URI: urn:ietf:params:xml:ns:cpl Registrant Contact: Xiaotao Wu XML: BEGIN Call Processing Language Namespace

Namespace for Call Processing Language

application/cpl+xml

See RFCXXXX.

Wu/Schulzrinne/Lennox [Page 14] Internet Draft CPL-Schema March 3, 2003 END URI: urn:ietf:params:xml:ns:cpl:nserver Registrant Contact: Xiaotao Wu XML: BEGIN Call Processing Language Extensions for Network Servers Namespace

Namespace for Call Processing Language Extensions for Network Servers

application/cpl+xml

See RFCXXXX.

END 5 Changes from Earlier Version 5.1 Changes from Draft -01 o Split the original CPL schema into two parts. One is the base schema with common elements applicable to all the entities, such as user agents or presence agents. The other is the schema specifically for network servers, such as proxy or redirect servers. o Add three abstract elements, namely trigger, switch and action. Trigger is mapped to the top-level call processing action in the original CPL standard. All the new triggers MUST be the substitutionGroup of the abstract trigger element. Switch and action are the same as those defined in the original CPL standard. All the new switches MUST be the substitutionGroup of the abstract switch element. All the new actions MUST be the substitutionGroup of the abstract action element. Wu/Schulzrinne/Lennox [Page 15] Internet Draft CPL-Schema March 3, 2003 o Add IANA considerations for URN Sub-Namespace registration. o Remove useless type CommaDelimiterType. o Separate normal and informal references. 5.2 Changes from Draft -00 o Bug fix, in xs:schema tag, change 'xmlns:tns' to 'xmlns' o Add example CPL scripts with using the schema in this specification 6 Authors' Addresses Xiaotao Wu Dept. of Computer Science Columbia University 1214 Amsterdam Avenue, MC 0401 New York, NY 10027 USA electronic mail: xiaotaow@cs.columbia.edu Henning Schulzrinne Dept. of Computer Science Columbia University 1214 Amsterdam Avenue, MC 0401 New York, NY 10027 USA electronic mail: schulzrinne@cs.columbia.edu Jonathan Lennox Dept. of Computer Science Columbia University 1214 Amsterdam Avenue, MC 0401 New York, NY 10027 USA electronic mail: lennox@cs.columbia.edu 7 Normative References [1] J. Lennox and H. Schulzrinne, "CPL: a language for user control of Internet telephony services," internet draft, Internet Engineering Task Force, Nov. 2001. Work in progress. [2] T. Bray, J. Paoli, C. M. Sperberg-McQueen, and E. Maler, "Extensible markup language (xml) 1.0 (second edition)," W3C Recommendation, World Wide Web Consortium (W3C), Oct. 2000. http://www.w3.org/TR/2000/REC-xml-20001006. Wu/Schulzrinne/Lennox [Page 16] Internet Draft CPL-Schema March 3, 2003 [3] D. C. Fallside, "XML schema part 0: Primer," W3C Recommendation, World Wide Web Consortium (W3C), May 2001. http://www.w3.org/TR/xmlschema-0/. [4] F. Dawson and D. Stenerson, "Internet calendaring and scheduling core object specification (icalendar)," RFC 2445, Internet Engineering Task Force, Nov. 1998. [5] R. Moats, "URN syntax," RFC 2141, Internet Engineering Task Force, May 1997. [6] R. Moats, "A URN namespace for IETF documents," RFC 2648, Internet Engineering Task Force, Aug. 1999. [7] M. Mealling, "The IETF XML registry," internet draft, Internet Engineering Task Force, July 2002. Work in progress. Full Copyright Statement Copyright (c) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Wu/Schulzrinne/Lennox [Page 17] Table of Contents 1 Introduction ........................................ 2 2 Overview of the schema .............................. 2 3 The XML schema of the CPL ........................... 3 4 IANA considerations ................................. 14 4.1 URN Sub-Namespace Registration ...................... 14 5 Changes from Earlier Version ........................ 15 5.1 Changes from Draft -01 .............................. 15 5.2 Changes from Draft -00 .............................. 16 6 Authors' Addresses .................................. 16 7 Normative References ................................ 16 Wu/Schulzrinne/Lennox [Page 1]