This document is a guide to the API interface of the TANDBERG MPS products. All rights
reserved. This document contains information that is proprietary to TANDBERG. No part of
this publication may be reproduced, stored in a retrieval system, or transmitted, in any form,
or by any means, electronically, mechanically, by photocopying, or otherwise, without the
prior written permission of TANDBERG. Nationally and internationally recognized trademarks
and trade names are the property of their respective holders and are hereby acknowledged.
Disclaimer
The information in this document is furnished for informational purposes only, is subject to
change without prior notice, and should not be construed as a commitment by TANDBERG.
The information in this document is believed to be accurate and reliable; however
TANDBERG assumes no responsibility or liability for any errors or inaccuracies that may
appear in this document, nor for any infringements of patents or other rights of third parties
resulting from its use. No license is granted under any patents or patent rights of
TANDBERG.
This document was written by the Research and Development Department of TANDBERG,
Norway. We are committed to maintaining a high level of quality in all our documentation.
Towards this effort, we welcome your comments and suggestions regarding the content and
structure of this document. Please fax or mail your comments and suggestions to the
attention of:
Research and Development Department
TANDBERG
Philip Pedersen vei 22
1366 Lysaker
Norway
Tel: +47 67 125 125
Fax: +47 67 125 234
XML is a markup language for documents containing structured information.
All information elements in an XML document are marked by a tag and a corresponding end-
tag. The end-tag has the same name as the tag, but is prefixed with a slash, “/”. All tags are
put within angular brackets (“< >”).
Example 1.1
Below is an example of how configurations of a Serial Port could be represented using XML.
From the tree structure of this example we can see that BaudRate, Parity, Databits,
StopBits and Mode are properties of the SerialPort. We can distinguish between
container-elements and value-elements. Container-elements contain one or more subelements, while value-elements contain a value. This is analogous to files and folders on a
computer. Container-elements are folders that can contain sub-folders and files, while valueelements are files containing data.
In the XML structure for the Serial Port we see that the container-element SerialPort
contains five sub-elements. All these sub-elements are value-elements, each holding values
for the properties: BaudRate, Parity, DataBits, StopBits and Mode.
Example 1.2
In this example we will look at element attributes. Attributes are used to add meta information
to an element. Attributes are placed within the start tag of an element and different attributes
are separated by space.
An XML structure representing the status of a call in a videoconferencing system is shown
below:
We can see from the status attribute of the Call element that the call is disconnected. The
only relevant information regarding this call is the disconnect cause value. Therefore the substructure of the call element contains only one value-element.
2
TANDBERG MPS API
User Guide
Example 1.3
If we now look at the call element for an active call we see that call element contains a large
sub-structure:
In this example, the attributes are used to provide valuable information in addition to
establishing a dependency to the underlying sub-structure of the element.
Example 1.4
In the above examples, all elements are having an attribute named item. This attribute
specifies the instance number of the element. If we expand Example 1.1 to a system having
two serial ports, the XML structure could look like this:
XPath is a comprehensive language to address data in XML documents.
It is though very simple to understand the basics. If you are able to specify the path to a file
on your computer, you are able to specify the path to an element in a XML structure.
Example 1.5
Let us go back to the serial port configurations of Example 1.1.
To specify the path to the SerialPort element we simply start at the root level and separate
the levels in the tree structure by a slash (“/”):
Configuration/SerialPort
The path to the BaudRate element is:
Configuration/SerialPort/BaudRate
Example 1.6
To address a specific item of an element, the item number is added within brackets (“[]”) after
the element name.
The path to the BaudRate element of SerialPort item 2 in Example 1.4 is:
Configuration/SerialPort[2]/BaudRate
If the item number is omitted for an element, all items of this element will be addressed. The
following expression addresses the BaudRate element of both serial ports:
Configuration/SerialPort/BaudRate
Example 1.7
When using XPath it is possible to omit specifying intermediate levels in the address
expression. By using the powerful “double slash” you can address elements without having to
specify the complete path.
The expression below addresses the BaudRate element of both serial ports of Example 1.4:
Configuration//BaudRate
5
TANDBERG MPS API
User Guide
Example 1.8
XPath also supports addressing by putting constraints on element attributes. Let’s go back to
the Call element in Example 1.2. The below expression will address the CallRate element
of all Synced calls in a system:
Status/Call[@status=”Synced”]/CallRate
To add more constraints on element attributes, XPath supports boolean expressions. To
address all Synced H323 calls in a system, the following expression can be used:
Status/Call[@status=”Synced” AND @protocol=”H323”]/CallRate
6
TANDBERG MPS API
User Guide
1.3 The TANDBERG XML Engine
The TANDBERG XML engine is optimized for advanced machine-machine interaction
between a TANDBERG system and an external control application. The main features can be
summarized to:
• Structuring of information
• Addressing using XPath
• Feedback
1.3.1 Structuring of Information
An application programming interface can be seen as a gate where information is exchanged
between two systems - a control application and a target system. The control application
transmits instructions to the target system, while the target system supplies information about
how these instructions are executed, in addition to other system related information.
Thus, the exchange of information can be divided into:
1. information flowing from target, hereby called read information (r)
2. information flowing to target, hereby called write information (w)
If we now look at the TANDBERG systems we can identify three main types of information,
either being read information (r), write information (w) or read-write information (rw):
1. (r) Read information – Status Information.
Information about the system and system processes, i.e. information generated by
the system.
F.ex. status about ongoing calls, network status, conference status etc.
All status information is structured in a hierarchy, making up a database constantly
beeing updated by the system to reflect process changes.
2. (w) Write information – Command Information.
Information supplied by the user to initiate an action.
F.ex. instructing the system to place a call, assigning floor to a specific site,
disconnecting a site etc.
A command is usually followed by a set of parameters to specify how the given action
is to be executed.
3. (rw) Read-Write information – Configuration Information. Information defining
system settings. This information can both be supplied and read by the user. F.ex.
default callrate, baudrate of a serial port, enabling/disabling of various features etc.
All configuration information is structured in a hierarchy making up a database of
system settings. But for the Configuration information, the data in the database can
only be updated by the user/control application.
1.3.2 Addressing using XPath
To address information in the hierarchic structure of Status and Configuration informatio n the
TANDBERG systems support abbreviated XML Path Language (XPath). This allows the
user/control application to address everything from a single element of data, f.ex. the callrate
of a specific call, to larger parts of the hierarchy, f.ex. all information available for a given call.
The structuring of information together with XPath for addressing makes up powerful features
like searching and setting of multiple instances of a configuration.
1.3.3 Feedback
Feedback is an extremely powerful feature where the TANDBERG system actively returns
updated status and configuration information to the user/control application whenever
changes occur. The user/control application can specify what parts of the status and
7
TANDBERG MPS API
User Guide
configuration hierarchies it wants to monitor by using XPath. The user/control application can
therefore limit the amount of information it receives from the target system to only those parts
being of interest for the given application.
8
TANDBERG MPS API
User Guide
1.4 The XML Documents
1.4.1 Documents
The XML Data in the TANDBERG systems are divided into three main types of documents.
The division is based on whether the information is Read Information, Write Information or
Read-Write information:
1. Status documents (r): Documents holding all available Status Information in the
system.
Supported documents:
a. status.xml
b. history.xml
2. Configuration documents (rw): Documents holding all system configurations.
Supported documents:
a. configuration.xml
b. directory.xml
3. Command documents (w): Documents defining the supported system commands
used to initiate system processes. This is write data, i.e. the parameter values for a
given command are defined by the user and posted to the system. The posted values
will not be returned when reading the document from the system. Reading a
command document from the system returns descriptions of the supported
commands with empty parameter values.
Supported documents:
a. command.xml
4. Meta Documents: Meta documents contain information that can be referenced by
other documents, e.g. value domains of configurations or command parameters.
Supported Meta Documents:
a. valuespace.xml
1.4.2 Status Documents (r)
The Status Documents are characterised by an extensive use of XML attributes. In addition to
holding information, the attributes are used to reflect the structure of the sub-elements, which
are dependent on the state of the system.
Example 9
The element Call will contain different sub elements depending on the call state, call type or
In the above example we see that the Bonding element, RemoteNumber[2]and
SubAddress is not present for H323 calls. On the other hand, for H323 calls, the Audio
channel element holds information regarding packet loss etc., which is not present for H320
calls. If the call is disconnected, the Call element only contains the disconnect cause value.
1.4.3 Configuration documents (rw)
The structure of the Configuration documents is independent of system state, i.e. the
structure will be constant in time. In addition to holding the values for the various
configurations, each configuration value-element includes an attribute, valueSpaceRef
referencing the value domain for the configuration.
,
10
TANDBERG MPS API
User Guide
Example 10
From the XML structure below we see that the BaudRate element of SerialPort[1] is
configured to 9600. The BaudRate element references the SerialPortBaudrate element
in the ValueSpace document, showing the value domain for this configuration.
To change configurations, the part(s) of the document containing the configurations to be
updated should be posted back to the system with the new values. This will be described
thoroughly in a later section.
1.4.4 Command documents (w)
Command documents contain descriptions of the supported command s for the system. A
Command consists of a Command name and a set of Command parameters. Th e parameter
elements have attributes to denote whether the parameter is optional or required, in a addition
to referencing the value domain for the given parameter.
Command parameters do not contain any values when read from the system.
Example 11
The command Dial is defined to take five parameters, while only the Number parameter is
required as specified by the attribute required. The value domain for the parameters is
referenced by the attribute valueSpaceRef.
To issue a command, the command structure is posted back to the system together with
values for the various parameters. Optional parameters can be omitted when posting the
structure back to the system.
Example 12
To place a call to number 999 the user can simply post the following XML structure to the
When issuing Commands, the system will ret urn an XML structure in response. The response
structure will have the same name as the command issued, but it will be post fixed with
“Result”. All commands will have an attribute named status, stating whether the command
was accepted or not. If a command is not accepted, the response structure will contain a
cause code. If the command is accepted, the response structure may contain information
relevant for the specific command.
Example 13
The Dial command in the above example may return the following response structure:
The response structure for the Dial command, DialResult, states that the command was
accepted by the system. In addition to stating that the command was accepted, the Dial
command returns the elements CallRef and LogTag. This lets the user identify/trace the
call in the Status documents (status.xml and history.xml).
12
TANDBERG MPS API
User Guide
Example 14
Below is an example of the Dial command, not being accepted by the system:
1.5 Introduction to TANDBERG XML
API Service (TXAS)
TXAS is a service provided by TANDBERG units for transmitting and receiving (transceiving)
information encoded in XML format.
The API uses HTTP(S) as the transport mechanism and connects to the normal web port
(80). TXAS can be accessed in two ways; bare-bone HTTP requests where URL’s uniquely
identifies the request, and SOAP where a single URI is used but the request itself is encoded
with XML.
1.5.1 Bare-bone HTTP(S) access
The bare-bone HTTP mode uses a unique URL to identify the specific request. The contents
of the HTTP body will be a XML document (or part of it).
Bare-bone HTTP(S) access is accomplished by passing arguments in the query string (after
'?' in URL) in a GET request, or using the "application/x-www-form-urlencoded" content-type
mehtod of POSTing form data (Each argument starts with a name '=' and a value, and every
parameter separated with '&' (and opt NL).)
getxml
REQUEST:
/getxml
PARAM:
location = X
"/getxml" request returns an XML document based on the location parameter passed to the
request. The elements (or complete document) matching the expression will be returned.
On Incorrect XPath expression, a <Fault> element with a <XPathError> element will be
returned.
Path expression
formputxml
REQUEST:
/formputxml
PARAM:
xmldoc = "an XML do
This is most useful in a POST (to extend character limit of 255 of GET urls). It posts a
Configuration or Command document to set the configurations or issue a command.
Like getxml, it has the data URL form-data encoded with one single parameter. The ContentType of the document must be of type “application/x-www-form-urlencoded” and the body
must be encoded accordingly (e.g. first line will be xmldoc=<then the document>).
putxml
REQUEST:
/putxml
PARAM:
HTTP BODY as arg
Putxml is like "formputxml", put uses the complete BODY as argument (i.e. the content of the
xmldoc parameter). The Content-type should be "text/xml" or "application/xml" (or "text/plain"),
though no check at the moment. (Except for application/x-www-form-urlencoded, this will
cause a failure).
cument of Configuration, Directory or Command"
ument
14
1.6 Exercises
TANDBERG MPS API
User Guide
The exercises in this section are based on using a TANDBERG 6000 MXP codec an d
Microsoft Internet Explorer. Some of the examples may however also apply to other systems
and other browsers.
NOTE! Replace the ip address, 10.47.8.41, in the below examples with the ip address of your
system.
Exercise 1
The example in this exercise shows how to read the supported XML documents from the
system using a web browser.
Enter the following address in the browsers address field:
This exercise shows how to use getxml to read the supported XML documents from the
system. Enter the following expressions in the browsers address field (NOTE! The first letter
in the document names is uppercase):
The address: http://10.47.8.41/xmlput.ssi contains an editor where XML data can be edited
and then posted to the system by pressing the save button. Below are examples of XML
structures to be posted to the system:
The XML-based Advanced Command Line Interface, XACLI, is a very flexible interface both
optimized for machine-machine interaction and man-machine interaction. It is based on the
powerful TANDBERG XML engine and offers many of the same features as the TANDBERG
XML interface.
The main distinction between XACLI and the TANDBERG XML interface is the input format. As
XACLI is a command line interface all inputs from the user/control application have to be put on
one line, in opposite to the XML interface where a complete XML document can be posted to
the system in one operation.
A basic understanding of the information structuring in the TANDBERG XML engine is importa nt
in order to get the most out of the XACLI interface. It is therefore recommended to read the
documentation of the TANDBERG XML API prior to reading this section.
17
TANDBERG MPS API
User Guide
2.1 XACLI
2.1.1 Accessing XACLI
XACLI can be accessed through Telnet via the LAN interface or through RS-232 by connecting
a serial cable to the serial interface connector, referred to as the Dataport.
48 Telnet sessions can be active at the same time in addition to the RS-232 connection.
2.1.2 Root commands
For each of the XML documents supported by the system, there is a corresponding XACLI root
command. The root command has the same name as the corresponding XML document,
except that the root command is prefixed by an “x”:
The information in the TANDBERG XML engine is divided into three main types: Status Information, Configuration Information and Command Information, ref. the documentation of the
TANDBERG XML API.
As there is a fundamental difference in these three main types of information, there is also three
different ways of working with the information using XACLI.
2.1.3 Addressing
XACLI supports XPath for addressing Status Information and Configuration Information.
In addition there is support for the proprietary TANDBERG SimplePath notation. With
SimplePath notation an element or a group of elements are addressed by supplying a space
separated list of element names (elemName) and optional element instance numbers (item ):
<elemName> [item] <elemName> [item] ...
If the instance number of a given element is omitted, the expression addresses all instances of
this element
Example 2.1
To address the BaudRate sub-element of SerialPort 2:
XPath: SerialPort[2]/BaudRate
SimplePath: SerialPort 2 BaudRate
To address the BaudRate sub-element of all SerialPort elements:
XPath: SerialPort/BaudRate
SimplePath: SerialPort BaudRate
18
TANDBERG MPS API
User Guide
2.1.4 Exposure options
By adding an exposure option after the address (XPath or SimplePath) expression, the system
can be instructed to return only parts of the information within an element structure.
To access status-type data, simply type the status-type root command (xstatus or xhistory) and
then an XPath address expression or a TANDBERG SimplePath expression:
NOTE! To write a parser for the XACLI format, the parser must keep track of the levels by
counting white spaces. The indent is increased by two whitespaces for each level.
22
TANDBERG MPS API
2.3 The Configuration-type root
commands xconfiguration/xdirectory
User Guide
The information accessible through these commands is the exact same information that is
available in the corresponding XML documents.
To get an overview of accessible top-level configuration elements, type ? or help after the
configuration-type root command:
To get help on configurations, type the configuration-type root command – then an address
expression followed by ? or help. The possible values for the elements matching the address
expression will be returned.
xconfiguration ip ?
*h xConfiguration IP Assignment: <DHCP/Static>
*h xConfiguration IP Address: <IPAddr>
*h xConfiguration IP SubnetMask: <IPAddr>
*h xConfiguration IP Gateway: <IPAddr>
NOTE! Only typing xconfiguration ?, actually addresses all configuration elements within
the xconfiguration root command. One would therefore expect that help on all configurations
would be returned. But as described above, this is a special case and only listings of the top
level elements are returned. To get help on all configurations supported by the system, type:
xconfiguration // ?
or
xconfiguration ??
2.3.2 Configuration read
To read configurations, type the configuration-type root command followed by an address
expression:
<configuration-type root command> <address expr>
Example 2.8
User wants to read IP configurations:
xconfiguration ip
*c xConfiguration IP Assignment: Static
*c xConfiguration IP Address: "10.47.8.20"
*c xConfiguration IP SubnetMask: "255.255.248.0"
*c xConfiguration IP Gateway: "10.47.8.1"
OK
2.3.3 Configuration set (write)
To set configurations, the address expression following the configuration-type root command
must end with a colon. The value to be set must be added after the colon:
<configuration-type root command> <address expr>: value
24
Loading...
+ 58 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.