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]