180
D14049.07
March 2010
Grey Headline
(continued)
TANDBERG
VIDEO COMMUNICATION SERVER
ADMINISTRATOR GUIDE
Introduction
Overview and
status
System
configuration
VCS
configuration
Zones and
neighbors
Clustering and
peers
Call
processing
Bandwidth
control
Firewall
traversal
Appendices
Applications
Maintenance
CPL reference
Call Processing Language (CPL) is an XML-based language for defining call handling. This Appendix
gives details of the VCS’s implementation of the CPL language and should be read in conjunction
with the CPL standard
RFC 3880 [5]
and the
TANDBERG guide to writing CPL [22]
.
The VCS has many powerful inbuilt transform features so CPL should be required only if advanced
call handling rules are required.
The VCS supports most of the CPL standard along with some TANDBERG-defined extensions. It
does not support the top level actions
<incoming>
and
<outgoing>
as described in RFC 3880.
Instead it supports a single section of CPL within a
<taa:routed>
section.
When Call Policy is implemented by uploading a CPL script to the VCS, the script is checked against
an XML schema to verify the syntax. There are two schemas - one for the basic CPL specification
and one for the TANDBERG extensions. Both these schemas can be
downloaded from the web
interface
and used to validate your script before uploading to the VCS.
The following example shows the correct use of namespaces to make the syntax acceptable:
<?xml version="1.0" encoding="UTF-8" ?>
<cpl xmlns="urn:ietf:params:xml:ns:cpl"
xmlns:taa="http://www.tandberg.net/cpl-extensions"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:cpl cpl.xsd">
<taa:routed>
<address-switch field="destination">
<address is="[email protected]">
<proxy/>
</address>
</address-switch>
</taa:routed>
</cpl>
Overview of CPL on the VCS
address-switch
Overview
The
address-switch
node allows the script to run different actions based on the source or
destination aliases of the call. It specifies which fields to match, and then a list of
address
nodes
contains the possible matches and their associated actions.
The
address-switch
has two node parameters:
field
and
subfield
.
address
The
address
construct is used within an
address-switch
to specify addresses to match. It supports
the use of Regular Expressions (see the
Regular expression reference
Appendix for further
information).
Valid values are:
is=string
Selected field and subfield exactly match the given string.
contains=string
Selected field and subfield contain the given string.
Note: The CPL standard only allows for this matching on the
display subfield; however the VCS allows it on any type of
field.
subdomain-of=string
If the selected field is numeric (e.g. the tel subfield) then
this matches as a prefix; so
address subdomain-of="555"
matches
5556734
etc.
If the field is not numeric then normal domain name
matching is applied; so
address subdomain-of="company.com"
matches
nodeA.company.com
etc.
regex="regular expression"
Selected field and subfield match the given regular
expression.
All address comparisons ignore upper/lower case differences so
address is="Fred"
will also
match
fred
,
freD
etc.