draft-ietf-iptel-cpl-08.txt   draft-ietf-iptel-cpl-09.txt 
Internet Engineering Task Force IPTEL WG Internet Engineering Task Force IPTEL WG
Internet Draft Lennox/Wu/Schulzrinne Internet Draft Lennox/Wu/Schulzrinne
Columbia University Columbia University
draft-ietf-iptel-cpl-08.txt draft-ietf-iptel-cpl-09.txt
August XX, 2003 April XX, 2004
Expires: February, 2004 Expires: October, 2004
CPL: A Language for User Control of Internet Telephony Services CPL: A Language for User Control of Internet Telephony Services
STATUS OF THIS MEMO STATUS OF THIS MEMO
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 3, line 34 skipping to change at page 3, line 34
B Suggested Usage of CPL with H.323 ................... 55 B Suggested Usage of CPL with H.323 ................... 55
B.1 Usage of "address-switch" with H.323 ................ 55 B.1 Usage of "address-switch" with H.323 ................ 55
B.2 Usage of "string-switch" with H.323 ................. 57 B.2 Usage of "string-switch" with H.323 ................. 57
B.3 Usage of "language-switch" with H.323 ............... 57 B.3 Usage of "language-switch" with H.323 ............... 57
B.4 Usage of "priority-switch" with H.323 ............... 57 B.4 Usage of "priority-switch" with H.323 ............... 57
B.5 Usage of "location" with H.323 ...................... 57 B.5 Usage of "location" with H.323 ...................... 57
B.6 Usage of "lookup" with H.323 ........................ 57 B.6 Usage of "lookup" with H.323 ........................ 57
B.7 Usage of "remove-location" with H.323 ............... 58 B.7 Usage of "remove-location" with H.323 ............... 58
C The XML Schema for CPL .............................. 58 C The XML Schema for CPL .............................. 58
D Changes from Earlier Versions ....................... 72 D Changes from Earlier Versions ....................... 72
D.1 Changes from Draft -07 .............................. 72 D.1 Changes from Draft -08 .............................. 72
D.2 Changes from Draft -06 .............................. 72 D.2 Changes from Draft -07 .............................. 72
D.3 Changes from Draft -05 .............................. 73 D.3 Changes from Draft -06 .............................. 73
D.4 Changes from Draft -04 .............................. 74 D.4 Changes from Draft -05 .............................. 73
D.5 Changes from Draft -03 .............................. 75 D.5 Changes from Draft -04 .............................. 74
D.6 Changes from Draft -02 .............................. 76 D.6 Changes from Draft -03 .............................. 75
D.7 Changes from Draft -01 .............................. 76 D.7 Changes from Draft -02 .............................. 76
D.8 Changes from Draft -00 .............................. 78 D.8 Changes from Draft -01 .............................. 77
D.9 Changes from Draft -00 .............................. 78
E Authors' Addresses .................................. 79 E Authors' Addresses .................................. 79
F Normative References ................................ 79 F Normative References ................................ 79
G Informative References .............................. 80 G Informative References .............................. 81
1 Introduction 1 Introduction
The Call Processing Language (CPL) is a language that can be used to The Call Processing Language (CPL) is a language that can be used to
describe and control Internet telephony services. It is not tied to describe and control Internet telephony services. It is not tied to
any particular signalling architecture or protocol; it is anticipated any particular signalling architecture or protocol; it is anticipated
that it will be used with both the Session Initiation Protocol (SIP) that it will be used with both the Session Initiation Protocol (SIP)
[1] and H.323 [16]. [1] and H.323 [16].
CPL is powerful enough to describe a large number of services and CPL is powerful enough to describe a large number of services and
skipping to change at page 27, line 18 skipping to change at page 27, line 18
Next node: Any node Next node: Any node
Parameters: "location" Location to remove Parameters: "location" Location to remove
Figure 11: Syntax of the "remove-location" node Figure 11: Syntax of the "remove-location" node
A "remove-location" node removes locations from the location set. It A "remove-location" node removes locations from the location set. It
is primarily useful following a "lookup" node. An example of this is is primarily useful following a "lookup" node. An example of this is
given in Section 12.8. given in Section 12.8.
The "remove-location" node has one optional parameter. The parameter The "remove-location" node has one optional parameter. The parameter
"location" gives the URI "location" gives the URI of a location to be removed from the set, in
a signalling-protocol-dependent manner. If this parameter is not
of a location to be removed from the set, in a signalling-protocol- given, all locations are removed from the set.
dependent manner. If this parameter is not given, all locations are
removed from the set.
The "remove-location" node has no explicit output tags. In the XML The "remove-location" node has no explicit output tags. In the XML
syntax, the XML "remove-location" tag directly encloses the next syntax, the XML "remove-location" tag directly encloses the next
node's tag. node's tag.
5.3.1 Usage of "remove-location" with SIP 5.3.1 Usage of "remove-location" with SIP
The location specified in the "location" parameter of the "remove- The location specified in the "location" parameter of the "remove-
location" node is matched against the location set using the standard location" node is matched against the location set using the standard
rules for SIP URI matching (as are used, e.g., to match Contact rules for SIP URI matching (as are used, e.g., to match Contact
skipping to change at page 37, line 38 skipping to change at page 37, line 38
11 CPL Extensions 11 CPL Extensions
Servers MAY support additional CPL features beyond those listed in Servers MAY support additional CPL features beyond those listed in
this document. Some of the extensions which have been suggested are a this document. Some of the extensions which have been suggested are a
means of querying how a call has been authenticated; richer control means of querying how a call has been authenticated; richer control
over H.323 addressing; end-system or administrator-specific features; over H.323 addressing; end-system or administrator-specific features;
regular-expression matching for strings and addresses; and mid-call regular-expression matching for strings and addresses; and mid-call
or end-of-call controls. or end-of-call controls.
CPL extensions are indicated by XML namespaces [11]. Every extension CPL extensions are indicated by XML namespaces [11]. Every extension
MUST have an appropriate XML namespace assigned to it. All XML tags MUST have an appropriate XML namespace assigned to it. The XML
namespace of the extension MUST be different from the XML namespace
defined in Section 14. The extension MUST NOT change the syntax or
semantics of the CPL schema defined in this document. All XML tags
and attributes that are part of the extension MUST be appropriately and attributes that are part of the extension MUST be appropriately
qualified so as to place them within that namespace. qualified so as to place them within that namespace.
Tags or attributes in a CPL script which are in the global namespace Tags or attributes in a CPL script which are in the global namespace
(i.e., not associated with any namespace) are equivalent to tags and (i.e., not associated with any namespace) are equivalent to tags and
attributes in the CPL namespace "urn:ietf:params:xml:ns:cpl". attributes in the CPL namespace "urn:ietf:params:xml:ns:cpl".
A CPL script SHOULD NOT specify any namespaces it does not use. For A CPL script SHOULD NOT specify any namespaces it does not use. For
compatibility with non-namespace-aware parsers, a CPL script MAY omit compatibility with non-namespace-aware parsers, a CPL script MAY omit
the base CPL namespace for a script which does not use any the base CPL namespace for a script which does not use any
skipping to change at page 51, line 14 skipping to change at page 51, line 14
which scripts are transmitted from a client to a server MUST be which scripts are transmitted from a client to a server MUST be
strongly authenticated. Such a method is not specified in this strongly authenticated. Such a method is not specified in this
document. document.
Script servers SHOULD allow server administrators to control the Script servers SHOULD allow server administrators to control the
details of what CPL operations are permitted. details of what CPL operations are permitted.
14 IANA Considerations 14 IANA Considerations
This document registers a new MIME type, application/cpl+xml, and a This document registers a new MIME type, application/cpl+xml, and a
new URN per RFC 2141 [12], RFC 2648 [13], and RFC YYYY [14]. new URN per RFC 2141 [12], RFC 2648 [13], and RFC 3688 [14].
[Note to RFC Editor: please replace "YYYY" above with the The XML namespace urn:ietf:params:xml:ns:cpl will only refer to the
RFC number of draft-mealling-iana-xmlns-registry, which is version of CPL in this document and will not change. Any CPL
currently in the RFC Editor's queue, when it is published enhancements MUST be made by extensions and MUST have different
as an RFC.] namespaces.
14.1 URN Sub-Namespace Registration for urn:ietf:params:xml:ns:cpl 14.1 URN Sub-Namespace Registration for urn:ietf:params:xml:ns:cpl
URI: urn:ietf:params:xml:ns:cpl URI: urn:ietf:params:xml:ns:cpl
Registrant Contact: Jonathan Lennox <lennox@cs.columbia.edu> Registrant Contact: Jonathan Lennox <lennox@cs.columbia.edu>
Xiaotao Wu <xiaotaow@cs.columbia.edu> Xiaotao Wu <xiaotaow@cs.columbia.edu>
Henning Schulzrinne <hgs@cs.columbia.edu> Henning Schulzrinne <hgs@cs.columbia.edu>
XML: XML:
skipping to change at page 52, line 4 skipping to change at page 51, line 48
content="text/html;charset=iso-8859-1"/> content="text/html;charset=iso-8859-1"/>
<title>Call Processing Language Namespace</title> <title>Call Processing Language Namespace</title>
</head> </head>
<body> <body>
<h1>Namespace for Call Processing Language</h1> <h1>Namespace for Call Processing Language</h1>
<h2>urn:ietf:params:xml:ns:cpl</h2> <h2>urn:ietf:params:xml:ns:cpl</h2>
<p><a href="[[[URL of published RFC]]]">RFCXXXX</a>.</p> <p><a href="[[[URL of published RFC]]]">RFCXXXX</a>.</p>
</body> </body>
</html> </html>
END END
[Note to RFC Editor: please replace "[[[URL of published [Note to RFC Editor: please replace "[[[URL of published
RFC]]]" above with the official URL of this RFC at rfc- RFC]]]" above with the official URL of this RFC at rfc-
editor.org, and "XXXX" above with the number of this RFC.] editor.org, and "XXXX" above with the number of this RFC.]
14.2 Schema registration 14.2 Schema registration
This specification registers XML Schema for CPL, as per the This specification registers XML Schema for CPL, as per the
guidelines in [14]. guidelines in [14].
URI: please assign. URI: urn:ietf:params:xml:schema:cpl
Registrant contact: Registrant contact:
Jonathan Lennox <lennox@cs.columbia.edu> Jonathan Lennox <lennox@cs.columbia.edu>
Xiaotao Wu <xiaotaow@cs.columbia.edu> Xiaotao Wu <xiaotaow@cs.columbia.edu>
Henning Schulzrinne <hgs@cs.columbia.edu> Henning Schulzrinne <hgs@cs.columbia.edu>
XML: The XML can be found in Section C. XML: The XML can be found in Section C.
14.3 MIME Registration 14.3 MIME Registration
skipping to change at page 72, line 27 skipping to change at page 72, line 27
</xs:complexType> </xs:complexType>
<xs:element name="cpl" type="CPLType"/> <xs:element name="cpl" type="CPLType"/>
</xs:schema> </xs:schema>
END END
D Changes from Earlier Versions D Changes from Earlier Versions
[Note to RFC Editor: please remove this appendix before [Note to RFC Editor: please remove this appendix before
publication as an RFC.] publication as an RFC.]
D.1 Changes from Draft -07 D.1 Changes from Draft -08
o Define the URI for schema registration as
urn:ietf:params:xml:schema:cpl.
o Change draft-mealling-iana-xmlns-registry to RFC 3688.
o Clarify how to define XML namespaces for CPL extensions.
D.2 Changes from Draft -07
o Added Intellectual Property Statement. o Added Intellectual Property Statement.
o Included filenames in the references to I-Ds. o Included filenames in the references to I-Ds.
o Modified remove-location node description. o Modified remove-location node description.
o Moved the CPL example scripts out of the IANA registration o Moved the CPL example scripts out of the IANA registration
part. part.
o Fixed bugs in URN registration XML. o Fixed bugs in URN registration XML.
o Added an IANA registration for CPL schema. o Added an IANA registration for CPL schema.
o Fixed bugs in the CPL schema for the format of xs:annotations o Fixed bugs in the CPL schema for the format of xs:annotations
element. element.
o Modified CPL schema for backward compatibilities to the CPL o Modified CPL schema for backward compatibilities to the CPL
DTD. DTD.
D.2 Changes from Draft -06 D.3 Changes from Draft -06
The changebars in the Postscript and PDF versions of this document The changebars in the Postscript and PDF versions of this document
indicate significant changes from this version. indicate significant changes from this version.
o Added Xiaotao Wu as a co-author. o Added Xiaotao Wu as a co-author.
o Converted CPL DTD to CPL XML Schema. o Converted CPL DTD to CPL XML Schema.
o Dropped all features dependent on caller preferences and o Dropped all features dependent on caller preferences and
callee capabilities. callee capabilities.
skipping to change at page 73, line 37 skipping to change at page 73, line 46
accidentally omitted when sub-day recurrences were re-added in accidentally omitted when sub-day recurrences were re-added in
draft -05. draft -05.
o Clarified the usages of "lookup" and "remove-location" with o Clarified the usages of "lookup" and "remove-location" with
SIP, and "remove-location" with H.323. SIP, and "remove-location" with H.323.
o Updated address of the IPTel working group's mailing list. o Updated address of the IPTel working group's mailing list.
o Improved wording, cleaned up formatting, and corrected typos. o Improved wording, cleaned up formatting, and corrected typos.
D.3 Changes from Draft -05 D.4 Changes from Draft -05
o Clarified that switch nodes are allowed to be degenerate -- o Clarified that switch nodes are allowed to be degenerate --
they can have no outputs, and they can have only an they can have no outputs, and they can have only an
"otherwise" output. "otherwise" output.
o Clarified the (non-) usage of the special language-range "*". o Clarified the (non-) usage of the special language-range "*".
o Clarified that the Candidate Start Time can be equal to the o Clarified that the Candidate Start Time can be equal to the
call time. call time.
skipping to change at page 74, line 12 skipping to change at page 74, line 20
o Added DTD entries for the "time-switch" attributes re-added in o Added DTD entries for the "time-switch" attributes re-added in
draft -05. draft -05.
o Updated the reference to ISO 8601 to cite 8601:2000. o Updated the reference to ISO 8601 to cite 8601:2000.
o Updated all H.323 references to cite H.323v4. o Updated all H.323 references to cite H.323v4.
o Corrected some spelling errors. o Corrected some spelling errors.
D.4 Changes from Draft -04 D.5 Changes from Draft -04
o Broke out language switches into their own switch node. o Broke out language switches into their own switch node.
o Restored the full iCalendar COS recurrence specification. o Restored the full iCalendar COS recurrence specification.
Added text describing the consequences of this for Added text describing the consequences of this for
implementors, and expanded somewhat on the recurrence implementors, and expanded somewhat on the recurrence
algorithm. algorithm.
o Clarified when time zones are resolved. o Clarified when time zones are resolved.
skipping to change at page 75, line 10 skipping to change at page 75, line 16
can trigger a default action, just like anything else. can trigger a default action, just like anything else.
o Clarified that the time-switch resolution algorithm is non- o Clarified that the time-switch resolution algorithm is non-
normative. normative.
o Updated references to previously-unpublished RFCs, now o Updated references to previously-unpublished RFCs, now
published. published.
o Thanked Richard Gumpertz. o Thanked Richard Gumpertz.
D.5 Changes from Draft -03 D.6 Changes from Draft -03
o Removed an obsolete reference to a usage in examples which o Removed an obsolete reference to a usage in examples which
wasn't actually used anywhere. wasn't actually used anywhere.
o Added forward references to "remove-location", "mail" and o Added forward references to "remove-location", "mail" and
"log", as well as "location", in the XML syntax as examples of "log", as well as "location", in the XML syntax as examples of
nodes that don't have explicit output tags. nodes that don't have explicit output tags.
o Made the usage of some terminology more consistent: "output" o Made the usage of some terminology more consistent: "output"
vs. "next node"; "action" vs. "operation" vs. "behavior"; vs. "next node"; "action" vs. "operation" vs. "behavior";
skipping to change at page 76, line 7 skipping to change at page 76, line 13
extensions only. extensions only.
o Expunged some references to sub-daily recurrences which had o Expunged some references to sub-daily recurrences which had
accidentally been left in the text. accidentally been left in the text.
o Updated bibliography to refer to the latest versions of the o Updated bibliography to refer to the latest versions of the
cited documents. cited documents.
o Fixed a number of typographical errors. o Fixed a number of typographical errors.
D.6 Changes from Draft -02 D.7 Changes from Draft -02
o Reduced time-switches from the full iCal recurrence to an iCal o Reduced time-switches from the full iCal recurrence to an iCal
subset. Added an appendix giving an algorithm to resolve subset. Added an appendix giving an algorithm to resolve
time-switches. time-switches.
o Added the extension mechanism. o Added the extension mechanism.
o Made explicit how each node is dependent on protocol handling. o Made explicit how each node is dependent on protocol handling.
Separated out protocol-specific information -- for SIP in Separated out protocol-specific information -- for SIP in
subsections of the main text, for H.323 in a non-normative subsections of the main text, for H.323 in a non-normative
skipping to change at page 76, line 51 skipping to change at page 77, line 9
o Pointed out that log names are logical names, and should not o Pointed out that log names are logical names, and should not
be interpreted as verbatim filenames. be interpreted as verbatim filenames.
o Added some examples. o Added some examples.
o Clarified some wording. o Clarified some wording.
o Fixed some typographical errors. o Fixed some typographical errors.
D.7 Changes from Draft -01 D.8 Changes from Draft -01
o Completely re-wrote changes to time switches: they are now o Completely re-wrote changes to time switches: they are now
based on iCal rather than on crontab. based on iCal rather than on crontab.
o Timezone references are now defined within time switches o Timezone references are now defined within time switches
rather than in the ancillary section. The ancillary section is rather than in the ancillary section. The ancillary section is
now empty, but still defined for future use. To facilitate now empty, but still defined for future use. To facilitate
this, an explicit "ancillary" tag was added. this, an explicit "ancillary" tag was added.
o Added XML document type identifiers (the public identifier and o Added XML document type identifiers (the public identifier and
the namespace), and MIME registration information. the namespace), and MIME registration information.
skipping to change at page 78, line 11 skipping to change at page 78, line 15
servers. servers.
o Updated reference to RFC 2824 now that it has been published. o Updated reference to RFC 2824 now that it has been published.
o Added explanatory text to the introduction to types of nodes. o Added explanatory text to the introduction to types of nodes.
o Numerous minor clarifications and wording changes. o Numerous minor clarifications and wording changes.
o Fixed copy-and-paste errors, typos. o Fixed copy-and-paste errors, typos.
D.8 Changes from Draft -00 D.9 Changes from Draft -00
o Added high-level structure; script doesn't just start at a o Added high-level structure; script doesn't just start at a
first action. first action.
o Added a section giving a high-level explanation of the o Added a section giving a high-level explanation of the
location model. location model.
o Added informal syntax specifications for each tag so people o Added informal syntax specifications for each tag so people
don't have to try to understand a DTD to figure out the don't have to try to understand a DTD to figure out the
syntax. syntax.
skipping to change at page 80, line 44 skipping to change at page 80, line 49
[11] T. Bray, D. Hollander, and A. Layman, "Namespaces in XML," W3C [11] T. Bray, D. Hollander, and A. Layman, "Namespaces in XML," W3C
Recommendation REC-xml-names-19900114, World Wide Web Consortium Recommendation REC-xml-names-19900114, World Wide Web Consortium
(W3C), Jan. 1999. Available at http://www.w3.org/TR/REC-xml-names/. (W3C), Jan. 1999. Available at http://www.w3.org/TR/REC-xml-names/.
[12] R. Moats, "URN syntax," RFC 2141, Internet Engineering Task [12] R. Moats, "URN syntax," RFC 2141, Internet Engineering Task
Force, May 1997. Force, May 1997.
[13] R. Moats, "A URN namespace for IETF documents," RFC 2648, [13] R. Moats, "A URN namespace for IETF documents," RFC 2648,
Internet Engineering Task Force, Aug. 1999. Internet Engineering Task Force, Aug. 1999.
[14] M. Mealling, "The IETF XML registry," Internet Draft draft- [14] M. Mealling, "The ietf xml registry," RFC 3688, Internet
mealling-iana-xmlns-registry-05.txt, Internet Engineering Task Force, Engineering Task Force, Jan. 2004.
June 2003. Work in progress.
[15] M. Murata, S. S. Laurent, and D. Kohn, "XML media types," RFC [15] M. Murata, S. S. Laurent, and D. Kohn, "XML media types," RFC
3023, Internet Engineering Task Force, Jan. 2001. 3023, Internet Engineering Task Force, Jan. 2001.
G Informative References G Informative References
[16] International Telecommunication Union, "Packet based multimedia [16] International Telecommunication Union, "Packet based multimedia
communication systems," Recommendation H.323, Telecommunication communication systems," Recommendation H.323, Telecommunication
Standardization Sector of ITU, Geneva, Switzerland, Nov. 2000. Standardization Sector of ITU, Geneva, Switzerland, Nov. 2000.
[17] J. Lennox and H. Schulzrinne, "Call processing language [17] J. Lennox and H. Schulzrinne, "Call processing language
framework and requirements," RFC 2824, Internet Engineering Task framework and requirements," RFC 2824, Internet Engineering Task
Force, May 2000. Force, May 2000.
[18] D. Raggett, A. Le Hors, and I. Jacobs, "HTML 4.01 [18] D. Raggett, A. Le Hors, and I. Jacobs, "HTML 4.01
specification," W3C Recommendation REC-html401-19991224, World Wide specification," W3C Recommendation REC-html401-19991224, World Wide
skipping to change at page 82, line 23 skipping to change at page 82, line 29
be obtained from the IETF Secretariat. be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive this standard. Please address the information to the IETF Executive
Director. Director.
Full Copyright Statement Full Copyright Statement
Copyright (c) The Internet Society (2003). All Rights Reserved. Copyright (c) The Internet Society (2004). All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of Internet organizations, except as needed for the purpose of
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/