Вы находитесь на странице: 1из 60

Cisco WebEx™

Network-Based
Recording Web
Services API v2.3.5
Reference Guide

Document Version 1.0


Copyright
WebEx Communications, Inc. reserves the right to make changes in the information contained in this
publication without prior notice. The reader should in all cases consult WebEx Communications, Inc. to
determine whether any such changes have been made.

© 2008 WebEx Communications, Inc. All rights reserved. WebEx and MediaTone are registered
trademarks or trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and certain other
countries.

UNPUBLISHED - RIGHTS RESERVED UNDER THE COPYRIGHTS LAW OF THE UNITED STATES.
USE OF A COPYRIGHT NOTICE IS PRECAUTIONARY ONLY AND DOES NOT IMPLY
PUBLICATION OR DISCLOSURE.

OTHER BRANDS AND PRODUCTS ARE TRADEMARKS OR REGISTERED TRADEMARKS OF


THEIR RESPECTIVE HOLDERS.

RESTRICTED RIGHTS LEGEND. USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT


IS SUBJECT TO RESTRICTIONS AS SET FORTH IN SUBPARAGRAPH (C) (1) (ii) OF THE RIGHTS
IN TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, RIGHTS
IN TECHNICAL DATA AND COMPUTER SOFTWARE (OCTOBER 1988).

Version: May 11, 2009 3:27 pm

WebEx Communications, Inc.


3979 Freedom Circle
Santa Clara, CA 95054
Contents
Chapter 1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

NBR Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

SOAP API Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

API Responses: <wbxapi> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

Security Context Stanza: <securityContext></securityContext> . . . 3

Status Stanza: <response></response>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Results Stanza: <return></return> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Roles and Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

Chapter 2 API Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

DeleteMeetingXml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

deleteMeetingXmlRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

deleteMeetingXmlResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

DownloadFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

downloadFileRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

downloadFileResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

NBRFileOpenService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

How it works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

GetMeetingTicket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

User Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Cisco WebEx Network-Based Recording API iii


getMeetingTicketRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

getMeetingTicketResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

GetMeetingXml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

getMeetingXmlRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

getMeetingXmlResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

GetNBRConfIdList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

getNBRConfIdListRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

getNBRConfIdListResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37

GetNBRRecordIdList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

getNBRRecordIdListRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39

getNBRRecordIdListResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40

Chapter 3 WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

WSDL Listings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43

NBR File Open Web Service WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

NBR XML Web Service WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

iv Cisco WebEx Network-Based Recording API


List of Figures
Figure 2-1 • getMeetingXmlResponse (part 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Figure 2-2 • getMeetingXmlResponse (part 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Figure 2-3 • getMeetingXmlResponse (part 3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Figure 2-4 • getNBRRecordIdList Schema Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Cisco WebEx Network-Based Recording API v


vi Cisco WebEx Network-Based Recording API
List of Tables
Table 1-1 • Response Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

Table 1-2 • Service Operation Privileges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

Table 2-1 • NBR APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

Table 2-2 • deleteMeetingXmlRequest Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

Table 2-3 • deleteMeetingXmlResponse Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Table 2-4 • downloadFileRequest Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Table 2-5 • downloadFileResponse Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Table 2-6 • getMeetingTicketRequest Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Table 2-7 • getMeetingTicketResponse Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Table 2-8 • getMeetingXmlRequest Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Table 2-9 • getMeetingXmlResponse Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Table 2-10 • getMeetingXmlResponse Return Values with Attributes . . . . . . . . . . . . . . . . . . 30

Table 2-11 • getNBRConfIdListRequest Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Table 2-12 • getNBRConfIdListResponse Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Table 2-13 • getNBRRecordIdListRequest Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Table 2-14 • getNBRRecordIdListResponse Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Cisco WebEx Network-Based Recording API vii


viii Cisco WebEx Network-Based Recording API
About This Reference Guide
The Cisco WebEx Network-Based Recording (NBR) Web Services API Reference
Guide provides the primary reference materials to enable users to access and use
NBR to enhance their web meeting capabilities.

Audience for this Guide


This document is intended for product designers, developers, partners and system
integrators.

What this Guide Contains


The WebEx Network-Based Recording Reference Guide includes the following
chapters:
■ Chapter 1, Overview,
provides a brief overview of the document and NBR.
■ Chapter 2, API Functions,
provides details of the API functions exposed by NBR.
■ Chapter 3, WSDL,
provides a complete WSDL listing.

What’s New in Version 2.3.5


■ Support to allow users to download recordings has been added. See
“GetNBRRecordIdList” on page 39 for details.
■ The ability to download multiple recordings at one time has been added. See
“NBRFileOpenService” on page 13 for more details.

Providing feedback
WebEx Communications greatly appreciates any feedback that you provide about
our products and documentation.

Cisco WebEx Network-Based Recording API ix


Providing feedback about this documentation
If you have comments about WebEx documentation, please send an email message
to docs@webex.com.
In your email message, please specify the section to which your comment applies. If
you would like to receive a response to your comments, please include your name
and contact information in your message.

x Cisco WebEx Network-Based Recording API


1
Overview
Network-Based Recording (NBR) allows users to conduct web based meetings and
record the results for future review. This provides an effective way to distribute
information to the users who were unable to attend the event as it happened.
NBR allows users to record all aspects of a meeting to include: presentation, audio,
video, application sharing, Q&A, etc. Users are also able to edit the recordings and
post the finished product on the internet or intranet so that multiple users are able
to access the information at their convenience.

NBR Overview
Network-Based Recording (NBR) is the newest recording option available to Cisco
WebEx customers on release WBS25 or higher. NBR enables you to capture all
session content (chat, Q&A, polling, etc.), including WebEx integrated audio,
VOIP audio, or third-party audio conference for later playback and future
reference.
Recorded data is stored on the high availability, dedicated physical storage servers
within the WebEx secure data center facilities. Each facility is staffed 24 hours a day,
seven days a week. To gain access to any facility, one must be on the
approved-access list managed by the WebEx security team. Access is further
controlled by biometric security devices.
All recording data is backed up daily. Backed up data is stored both locally and
remotely for 90 days.

Cisco WebEx Network-Based Recording API 1


SOAP API Requests
A SOAP message is an XML document. It consists of a mandatory SOAP envelope,
an optional SOAP header, and a mandatory SOAP body. The envelope is the top
element of the XML document and is represented by an envelope element. The
envelope can contain namespace declarations as well as additional attributes such
as encoding style.
The target service address differs depending on the location of the NBR Web Service
and follows the following format:
http://[data center specific domain]/nbr/services/nbrXMLService

Note Contact the API Developer Services team (apidev@webex.com) to get the
exact URL for your site.

API Responses: <wbxapi>


The response from an API call is always text / XML. Depending on the call, the
response may have only the status and security context, or it may include data.
The root element for the response XML is wbxapi. For example:
<wbxapi>
<securityContext>
<cred>f383bb3bb65836202f0fff707b3d4ccc</cred>
</securityContext>
<response>
<result>
- status information -
</result>
</response>
<return>
… more information based on the request …
</return>
</wbxapi>

2 Cisco WebEx Network-Based Recording API


Security Context Stanza:
<securityContext></securityContext>
The securityContext encapsulates the Client's security credential (acquired at
login) and uniquely identifies the API session. This credential expires at logout or
after two hours of inactivity in order to prevent replay attacks and must be used in
the subsequent API call. An example of a securityContext stanza is:
<securityContext>
<cred>f383bb3bb65836202f0fff707b3d4ccc</cred>
</securityContext>

The cred element contains the unique credential for the current API session.
Although this credential will be unchanged until its expiration or logout of the
client, good practice is to use the response credential itself rather than a locally
stored copy. This makes it possible to support multiple active credentials for a user
with active workspaces associated with different organizations.

Status Stanza: <response></response>


Status is returned in a response stanza, for example:
<response>
<result>FAILURE</result>
<reason>User session has expired</reason>
<exceptionID>wbxc.expired_credential</exceptionID>
</response>

A successful call will contain only a SUCCESS result, unless the response is to a GET
command. In the case of a GET command, the elements count and totalCount are
included. Table 1-1 shows the elements used in the response stanza.

Table 1-1 • Response Elements


Element Description

result Mandatory. SUCCESS or FAILURE.

reason Only present on FAILURE.

exceptionID Additional Failure information.

count Returned with the GET command. The number of results returned
per the users specifications. I.E. a page size of 20 would return
count = 20 if the page was full of found items.
totalCount Returned with the GET command. The total number of results
satisfying the GET command. totalCount is returned only if it
differs from count.

Cisco WebEx Network-Based Recording API 3


Results Stanza: <return></return>
Many successful API responses return results other than just the status. In these
cases the requested data is an immediate child of the return element.
In the following example, a site ID is returned in response to a request:
<wbxapi>
<securityContext>
<cred>f383bb3bb65836202f0fff707b3d4ccc</cred>
</securityContext>
<response>
<result>SUCCESS</result>
</response>
<return>
<site>
<siteID>13342</siteID>
</site>
</return>
</wbxapi>

The following example shows multiple returned meeting domain names.


<wbxapi>
<securityContext>
<cred>f383bb3bb65836202f0fff707b3d4ccc</cred>
</securityContext>
<response>
<result>SUCCESS</result>
<count>3</count>
</response>
<return>
<meetingDomain>
<domainID>1234</domainID>
</meetingDomain>
<meetingDomain>
<domainID>1235</domainID>
</meetingDomain>
<meetingDomain>
<domainID>1236</domainID>
</meetingDomain>

4 Cisco WebEx Network-Based Recording API


</return>
</wbxapi>

Roles and Permissions


There are three WebEx service roles. After your service request is authenticated by
the WebEx server, your WebEx user name is mapped to one of the following three
roles:
■ Site Admin: A site administrator is usually an IT department employee who
will administer the sites, set up the site, create user accounts, and assign user
privileges.
■ Site Admin—View Only: A site administrator with view-only privileges can
generate reports and view information of the site, but cannot create, delete,
or modify user accounts.
■ Hosts: Hosts can schedule and start meetings. Hosts are usually the
presenters as well.
There are four classifications of privileges for what each role can do for each XML
API operation, as follows:
■ Site Privilege: A user’s ability to access information about all users and
meetings on that site.
■ Self Privilege: A user’s ability to view, delete, modify, or create his or her own
data, but not the data of others.
■ Public Privilege: A user’s ability to have others access the data.
■ No Privilege: No such privileges.
Table 1-2 provides the details of the privileges for each role. A user must have Site
Admin and Site privileges to access the NBR web services.

Table 1-2 • Service Operation Privileges


Service Operation Site Admin Site Admin - Host
View Only

NBR Service deleteMeetingXML Site No No


downloadFile Site No No
getMeetingTicket Site No No
getMeetingXML Site No No

Cisco WebEx Network-Based Recording API 5


6 Cisco WebEx Network-Based Recording API
2
API Functions
The NBR APIs allow users to access information that is unavailable through the
Cisco WebEx XML API Reference Guide. Users are able to retrieve all the metadata
that is associated with a recording (Chat, Q&A, Polling, Participant information,
etc.) using the NBR APIs. In addition, the APIs provide the user with an easy way
to download the saved files. Neither of these abilities are currently feasible using the
XML APIs.
This chapter provides the developer with an in-depth look at the functions available
for use.

APIs
Before accessing the NBR APIs, users need to have access to certain parameters,
including recordId and siteId. In order to retrieve this information, the user needs
to access the lstRecording function. For more information on this function see the
Cisco WebEx XML API Reference Guide.
Developers access NBR by incorporating the following API calls into their code. The
functions shown in Table 2-1 are the exposed NBR functions.

Table 2-1 • NBR APIs


Name Page

deleteMeetingXmlRequest on page 9

deleteMeetingXmlResponse on page 10

downloadFileRequest on page 12

downloadFileResponse on page 13

getMeetingTicketRequest on page 16

getMeetingTicketResponse on page 17

Cisco WebEx Network-Based Recording API 7


Table 2-1 • NBR APIs (Continued)
Name Page

getMeetingXmlRequest on page 26

getMeetingXmlResponse on page 27

getNBRConfIdListRequest on page 36

getNBRConfIdListResponse on page 37

getNBRRecordIdListRequest on page 39

getNBRRecordIdListResponse on page 40

8 Cisco WebEx Network-Based Recording API


DeleteMeetingXml
Sends a request to the NBR servers to delete a previously saved recording. WebEx
does not delete recordings unless specifically asked to by the user or 30 days after
the user cancels their WebEx subscription service.

deleteMeetingXmlRequest

Table 2-2 • deleteMeetingXmlRequest Parameters


Name Type Description

confId Long. Unique identifier for each WebEx session.

siteId Long. Unique identifier for each WebEx site.

ticket String. The ticket for the user’s current session.

Http Request:
http://<hostvip>:<port>/nbr/services/nbrXmlService?method=deleteMeet
ingXml&siteId=400009412&confId=4648067&ticket=IK4gi74h1BfKLY+
j6WyGbCnlDtYhzpZEMSdgOCGJc/Mcjh1hkl472eXjJW54B8EbQSnYbR/OmQjwpB7Hdm8
GKvIPZbQmouAugskje76jmM4=

Soap Request:
POST /nbr/services/nbrXmlService HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related,
text/*
User-Agent: Axis/1.1
Host: 172.16.197.134:2001
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 659

XML listing:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>

Cisco WebEx Network-Based Recording API 9


<ns1:deleteMeetingXml soapenv:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">
<siteId xsi:type="xsd:long">400009412</siteId>
<confId xsi:type="xsd:long">4648067</confId>
<ticket xsi:type="xsd:string">
OMuVaMerKdMZBwaOL3IsoCyCCaT/KnflDC3AiV6dzqFkyRmyKMUjm9M
AnyGpsk4zQSnYbR/OmQjwpB7Hdm8GKvFH90m0PJtFvCAl4EHu/bc=
</ticket>
</ns1:deleteMeetingXml>
</soapenv:Body>
</soapenv:Envelope>

deleteMeetingXmlResponse

Table 2-3 • deleteMeetingXmlResponse Parameters


Name Type Description

deleteMeetingXmlReturn String. Returns the status of the deleteMeetingXmlReturn


function. Will return either “Success” or one of the
following error messages:
■ The siteID is invalid.
■ The confId is invalid.

■ The ticket is invalid.

XML listing:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:deleteMeetingXmlResponse soapenv:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">
<ns1:deleteMeetingXmlReturn xsi:type="xsd:string">
Success
</ns1:deleteMeetingXmlReturn>
</ns1:deleteMeetingXmlResponse>
</soapenv:Body>
</soapenv:Envelope>

10 Cisco WebEx Network-Based Recording API


DownloadFile
These functions are used to retrieve a saved file from the NBR servers. Recorded
files can be streamed from the servers or downloaded from the server using these
calls. An example of the code required to download a file follows:
// create a new service call
Service service = new Service();
Call call = (Call) service.createCall();
// set target end point address and operation name. Please refer to
the WSDL for detailed information. The target end point address can
be different for each user depending on the location of the NBR storage
San Jose: http://nsj1wss.webex.com/nbr/services/nbrFileOpenService
Denver: http://ndv1wss.webex.com/nbr/services/nbrFileOpenService
London: http://nln1wss.webex.com/nbr/services/nbrFileOpenService

call.setTargetEndpointAddress(new URL(config.getNbrServiceUrl()));
call.setOperationName(new QName(serviceName, operationName));
// set the required parameters for RPC call. Please refer WSDL for
detailed information
call.addParameter("siteId", Constants.XSD_LONG, ParameterMode.IN);
call.addParameter("serviceName", Constants.XSD_STRING,
ParameterMode.IN);
call.addParameter("userName", Constants.XSD_STRING,
ParameterMode.IN);
call.addParameter("password", Constants.XSD_STRING,
ParameterMode.IN);
call.addParameter("recordId", Constants.XSD_LONG, ParameterMode.IN);
// create the data handler to handle the binary file attachment.
Please refer WSDL for detailed information
QName qnameAttachment = new QName(serviceName, "DataHandler");
call.registerTypeMapping(DataHandler.class, qnameAttachment,
JAFDataHandlerSerializerFactory.class,
JAFDataHandlerDeserializerFactory.class);
call.setReturnType(qnameAttachment);
// Invoke the web service RPC call and pass all parameters. The return
object will contain the NBR recording (ARF file)
Object ret = call.invoke(new Object[]
{
new Long(config.getSiteId()), new String(nbrvo.getServiceName()),
new String(config.getAdminUserName()),

Cisco WebEx Network-Based Recording API 11


new String(config.getAdminPassword()),
new Long(nbrvo.getRecordingId())
});
// Instantiate data handler
DataHandler[] rdh = (DataHandler[]) ret;
// Check the error message
if (rdh.length != 2) {
nbrvo.setResult(NbrErrMsg.ERR_RECORDING_DAMAGED);
return;
}
// If there is no error, then save the NBR recording content to a File
object
File fpFile = new File(rdh[0].getName());
String filesize = "";
String filename = "";
FileInputStream fi = null;
InputStreamReader is = null;
BufferedReader reader = null;
try {
fi = new FileInputStream(fpFile);
is = new InputStreamReader(fi, "UTF-8");
reader = new BufferedReader(is);
filename = reader.readLine();
filesize = reader.readLine();
}

downloadFileRequest

Table 2-4 • downloadFileRequest Parameters


Name Type Description

password String. WebEx user password.

recordId Long. The ID of the recording to be downloaded.

serviceName String. The type of meeting: MC, TC, EC,SC, or SaC.

siteId Long. Unique identifier for each WebEx site.

userName String. The user name of the person requesting the download.

12 Cisco WebEx Network-Based Recording API


downloadFileResponse
This function is used to retrieve the file as it is downloaded. The response SOAP
includes 2 files, the first one is the TXT file that includes the ARF file's name and
size, the second on is the NBR recording ARF file content.

Table 2-5 • downloadFileResponse Parameters


Name Type Description

downloadFileReturn SOAP with attachment. Returns the requested file.

NBRFileOpenService
The NBRFileOpenService utilizes the downloadFile function and permits users to
download all of their recordings at once. This allows customers to write a program
that accesses the service and automatically downloads all of their recordings instead
of having to access each recording separately. Users must know the siteID and the
site administrator’s userName and password before trying to download the
recordings.

How it works
When the user or their program goes to save the recordings, the following code is
executed:
<?xml version="1.0" encoding="UTF8"?>
<wsdl:definitions
targetNamespace="http://localhost:7001/nbr/services/NBRFileOpenService"
xmlns:impl="http://localhost:7001/nbr/services/NBRFileOpenService"
xmlns:intf="http://localhost:7001/nbr/services/NBRFileOpenService"
xmlns:apachesoap="http://xml.apache.org/xmlsoap"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns1="NBRFileOpenService"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://localhost:7001/nbr/services/NBRFileOpenServi
ce">
<import namespace="NBRFileOpenService"/>
<import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ArrayOf_tns1_DataHandler">
<complexContent>
<restriction base="soapenc:Array">

Cisco WebEx Network-Based Recording API 13


<attribute ref="soapenc:arrayType"
wsdl:arrayType="tns1:DataHandler[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="downloadFileResponse">
<wsdl:part name="downloadFileReturn"
type="impl:ArrayOf_tns1_DataHandler"/>
</wsdl:message>
<wsdl:message name="downloadFileRequest">
<wsdl:part name="siteId" type="xsd:long"/>
<wsdl:part name="serviceName" type="xsd:string"/>
<wsdl:part name="userName" type="xsd:string"/>
<wsdl:part name="password" type="xsd:string"/>
<wsdl:part name="recordId" type="xsd:long"/>
</wsdl:message>
<wsdl:portType name="NBRFileOpenService">
<wsdl:operation name="downloadFile" parameterOrder="siteId
serviceName userName password recordId">
<wsdl:input name="downloadFileRequest"
message="impl:downloadFileRequest"/>
<wsdl:output name="downloadFileResponse"
message="impl:downloadFileResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="NBRFileOpenServiceSoapBinding"
type="impl:NBRFileOpenService">
<wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="downloadFile">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="downloadFileRequest">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://wbxservice.nbr.webservice.webex.com"/>
</wsdl:input>
<wsdl:output name="downloadFileResponse">

14 Cisco WebEx Network-Based Recording API


<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost:7001/nbr/services/NBRFileOpenService"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="NBRFileOpenServiceService">
<wsdl:port name="NBRFileOpenService"
binding="impl:NBRFileOpenServiceSoapBinding">
<wsdlsoap:address
location="http://localhost:7001/nbr/services/NBRFileOpenService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Cisco WebEx Network-Based Recording API 15


GetMeetingTicket
In order to access the capabilities of NBR, a user must first sign in and retrieve a
ticket from the service. This ticket identifies the user and allows them access to the
NBR service.

User Authentication
The getMeetingTicket functions are used to retrieve the ticket that allows the user
to access the NBR servers. The user initially uses the getMeetingTicketRequest
function to ask for this ticket. This requires the user to send their username and
password to the servers. The getMeetingTicketResponse function is then used to
accept the returned ticket. The user then uses this ticket throughout the session for
authentication purposes.

getMeetingTicketRequest

Table 2-6 • getMeetingTicketRequest Parameters


Name Type Description

password String. WebEx user password.

service String. The type of meeting: MC, TC, EC,SC, or SaC.

siteId Long. Unique identifier for each WebEx site.

username String. The user name of the user.

Http Request:
http://<hostvip>:<port>/nbr/services/nbrXmlService?method=getMeeting
Ticket&siteId=400009412&username=hostid&password=hostpassword&servic
e=MC

Soap Request:
POST /nbr/services/nbrXmlService HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related,
text/*
User-Agent: Axis/1.1
Host: 172.16.197.134:2001
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 613

XML listing:

16 Cisco WebEx Network-Based Recording API


<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getMeetingTicket soapenv:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">
<siteId xsi:type="xsd:long">400009412</siteId>
<username xsi:type="xsd:string">hostid</username>
<password xsi:type="xsd:string">hostpassword</password>
<service xsi:type="xsd:string">MC</service>
</ns1:getMeetingTicket>
</soapenv:Body>
</soapenv:Envelope>

getMeetingTicketResponse

Table 2-7 • getMeetingTicketResponse Parameters


Name Type Description

getMeetingTicketReturn String. Returns the requested ticket. An unsuccessful


response returns one of the following error
messages:
■ The siteID is invalid.

■ The user is invalid or inactive.

■ The user is not site admin.


■ The password is not correct.

■ The service value should be matched


MC/TC/EC/SaC/SC/MW.

XML listing:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getMeetingTicketResponse soapenv:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">

Cisco WebEx Network-Based Recording API 17


<ns1:getMeetingTicketReturn xsi:type="xsd:string">
IK4gi74h1BfKLYnj6WyGbCnlDtYhzpZEMSdgOCGJc/Mcjh1hkl472eX
jJW54B8EbQSnYbR/OmQjwpB7Hdm8GKvIPZbQmouAugskje76jmM4=
</ns1:getMeetingTicketReturn>
</ns1:getMeetingTicketResponse>
</soapenv:Body>
</soapenv:Envelope>

18 Cisco WebEx Network-Based Recording API


GetMeetingXml
The getMeetingXML functions are used to access and retrieve the XML content for
a recording. The returned XML holds all of the information that was saved for the
meeting. The schema for the XML follows:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="FileDump">
<xs:complexType>
<xs:sequence>
<xs:element ref="MeetingDetail"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Choice">
<xs:complexType mixed="true">
<xs:attribute name="is_correct" use="required">
<xs:simpleType>
<xs:restriction base="xs:boolean"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="check_count" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="vote_users" type="xs:string"
use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Content">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Item"/>
</xs:choice>
<xs:attribute name="user_count">

Cisco WebEx Network-Based Recording API 19


<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="voted_user_count">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="question_count">
<xs:simpleType>
<xs:restriction base="xs:integer">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="CorporateEmailID">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DateTimeUTC">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="EndTimeUTC">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>

20 Cisco WebEx Network-Based Recording API


</xs:element>
<xs:element name="Item">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Question"/>
<xs:element ref="Choice"/>
</xs:choice>
<xs:attribute name="ItemID">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="vote_users" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="JoinDateTimeUTC">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LeaveDateTimeUTC">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LoginName">
<xs:complexType mixed="true">
<xs:attribute name="UID" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:attribute>

Cisco WebEx Network-Based Recording API 21


</xs:complexType>
</xs:element>
<xs:element name="MeetingDetail">
<xs:complexType>
<xs:sequence>
<xs:element ref="ModeratorName"/>
<xs:element ref="ModeratorLogin"/>
<xs:element ref="MeetingName"/>
<xs:element ref="StartTimeUTC"/>
<xs:element ref="EndTimeUTC"/>
<xs:element ref="ModeratorEmail"/>
<xs:element ref="ParticipantList"/>
<xs:element ref="MeetingSession" maxOccurs="3"/>
</xs:sequence>
<xs:attribute name="id" use="required">
<xs:simpleType>
<xs:restriction base="xs:int"/>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="MeetingName">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="MeetingSession">
<xs:complexType>
<xs:sequence>
<xs:element ref="Message" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="chat"/>
<xs:enumeration value="polling"/>

22 Cisco WebEx Network-Based Recording API


<xs:enumeration value="qa"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Message">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="LoginName"/>
<xs:element ref="DateTimeUTC"/>
<xs:element ref="TargetName"/>
<xs:element ref="StartTimeUTC"/>
<xs:element ref="EndTimeUTC"/>
<xs:element ref="Content"/>
<xs:element ref="Message"/>
</xs:choice>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="deferred"/>
<xs:enumeration value="dismissed"/>
<xs:enumeration value="private"/>
<xs:enumeration value="public"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ind" type="xs:string" use="required"/>
<xs:attribute name="MessageID">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Priority">
<xs:simpleType>
<xs:restriction base="xs:string">

Cisco WebEx Network-Based Recording API 23


<xs:enumeration value="High"/>
<xs:enumeration value="Low"/>
<xs:enumeration value="Medium"/>
<xs:enumeration value="NA"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ModeratorEmail">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="ModeratorLogin">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="ModeratorName">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="Participant">
<xs:complexType>
<xs:sequence>
<xs:element ref="LoginName"/>
<xs:element ref="JoinDateTimeUTC"/>
<xs:element ref="LeaveDateTimeUTC"/>
<xs:element ref="CorporateEmailID"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ParticipantList">
<xs:complexType>

24 Cisco WebEx Network-Based Recording API


<xs:sequence>
<xs:element ref="Participant" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="list" use="required">
<xs:simpleType>
<xs:restriction base="xs:integer">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Question">
<xs:complexType mixed="true">
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="multiple answer"/>
<xs:enumeration value="short answer"/>
<xs:enumeration value="single answer"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="choice_count" use="required">
<xs:simpleType>
<xs:restriction base="xs:integer"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="no_check_count" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="StartTimeUTC">

Cisco WebEx Network-Based Recording API 25


<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="TargetName">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>

getMeetingXmlRequest

Table 2-8 • getMeetingXmlRequest Parameters


Name Type Description

confId Long. Unique identifier for each WebEx session.

siteId Long. Unique identifier for each WebEx site.

ticket String. The ticket for the user’s current session.

Http Request
http://<hostvip>:<port>/nbr/services/nbrXmlService?method=getMeeting
Xml&siteId=400009412&confId=998923752&ticket=IK4gi74h1BfKLY+
j6WyGbCnlDtYhzpZEMSdgOCGJc/Mcjh1hkl472eXjJW54B8EbQSnYbR/OmQjwpB7Hdm8
GKvIPZbQmouAugskje76jmM4=

Soap Request:
POST /nbr/services HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related,
text/*
User-Agent: Axis/1.1
Host: localhost
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 563

26 Cisco WebEx Network-Based Recording API


XML listing:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getMeetingXml soapenv:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">
<siteId xsi:type="xsd:long">400009412</siteId>
<confId xsi:type="xsd:long">998923752</confId>
<ticket xsi:type="xsd:string">
IK4gi74h1BfKLYnj6WyGbCnlDtYhzpZEMSdgOCGJc/Mcjh1hkl472eX
jJW54B8EbQSnYbR/OmQjwpB7Hdm8GKvIPZbQmouAugskje76jmM4=
</ticket>
</ns1:getMeetingXml>
</soapenv:Body>
</soapenv:Envelope>

getMeetingXmlResponse

Figure 2-1 • getMeetingXmlResponse (part 1)

Cisco WebEx Network-Based Recording API 27


Figure 2-2 • getMeetingXmlResponse (part 2)

28 Cisco WebEx Network-Based Recording API


Figure 2-3 • getMeetingXmlResponse (part 3)

Table 2-9 provides a list of return parameters and their value. Table 2-10 provides
a list of return parameters that have associated attributes with them. Information
from both tables are found in the response from the getMeetingXMLResponse
function.

Table 2-9 • getMeetingXmlResponse Return Values


Name Type Description

CorporateEmailID String. The email of a participant.

DateTimeUTC String. The stated start time of a meeting in UTC format.

EndTimeUTC String. The meeting end time in UTC format.

JoinDateTimeUTC String. When a participant joined the meeting in UTC format.

LeaveDateTimeUTC String. When a participant left the meeting in UTC format.

Cisco WebEx Network-Based Recording API 29


Table 2-9 • getMeetingXmlResponse Return Values (Continued)
Name Type Description

MeetingName String. The name of the meeting.

ModeratorEmail String. The email of the moderator for the meeting.

ModeratorLogin String. The login information of the moderator for the meeting.

ModeratorName String. The name of the moderator.

StartTimeUTC String. The actual start time of the meeting in UTC format.

TargetName String. The designated recipient of a particular message.

Table 2-10 • getMeetingXmlResponse Return Values with Attributes


Name/Attribute Type Description

Choice/check_count String. How many users selected this answer for a


question.
Choice/is_correct Boolean. Tells if an answer to a question is correct.

Choice/vote_users String. The individual user IDs of those users who


chose an answer.
Content/question_count Integer. The number of questions being asked.

Content/user_count String. How many users should submit an answer for


a poll.
Content/voted_user_count String. How many users submitted an answer for a
poll.
Item/itemID String. The ID of an item.

Item/vote_users String. The individual user IDs of those users who


chose an answer.
LoginName/UUID String. The login name of a user.

MeetingDetail/ID Integer. The ID of a meeting.

MeetingSession/type String. The type of meeting session.

Message/ind String. The message index number.

Message/messageID String. The ID of the message.

Message/priority String. The message priority.

Message/type String. The message type.

ParticipantList/list Integer. List of participants.

Question/choice_count Integer. The number of possible answers for a


question.
Question/no_check_count String. How many users have yet to submit an
answer to a poll.
Question/type String. The type of question being asked.

30 Cisco WebEx Network-Based Recording API


XML listing:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getMeetingXmlResponse soapenv:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">
<getMeetingXmlReturn href="#id0"/>
</ns1:getMeetingXmlResponse>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Document"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://xml.apache.org/xml-soap">
<FileDump>
<MeetingDetail id="998923752">
<ModeratorName>karl qin</ModeratorName>
<ModeratorLogin></ModeratorLogin>
<MeetingName>karl-1016</MeetingName>
<StartTimeUTC>2321961344</StartTimeUTC>
<EndTimeUTC>2322540282</EndTimeUTC>
<ModeratorEmail>karl@hf.webex.com</ModeratorEmail>
<ParticipantList list="2">
<Participant>
<LoginName NodeID="100">Your name</LoginName>
<JoinDateTimeUTC>1160980889</JoinDateTimeUTC>
<LeaveDateTimeUTC>1161559826</LeaveDateTimeUTC>
<CorporateEmailID></CorporateEmailID>
</Participant>
<Participant>
<LoginName NodeID="101">karl qin</LoginName>
<JoinDateTimeUTC>1160980889</JoinDateTimeUTC>
<LeaveDateTimeUTC>1161559826</LeaveDateTimeUTC>
<CorporateEmailID>
karl@hf.webex.com
</CorporateEmailID>
</Participant>

Cisco WebEx Network-Based Recording API 31


</ParticipantList>
<MeetingSession type="chat">
<Message ind="" type="public">
<LoginName NodeID="101">karl qin</LoginName>
<DateTimeUTC>1161208868</DateTimeUTC>
<TargetName GroupID="10">
All Participants
</TargetName>
<Content>
fghdgfsgfdsfgsdfg das fasdf as
</Content>
</Message>
<Message ind="" type="public">
<LoginName NodeID="101">karl qin</LoginName>
<DateTimeUTC>1161213738</DateTimeUTC>
<TargetName GroupID="11">
All Attendees
</TargetName>
<Content>Your content here</Content>
</Message>
<Message ind="" type="public">
<LoginName NodeID="101">karl qin</LoginName>
<DateTimeUTC>1161223922</DateTimeUTC>
<TargetName GroupID="12">
Host &amp; Presenter
</TargetName>
<Content>Your content here</Content>
</Message>
</MeetingSession>
<MeetingSession type="polling">
<Message ind="" type="public" MessageID="1000">
<StartTimeUTC>1161338143</StartTimeUTC>
<EndTimeUTC>1161349586</EndTimeUTC>
<Content question_count="3" user_count="2"
voted_user_count="2">
<Item ItemID="100001" vote_users="100">

32 Cisco WebEx Network-Based Recording API


<Question type="multiple answer"
choice_count="2" no_check_count="1">
Question goes here
</Question>
<Choice check_count="1" cid="0" is_correct="0"
vote_users="">sadf</Choice>
<Choice check_count="0" cid="1" is_correct="1"
vote_users="100">asd</Choice>
</Item>
<Item ItemID="100002" vote_users="100,101">
<Question type="multiple answer"
choice_count="2" no_check_count="0">
Question goes here
</Question>
<Choice check_count="0" cid="0" is_correct="0"
vote_users="">fdasf</Choice>
<Choice check_count="1" cid="1" is_correct="0"
vote_users="100">sdf</Choice>
<Choice check_count="0" cid="2" is_correct="0"
vote_users="">asddf</Choice>
<Choice check_count="0" cid="3" is_correct="1"
vote_users="">asdf</Choice>
<Choice check_count="0" cid="4" is_correct="0"
vote_users="">das</Choice>
<Choice check_count="2" cid="5" is_correct="1"
vote_users="100,101">f</Choice>
<Choice check_count="0" cid="6" is_correct="0"
vote_users="">asdfasdf</Choice>
<Choice check_count="1" cid="7" is_correct="0"
vote_users="101">asddf</Choice>
<Choice check_count="0" cid="8" is_correct="0"
vote_users="">sda</Choice>
<Choice check_count="0" cid="9" is_correct="0"
vote_users="">f</Choice>
</Item>
<Item ItemID="100003" vote_users="100">
<Question type="multiple answer"
choice_count="2" no_check_count="2">
Question goes here
</Question>
<Choice check_count="0" cid="0" is_correct="1">
asdf</Choice>

Cisco WebEx Network-Based Recording API 33


<Choice check_count="0" cid="1" is_correct="1">
asd</Choice>
<Choice check_count="0" cid="2" is_correct="1">
dfasdfas</Choice>
<Choice check_count="0" cid="3" is_correct="1">
dfasdf</Choice>
<Choice check_count="0" cid="4" is_correct="1">
asdf</Choice>
</Item>
</Content>
</Message>
</MeetingSession>
<MeetingSession type="qa">
<Message ind="question" type="public" Priority="High">
<LoginName NodeID="100">Your name</LoginName>
<DateTimeUTC>1161105322</DateTimeUTC>
<Content>sdfsdfasdfasfsdfasdfsdf</Content>
<TargetName NodeID="101">karl qin</TargetName>
<Message ind="answer" type="">
<LoginName>Email address</LoginName>
<DateTimeUTC>1161105322</DateTimeUTC>
<Content>Your content here</Content>
</Message>
</Message>
<Message ind="question" type="private" Priority="Low">
<LoginName>Your name</LoginName>
<DateTimeUTC>1161105322</DateTimeUTC>
<Content>3453534534</Content>
<TargetName NodeID="101">karl qin</TargetName>
<Message ind="answer" type="">
<LoginName>Email address</LoginName>
<DateTimeUTC>1161105322</DateTimeUTC>
<Content>Your content here</Content>
</Message>
</Message>
</MeetingSession>
</MeetingDetail>
</FileDump>

34 Cisco WebEx Network-Based Recording API


</multiRef>
</soapenv:Body>
</soapenv:Envelope>

The following error messages are returned if the call was unsuccessful.
■ The siteId is invalid.
■ The confId is invalid.
■ The ticket is invalid.

Cisco WebEx Network-Based Recording API 35


GetNBRConfIdList
Returns the confIDs for all recorded meetings on the site for each of the following
services: MC, TC, EC, SC, SaC. The general purpose XML API lstRecording
function (see the Cisco WebEx XML API Reference Guide) returns additional
recording information and allows filtering by date range and host.

getNBRConfIdListRequest

Table 2-11 • getNBRConfIdListRequest Parameters


Name Type Description

siteId Long. Unique identifier for each WebEx site.

ticket String. The ticket for the user’s current session.

Http Request
http://<hostvip>:<port>/nbr/services/nbrXmlService?method=getMeeting
Xml&siteId=400009412&confId=998923752&ticket=IK4gi74h1BfKLY+
j6WyGbCnlDtYhzpZEMSdgOCGJc/Mcjh1hkl472eXjJW54B8EbQSnYbR/OmQjwpB7Hdm8
GKvIPZbQmouAugskje76jmM4=

Soap Request
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getNBRConfIdList
soapenv:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">
<siteId href="#id0"/>
<ticket xsi:type="xsd:string">
T6GJfsFPttOvVCFCzAEsOWZDUqmnScawEfc5aghK5MJTgtJyYrEMZTT3
4L9E2L+SZ4ZUVTNv2FlEk9/khkrFSvIPZbQmouAugskje76jmM4=
</ticket>
</ns1:getNBRConfIdList>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="xsd:long" xmlns:soapenc=
"http://schemas.xmlsoap.org/soap/encoding/">
400011074

36 Cisco WebEx Network-Based Recording API


</multiRef>
</soapenv:Body>
</soapenv:Envelope>

getNBRConfIdListResponse

Table 2-12 • getNBRConfIdListResponse Parameters


Name Type Description

getNBRConfIdListReturn XML Document. Returns the confID list for the WebEx
service: MC, TC, EC, SaC, SC.

XML listing:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getNBRConfIdListResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">
<ns1:getNBRConfIdListReturn href="#id0"/>
</ns1:getNBRConfIdListResponse>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:Document"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://xml.apache.org/xml-soap">
<NBRConfIDList>
<ConfID>258287597</ConfID>
<ConfID>258287598</ConfID>
<ConfID>1036379567</ConfID>
<ConfID>258270170</ConfID>
<ConfID>258209834</ConfID>
<ConfID>258153118</ConfID>
<ConfID>258270145</ConfID>
<ConfID>258128714</ConfID>
<ConfID>258270149</ConfID>
<ConfID>258270148</ConfID>

Cisco WebEx Network-Based Recording API 37


<ConfID>258270139</ConfID>
<ConfID>258153179</ConfID>
<ConfID>258153220</ConfID>
<ConfID>258150587</ConfID>
<ConfID>258269590</ConfID>
</NBRConfIDList>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>

38 Cisco WebEx Network-Based Recording API


GetNBRRecordIdList
This service lists record IDs for a customer’s site. The RecordIdList contains three
types of record IDs:
■ service upload recording record ID
■ miscellaneous upload recording record ID
■ NBR recording record ID

Figure 2-4 • getNBRRecordIdList Schema Diagram

getNBRRecordIdListRequest

Table 2-13 • getNBRRecordIdListRequest Parameters


Name Type Description

password String. WebEx user password.

siteId Long. Unique identifier for each WebEx site.

userName String. The user name of the user.

Soap Request
POST /nbr/services HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related,
text/*
User-Agent: Axis/1.2.1
Host: 10.224.57.91:2001
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 717

XML Listing
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

Cisco WebEx Network-Based Recording API 39


<soapenv:Body>
<ns1:getNBRRecordIdList
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">
<siteId href="#id0"/>
<userName xsi:type="xsd:string">king</userName>
<password xsi:type="xsd:string">pass</password>
</ns1:getNBRRecordIdList>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="xsd:long"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
400011074
</multiRef>
</soapenv:Body>
</soapenv:Envelope>

getNBRRecordIdListResponse
When the user retrieves the RecordIdList, the RecordId parameter has two possible
values:
■ NBR - Denotes that the recording being retrieved was created by the NBR
system.
■ Upload - Denotes that the recording being retrieved was uploaded to the
servers by a user and not created by the NBR system.

Table 2-14 • getNBRRecordIdListResponse Parameters


Name Type Description

RecordId {NBR, Upload} Denotes the recording was uploaded by a user or created by
NBR.

SOAP Response
HTTP/1.1 200 OK
Date: Wed, 10 Dec 2008 08:01:26 GMT
Content-Type: text/xml; charset=utf-8
Connection: Close

XML Listing
<?xml version="1.0" encoding="UTF-8"?>

40 Cisco WebEx Network-Based Recording API


<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getNBRRecordIdListResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="nbrXmlService">
<ns1:getNBRRecordIdListReturn href="#id0"/>
</ns1:getNBRRecordIdListResponse>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:Document"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://xml.apache.org/xml-soap">
<RecordIdList>
<RecordId type="NBR">971775672</RecordId>
<RecordId type="NBR">971775657</RecordId>
<RecordId type="Upload">971775642</RecordId>
<RecordId type="Upload">971775582</RecordId>
<RecordId type="NBR">971775567</RecordId>
<RecordId type="Upload">971775562</RecordId>
<RecordId type="Upload">971775557</RecordId>
<RecordId type="NBR">971775532</RecordId>
<RecordId type="NBR">971775487</RecordId>
</RecordIdList>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>

Cisco WebEx Network-Based Recording API 41


42 Cisco WebEx Network-Based Recording API
3
WSDL
WSDL Listings
NBR File Open Web Service WSDL
<?xml version="1.0" encoding="UTF8"?>
<wsdl:definitions
targetNamespace="http://localhost:7001/nbr/services/NBRFileOpenService"
xmlns:impl="http://localhost:7001/nbr/services/NBRFileOpenService"
xmlns:intf="http://localhost:7001/nbr/services/NBRFileOpenService"
xmlns:apachesoap="http://xml.apache.org/xmlsoap"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns1="NBRFileOpenService"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace=
"http://localhost:7001/nbr/services/NBRFileOpenService">
<import namespace="NBRFileOpenService"/>
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ArrayOf_tns1_DataHandler">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType"
wsdl:arrayType="tns1:DataHandler[]"/>
</restriction>
</complexContent>
</complexType>

Cisco WebEx Network-Based Recording API 43


</schema>
</wsdl:types>
<wsdl:message name="downloadFileResponse">
<wsdl:part name="downloadFileReturn"
type="impl:ArrayOf_tns1_DataHandler"/>
</wsdl:message>
<wsdl:message name="downloadFileRequest">
<wsdl:part name="siteId" type="xsd:long"/>
<wsdl:part name="serviceName" type="xsd:string"/>
<wsdl:part name="userName" type="xsd:string"/>
<wsdl:part name="password" type="xsd:string"/>
<wsdl:part name="recordId" type="xsd:long"/>
</wsdl:message>
<wsdl:portType name="NBRFileOpenService">
<wsdl:operation name="downloadFile" parameterOrder="siteId
serviceName userName password recordId">
<wsdl:input name="downloadFileRequest"
message="impl:downloadFileRequest"/>
<wsdl:output name="downloadFileResponse"
message="impl:downloadFileResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="NBRFileOpenServiceSoapBinding"
type="impl:NBRFileOpenService">
<wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="downloadFile">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="downloadFileRequest">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://wbxservice.nbr.webservice.webex.com"/>
</wsdl:input>
<wsdl:output name="downloadFileResponse">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost:7001/nbr/services/NBRFileOpenService"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

44 Cisco WebEx Network-Based Recording API


<wsdl:service name="NBRFileOpenServiceService">
<wsdl:port name="NBRFileOpenService"
binding="impl:NBRFileOpenServiceSoapBinding">
<wsdlsoap:address
location="http://localhost:7001/nbr/services/NBRFileOpenService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

NBR XML Web Service WSDL


<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
xmlns:impl="http://localhost/nbr/services/nbrXmlService"
xmlns:intf="http://localhost/nbr/services/nbrXmlService"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://localhost/nbr/services/nbrXmlService">
<wsdl:message name="getMeetingTicketRequest">
<wsdl:part name="siteId" type="xsd:long"/>
<wsdl:part name="username" type="xsd:string"/>
<wsdl:part name="password" type="xsd:string"/>
<wsdl:part name="service" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="getMeetingTicketResponse">
<wsdl:part name="getMeetingTicketReturn" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="getMeetingXmlResponse">
<wsdl:part name="getMeetingXmlReturn" type="apachesoap:Document"/>
</wsdl:message>
<wsdl:message name="getMeetingXmlRequest">
<wsdl:part name="siteId" type="xsd:long"/>
<wsdl:part name="confId" type="xsd:long"/>
<wsdl:part name="ticket" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="getNBRConfIdListRequest">
<wsdl:part name="siteId" type="xsd:long"/>

Cisco WebEx Network-Based Recording API 45


<wsdl:part name="ticket" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="getNBRConfIdListResponse">
<wsdl:part name="getNBRConfIdListReturn"
type="apachesoap:Document"/>
</wsdl:message>
<wsdl:message name="getNBRRecordIdListResponse">
<wsdl:part name="getNBRRecordIdListReturn"
type="apachesoap:Document"/>
</wsdl:message>
<wsdl:message name="getNBRRecordIdListRequest">
<wsdl:part name="siteId" type="xsd:long"/>
<wsdl:part name="userName" type="xsd:string"/>
<wsdl:part name="password" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="deleteMeetingXmlRequest">
<wsdl:part name="siteId" type="xsd:long"/>
<wsdl:part name="confId" type="xsd:long"/>
<wsdl:part name="ticket" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="deleteMeetingXmlResponse">
<wsdl:part name="deleteMeetingXmlReturn" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="NBRXmlService">
<wsdl:operation name="getMeetingXml" parameterOrder="siteId
confId ticket">
<wsdl:input name="getMeetingXmlRequest"
message="impl:getMeetingXmlRequest"/>
<wsdl:output name="getMeetingXmlResponse"
message="impl:getMeetingXmlResponse"/>
</wsdl:operation>
<wsdl:operation name="getNBRConfIdList" parameterOrder="siteId
ticket">
<wsdl:input name="getNBRConfIdListRequest"
message="impl:getNBRConfIdListRequest"/>
<wsdl:output name="getNBRConfIdListResponse"
message="impl:getNBRConfIdListResponse"/>
</wsdl:operation>

46 Cisco WebEx Network-Based Recording API


<wsdl:operation name="getNBRRecordIdList"
parameterOrder="siteId userName password">
<wsdl:input name="getNBRRecordIdListRequest"
message="impl:getNBRRecordIdListRequest"/>
<wsdl:output name="getNBRRecordIdListResponse"
message="impl:getNBRRecordIdListResponse"/>
</wsdl:operation>
<wsdl:operation name="deleteMeetingXml" parameterOrder="siteId
confId ticket">
<wsdl:input name="deleteMeetingXmlRequest"
message="impl:deleteMeetingXmlRequest"/>
<wsdl:output name="deleteMeetingXmlResponse"
message="impl:deleteMeetingXmlResponse"/>
</wsdl:operation>
<wsdl:operation name="getMeetingTicket" parameterOrder="siteId
username password service">
<wsdl:input name="getMeetingTicketRequest"
message="impl:getMeetingTicketRequest"/>
<wsdl:output name="getMeetingTicketResponse"
message="impl:getMeetingTicketResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="nbrXmlServiceSoapBinding"
type="impl:NBRXmlService">
<wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getMeetingXml">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://wbxservice.nbr.webservice.webex.com"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/nbr/services/nbrXmlService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getNBRConfIdList">
<wsdlsoap:operation/>

Cisco WebEx Network-Based Recording API 47


<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://wbxservice.nbr.webservice.webex.com"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/nbr/services/nbrXmlService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getNBRRecordIdList">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://wbxservice.nbr.webservice.webex.com"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/nbr/services/nbrXmlService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="deleteMeetingXml">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://wbxservice.nbr.webservice.webex.com"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/nbr/services/nbrXmlService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getMeetingTicket">
<wsdlsoap:operation/>
<wsdl:input>

48 Cisco WebEx Network-Based Recording API


<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://wbxservice.nbr.webservice.webex.com"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/nbr/services/nbrXmlService"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="NBRXmlServiceService">
<wsdl:port name="nbrXmlService"
binding="impl:nbrXmlServiceSoapBinding">
<wsdlsoap:address
location="http://localhost/nbr/services/nbrXmlService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Cisco WebEx Network-Based Recording API 49


50 Cisco WebEx Network-Based Recording API

Вам также может понравиться