98
Americas Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (6387) Fax: 408 527-0883 Cisco Multicast Manager Developer’s Guide and API Reference, 3.2 April 2011 Text Part Number: OL-21511-03

Cisco Multicast Manager Developer’s Guide and API · PDF fileUSA Tel: ... Summary of the API Operations and Java Beans 1-3 ... Cisco Multicast Manager Developer’s Guide and API

Embed Size (px)

Citation preview

Americas HeadquartersCisco Systems, Inc.170 West Tasman DriveSan Jose, CA 95134-1706 USAhttp://www.cisco.comTel: 408 526-4000

800 553-NETS (6387)Fax: 408 527-0883

Cisco Multicast Manager Developer’s Guide and API Reference, 3.2April 2011

Text Part Number: OL-21511-03

THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS.

THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY.

The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB’s public domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California.

NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS” WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE.

IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates in the U.S. and other countries. To view a list of Cisco trademarks, go to this URL: www.cisco.com/go/trademarks. Third-party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1110R)

Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.

Cisco Multicast Manager Developer’s Guide and API Reference, 3.2©2011 Cisco Systems, Inc. All rights reserved.

iiiCisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

C O N T E N T S

Preface iii

Objectives iii

Audience iii

Organization iv

Conventions iv

Related Documentation v

Obtaining Documentation, Obtaining Support, and Security Guidelines v

C H A P T E R 1 Getting Started with the Cisco Multicast Manager SDK 1-1

WSDL-Based Services 1-1

JAXB 1-2

1-3

Framework 1-3

SOAP Message Transmission Optimization Mechanism 1-3

Summary of the API Operations and Java Beans 1-3

Contents of the SDK and Web Services Sample Code Structure 1-4

SDK Source Files 1-4

Downloading the SDK 1-4

SDK Directory Structure and Key Files 1-4

Setting Up to Use the API 1-5

Required Setup for HTTPS 1-6

Required Setup for HTTP 1-9

Running the Ant Task to Compile the SDK 1-10

Compiling with an IDE 1-12

Running Client Code 1-13

C H A P T E R 2 Cisco Multicast Manager API Reference 2-1

API Operations 2-1

Add Interface Polling 2-2

Add Layer 2 Polling 2-4

Add Layer 3 and Layer 2 Devices in Bulk 2-5

Add RP Polling 2-6

Add RPF Polling 2-7

Add S,G Polling 2-8

Contents

ivCisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Add S,G Time-Based Polling 2-9

Add SSM Polling 2-11

Add Tree Polling 2-12

Add Video Probes in Bulk 2-13

Add Video Probe Polling 2-14

Add VidMon Polling 2-15

Delete Devices in Bulk 2-17

Delete Interface Polling 2-18

Delete Layer 2 Polling 2-19

Delete RP Polling 2-20

Delete RPF Polling 2-21

Delete S,G Polling 2-22

Delete SSM Polling 2-23

Delete Tree Polling 2-25

Delete Video Probe Polling 2-27

Delete VidMon Polling 2-28

Get Interface Polling Configuration 2-29

Get Layer 2 Polling Configuration 2-30

Get Multicast Trace Image File 2-31

Get Multicast Devices in a Domain 2-32

Get Multicast Events 2-33

Get RP Polling Configuration 2-34

Get RPF Polling Configuration 2-35

Get S,G on a Device 2-36

Get S,G in a Domain 2-38

Get S,G Polling Configuration 2-38

Get S,G Time-Based Polling Configuration 2-39

Get SSM Polling Configuration 2-41

Get Tree Polling Configuration 2-41

Get Video Probe Polling Configuration 2-42

Get VidMon Polling Configuration 2-43

Set Global Polling Configuration 2-44

Spring Framework Beans 2-46

Message Factory Bean 2-46

JAXB Marshaller Bean 2-46

Security Interceptor Bean 2-47

A P P E N D I X A CMM Web Services Schema A-1

cmmWebServices.xsd A-1

Contents

vCisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

A P P E N D I X B cmmNB.wsdl File B-1

cmmNB.wsdl B-1

Contents

viCisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

iiiCisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Preface

This preface describes the objectives, audience, organization, and conventions of the Cisco Multicast Manager Developer’s Guide and API Reference, 3.2. It refers you to related publications and describes online sources of technical information.

Cisco Multicast Manager (CMM) is a web-based software application that discovers the IP multicast devices in your network, monitors IP multicast, and diagnoses problems. As initially installed, CMM does not require client software—the CMM SDK is provided to enable development of client software.

This guide describes how to use the CMM SDK to develop your own client application that communicates with the CMM server.

This preface includes:

• Objectives, page iii

• Audience, page iii

• Organization, page iv

• Conventions, page iv

• Related Documentation, page v

• Obtaining Documentation, Obtaining Support, and Security Guidelines, page v

ObjectivesThis guide describes how to use the CMM SDK to develop a client application that can communicate with the CMM server.

AudienceThis guide is for software developers who use the CMM SDK to develop applications to communicate with CMM. Developers should have:

• Basic network management skills

• Basic multicast knowledge

• Knowledge of Java, XML, and Web Services Definition Language (WSDL)

ivCisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Preface

OrganizationThis guide is divided into the following chapters:

• Chapter 1, “Getting Started with the Cisco Multicast Manager SDK” provides an overview of the SDK and its components, and describes how to set up your system to use the SDK.

• Chapter 2, “Cisco Multicast Manager API Reference” provides reference information on the CMM SDK API operations and the Java beans included in the SDK.

• Chapter A, “CMM Web Services Schema” lists the cmmWebServices.xsd schema file that defines the the API operations included in the CMM SDK.

• Chapter B, “cmmNB.wsdl File” lists the contents of the cmmNB.wsdl file.

ConventionsThis guide uses basic conventions to represent text and table information.

Examples use the following conventions:

• Terminal sessions and information that the system displays are printed in screen font.

• Information that you enter is in boldface screen font. Variables for which you enter actual data are printed in italic screen font.

• Nonprinting characters, such as passwords, are shown in angle brackets (< >).

• Information that the system displays is in screen font, with default responses in square brackets ([ ]).

This publication also uses the following conventions:

• Menu items and button names are in boldface font.

• If items such as buttons or menu options are dimmed on the application window, it means that the items are not available either because you do not have the correct permissions or because the item is not applicable at this time.

Item Convention

Commands and keywords boldface font

Variables for which you supply values italic font

Displayed session and system information screen font

Elements that are optional Square brackets ([ ])

Alternate but required keywords that are grouped

Braces ({ }) and separated by a vertical bar (|)

Information you enter boldface screen font

Variables you enter italic screen font

Menu items and button names boldface font

Selecting a menu item in paragraphs Option > Network Preferences

Selecting a menu item in tables Option > Network Preferences

vCisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Preface

Note Means reader take note. Notes contain helpful suggestions or references to materials not contained in the manual.

Tip Means the following are useful tips.

Related DocumentationAdditional information can be found in the following publications of the CMM documentation set:

• Installation Guide for Cisco Multicast Manager 3.2

• User Guide for Cisco Multicast Manager, 3.2

• Release Notes for Cisco Multicast Manager 3.2

• Device Instrumentation Requirements for Cisco Multicast Manager, 3.1

• Documentation Guide and Supplemental License Agreement for Cisco Multicast Manager 3.2

Obtaining Documentation, Obtaining Support, and Security Guidelines

For information on obtaining documentation, submitting a service request, and gathering additional information, see the monthly What’s New in Cisco Product Documentation, which also lists all new and revised Cisco technical documentation, at:

http://www.cisco.com/en/US/docs/general/whatsnew/whatsnew.html

Subscribe to the What’s New in Cisco Product Documentation as a Really Simple Syndication (RSS) feed and set content to be delivered directly to your desktop using a reader application. The RSS feeds are a free service and Cisco currently supports RSS Version 2.0.

viCisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Preface

C H A P T E R

1-1Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

1Getting Started with the Cisco Multicast Manager SDK

Cisco Multicast Manager (CMM) 3.2 provides a Web Services Definition Language (WSDL)-based Application Programming Interface (API) that allows you to develop document-oriented web services that send WSDL messages to CMM and receive WSDL messages in response. Using the CMM API, you can develop an application that communicates with CMM to perform tasks such as:

• Querying a layer 3 device about the currently available S, G on the device.

• Querying CMM about the available multicast streams in a specified domain.

• Adding layer 2 and layer 3 devices or video probes to CMM in bulk.

• Adding, querying, and deleting S,G polling configuration.

• Adding, querying, and deleting Layer 2 polling configuration.

• Adding, querying, and deleting interface polling configuration.

• Adding, querying, and deleting Reverse Path Forwarding (RPF) polling configuration.

• Adding, querying, and deleting tree polling configuration.

• Adding, querying, and deleting video probe polling configuration.

• Adding, querying, and deleting VidMon polling configuration.

• Adding, querying, and deleting Source Specific Multicast (SSM) polling configuration.

• Adding and querying S, G time-based polling configuration.

• Adding, querying, and deleting Rendezvous Point (RP) polling configuration.

This chapter contains the following sections:

• WSDL-Based Services, page 1-1

• Summary of the API Operations and Java Beans, page 1-3

• Contents of the SDK and Web Services Sample Code Structure, page 1-4

• Setting Up to Use the API, page 1-5

WSDL-Based ServicesThe CMM API allows you to create WSDL-based Web Services. The CMM API is based on:

• JAXB—The Java Architecture for XML Binding (JAXB), which is provided by Oracle.

1-2Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKWSDL-Based Services

• The Spring Framework—The sample code included in the SDK uses the Spring Framework, provided by SpringSource, as an example of a framework that you can use to develop Web Services to communicate with CMM. The Spring Framework provides a Java beans package that includes a “bean factory,” which allows development of beans that enable configuration of virtually any Java object. The CMM API includes a set of beans, developed using the Spring Framework, that allow you to:

– Marshall and un-marshall SOAP messages from XML format to Java objects and back to XML format.

– Define WS-Security policies

Note You can use any framework based on the SOAP with Attachments API for Java (SAAJ) for creating Web services applications to work with CMM.

• MTOM—SOAP Message Transmission Optimization Mechanism (MTOM) is a W3C recommendation that defines standards for efficient and optimal encoding of SOAP messages.

CMM also uses basic WS-Security policies for password-based authentication.

Using JAXB, the CMM programming interface invokes a binding compiler that generates Java classes and interfaces that are derived from the CMM WSD schema—cmmWebServices.xsd.

Since the JAXB web services are document-oriented web services, there is no concept of making a remote function call. Your application creates a SOAP message and sends it to the CMM server, and in response, receives a SOAP response message or a SOAP fault.

JAXBJAXB is a Java API that allows you to use Java routines to access and maintain data in XML documents without using an XML parser.

Using JAXB, the CMM programming interface invokes a binding compiler that generates Java classes and interfaces that are derived from the CMM WSD schema—cmmWebServices.xsd. Using the Java classes, you develop document-oriented Web services as opposed to remote procedure call (RPC)-based applications. You use the JAXB-derived classes to marshall and unmarshall SOAP messages and perform the tasks for implementing an application that communicates with CMM.

For detailed information on JAXB, go to the JAXB web site at the following location:

http://www.oracle.com/technetwork/java/index.html

Since one of the CMM APIs enables you to upload an image file uploaded to a client, CMM uses MTOM (http://www.w3.org/TR/soap12-mtom/) for efficient and optimal encoding of SOAP messages. Basic WS-Security policies are used for password based authentication.

Web services APIs can be used either on HTTP or on the secure HTTPS protocol.

Since CMM uses JAXB for marshalling and un-marshalling, all APIs are described using classes generated by JAXB after compiling the WSDL file.

1-3Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSummary of the API Operations and Java Beans

FrameworkThe CMM API uses several beans developed using the Spring Framework. The Spring Framework provides a Java beans package that includes a “bean factory,” which allows development of beans that enable configuration of virtually any Java object.

For detailed information on the Spring Framework, go to the Spring website at the following locations:

http://www.springsource.org/

The CMM 3.2 SDK uses Spring Framework 2.5.6, which can be downloaded from the Spring download site:

http://www.springsource.org/spring-community-download

Note Although the CMM API includes beans derived from the Spring Framework, you can use any framework that is based on the SOAP with Attachments API for Java (SAAJ) for creating and sending SOAP messages. For basic information on SAAJ, see:http://java.sun.com/developer/EJTechTips/2005/tt0425.html#1

SOAP Message Transmission Optimization MechanismSOAP Message Transmission Optimization Mechanism (MTOM) is a W3C recommendation that defines standards for efficient and optimal encoding of SOAP messages.

Summary of the API Operations and Java BeansFor a list of the API operations in the CMM SDK, see Table 2-1, “CMM API Operations” in Chapter 2, “Cisco Multicast Manager API Reference.”

Table 1-1 describes the Java beans provided with the SDK.

Table 1-1 CMM SDK—Java Beans

Bean Description

Message Factory Bean Initializes the message factory object for using SAAJ SOAP messages.

See Message Factory Bean, page 2-46.

JAXB Marshaller Bean Converts SOAP messages from XML format to Java objects or from Java objects to XML format.

See JAXB Marshaller Bean, page 2-46.

Security Interceptor Bean Allows you to define WS-Security policies.

See Security Interceptor Bean, page 2-47

1-4Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKContents of the SDK and Web Services Sample Code Structure

Contents of the SDK and Web Services Sample Code StructureThis section contains the following:

• SDK Source Files, page 1-4

• Downloading the SDK, page 1-4

• SDK Directory Structure and Key Files, page 1-4

SDK Source FilesThe SDK source code and supporting files are contained in a zip file called testWeb.zip/TibcoJar.zip. This file is provided on the Software Download Area for Cisco Multicast Manager at this location:

http://www.cisco.com/en/US/products/ps6337/index.html

Downloading the SDKThe source code for the CMM 3.2 SDK is provided on the software download area for CMM on cisco.com.

Complete these steps to download the SDK files:

Step 1 Go to the product page for CMM 3.2 at the following URL:

http://www.cisco.com/web/go/cmm

Step 2 Click the Software Download link.

Step 3 Log in to Cisco.com.

Step 4 Locate the directory for CMM 3.2 and download the distribution file for the SDK (testWeb.zip).

Step 5 Copy the zip file containing the distribution to your client machine at one of the following locations:

• Linux:

/usr/local/netman/testWeb

• Solaris:

/opt/RMSMMT/testWeb

Step 6 Unzip the testWeb.zip distribution file.

SDK Directory Structure and Key FilesThe following directory contains the SDK files:

testWeb/client/jaxws/src/com/cisco/nm/cmm/ws/client/jaxws/

Table 1-2 describes the key files of interest in the SDK.

1-5Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

Setting Up to Use the APIBefore you can use the CMM SDK, you must set up your system to compile and run the SDK code.

Complete these steps to set up your system to use the CMM API:

1. If you will run your CMM client application on HTTPS, complete the setup tasks for HTTPS.

See Required Setup for HTTPS, page 1-6.

2. If you will run your CMM client application on HTTP, complete the setup tasks for HTTP.

See Required Setup for HTTP, page 1-9

3. Configure your compiler for the SDK. You can compile the SDK in several different ways:

Table 1-2 Key Files in the CMM SDK

Directory Filename Description

testWeb/client/jaxws build.xml This is an Ant build script that you can use if you are compiling the SDK in a standard Ant environment. This build.xml file contains the wsimport task. The wsimport task downloads a WSDL file from specified URL. You can change the URL to point to the IP address of the CMM server. In addition, ensure that you use the correct port depending on your choice of HTTP or HTTPS

The wsimport task downloads the CMM WSDL file (cmmNB.wsdl) and schema file (cmmWebServices.xsd) and generates code using the JAXB compiler. The generated code is written to the testWeb/client/jaxws/gen directory.

Note If you are using another compiler, such as an IDE compiler, the compiler will generate its own build.xml file.

testWeb.zip/ TibcoJar.zip Java class files for the SDK.

testWeb/client/jaxws/src/com/cisco/nm/cmm/ws/client/jaxws

CmmWebServicesClient.java

Contains the source code defined in this document. This is working code that you can use as a sample to build your application

testWeb/client/jaxws/src/com/cisco/nm/cmm/ws/client/jaxws

applicationContext.xml This is the SpringSource configuration file for configuring several beans to be used by client application, in this case CmmWebServicesClient.java is sample client application.

testWeb/client/jaxws/gen Various If you are using the Ant compiler, this directory contains he code for your application generated by the Ant compiler.

1-6Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

• By using the setup files provided with the SDK for the Ant task and running the Ant task to generate the Java code for the SDK.

See Running the Ant Task to Compile the SDK, page 1-10.

• By setting up another compiler of your choice; for example the Netbeans IDE.

See Compiling with an IDE, page 1-12.

Required Setup for HTTPSIf you are using HTTPS for your application, then in order to use CMM web services on HTTPS, you must complete the following preliminary steps on the CMM server:

Step 1 On your development server download a Java source file from this location:

https://sectool.dev.java.net/source/browse/sectool/

This is an open source GPL2 license project. It lets you create certificates with SubjectAlternativeName.

If your organization does not accept GPL2 based development in that case you can request certificate from certificate generation authority for your organization.

Step 2 Click on Documents and Files, and then click on the src link in the content area.

You will see a link called SecTool.java.

Step 3 Right-click on this link and save it under the filename SecTool.java on your development desktop.

Step 4 Verify that you have JDK 1.6 installed.

Step 5 Go to the directory where you have downloaded the file SecTool.java and run the Java compiler command to compile this file:

javac SecTool.java

You will see several warnings, which you can ignore.

The process generates three class files:

• Pair.class

• PassphraseSecretKey.class

• SecTool.class

Step 6 Copy these three class files into the sectool directory on the server machine.

Note Configure FTP to use binary mode.

• On Solaris, enter:

/opt/RMSMMT/sectool

• On Linux, enter:

/usr/local/netman/sectool

On the server machine, set up a keystore with the IP address of the server and the DNS name if a DNS name exists.

1-7Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

Step 7 Run the sectool script.

• On Linux, enter:

cd /usr/local/netman/sectool ./sectool.sh

• On Solaris enter:

cd /opt/RMSMMT/sectool./sectool.sh

The following prompt appears:

Does this server have DNS name [y/n]

Step 8 Enter y.

Step 9 Enter the DNS name for the server.

For example, enter cmm-le4-07.cisco.com.

Step 10 Enter the IP address for the server.

For example, enter 172.20.111.242.

• The operating system is Linux, and the DNS name is cmm-le4-07.cisco.com (IP address: 172.20.111.242).

• The DNS name is cmm-le4-07.cisco.com.

• The IP address is IPAddress: 172.20.111.242.

The script processes the backup version of the existing keystore and creates a new keystore file. The keystore file is located in the following directory:

• On Linux:

/usr/local/netman/mmtsys/apache-tomcat/conf/keystore

• On Solaris:

/opt/RMSMMT/mmtsys/apache-tomcat/conf/keystore

Step 11 Copy the keystore file to the client machine and remember the location of the file, as you will need this file path to edit the file build.

Step 12 Make sure that on the server machine, the acegi security configuration file has a secure channel for web services.

Step 13 Edit the following file:

• On Linux:

/usr/local/netman/cmm/WEB-INF/conf/acegi/security-config.xml

• On Solaris:

/opt/RMSMMT/cmm/WEB-INF/conf/acegi/security-config.xml

Step 14 Locate the following entries:

/j_acegi_security_check*=REQUIRES_INSECURE_CHANNEL/**=REQUIRES_INSECURE_CHANNEL

Step 15 Change the entries to read:

/j_acegi_security_check*=REQUIRES_SECURE_CHANNEL /**=REQUIRES_SECURE_CHANNEL

1-8Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

Step 16 Locate the following entries:

/service/*=REQUIRES_INSECURE_CHANNEL /*.xsd=REQUIRES_INSECURE_CHANNEL

Step 17 Change the entries to read:

/service/*=REQUIRES_SECURE_CHANNEL /*.xsd=REQUIRES_SECURE_CHANNEL

Step 18 Save the security-config.xml file.

Step 19 Edit the following file:

• On Linux:

/usr/local/netman/cmm/WEB-INF/spring-ws-servlet.xml

• On Solaris:

/opt/RMSMMT/cmm/WEB-INF/spring-ws-servlet.xml

Step 20 Locate the following entry:

<ref bean="wsSecurityInterceptor"/>

Step 21 Comment out this line:

<!-- <ref bean="wsSecurityInterceptor"/> -->

Step 22 Save the spring-ws-servlet.xml configuration file.

Step 23 Restart the server.

Step 24 On the client machine, navigate to the testWeb/client/jaxws directory.

Step 25 Edit the build.xml file.

Step 26 Update the location of the keystore file (copied to the client machine) and enter the default keystore password cmm_dev as arguments to JVM in the build.xml file on the client machine, as follows (you need to update this information at two places):

-Djavax.net.ssl.trustStore=C:/ftp/testWeb/keystore -Djavax.net.ssl.trustStorePassword=cmm_dev

Step 27 Verify that the server URLs have been changed from http to https and that the port on these URLs has been changed from 8085 to 8080.

For example:

<arg value="https://172.20.111.233:8080/cmm/service/cmmNB.wsdl"/>

Step 28 Execute the following commands:

ant clean ant generate

Step 29 Verify that the code is being generated.

If no code is being generated, an error code appears on the console.

Step 30 Edit the client java file and enter.

ant run

1-9Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

Required Setup for HTTPIf you are using HTTP for your application, then in order to use CMM web services on HTTP, you must complete the following preliminary steps on the CMM server:

Step 1 Verify that the server machine acegi security configuration file has an insecure channel configured for web services.

Step 2 Edit the following file:

• On Linux:

/usr/local/netman/cmm/WEB-INF/conf/acegi/security-config.xml

• On Solaris:

/opt/RMSMMT/cmm/WEB-INF/conf/acegi/security-config.xml

Step 3 Locate the following entries:

/j_acegi_security_check*=REQUIRES_SECURE_CHANNEL /**=REQUIRES_SECURE_CHANNEL

Step 4 Change them to read:

/j_acegi_security_check*=REQUIRES_INSECURE_CHANNEL /**=REQUIRES_INSECURE_CHANNEL

Step 5 Save the security-config.xml file.

**********************

Step 6 Edit the following file:

• On Linux:

/usr/local/netman/cmm/WEB-INF/ spring-ws-servlet.xml

• On Solaris:

/opt/RMSMMT/cmm/WEB-INF/ spring-ws-servlet.xml

Step 7 Locate the following entry:

<ref bean="wsSecurityInterceptor"/>

Step 8 Comment out this line:

<!-- <ref bean="wsSecurityInterceptor"/> -->

Step 9 Save the spring-ws-servlet.xml configuration file.

Step 10 Restart the server.

Step 11 On the client machine go to the to testWeb/client/jaxws directory.

Step 12 Edit the build.xml file.

Step 13 Make sure that server URLs have been changed from https to http and that the port on these URLs has been changed from 8080 to 8085.

For example:

<arg value="http://172.20.111.233:8085/cmm/service/cmmNB.wsdl"/>

Step 14 Enter the following commands:

ant clean.ant generate

1-10Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

You should see some code being generated; if no code is generated, you will see an error on the console.

Step 15 Edit the client java file and execute the following command:

ant run

Running the Ant Task to Compile the SDKIf you are using an Ant environment, complete these steps to run the Ant task and compile the SDK:

Step 1 Copy the zip file testWeb.zip to a client machine and unzip it.

Step 2 Verify that the client machine has access to the internet.

Example 1-1 shows the Ant build script:

Example 1-1 Ant Build Script for the CMM SDK

<?xml version="1.0"?><project name="spring-ws-airline-sample-spring-ws-client" default="build" xmlns:artifact="urn:maven-artifact-ant"> <property name="bin.dir" value="bin"/> <property name="src.dir" value="src"/> <property name="gen.dir" value="gen"/>

<target name="init"> <mkdir dir="${bin.dir}"/> <mkdir dir="${gen.dir}"/> <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"> <classpath> <pathelement location="${basedir}/../../maven-ant-tasks-2.0.7.jar"/> </classpath> </typedef>

<artifact:remoteRepository id="main" url="http://repo1.maven.org/maven2/"/> <artifact:remoteRepository id="java.net" url="https://maven-repository.dev.java.net/nonav/repository" layout="legacy"/>

<artifact:remoteRepository id="Spring-repo-ext" url="https://springframework.svn.sourceforge.net/svnroot/springframework/repos/repo-ext" />

<artifact:dependencies pathId="generate.classpath"> <remoteRepository refid="main"/> <remoteRepository refid="java.net"/> <remoteRepository refid="Spring-repo-ext"/> <dependency groupId="com.sun.xml.ws" artifactId="jaxws-tools" version="EA3"/> <dependency groupId="javax.xml.crypto" artifactId="xmldsig" version="1.0"/> <dependency groupId="com.sun.xml.bind" artifactId="jaxb-xjc" version="2.1-EA2"/> <dependency groupId="com.sun.xml.stream.buffer" artifactId="streambuffer" version="0.3"/> <dependency groupId="com.sun.xml.stream" artifactId="sjsxp" version="1.0"/> <dependency groupId="org.jvnet.staxex" artifactId="stax-ex" version="1.0"/> <dependency groupId="com.sun.xml.messaging.saaj" artifactId="saaj-impl" version="1.3"/> <dependency groupId="javax.activation" artifactId="activation" version="1.1.1"/>

1-11Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

</artifact:dependencies>

<artifact:dependencies pathId="classpath"> <remoteRepository refid="main"/> <remoteRepository refid="java.net"/> <remoteRepository refid="Spring-repo-ext"/> <dependency groupId="org.springframework.ws" artifactId="spring-ws-core-tiger" version="1.5.4"/> <dependency groupId="org.springframework.ws" artifactId="spring-ws-security" version="1.5.4"/> <dependency groupId="org.springframework.ws" artifactId="spring-oxm-tiger" version="1.5.4"/> <dependency groupId="com.sun.xml.messaging.saaj" artifactId="saaj-impl" version="1.3"/> <dependency groupId="commons-httpclient" artifactId="commons-httpclient" version="3.0.1"/> <dependency groupId="javax.xml.bind" artifactId="jaxb-api" version="2.1"/> <dependency groupId="javax.xml.crypto" artifactId="xmldsig" version="1.0"/> <dependency groupId="com.sun.xml.stream.buffer" artifactId="streambuffer" version="0.3"/> <dependency groupId="com.sun.xml.stream" artifactId="sjsxp" version="1.0"/> <dependency groupId="org.jvnet.staxex" artifactId="stax-ex" version="1.0"/> <dependency groupId="log4j" artifactId="log4j" version="1.2.13"/> <dependency groupId="javax.activation" artifactId="activation" version="1.1.1"/> </artifact:dependencies>

</target>

<target name="generate" depends="init"> <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" classpathref="generate.classpath"/>

<wsimport fork="true" wsdl="https://172.20.111.233:8080/cmm/service/cmmNB.wsdl" destdir="${bin.dir}" package="com.cisco.nm.cmm.ws.client.jaxws" sourcedestdir="${gen.dir}" verbose="true" debug="true">

<produces dir="${bin.dir}/com/cisco/nm/cmm/ws/client/jaxws" includes="**/*" /> <jvmarg line="-Djavax.net.ssl.trustStore=C:/ftp/keystore

-Djavax.net.ssl.trustStorePassword=cmm_dev"/> </wsimport> </target>

<target name="build" depends="generate"> <mkdir dir="${bin.dir}"/> <javac destdir="${bin.dir}"> <src path="${src.dir}"/> <src path="${gen.dir}"/> <classpath refid="classpath"/> </javac> <copy todir="${bin.dir}"> <fileset dir="${src.dir}"> <exclude name="**/*.java"/> </fileset> </copy> </target>

<target name="clean"> <delete dir="${bin.dir}"/> <delete dir="${gen.dir}"/>

</target>

<target name="run" depends="cmmWebServicesClient"/>

1-12Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

<target name="cmmWebServicesClient" depends="build"> <java classname="com.cisco.nm.cmm.ws.client.jaxws.CmmWebServicesClient" fork="true" failonerror="true"> <classpath refid="classpath"/> <classpath location="${bin.dir}"/>

<jvmarg line="-Djavax.net.ssl.trustStore=C:/ftp/keystore -Djavax.net.ssl.trustStorePassword=cmm_dev"/>

<arg value="https://172.20.111.233:8080/cmm/service/cmmNB.wsdl"/> </java> </target>

</project>

Step 3 Edit the Ant build script as follows:

a. Edit the taskdef for the wsimport task to specify the IP address of the CMM server.

– Locate the line that says:

wsimport fork="true" wsdl="http://172.20.110.23:8085/cmm/service/cmmNB.wsdl" destdir="${bin.dir}"

– Specify the IP address of the CMM server.

– Specify the protocol used:

If you are using HTTP, leave the protocol set to the default (wsdl = http://(ip_adddress)

If you are using HTTP, change the protocol to https.

Step 4 Enter the following commands:

ant cleanant generate

You should see code being generated. If no code is generated, you will see an error message on the console.

Step 5 Edit the client java file and enter the following command:

ant run

The Ant build script runs the wsimport task., which downloads the WSDL file and the schema file and generates code using the JAXB compiler.

The generated code is written to the testWeb/client/jaxws/gen directory.

Note The gen directory is defined as a property in the beginning on Ant script file.

Compiling with an IDEIf you are compiling with an IDE such as the Netbeans IDE, the compilation steps will be determined by the tool that you are using.

Here is a list of steps that you would use to compile using a sample compiler—the Netbeans IDE.

1-13Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

Step 1 On a Windows machine where the SDK is installed (testWeb.zip), log in to the compiler for example, Netbeans IDE.

Step 2 Create a project file.

a. Select File > New Project.

b. In the Choose Project dialog, select Java Application.

c. Uncheck the Create Main Class check box.

d. Click Next.

Step 3 Copy the contents of the /src directory to the /src directory in your TestWeb directory structure.

This is the files in the /com directory.

Step 4 Go to the Springsource website and download Springsource 2.5.6.

Step 5 Add the Springsource /jar files to your test project (under the Libraries folder).

Step 6 Go to the applicationContext.xml file in the CMM.

Step 7 Locate the following line:

<property name=”defaultUri” value=”http://172.20.110.42:8080/cmm/service/cmmNB.wsdl"/>

Step 8 Change the IP address in the defaultUri property line to the IP address of your CMM client.

Step 9 Run the compile (select Run > Clean and Build Main Project).

Step 10 Edit the application Java file (CmmWebServicesClient.java) and change the IP addresses in the generated code as required, to refer to your actual CMM device addresses.

Running Client Code

Step 1 Verify that the client machine has internet access.

Step 2 Unzip the testWeb.zip file on the client machine.

Step 3 Open the build.xml file and update the URL for server IP address

Note If you are using HTTPS, the port will always be 8080; for HTTP, port will be 8085.

Step 4 Open the CmmWebServicesClient.java file and update the domain name, device IP addresses, and other required information.

1-14Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 1 Getting Started with the Cisco Multicast Manager SDKSetting Up to Use the API

C H A P T E R

2-1Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

2Cisco Multicast Manager API Reference

This chapter contains the following sections:

• API Operations, page 2-1

• Spring Framework Beans, page 2-46

API OperationsThe WSDL definition file for the CMM API— cmmNB.wsdl, contains a set of definitions that define the following elements:

• Data types and associated messages

• A list of portTypes and associated operations

• Bindings for the SOAP protocol

• Services and associated ports

See Appendix B, “cmmNB.wsdl File” for a listing of the cmmNB.wsdl file.

The CMM API set comprises a set of operations that you can perform using these elements. Using the specific API operations, you can perform the operations shown in Table 2-1.

Table 2-1CMM API Operations

Operation See

Add Interface Polling See Add Interface Polling, page 2-2

Add Layer 2 Polling See Add Layer 2 Polling, page 2-4

Add Layer 3 and Layer 2 devices in Bulk Add Layer 3 and Layer 2 Devices in Bulk, page 2-5

Add RP Polling See Add RP Polling, page 2-6

Add RPF Polling See Add RPF Polling, page 2-7

Add S,G Polling See Add S,G Polling, page 2-8

Add S,G Time-Based Polling See Add S,G Time-Based Polling, page 2-9

Add SSM Polling See Add SSM Polling, page 2-11

Add Tree Polling See Add Tree Polling, page 2-12

Add Video Probe Polling See Add Video Probe Polling, page 2-14

2-2Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Add Interface PollingUse this operation to add polling configuration for a specified interface on a device.

Add Video Probes in Bulk See Add Video Probes in Bulk, page 2-13

Add VidMon Polling See Add VidMon Polling, page 2-15

Delete Devices in Bulk See Delete Devices in Bulk, page 2-17

Delete Interface Polling See Delete Interface Polling, page 2-18

Delete Layer 2 Polling See Delete Layer 2 Polling, page 2-19

Delete RP Polling See Delete RP Polling, page 2-20

Delete RPF Polling See Delete RPF Polling, page 2-21

Delete S, G Polling See Delete S,G Polling, page 2-22

Delete SSM Polling See Delete SSM Polling, page 2-23

Delete Tree Polling See Delete Tree Polling, page 2-25

Delete Video Probe Polling See Delete Video Probe Polling, page 2-27

Delete VidMon Polling See Delete VidMon Polling, page 2-28

Get a Multicast Trace Image File See Get Multicast Trace Image File, page 2-31

Get Interface Polling Configuration See Get Layer 2 Polling Configuration, page 2-30

Get Layer 2 Polling Configuration See Get Layer 2 Polling Configuration, page 2-30

Get Multicast Devices in a Domain See Get Multicast Devices in a Domain, page 2-32

Get Multicast Events See Get Multicast Events, page 2-33

Get RP Polling Configuration See Get RP Polling Configuration, page 2-34

Get RPF Polling Configuration See Get RPF Polling Configuration, page 2-35

Get S,G on a Device See Get S,G on a Device, page 2-36

Get S,G in a Domain See Get S,G in a Domain, page 2-38

Get S,G Polling Configuration See Get S,G on a Device, page 2-36

Get S,G Time-Based Polling Configuration See Get S,G Time-Based Polling Configuration, page 2-39

Get SSM Polling Configuration See Get SSM Polling Configuration, page 2-41

Get Tree Polling Configuration See Get Tree Polling Configuration, page 2-41

Get Video Probe Polling Configuration See Get Video Probe Polling Configuration, page 2-42

Get VidMon Polling Configuration See Get VidMon Polling Configuration, page 2-43

Set Global Polling Configuration See Set Global Polling Configuration, page 2-44

Table 2-1CMM API Operations (continued)

Operation See

2-3Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Request Message

JAXBElement<IntPollingListType>

• IntPollingListType—A JAXB-generated class that encapsulates an array list of IntPollingType.

• IntPollingType—A JAXB-generated wrapper class that encapsulates an interface name, interface index, bandwidth, router name, polling direction, high PPS threshold and low PPS threshold for polling of the interface.

Response Message

The response message contains a list of the interfaces that have been configured for polling.

JAXBElement<IntPollingListType>

• IntPollingListType—A JAXB-generated class that encapsulates an array list of IntPollingType.

• IntPollingType—A JAXB-generated wrapper class that encapsulates an interface name, interface index, bandwidth, router name, polling direction, high PPS threshold and low PPS threshold for polling of the interface.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void addIntPolling() { try { IntPollingListType sgplt = new IntPollingListType(); sgplt.setDomainName("test-01");

IntPollingType sgt = new IntPollingType(); sgt.setInterfaceName("Vlan1"); sgt.setIfindex(52); sgt.setBandwidth(100000); sgt.setRouterName("cmm-6503-c2.cisco.com"); sgt.setDirection(0); sgt.setHighThreshold(12312); sgt.setLowThreshold(233); sgplt.getInterfaces().add(sgt);

sgt = new IntPollingType(); sgt.setInterfaceName("Vlan1"); sgt.setIfindex(52); sgt.setBandwidth(100000); sgt.setRouterName("cmm-6503-c2.cisco.com"); sgt.setDirection(1); sgt.setHighThreshold(1111); sgt.setLowThreshold(99); sgplt.getInterfaces().add(sgt);

JAXBElement<IntPollingListType> req = objf.createMulticastIntPollingAddRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("addIntPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

2-4Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Add Layer 2 PollingUse this operation to add Layer 2 polling for a specified switch in a domain.

Request Message

JAXBElement<L2PollingConfigType>

• L2PollingConfigType—A JAXB-generated wrapper class that encapsulates a domain name, device IP address or hostname, device type enumeration, polling direction, high PPS threshold and low PPS threshold.

Response Message:

The response message contains an integer specifying the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void addL2Polling() { try { L2PollingConfigType lt = new L2PollingConfigType(); lt.setDomainName("test-01");

L2PollingType sgt = new L2PollingType(); sgt.setSwitchName("cmm-1801-sa4"); sgt.setPortName("Fa3"); sgt.setPortIfIndex(7); sgt.setDirection(0); sgt.setHighThreshold(12312); sgt.setLowThreshold(233); lt.setL2(sgt);

JAXBElement<L2PollingConfigType> req = objf.createMulticastL2PollingAddRequest(lt); JAXBElement<Integer> res = (JAXBElement<Integer>) getWebServiceTemplate().marshalSendAndReceive(req); System.out.println("status = " + res.getValue()); } catch (Exception e) { e.printStackTrace();

2-5Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

} }

Add Layer 3 and Layer 2 Devices in BulkUse this operation for bulk addition of layer 3 and layer 2 devices. All devices must be added in the same domain.

Request Message

JAXBElement<DeviceListType>

• DeviceListType—A JAXB-generated class that encapsulates an array list of DeviceType.

• DeviceType—A JAXB-generated wrapper class that encapsulates a domain name, device IP address, device type enumeration, model, and device name.

Response Message:

JAXBElement<DeviceListType>

• DeviceListType—A JAXB-generated class that encapsulates an array list of DeviceType.

• DeviceType—A JAXB-generated wrapper class that encapsulates a domain name, device IP address, device type enumeration, model and device name.

This message contains a list of devices that have been successfully scheduled for discovery. Note that this message does not offer any guarantee that all devices listed in message have been completely discovered at the moment when the message is received by the client program.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Sample public void AddUpdateMulticastDevices() { DeviceListType dl= objf.createDeviceListType(); DeviceType dt1= objf.createDeviceType(); DeviceType dt2= objf.createDeviceType(); //DeviceType dt3= objf.createDeviceType(); //DeviceType dt4= objf.createDeviceType(); //DeviceType dt5= objf.createDeviceType(); //DeviceType dt6= objf.createDeviceType();

dt1.setDomainName("test-01"); dt1.setIp("172.20.111.198"); dt1.setModel("7206"); dt1.setName("cmm-7206-sd1"); dt1.setCommunityString("public"); dt1.setType(DeviceTypeEnumeration.ROUTER);

//dt2.setDomainName("test-01"); //dt2.setIp("172.20.111.199"); //dt2.setModel("7604"); //dt2.setName("cmm-7204-sd2"); // dt2.setCommunityString("public"); // dt2.setType(DeviceTypeEnumeration.ROUTER);/*

2-6Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

dt3.setDomainName("test"); dt3.setIp("10.10.10.30"); dt3.setModel("7600"); dt3.setName("cmmdev3"); dt3.setType("router");

dt4.setDomainName("test"); dt4.setIp("10.10.10.40"); dt4.setModel("7600"); dt4.setName("cmmdev4"); dt4.setType("router");

dt5.setDomainName("test"); dt5.setIp("10.10.10.50"); dt5.setModel("7600"); dt5.setName("cmmdev5"); dt5.setType("router");

dt6.setDomainName("test"); dt6.setIp("10.10.10.60"); dt6.setModel("7600"); dt6.setName("cmmdev6"); dt6.setType("router");*/ dl.getDevice().add(dt1); dl.getDevice().add(dt2); //dl.getDevice().add(dt3); //dl.getDevice().add(dt4); //dl.getDevice().add(dt5); //dl.getDevice().add(dt6); try{ JAXBElement<DeviceListType> sgresp =(JAXBElement<DeviceListType>)getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastAddUpdateDevicesRequest(dl)); DeviceListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting Successfully added devices for domain "); System.out.println("===========================");

for(int i=0;i<sgt.getDevice().size();i++) { DeviceType sg = sgt.getDevice().get(i); System.out.println("Name "+sg.getName()+ " ip "+sg.getIp()); }

} catch(SoapFaultClientException ex) { System.out.println("SOAP Fault Code:"+ ex.getFaultCode().getLocalPart() ); System.out.println("SOAP Fault String:"+ ex.getFaultStringOrReason() ); }

}

Add RP PollingUse this operation to add Rendezvous Point (RP) polling for a specified router.

2-7Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Request Message

JAXBElement<RPPollingListType>

• RPPollingListType—A JAXB-generated class that indicates the domain name and encapsulates an array list of RPPollingType.

• RPPollingType—A JAXB-generated wrapper class that encapsulates a device IP address or hostname, and a group limit for monitoring.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void addRPPolling() { try { RPPollingListType lt = new RPPollingListType(); lt.setDomainName("test-01");

RPPollingType sgt = new RPPollingType(); sgt.setRouter("cmm-6506-c3"); sgt.setGroupCount(3); lt.getRppoll().add(sgt);

JAXBElement<RPPollingListType> req = objf.createMulticastRPPollingAddRequest(lt); JAXBElement<Integer> res = (JAXBElement<Integer>) getWebServiceTemplate().marshalSendAndReceive(req);

System.out.println("status = " + res.getValue()); } catch (Exception e) { e.printStackTrace(); } }

Add RPF PollingUse this operation to add Reverse Path Forwarding (RPF) polling configuration for a specified source and group on a router.

Request Message

JAXBElement<RPFPollingConfigType>

• RPFPollingConfigType—A JAXB-generated wrapper class that encapsulates a domain name, router name or IP address, source and group IP addresses, and a delta value that specifies the number of RPF failures per sampling period that trigger a report.

Response Message:

The response message contains an integer indicating the result of the operation.

2-8Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

SOAP Errors

A SOAP fault describing the error.

Example Code/public void addRPFPolling() { try { RPFPollingConfigType lt = new RPFPollingConfigType(); lt.setDomainName("test-01");

RPFPollingType sgt = new RPFPollingType(); sgt.setRouterName("cmm-6503-c2.cisco.com"); sgt.setGroupIp("126.0.1.18"); sgt.setSourceIp("239.232.2.0"); sgt.setDelta(7); lt.setRpf(sgt);

JAXBElement<RPFPollingConfigType> req = objf.createMulticastRPFPollingAddRequest(lt); JAXBElement<Integer> res = (JAXBElement<Integer>) getWebServiceTemplate().marshalSendAndReceive(req); System.out.println("status = " + res.getValue()); } catch (Exception e) { e.printStackTrace(); } }

Add S,G PollingUse this operation to add S,G polling for specified sources and groups on specified routers.

Request Message

JAXBElement<SGPollingListType>

• SGPollingListType—A JAXB-generated wrapper class that encapsulates a domain name and array list of SGPollingType.

• SGPollingType—A JAXB-generated class that encapsulates a source IP address, group IP address, units value specifying the units for monitoring, a high threshold, and a low threshold.

– The setUnits value specifies the type units for the high and low threshold. To monitor packets per second, specify 0; to monitor bits per second, specify 1.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

2-9Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Example Codepublic void addSGPolling() { try { SGPollingListType sgplt = new SGPollingListType(); sgplt.setDomainName("test-01");

SGPollingType sgt = new SGPollingType(); sgt.setSourceIp("126.32.129.28"); sgt.setGroupIp("239.254.1.11"); sgt.setRouterName("cmm-7604-sd2.dns-sj.cisco.com"); sgt.setUnits(0); sgt.setHigh(12312); sgt.setLow(233); sgplt.getSg().add(sgt);

sgt = new SGPollingType(); sgt.setSourceIp("126.32.129.29"); sgt.setGroupIp("239.254.1.13"); sgt.setRouterName("cmm-7604-sd2.dns-sj.cisco.com"); sgt.setUnits(1); sgt.setHigh(45623); sgt.setLow(342); sgplt.getSg().add(sgt);

JAXBElement<SGPollingListType> req = objf.createMulticastSGPollingAddRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("addSGPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Add S,G Time-Based PollingUse this operation to add time-based S,G polling for specified sources and groups on specified routers.

Request Message

JAXBElement<SGTimePollingListType>

2-10Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

• SGTimePollingListType—A JAXB-generated class that encapsulates an a domain name and an array list of SGTimePollingType.

• SGTimePollingType—A JAXB-generated wrapper class that encapsulates a source IP address, group IP address, units value specifying the units for monitoring, a high threshold, a low threshold, a start time hour and minutes, stop time hour and minutes, and a day value.

– The setUnits value specifies the type units for the high and low threshold. To monitor packets per second, specify 0; to monitor bits per second, specify 1.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void addSGTimePolling() { try { SGTimePollingListType sgplt = new SGTimePollingListType(); sgplt.setDomainName("test-01");

SGTimePollingType sgt = new SGTimePollingType(); sgt.setSource("126.0.1.18"); sgt.setGroup("239.232.2.0"); sgt.setRouter("cmm-7206-sd1"); sgt.setUnits(1); sgt.setHighThreshold(66); sgt.setLowThreshold(55); sgt.setStartTimeHur(1); sgt.setStartTimeMin(2); sgt.setStopTimeHur(3); sgt.setStopTimeMin(4); sgt.setDays("Tue"); sgplt.getSgtime().add(sgt);

sgt = new SGTimePollingType(); sgt.setSource("126.0.1.12"); sgt.setGroup("239.232.0.0"); sgt.setRouter("4503"); sgt.setUnits(1); sgt.setHighThreshold(45623); sgt.setLowThreshold(342); sgt.setStartTimeHur(5); sgt.setStartTimeMin(6); sgt.setStopTimeHur(7); sgt.setStopTimeMin(8); sgt.setDays("Sun"); sgplt.getSgtime().add(sgt);

JAXBElement<SGTimePollingListType> req = objf.createMulticastSGTimePollingAddRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("addSGPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

2-11Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Add SSM PollingUse this operation to add Source Specific Multicast (SSM) polling configuration for a specified source and group.

Request Message

JAXBElement<SSMPollingConfigType>

• SSMPollingConfigType—A JAXB-generated class that encapsulates an array list of SSMPollingType.

• SSMPollingType—A JAXB-generated wrapper class that encapsulates a source IP address, group IP address, units value specifying the units for monitoring, a high threshold, a low threshold, a start time hour and minutes, stop time hour and minutes, and a day value.

– The setUnits value specifies the type units for the high and low threshold. To monitor packets per second, specify 0; to monitor bits per second, specify 1.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void addSSMPolling() { try { //126.0.1.13 224.0.1.40 1 0 19 0 Sun 0 0 - SSMPollingConfigType lt = new SSMPollingConfigType(); lt.setDomainName("test-01");

SSMPollingType ssmt = new SSMPollingType(); ssmt.setSourceIp("126.0.1.12"); ssmt.setGroupIp("239.232.0.0"); ssmt.setConfigureThreshold(false); ssmt.setUnits(0); ssmt.setHigh(800); ssmt.setLow(700); ssmt.setDays("Sun"); ssmt.setStartTimeHur(1);

2-12Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

ssmt.setStartTimeMin(59); ssmt.setStopTimeHur(23); ssmt.setStopTimeMin(59); lt.setSsm(ssmt);

JAXBElement<SSMPollingConfigType> req = objf.createMulticastSSMPollingAddRequest(lt); JAXBElement<Integer> res = (JAXBElement<Integer>) getWebServiceTemplate().marshalSendAndReceive(req);

System.out.println("status for SSM Polling = " + res.getValue()); } catch (Exception e) { e.printStackTrace(); } }

Add Tree PollingUse this operation to add Tree Polling configuration for a specified domain and trace baseline.

Request Message

JAXBElement<TreePollingConfigType>

• TreePollingConfigType—A JAXB-generated class that contains a domain name and a TreePollingType object.

• TreePollingType—A JAXB-generated wrapper class that encapsulates a saved baseline and indicates whether it is to be used as a comparison baseline.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void addTreePolling() { try { TreePollingConfigType lt = new TreePollingConfigType(); lt.setDomainName("test-01");

TreePollingType sgt = new TreePollingType(); sgt.setBaseLine("baseline2.trace"); sgt.setIsCompareBaseLine(true); lt.setTree(sgt);

JAXBElement<TreePollingConfigType> req = objf.createMulticastTreePollingAddRequest(lt); JAXBElement<Integer> res = (JAXBElement<Integer>) getWebServiceTemplate().marshalSendAndReceive(req); System.out.println("status = " + res.getValue()); } catch (Exception e) { e.printStackTrace(); }

2-13Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

}

Add Video Probes in Bulk

Description

Adding video probes is slightly different from adding other devices in CMM. Your code must identify both the router and the interface where the video probe is connected. The Request message must specify the community strings of both the router and the video probe. You can use this operation to add video probes in bulk. Your code also must associate probes with their monitoring applications on the CMM GUI.

This API operation returns a list of successfully added video probes. Since video probe addition is a synchronous operation, the returned list guarantees that the probes have been added to CMM.

Request Message

JAXBElement<VideoProbeListType>

• VideoProbeListType—A JAXB generated class that encapsulates an array list of VideoProbeType objects.

• VideoProbeType—A JAXB-generated class that encapsulates the probe name, probe IP address, probe ro community string, probe rw community string, router IP address, router ro community string, domain name, and video probe type.

Response Message

JAXBElement<VideoProbeListType>

The response message contains a list of successfully added video probes (VideoProbeListType objects).

• VideoProbeListType—A JAXB generated class that encapsulates an array list of VideoProbeType objects.

• VideoProbeType—A JAXB-generated class that encapsulates the probe name, probe IP address, probe ro community string, probe rw community string, router IP address, router ro community string, domain name, and video probe type.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code sample

// Create video probe object and fill in parametersVideoProbeType videoProbe= new VideoProbeType(); videoProbe.setProbeName("Bridge3"); videoProbe.setProbeIpAddress("10.86.1.233"); videoProbe.setRoCommunity("public"); videoProbe.setRwCommunity("private"); videoProbe.setRouterIpAddress("126.1.9.15"); videoProbe.setRouterRoCommunity("lab"); videoProbe.setInterfaceDescription("Gi1/1"); videoProbe.setDomainName("test"); videoProbe.setApplicationType(VideoApplicationTypeEnumeration.BRIDGETECH); videoProbe.setSnmpRetries(8);

2-14Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

videoProbe.setSnmptimeout(2);

// Create video probe list VideoProbeListType vl= objf.createVideoProbeListType(); vl.getVideoProbe().add(videoProbe);

// create requestMessageJAXBElement<VideoProbeListType> requestMessage = objf.createMulticastAddUpdateVideoProbeRequest(vl);

try{// Send and Receive JAXBElement<VideoProbeListType> responseMessage =(JAXBElement<VideoProbeListType>)getWebServiceTemplate().marshalSendAndReceive(requestMessage);// Get list of successfully added probes. VideoProbeListType vt = responseMessage.getValue(); VideoProbeType vp = (VideoProbeType) vt.getVideoProbe().get(0); System.out.println("Video probe name is Name is :"+vp.getProbeName()); } catch(SoapFaultClientException ex) { // Error System.out.println("SOAP Fault Code:"+ ex.getFaultCode().getLocalPart() ); System.out.println("SOAP Fault String:"+ ex.getFaultStringOrReason() ); } catch(Exception e) { }

Add Video Probe PollingUse this operation to add video probe polling for a specified video probe.

Request Message

JAXBElement<VideoProbePollingListType>

• VideoProbePollingListType—A JAXB-generated class that encapsulates a domain name and an array list of VideoProbePollingType.

• VideoProbePollingType—A JAXB-generated wrapper class that encapsulates a video probe name, delay Factor (DF) threshold in milliseconds, and Media Loss Rate (MLR) value.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void addVideoProbePolling() { try { VideoProbePollingListType sgplt = new VideoProbePollingListType(); sgplt.setDomainName("test-01");

VideoProbePollingType sgt = new VideoProbePollingType(); sgt.setProbeName("cmm-ckt-01"); sgt.setDf(2); sgt.setLoss(98);

2-15Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

sgplt.getVideoProbes().add(sgt);

sgt = new VideoProbePollingType(); sgt.setProbeName("cmm-glt-01"); sgt.setDf(0); sgt.setLoss(50); sgplt.getVideoProbes().add(sgt);

JAXBElement<VideoProbePollingListType> req = objf.createMulticastVideoProbePollingAddRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("addVideoProbePolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

// Create device list type object DeviceListType dl= objf.createDeviceListType(); // Create individual device objects

Add VidMon PollingUse this operation add VidMon polling for a specified Cisco 76xx device or ASR 9000 device.

Request Message

JAXBElement<VidmonPollingListType>

• VidmonPollingListType—A JAXB-generated class that encapsulates a domain name and an array list of VidmonPollingType.

• VidmonPollingType—A JAXB-generated wrapper class that encapsulates a device name, VidMon type, delay factor (DF) in milliseconds, a Media Loss Rate (MLR) threshold value (number of packets), a milli-percentage value that specifies a MRV maximum threshold., and a milli-percentage value that specifies a MRV minimum threshold.

2-16Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Note The setVidmonType field in the VidmonPollingType class indicates the type of VidMon device for which you are adding polling. If the device is a Cisco 76xx series router, specify 1. If the device is an ASR 9000 series device, specify 0. Only 76xx devices support MLR monitoring; therefore you should only specify an MLR value in the setMlr call if the device is a 76xx device.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void addVidmonPolling() { try { VidmonPollingListType sgplt = new VidmonPollingListType(); sgplt.setDomainName("test-01");

VidmonPollingType sgt = new VidmonPollingType(); sgt.setVidmonName("cmm-7604-d2.dns-sj.cisco.com"); sgt.setVidmonType(1); sgt.setDf(2); sgt.setMlr(24); sgt.setMrvMin(42); sgt.setMrvMax(98); sgplt.getVidmons().add(sgt);

JAXBElement<VidmonPollingListType> req = objf.createMulticastVidmonPollingAddRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("addVidmonPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } } // multicastDevicesRequest public void getAllSGPollingConfigs() { String dt = "test-01"; try { JAXBElement<SGPollingListType> sgresp = (JAXBElement<SGPollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllSGPollingRequest(dt));

2-17Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

SGPollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting SG Polling Configuration for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getSg().size(); i++) { SGPollingType sg = sgt.getSg().get(i); System.out.println(sg.getSourceIp() + "\t" + sg.getGroupIp() + "\t" + sg.getRouterName()+ "\t" +sg.getUnits()+ "\t" +sg.getHigh()+ "\t" +sg.getLow()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Delete Devices in BulkUse this operation to delete devices in bulk. You can also use this operation to delete all type of devices.

Request Message

JAXBElement<DeviceListType>

• DeviceListType—A JAXB-generated class that encapsulates an array list of DeviceType.

• DeviceType—A JAXB-generated wrapper class that encapsulates a domain name, device IP address, device type enumeration, model and device name.

Response Message

JAXBElement<DeviceListType>

The response message contains list of successfully deleted devices.

• DeviceListType—A JAXB-generated class that encapsulates an array list of DeviceType.

• DeviceType—A JAXB-generated wrapper class that encapsulates a domain name, device IP address, device type enumeration, model and device name.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code sample

public void DeleteMulticastDevices() { DeviceListType dl= objf.createDeviceListType(); DeviceType dt1= objf.createDeviceType();

dt1.setDomainName("test-01"); dt1.setIp("172.20.111.198");// dt1.setModel("7600"); dt1.setName("cmm-7206-sd1"); dt1.setType(DeviceTypeEnumeration.ROUTER);

2-18Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

dl.getDevice().add(dt1); try{ JAXBElement<DeviceListType> sgresp =(JAXBElement<DeviceListType>)getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastDeleteDevicesRequest(dl)); DeviceListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting Successfully Deleted devices for domain "); System.out.println("===========================");

for(int i=0;i<sgt.getDevice().size();i++) { DeviceType sg = sgt.getDevice().get(i); System.out.println("Name "+sg.getName()+ " ip "+sg.getIp()); }

} catch(SoapFaultClientException ex) { System.out.println("SOAP Fault Code:"+ ex.getFaultCode().getLocalPart() ); System.out.println("SOAP Fault String:"+ ex.getFaultStringOrReason() ); }

}

Delete Interface PollingUse this operation to delete interface polling for a specified interface on a specified router.

Request Message

JAXBElement<IntPollingListType>

• IntPollingListType—A JAXB-generated class that encapsulates an array list of IntPollingType.

• IntPollingType—A JAXB-generated wrapper class that encapsulates an interface name, interface index, bandwidth, router name, polling direction, high PPS threshold and low PPS threshold for polling of the interface.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void deleteIntPolling() { try { IntPollingListType sgplt = new IntPollingListType(); sgplt.setDomainName("test-01");

IntPollingType sgt = new IntPollingType(); sgt.setInterfaceName("GigabitEthernet1/1"); sgt.setRouterName("4503"); sgt.setIfindex(2);

2-19Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

sgt.setDirection(0); sgplt.getInterfaces().add(sgt);

JAXBElement<IntPollingListType> req = objf.createMulticastIntPollingDeleteRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteIntPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Delete Layer 2 PollingUse this operation to delete Layer 2 polling for a specified switch in a domain.

Request Message

JAXBElement<L2PollingConfigType>

• L2PollingConfigType—A JAXB-generated wrapper class that encapsulates a domain name, device IP address or hostname, device type enumeration, polling direction, high PPS threshold and low PPS threshold.

Response Message:

The response message contains an integer specifying the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void deleteL2Polling() { try { L2PollingListType lt = new L2PollingListType(); lt.setDomainName("test-01");

L2PollingType sgt = new L2PollingType(); sgt.setSwitchName("cmm-1801-sa4"); sgt.setPortName("Fa3");

2-20Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

sgt.setPortIfIndex(7); sgt.setDirection(0); sgt.setHighThreshold(12312); sgt.setLowThreshold(233); lt.getL2().add(sgt);

JAXBElement<L2PollingListType> req = objf.createMulticastL2PollingDeleteRequest(lt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteSGPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Delete RP PollingUse this operation to delete Rendezvous Point (RP) polling for a specified router.

Request Message

JAXBElement<RPPollingListType>

• RPPollingListType—A JAXB-generated class that indicates the domain name and encapsulates an array list of RPPollingType.

• RPPollingType—A JAXB-generated wrapper class that encapsulates a device IP address or hostname, and a group limit for monitoring.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void deleteRPPolling() { try { RPPollingListType sgplt = new RPPollingListType();

2-21Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

sgplt.setDomainName("test-01");

RPPollingType sgt = new RPPollingType(); sgt.setRouter("cmm-6506-c3"); sgplt.getRppoll().add(sgt);

JAXBElement<RPPollingListType> req = objf.createMulticastRPPollingDeleteRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("delete RPPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Delete RPF PollingUse this operation to delete Reverse Path Forwarding (RPF) polling configuration for a specified source and group on a routre.

Request Message

JAXBElement<RPFPollingConfigType>

• RPFPollingConfigType—A JAXB-generated wrapper class that encapsulates a domain name, router name or IP address, source and group IP addresses, and a delta value that specifies the number of RPF failures per sampling period that trigger a report.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void deleteRPFPolling() { try {

2-22Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

RPFPollingListType sgplt = new RPFPollingListType(); sgplt.setDomainName("test-01");

RPFPollingType sgt = new RPFPollingType(); sgt.setGroupIp("239.232.2.0"); sgt.setRouterName("cmm-6503-c2.cisco.com"); sgt.setSourceIp("126.0.1.18"); sgt.setDelta(7); sgplt.getRpf().add(sgt);

sgt = new RPFPollingType(); sgt.setGroupIp("239.232.0.0"); sgt.setRouterName("cmm-6503-c2.cisco.com"); sgt.setSourceIp("126.0.0.18"); sgt.setDelta(23); sgplt.getRpf().add(sgt);

JAXBElement<RPFPollingListType> req = objf.createMulticastRPFPollingDeleteRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteRPFPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Delete S,G PollingUse this operation to delete S,G polling for specified sources and groups on specified routers.

Request Message

JAXBElement<SGPollingListType>

• SGPollingListType—A JAXB-generated wrapper class that encapsulates a domain name and array list of SGPollingType.

• SGPollingType—A JAXB-generated class that encapsulates a source IP address, group IP address, units value specifying the units for monitoring, a high threshold, and a low threshold.

– The setUnits value specifies the type units for the high and low threshold. To monitor packets per second, specify 0; to monitor bits per second, specify 1.

2-23Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void deleteSGPolling() { try { SGPollingListType sgplt = new SGPollingListType(); sgplt.setDomainName("test-01");

SGPollingType sgt = new SGPollingType(); sgt.setSourceIp("126.32.129.28"); sgt.setGroupIp("239.254.1.11"); sgt.setRouterName("cmm-7604-sd2.dns-sj.cisco.com"); sgt.setUnits(0); sgplt.getSg().add(sgt);

sgt = new SGPollingType(); sgt.setSourceIp("126.32.129.29"); sgt.setGroupIp("239.254.1.13"); sgt.setRouterName("cmm-7604-sd2.dns-sj.cisco.com"); sgt.setUnits(1); sgplt.getSg().add(sgt);

JAXBElement<SGPollingListType> req = objf.createMulticastSGPollingDeleteRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteSGPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Delete SSM PollingUse this operation to delete Source Specific Multicast (SSM) polling configuration for a specified source and group.

2-24Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Request Message

JAXBElement<SSMPollingConfigType>

• SSMPollingConfigType—A JAXB-generated class that encapsulates an array list of SSMPollingType.

• SSMPollingType—A JAXB-generated wrapper class that encapsulates a source IP address, group IP address, units value specifying the units for monitoring, a high threshold, a low threshold, a start time hour and minutes, stop time hour and minutes, and a day value.

– The setUnits value specifies the type units for the high and low threshold. To monitor packets per second, specify 0; to monitor bits per second, specify 1.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void deleteSSMPolling() { try { SSMPollingListType ssmplt = new SSMPollingListType(); ssmplt.setDomainName("test-01");//126.0.1.13 224.0.1.40 1 0 19 0 Sun 0 0 - //String t = ssmpolling.getSourceIp() + ":" + ssmpolling.getGroupIp() + ":" + ssmpolling.getUnits() // + ":" + ssmpolling.getStartTimeHur() + ":" + ssmpolling.getStartTimeMin() + ":" + // ssmpolling.getStopTimeHur() + ":" + ssmpolling.getStopTimeMin() + ":" + ssmpolling.getDays(); SSMPollingType ssmt = new SSMPollingType(); ssmt.setSourceIp("126.0.1.13"); ssmt.setGroupIp("224.0.1.40"); ssmt.setConfigureThreshold(false); ssmt.setHigh(1); ssmt.setLow(0); ssmt.setUnits(2); ssmt.setDays("Sun"); ssmt.setStartTimeHur(1); ssmt.setStartTimeMin(0); ssmt.setStopTimeHur(19); ssmt.setStopTimeMin(0); ssmplt.getSsm().add(ssmt);

/* ssmt = new SSMPollingType(); ssmt.setSourceIp("0.0.0.0"); ssmt.setGroupIp("224.0.1.40"); ssmt.setConfigureThreshold(true); ssmt.setHigh(800); ssmt.setLow(700); ssmt.setDays("Sun"); ssmt.setStartTimeHur(1); ssmt.setStartTimeMin(59); ssmt.setStopTimeHur(23); ssmt.setStopTimeMin(59); ssmplt.getSsm().add(ssmt); ssmplt.getSsm().add(ssmt);*/

2-25Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

JAXBElement<SSMPollingListType> req = objf.createMulticastSSMPollingDeleteRequest(ssmplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteSSMPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Delete Tree PollingUse this operation to delete Tree Polling configuration for a specified domain and trace baseline.

Request Message

JAXBElement<TreePollingConfigType>

• TreePollingConfigType—A JAXB-generated class that contains a domain name and a TreePollingType object.

• TreePollingType—A JAXB-generated wrapper class that encapsulates a saved baseline and indicates whether it is to be used as a comparison baseline.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void deleteTreePolling() { try { TreePollingListType sgplt = new TreePollingListType(); sgplt.setDomainName("test-01");

TreePollingType sgt = new TreePollingType(); sgt.setBaseLine("baseline2.trace"); sgt.setIsCompareBaseLine(true); sgplt.getTree().add(sgt);

2-26Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

JAXBElement<TreePollingListType> req = objf.createMulticastTreePollingDeleteRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteTreePolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } } public void deleteVideoProbePolling() { try { VideoProbePollingListType sgplt = new VideoProbePollingListType(); sgplt.setDomainName("test-01");

VideoProbePollingType sgt = new VideoProbePollingType(); sgt.setProbeName("cmm-glt-01"); sgplt.getVideoProbes().add(sgt);

JAXBElement<VideoProbePollingListType> req = objf.createMulticastVideoProbePollingDeleteRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteVideoProbePolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); }

2-27Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Delete Video Probe PollingUse this operation to delete video probe polling for a specified video probe.

Request Message

JAXBElement<VideoProbePollingListType>

• VideoProbePollingListType—A JAXB-generated class that encapsulates a domain name and an array list of VideoProbePollingType.

• VideoProbePollingType—A JAXB-generated wrapper class that encapsulates a video probe name, delay Factor (DF) threshold in milliseconds, and Media Loss Rate (MLR) value.

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Codepublic void deleteVideoProbePolling() { try { VideoProbePollingListType sgplt = new VideoProbePollingListType(); sgplt.setDomainName("test-01");

VideoProbePollingType sgt = new VideoProbePollingType(); sgt.setProbeName("cmm-glt-01"); sgplt.getVideoProbes().add(sgt);

JAXBElement<VideoProbePollingListType> req = objf.createMulticastVideoProbePollingDeleteRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteVideoProbePolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } } public void deleteVidmonPolling() { try { VidmonPollingListType sgplt = new VidmonPollingListType(); sgplt.setDomainName("test-01");

2-28Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

VidmonPollingType sgt = new VidmonPollingType(); sgt.setVidmonName("cmm-7604-sd2.dns-sj.cisco.com"); sgplt.getVidmons().add(sgt);

JAXBElement<VidmonPollingListType> req = objf.createMulticastVidmonPollingDeleteRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteVidmonPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Delete VidMon PollingUse this operation to delete VidMon polling for a specified Cisco 76xx device or ASR 9000 device.

Request Message

JAXBElement<VidmonPollingListType>

• VidmonPollingListType—A JAXB-generated class that encapsulates a domain name and an array list of VidmonPollingType.

• VidmonPollingType—A JAXB-generated wrapper class that encapsulates a device name, VidMon type, delay factor (DF) in milliseconds, a Media Loss Rate (MLR) threshold value (number of packets), a milli-percentage value that specifies a MRV maximum threshold., and a milli-percentage value that specifies a MRV minimum threshold.

Note The setVidmonType field in the VidmonPollingType class indicates the type of VidMon device for which you are adding polling. If the device is a Cisco 76xx series router, specify 1. If the device is an ASR 9000 series device, specify 0. Only 76xx devices support MLR monitoring; therefore you should only specify an MLR value in the setMlr call if the device is a 76xx device.

Response Message:

The response message contains an integer indicating the result of the operation.

2-29Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void deleteVidmonPolling() { try { VidmonPollingListType sgplt = new VidmonPollingListType(); sgplt.setDomainName("test-01");

VidmonPollingType sgt = new VidmonPollingType(); sgt.setVidmonName("cmm-7604-sd2.dns-sj.cisco.com"); sgplt.getVidmons().add(sgt);

JAXBElement<VidmonPollingListType> req = objf.createMulticastVidmonPollingDeleteRequest(sgplt); JAXBElement<BulkMessageReturnWS> res = (JAXBElement<BulkMessageReturnWS>) getWebServiceTemplate().marshalSendAndReceive(req);

BulkMessageReturnWS ret = res.getValue(); System.out.println("==========================="); System.out.println("deleteVidmonPolling"); System.out.println("===========================");

System.out.println("status = " + ret.getReturnStatus());

for (int i = 0; i < ret.getFailureList().size(); i++) { System.out.println("failure item = " + ret.getFailureList().get(i).toString()); }

for (int i = 0; i < ret.getSuccessList().size(); i++) { System.out.println("success item = " + ret.getSuccessList().get(i).toString()); } } catch (Exception e) { e.printStackTrace(); } }

Get Interface Polling ConfigurationUse this operation to retrieve the interface configuration for a specified domain.

Request Message

JAXBElement<string>

string—Specifies the domain name.

Response Message

The response message contains a list of the interfaces that have been configured for polling.

JAXBElement<IntPollingListType>

• IntPollingListType—A JAXB-generated class that encapsulates an array list of IntPollingType.

2-30Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

• IntPollingType—A JAXB-generated wrapper class that encapsulates an interface name, interface index, bandwidth, router name, polling direction, high PPS threshold and low PPS threshold for polling of the interface.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void getAllIntPollingConfigs() { String dt = "test-01"; try { JAXBElement<IntPollingListType> sgresp = (JAXBElement<IntPollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllIntPollingRequest(dt)); IntPollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting Interface Polling Configuration for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getInterfaces().size(); i++) { IntPollingType sg = sgt.getInterfaces().get(i); System.out.println(sg.getRouterName() + "\t" + sg.getInterfaceName() + "\t" + sg.getIfindex()+ "\t" +sg.getDirection()+ "\t" +sg.getHighThreshold()+ "\t" +sg.getLowThreshold() + "\t" + sg.getBandwidth()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Get Layer 2 Polling ConfigurationUse this operation to retrieve the Layer 2 polling configuration for a specified domain.

Request Message

JAXBElement<string>

string—Specifies the domain name.

Response Message:

AXBElement<L2PollingConfigType>

• L2PollingConfigType—A JAXB-generated wrapper class that encapsulates a domain name, device IP address or hostname, device type enumeration, polling direction, high PPS threshold and low PPS threshold.

SOAP Errors

A SOAP fault describing the error.

2-31Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Example Code// Code Samplepublic void getAllL2PollingConfigs() { String dt = "test-01"; try { JAXBElement<L2PollingListType> sgresp = (JAXBElement<L2PollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllL2PollingRequest(dt)); L2PollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting L2 Polling Configuration for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getL2().size(); i++) { L2PollingType sg = sgt.getL2().get(i); System.out.println(sg.getSwitchName() + "\t" + sg.getPortName() + "\t" + sg.getPortIfIndex()+ "\t" +sg.getDirection()+ "\t" +sg.getHighThreshold()+ "\t" +sg.getLowThreshold()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Get Multicast Trace Image File

Description

Use this operation to get a multicast trace image file from the CMM server. You can use this operation to create a current snapshot of the multicast tree for S,G or *.G and uploading of the image file in PNG format.

Request Message

JAXBElement<multicastTraceType>

multicastTraceType—A JAXB-generated class that encapsulates source, group, first hop router, last hop router, domain name, and serviceType.

Response Message

JAXBElement<ImageType>

ImageType —A JAXB-generated class that encapsulates binary data for uploading an image file from the server to the client application. The binary data in the message contains the trace image in MTOM binary format.

SOAP Errors

SOAP fault describing error.

Code Example:

public void getMulticastTrace()

2-32Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

{ System.out.println("getMulticastTrace : ");

MulticastTraceType mt = new MulticastTraceType();

mt.setMulticastSource("126.32.193.29"); mt.setMulticastGroup("239.254.1.12"); mt.setFhr("SOURCE"); mt.setLhr("crs1.cisco.com"); mt.setDomainName("test-01");

try { JAXBElement<ImageType> sgresp = (JAXBElement<ImageType>) getWebServiceTemplate().marshalSendAndReceive( objf.createMulticastTraceRequest(mt));

ImageType im = sgresp.getValue(); BufferedImage bim = (BufferedImage) im.getImage();

System.out.println("Image Name is :" + im.getName());

File f = new File("c:/tmp/cmmJaxBWTClientTrace.png");

ImageIO.write(bim, "png", f); } catch (SoapFaultClientException ex) { System.out.println("getMulticastTrace : SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("getMulticastTrace : SOAP Fault String:" + ex.getFaultStringOrReason()); } catch (Exception e) { System.out.println("getMulticastTrace : Exception : " + e.getLocalizedMessage()); }

}

Get Multicast Devices in a Domain

Description

Use this operation to get a list of all devices in a specified domain.

Request Message

JAXBElement<string>

string—Specifies the domain name.

Response Message

JAXBElement<DeviceListType>

• DeviceListType—A JAXB-generated class that encapsulates an array list of DeviceType.

• DeviceType—A JAXB-generated wrapper class that encapsulates a domain name, device IP address, device type enumeration, model, and device name.

2-33Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

SOAP Errors

A SOAP fault describing the error.

Example Code

public void getMulticastDevices() { String dt = "test-01"; try { JAXBElement<DeviceListType> sgresp = (JAXBElement<DeviceListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastDevicesRequest(dt)); DeviceListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting Multicast devices for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getDevice().size(); i++) { DeviceType sg = sgt.getDevice().get(i); System.out.println("Name " + sg.getName() + " ip " + sg.getIp()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Get Multicast Events

Description

Use this operation to initiate a query about events generated by CMM.

Request Message

JAXBElement<EventsQueryType>

EventsQueryType—A class that encapsulates query parameter for filtering events.It encapsulates a number of query parameters such as the domain name, device IP address, and source and group IP address, which are used to filter the results of the query.

Response Message

JAXBElement<EventListType>

• EventListType—A JAXB-generated class that encapsulates an array list of CmmEventType.

• CmmEventType—A JAXB-generated class that encapsulates an event ID, eventType, date, device name (if applicable), and event details (as seen on the CMM GUI).

Example Codepublic void getMulticastEventsList() { EventsQueryType et=objf.createEventsQueryType(); et.setDomainName("test-01"); et.setSource("126.32.193.29"); et.setGroup("239.254.1.12"); et.setDeviceIp("126.1.4.12");

2-34Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

//et.setDeviceName("cmm-7604-sd2.dns-sj.cisco.com"); et.setEventType(EventTypeEnumeration.VIDMON_EVENTS); Calendar calendar1 = new GregorianCalendar(); calendar1.set(2008,11,1,1,1,1);

Calendar calendar2 = new GregorianCalendar(); Date endtTime = new Date(); calendar2.setTime(endtTime); et.setStartTime(calendar1); //et.setEndTime(calendar2); et.setMaxNumberOfEvents(19);

//Date startTime = new Date(); //calendar.setTime(startTime); //et.setStartTime(calendar); try{ JAXBElement<EventListType> sgresp =(JAXBElement<EventListType>)getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastEventsRequest(et)); EventListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting events for domain test"); System.out.println("===========================");

for(int i=0;i<sgt.getEvents().size();i++) { CmmEventType sg = sgt.getEvents().get(i); System.out.println("DEviceName "+sg.getDeviceName()+ " type "+sg.getType()+" detalis: "+sg.getDetails()); }

} catch(SoapFaultClientException ex) { System.out.println("SOAP Fault Code:"+ ex.getFaultCode().getLocalPart() ); System.out.println("SOAP Fault String:"+ ex.getFaultStringOrReason() ); }

}

Get RP Polling ConfigurationUse this operation to retrieve Rendezvous Point (RP) polling configuration for a specified domain.

Request Message

JAXBElement<string>

string—Specifies the domain name.

Response Message:

JAXBElement<RPPollingListType>

• RPPollingListType—A JAXB-generated class that indicates the domain name and encapsulates an array list of RPPollingType.

• RPPollingType—A JAXB-generated wrapper class that encapsulates a device IP address or hostname, and a group limit for monitoring.

2-35Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void getAllRPPollingConfigs() { String dt = "test-01"; try { JAXBElement<RPPollingListType> sgresp = (JAXBElement<RPPollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllRPPollingRequest(dt)); RPPollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting RP Polling Configuration for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getRppoll().size(); i++) { RPPollingType sg = sgt.getRppoll().get(i); System.out.println(sg.getRouter() + "\t" + sg.getGroupCount()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Get RPF Polling ConfigurationUse this operation to add Reverse Path Forwarding (RPF) polling configuration for a specified source and group on a router.

Request Message

JAXBElement<string>

string—Specifies the domain name.

Response Message:

JAXBElement<RPPollingListType>

• RPPollingListType—A JAXB-generated class that indicates the domain name and encapsulates an array list of RPPollingType.

• RPPollingType—A JAXB-generated wrapper class that encapsulates a device IP address or hostname, and a group limit for monitoring.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void getAllRPFPollingConfigs() { String dt = "test-01";

2-36Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

try { JAXBElement<RPFPollingListType> sgresp = (JAXBElement<RPFPollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllRPFPollingRequest(dt)); RPFPollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting RPF Pollling Configuration for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getRpf().size(); i++) { RPFPollingType sg = sgt.getRpf().get(i); System.out.println(sg.getRouterName() + "\t" + sg.getGroupIp() + "\t" + sg.getSourceIp()+ "\t" +sg.getDelta()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Get S,G on a Device

Description

Use this operation to query a layer three device about currently active S,G on the device.

Request Message

JAXBElement< DeviceType >

DeviceType—A JAXB-generated wrapper class that encapsulates a domain name, device IP address, device type enumeration, model, and device name.

Response Message

JAXBElement<SGListType>

• SGListType—A JAXB-generated class that encapsulates an array list of sourceGroupType.

• sourceGroupType—A JAXB-generated class that encapsulates a string type for a source (source IP address) and for a group (group IP address).

SOAP Errors

A SOAP fault describing the error.

Code Examplepublic void getDeviceSg() { DeviceType dt = objf.createDeviceType(); dt.setDomainName("test-01"); dt.setIp("172.20.111.198"); dt.setModel("7600"); dt.setName("cmm-7206-sd1"); try{

2-37Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

JAXBElement<SGListType> sgresp =(JAXBElement<SGListType>)getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastDeviceSGRequest(dt)); SGListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting device SG list of " + dt.getIp()); System.out.println("===========================");

for(int i=0;i<sgt.getSg().size();i++) { SourceGroupType sg = sgt.getSg().get(i); System.out.println("source "+sg.getSource()+ " Group "+sg.getGroup()); }

} catch(SoapFaultClientException ex) { System.out.println("SOAP Fault Code:"+ ex.getFaultCode().getLocalPart() ); System.out.println("SOAP Fault String:"+ ex.getFaultStringOrReason() ); }

}

/*public void getMulticastTraceSoapFault() {

MulticastTraceType mt= new MulticastTraceType(); mt.setMulticastSource("10.10.10.20"); //mt.setMulticastGroup("239.20.20.20"); mt.setMulticastGroup(""); mt.setFhr("30.30.30.30"); mt.setLhr("10.20.10.20"); mt.setSeed("multicastTrace");

try{ JAXBElement<ImageType> sgresp =(JAXBElement<ImageType>)getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastTraceRequest(mt)); ImageType im = sgresp.getValue(); BufferedImage bim =(BufferedImage) im.getImage(); System.out.println("Image Name is :"+im.getName()); File f = new File("c:/cmmJaxBWTClientTrace.png"); ImageIO.write(bim, "png", f); } catch(SoapFaultClientException ex) { //System.out.println("SOAP Fault Code "+ ex.getFault().getFaultCodeAsQName()); //System.out.println("SOAP Fault String:"+ ex.getFault().getFaultString()); System.out.println("SOAP Fault Code:"+ ex.getFaultCode().getLocalPart() ); System.out.println("SOAP Fault String:"+ ex.getFaultStringOrReason() ); } catch(Exception e) { }

}*/

2-38Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Get S,G in a Domain

Description

Use this operation to get the S,G in a domain. This API operation initiates a query about available multicast streams in a particular domain.

Request Message

JAXBElement<string>

string—A string that specifies the domain name.

Response Message

JAXBElement<SGListType>

• SGListType—A JAXB-generated class that encapsulates an array list of sourceGroupType.

• sourceGroupType—A JAXB-generated class that encapsulates a string type for a source (source IP address) and for a group (group IP address).

SOAP Errors

A SOAP fault describing the error.

Example Code// multicastDomainSGRequest public void getDomainSg() { String dt = "test-01"; try { JAXBElement<SGListType> sgresp = (JAXBElement<SGListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastDomainSGRequest(dt)); SGListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting domain SG list"); System.out.println("===========================");

for (int i = 0; i < sgt.getSg().size(); i++) { SourceGroupType sg = sgt.getSg().get(i); System.out.println("source " + sg.getSource() + " Group " + sg.getGroup()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

Get S,G Polling ConfigurationUse this operation to retrieve the S,G polling configuration for a specified domain.

Request Message

JAXBElement<string>

string—A string that specifies the domain name.

2-39Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Response Message:

• SGPollingListType—A JAXB-generated wrapper class that encapsulates a domain name and array list of SGPollingType.

• SGPollingType—A JAXB-generated class that encapsulates a source IP address, group IP address, units value specifying the units for monitoring, a high threshold, and a low threshold.

– The setUnits value specifies the type units for the high and low threshold. To monitor packets per second, specify 0; to monitor bits per second, specify 1.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void getAllSGPollingConfigs() { String dt = "test-01"; try { JAXBElement<SGPollingListType> sgresp = (JAXBElement<SGPollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllSGPollingRequest(dt)); SGPollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting SG Polling Configuration for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getSg().size(); i++) { SGPollingType sg = sgt.getSg().get(i); System.out.println(sg.getSourceIp() + "\t" + sg.getGroupIp() + "\t" + sg.getRouterName()+ "\t" +sg.getUnits()+ "\t" +sg.getHigh()+ "\t" +sg.getLow()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Get S,G Time-Based Polling ConfigurationUse this operation for to retrieve the S,G time-based polling configuration for a specified domain.

Request Message

JAXBElement<string>

string—A string that specifies the domain name.

Response Message:

• SGTimePollingListType—A JAXB-generated class that encapsulates an a domain name and an array list of SGTimePollingType.

• SGTimePollingType—A JAXB-generated wrapper class that encapsulates a source IP address, group IP address, units value specifying the units for monitoring, a high threshold, a low threshold, a start time hour and minutes, stop time hour and minutes, and a day value.

2-40Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

– The setUnits value specifies the type units for the high and low threshold. To monitor packets per second, specify 0; to monitor bits per second, specify 1.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void getAllSGTimePollingConfigs() { String dt = "test-01"; try { JAXBElement<SGTimePollingListType> sgresp = (JAXBElement<SGTimePollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllSGTimePollingRequest(dt)); SGTimePollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting sgtime poll for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getSgtime().size(); i++) { SGTimePollingType sg = sgt.getSgtime().get(i); System.out.println(sg.getSource() + "\t" + sg.getGroup() + "\t" + sg.getRouter()+ "\t" +sg.getUnits()+ "\t" +sg.getHighThreshold() + "\t" + sg.getLowThreshold() + "\t" + sg.getStartTimeHur() + "\t" + sg.getStartTimeMin() + "\t" + sg.getStopTimeHur() + "\t" + sg.getStopTimeMin()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

public void getAllL2PollingConfigs() { String dt = "test-01"; try { JAXBElement<L2PollingListType> sgresp = (JAXBElement<L2PollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllL2PollingRequest(dt)); L2PollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting L2 Polling Configuration for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getL2().size(); i++) { L2PollingType sg = sgt.getL2().get(i); System.out.println(sg.getSwitchName() + "\t" + sg.getPortName() + "\t" + sg.getPortIfIndex()+ "\t" +sg.getDirection()+ "\t" +sg.getHighThreshold()+ "\t" +sg.getLowThreshold()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

2-41Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Get SSM Polling ConfigurationUse this operation to retrieve the Source Specific Multicast (SSM) polling configuration for a specified domain.

Request Message

JAXBElement<string>

string—A string that specifies the domain name.

Response Message:

• SSMPollingConfigType—A JAXB-generated class that encapsulates an array list of SSMPollingType.

• SSMPollingType—A JAXB-generated wrapper class that encapsulates a source IP address, group IP address, units value specifying the units for monitoring, a high threshold, a low threshold, a start time hour and minutes, stop time hour and minutes, and a day value.

– The setUnits value specifies the type units for the high and low threshold. To monitor packets per second, specify 0; to monitor bits per second, specify 1.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void getAllSSMPollingConfigs() { String dt = "test-01"; try { JAXBElement<SSMPollingListType> ssmresp = (JAXBElement<SSMPollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllSSMPollingRequest(dt)); SSMPollingListType ssmt = ssmresp.getValue(); System.out.println("==========================="); System.out.println("Getting SSM Polling Configuration for domain " + dt); System.out.println("===========================");

for (int i = 0; i < ssmt.getSsm().size(); i++) { SSMPollingType ssm = ssmt.getSsm().get(i); System.out.println(ssm.getGroupIp() + "\t" + ssm.getSourceIp()+ "\t" +ssm.getDays()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Get Tree Polling ConfigurationUse this operation to retrieve the tree polling configuration for a specified domain.

2-42Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Request Message

JAXBElement<string>

string—A string that specifies the domain name.

Response Message:

JAXBElement<TreePollingListType>

• TreePollingListType—A JAXB-generated class that contains a domain name and a TreePollingType object..

• TreePollingType—A JAXB-generated wrapper class that encapsulates a saved baseline and indicates whether it is to be used as a comparison baseline.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Samplepublic void getAllTreePollingConfigs() { String dt = "test-01"; try { JAXBElement<TreePollingListType> sgresp = (JAXBElement<TreePollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllTreePollingRequest(dt)); TreePollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting Tree Polling Configuration for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getTree().size(); i++) { TreePollingType sg = sgt.getTree().get(i); System.out.println(sg.getBaseLine() + "\t" + sg.isIsCompareBaseLine()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Get Video Probe Polling ConfigurationUse this operation to retrieve the video probe polling configuration for a specified domain.

Request Message

JAXBElement<string>

string—A string that specifies the domain name.

Response Message:

JAXBElement<VideoProbePollingListType>

2-43Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

• VideoProbePollingListType—A JAXB-generated class that encapsulates a domain name and an array list of VideoProbePollingType.

• VideoProbePollingType—A JAXB-generated wrapper class that encapsulates a video probe name, delay Factor (DF) threshold in milliseconds, and Media Loss Rate (MLR) value.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Sample

public void getAllVideoProbePollingConfigs() { String dt = "test-01"; try { JAXBElement<VideoProbePollingListType> sgresp = (JAXBElement<VideoProbePollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllVideoProbePollingRequest(dt)); VideoProbePollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting Video Probe Configuratin for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getVideoProbes().size(); i++) { VideoProbePollingType sg = sgt.getVideoProbes().get(i); System.out.println(sg.getProbeName() + "\t" + sg.getDf() + "\t" + sg.getLoss()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Get VidMon Polling ConfigurationUse this operation to retrieve the VidMon polling configuration for a specified domain.

Request Message

JAXBElement<string>

string—A string that specifies the domain name.

Response Message:

JAXBElement<VidmonPollingListType>

• VidmonPollingListType—A JAXB-generated class that encapsulates a domain name and an array list of VidmonPollingType.

• VidmonPollingType—A JAXB-generated wrapper class that encapsulates a device name, VidMon type, delay factor (DF) in milliseconds, a Media Loss Rate (MLR) threshold value (number of packets), a milli-percentage value that specifies a MRV maximum threshold., and a milli-percentage value that specifies a MRV minimum threshold.

2-44Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

Note The setVidmonType field in the VidmonPollingType class indicates the type of VidMon device for which you are adding polling. If the device is a Cisco 76xx series router, specify 1. If the device is an ASR 9000 series device, specify 0. Only 76xx devices support MLR monitoring; therefore you should only specify an MLR value in the setMlr call if the device is a 76xx device.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Sample

public void getAllVidmonPollingConfigs() { String dt = "test-01"; try { JAXBElement<VidmonPollingListType> sgresp = (JAXBElement<VidmonPollingListType>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastGetAllVidmonPollingRequest(dt)); VidmonPollingListType sgt = sgresp.getValue(); System.out.println("==========================="); System.out.println("Getting vidmon polling configurations for domain " + dt); System.out.println("===========================");

for (int i = 0; i < sgt.getVidmons().size(); i++) { VidmonPollingType sg = sgt.getVidmons().get(i); System.out.println(sg.getVidmonName() + "\t" + sg.getVidmonType() + "\t" + sg.getDf() + "\t" + sg.getMlr() + "\t" + sg.getMrvMax() + "\t" + sg.getMrvMin()); }

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Set Global Polling ConfigurationUse this operation to set the global polling configuration for a specified domain.

Request Message

JAXBElement<GlobalPollingListType>

• GlobalPollingListType—A JAXB-generated class that encapsulates an array list of GlobalPollingTypeWS.

• GlobalPollingTypeWS—A JAXB-generated wrapper class that encapsulates global polling configuration settings: including

– Arguments that specify the polling time and interval, such as the days and times when polling is to be active.

– Arguments to set designated router (DR) polling, threshold polling, and heartbeat polling.

2-45Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceAPI Operations

– An array list that specifies global default e-mail addresses for event notification

– An array list of GlobalPollingTrap elements that specifies the IP addresses to poll for SNMP traps.

– Values to set the trap repeat value for Rising and Falling traps and enable them

– A value to enable forwarding of Mixed Signals traps

– A value to set the Video Clear Timer

Response Message:

The response message contains an integer indicating the result of the operation.

SOAP Errors

A SOAP fault describing the error.

Example Code// Code Sample public void setGlobalPollingConfigs() { try { GlobalPollingListType gplt = new GlobalPollingListType();

GlobalPollingTypeWS gpt = new GlobalPollingTypeWS(); gpt.setDays("M-F"); // Sun,Mon,Tue,Wed,Thu,Fri,Sat,M-F,Everyday gpt.setHurMinSec("60"); // HR:3600,MIN:60,SEC:1 gpt.setInterval(301); gpt.setStartTimeHur(2); gpt.setStartTimeMin(3); gpt.setStopTimeHur(22); gpt.setStopTimeMin(40);

gplt.setDrPolling(gpt); gplt.setThresholdPolling(gpt); gplt.setHeartBeatPolling(gpt);

List<String> emails = new ArrayList(); emails.add("[email protected]"); gplt.getEmailAddress().addAll(emails);

List<GlobalPollingTrap> traps = new ArrayList(); GlobalPollingTrap trap = new GlobalPollingTrap(); trap = new GlobalPollingTrap(); trap.setPort(0); trap.setTrapReceiverAddress("172.20.111.240"); traps.add(trap);

gplt.getTrapReceivers().addAll(traps);

gplt.setTrapRepeat(1); gplt.setIsRisingFalling(false); gplt.setIsFwdMixedSignalTraps(false); gplt.setVideoProbeClearTimerHur(0); JAXBElement<Integer> ret = (JAXBElement<Integer>) getWebServiceTemplate().marshalSendAndReceive(objf.createMulticastSetGlobalPollingRequest(gplt)); int val = ret.getValue(); System.out.println("Global Polling status " + val);

2-46Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceSpring Framework Beans

} catch (SoapFaultClientException ex) { System.out.println("SOAP Fault Code:" + ex.getFaultCode().getLocalPart()); System.out.println("SOAP Fault String:" + ex.getFaultStringOrReason()); }

}

Spring Framework BeansThe CMM SDK includes a number of Java beans that are generated using the Spring Framework:

• Message Factory Bean, page 2-46

• JAXB Marshaller Bean, page 2-46

• Security Interceptor Bean, page 2-47

Message Factory BeanThis bean is used by superclasses of CmmWebServicesClient to initialize the message factory object for using SAAJ SOAP messages.

<bean id="messagFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/>

JAXB Marshaller Bean This bean is used for marshalling and un-marshalling SOAP messages from XML format to Java objects or from Java objects to XML format.

<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> <property name="contextPath" value="com.cisco.nm.cmm.ws.client.jaxws"/> <property name="mtomEnabled" value="true"/> </bean>

This is the main bean in the application. The main method gets an instance of this bean and starts issuing API operations. This bean takes the message factory bean, the marshaller bean, and the default URI as parameters. In the sample code, the service URL is supplied through the build.xml. file.

<bean id="httpClient" class="com.cisco.nm.cmm.ws.client.jaxws.CmmWebServicesClient"> <constructor-arg ref="messagFactory"/> <property name="marshaller" ref="marshaller"/> <property name="unmarshaller" ref="marshaller"/> <property name="defaultUri" value="http://localhost:8082/cmm/service/cmmNB.wsdl"/> <property name="interceptors" ref="securityInterceptor"/>

</bean>

2-47Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceSpring Framework Beans

Security Interceptor BeanThis bean lets you define WS-Security policies. In the current implementation of the SDK, we use the user name admin and the password rmsmmt for authenticating WS messages.

<bean id="securityInterceptor" class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor"> <property name="securementActions" value="UsernameToken"/> <property name="securementUsername" value="admin"/> <property name="securementPassword" value="rmsmmt"/> <property name="securementPasswordType" value="PasswordText"/> </bean>

2-48Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Chapter 2 Cisco Multicast Manager API ReferenceSpring Framework Beans

A-1Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

A P P E N D I X ACMM Web Services Schema

This appendix lists the cmmWebServices.xsd schema file that defines the CMM API set.

cmmWebServices.xsd<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://cisco.com.cmm30/schema/cmmWebServices" xmlns:tns="http://cisco.com.cmm30/schema/cmmWebServices" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" elementFormDefault="qualified"> <xsd:annotation> <xsd:appinfo> <jaxb:globalBindings> <jaxb:javaType name="java.util.Calendar" xmlType="xsd:dateTime" parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" printMethod="javax.xml.bind.DatatypeConverter.printDateTime" /> </jaxb:globalBindings> </xsd:appinfo> </xsd:annotation> <xsd:simpleType name="ipAddress"> <xsd:restriction base="xsd:string"> <xsd:pattern value="((1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5]).){3}(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="EventTypeEnumeration"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="DR_EVENTS"/> <xsd:enumeration value="GROUP_GONE_EVENTS"/> <xsd:enumeration value="HEALTH_CHECK_EVENTS"/> <xsd:enumeration value="LTWOPPS_THRESHOLD_EVENTS"/> <xsd:enumeration value="MULTICAST_BANDHWIDTH_EVENTS"/> <xsd:enumeration value="MDT_DEFAULT_EVENTS"/> <xsd:enumeration value="MDT_SOURCE_EVENTS"/> <xsd:enumeration value="RP_GROUP_THRESHOLD_EVENTS"/> <xsd:enumeration value="RP_POLLING_EVENTS"/> <xsd:enumeration value="RPF_FAILURE_EVENTS"/> <xsd:enumeration value="SG_THRESHOLD_EVENTS"/> <xsd:enumeration value="SG_DELTA_EVENTS"/> <xsd:enumeration value="SSG_EVENTS"/> <xsd:enumeration value="SSM_EVENTS"/>

A-2Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix A CMM Web Services SchemacmmWebServices.xsd

<xsd:enumeration value="TRACE_EVENTS"/> <xsd:enumeration value="VIDEO_PROBE_EVENTS"/> <xsd:enumeration value="VRF_COUNT_EVENTS"/> <xsd:enumeration value="VRF_EVENTS"/> <xsd:enumeration value="VRF_INTERFACE_COUNT_EVENTS"/> <xsd:enumeration value="VIDMON_EVENTS"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="DeviceTypeEnumeration"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Router"/> <xsd:enumeration value="Switch"/> <xsd:enumeration value="Video"/> <xsd:enumeration value="Unicast"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="VideoApplicationTypeEnumeration"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="IVMS4x"/> <xsd:enumeration value="IVMS3x"/> <xsd:enumeration value="BRIDGETECH"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="multicastTraceType"> <xsd:sequence> <xsd:element name="multicastSource" type="tns:ipAddress"> </xsd:element> <xsd:element name="multicastGroup" type="tns:ipAddress"> </xsd:element> <xsd:element name="fhr" type="xsd:string"> </xsd:element> <xsd:element name="lhr" type="xsd:string"> </xsd:element> <xsd:element name="domainName" type="xsd:string"> </xsd:element> <xsd:element name="serviceType" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="sourceGroupType"> <xsd:sequence> <xsd:element name="source" type="tns:ipAddress"> </xsd:element> <xsd:element name="group" type="tns:ipAddress"> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SGListType"> <xsd:sequence> <xsd:element name="sg" type="tns:sourceGroupType" maxOccurs="unbounded"> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ImageType"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="image" type="xsd:base64Binary" xmime:expectedContentTypes="image/png"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="DeviceType"> <xsd:sequence> <xsd:element name="name" type="xsd:string"> </xsd:element> <xsd:element name="ip" type="tns:ipAddress">

A-3Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix A CMM Web Services SchemacmmWebServices.xsd

</xsd:element> <xsd:element name="type" type="tns:DeviceTypeEnumeration"> </xsd:element> <xsd:element name="model" type="xsd:string"> </xsd:element> <xsd:element name="domainName" type="xsd:string"> </xsd:element> <xsd:element name="communityString" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="DeviceListType"> <xsd:sequence> <xsd:element name="device" type="tns:DeviceType" maxOccurs="unbounded"> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="CmmEventType"> <xsd:sequence> <xsd:element name="eventId" type="xsd:long"> </xsd:element> <xsd:element name="type" type="tns:EventTypeEnumeration"> </xsd:element> <xsd:element name="date" type="xsd:dateTime"> </xsd:element> <xsd:element name="deviceName" type="xsd:string"> </xsd:element> <xsd:element name="details" type="xsd:string"> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="EventListType"> <xsd:sequence> <xsd:element name="events" type="tns:CmmEventType" maxOccurs="unbounded"> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="EventsQueryType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string"> </xsd:element> <xsd:element name="deviceIp" type="tns:ipAddress"> </xsd:element> <xsd:element name="source" type="tns:ipAddress"> </xsd:element> <xsd:element name="group" type="tns:ipAddress"> </xsd:element> <xsd:element name="startTime" type="xsd:dateTime"> </xsd:element> <xsd:element name="endTime" type="xsd:dateTime"> </xsd:element> <xsd:element name="eventType" type="tns:EventTypeEnumeration"> </xsd:element> <xsd:element name="baseLineName" type="xsd:string"> </xsd:element> <xsd:element name="maxNumberOfEvents" type="xsd:int"></xsd:element> <xsd:element name="deviceName" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType>

<xsd:complexType name="VideoProbeType"> <xsd:sequence> <xsd:element name="probeName" type="xsd:string"></xsd:element> <xsd:element name="probeIpAddress" type="tns:ipAddress"></xsd:element> <xsd:element name="roCommunity" type="xsd:string"></xsd:element>

A-4Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix A CMM Web Services SchemacmmWebServices.xsd

<xsd:element name="rwCommunity" type="xsd:string"></xsd:element> <xsd:element name="routerIpAddress" type="tns:ipAddress"></xsd:element> <xsd:element name="routerRoCommunity" type="xsd:string"></xsd:element> <xsd:element name="interfaceDescription" type="xsd:string"></xsd:element> <xsd:element name="snmptimeout" type="xsd:int"></xsd:element> <xsd:element name="snmpRetries" type="xsd:int"></xsd:element> <xsd:element name="applicationType" type="tns:VideoApplicationTypeEnumeration"></xsd:element> <xsd:element name="domainName" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VideoProbeListType"> <xsd:sequence> <xsd:element name="VideoProbe" type="tns:VideoProbeType" maxOccurs="unbounded"></xsd:element> </xsd:sequence> </xsd:complexType>

<xsd:complexType name="CmmWsFaultType"> <xsd:sequence> <xsd:element name="faultDescription" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType>

<!-- CMM 3.2 Web Service --> <xsd:complexType name="BulkMessageReturnWS"> <xsd:sequence> <xsd:element name="returnStatus" type="xsd:int" /> <xsd:element name="successList" type="xsd:string" maxOccurs="unbounded" /> <xsd:element name="failureList" type="xsd:string" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SGPollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="sg" type="tns:SGPollingType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SGPollingType"> <xsd:sequence> <xsd:element name="sourceIp" type="tns:ipAddress" /> <xsd:element name="groupIp" type="tns:ipAddress" /> <xsd:element name="routerName" type="xsd:string" /> <xsd:element name="units" type="xsd:int" /> <xsd:element name="high" type="xsd:int" /> <xsd:element name="low" type="xsd:int" /> </xsd:sequence> </xsd:complexType>

<xsd:complexType name="SSMPollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="ssm" type="tns:SSMPollingType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SSMPollingConfigType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="ssm" type="tns:SSMPollingType" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="SSMPollingType"> <xsd:sequence> <xsd:element name="sourceIp" type="tns:ipAddress" />

A-5Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix A CMM Web Services SchemacmmWebServices.xsd

<xsd:element name="groupIp" type="tns:ipAddress" /> <xsd:element name="ConfigureThreshold" type="xsd:boolean" /> <xsd:element name="units" type="xsd:int" /> <xsd:element name="high" type="xsd:int" /> <xsd:element name="low" type="xsd:int" /> <xsd:element name="startTime_hur" type="xsd:int" /> <xsd:element name="startTime_min" type="xsd:int" /> <xsd:element name="stopTime_hur" type="xsd:int" /> <xsd:element name="stopTime_min" type="xsd:int" /> <xsd:element name="days" type="xsd:string" /> </xsd:sequence> </xsd:complexType>

<xsd:complexType name="L2PollingConfigType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="l2" type="tns:L2PollingType" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="L2PollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="l2" type="tns:L2PollingType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="L2PollingType"> <xsd:sequence> <xsd:element name="switchName" type="xsd:string" /> <xsd:element name="portName" type="xsd:string" /> <xsd:element name="portIfIndex" type="xsd:int" /> <xsd:element name="direction" type="xsd:int" /> <xsd:element name="highThreshold" type="xsd:int" /> <xsd:element name="lowThreshold" type="xsd:int" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="RPFPollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="rpf" type="tns:RPFPollingType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="RPFPollingConfigType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="rpf" type="tns:RPFPollingType" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="RPFPollingType"> <xsd:sequence> <xsd:element name="sourceIp" type="tns:ipAddress" /> <xsd:element name="groupIp" type="tns:ipAddress" /> <xsd:element name="routerName" type="xsd:string" /> <xsd:element name="delta" type="xsd:int" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="TreePollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="tree" type="tns:TreePollingType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="TreePollingConfigType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" />

A-6Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix A CMM Web Services SchemacmmWebServices.xsd

<xsd:element name="tree" type="tns:TreePollingType" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="TreePollingType"> <xsd:sequence> <xsd:element name="baseLine" type="xsd:string" /> <xsd:element name="isCompareBaseLine" type="xsd:boolean" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="IntPollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="interfaces" type="tns:IntPollingType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="IntPollingType"> <xsd:sequence> <xsd:element name="routerName" type="xsd:string" /> <xsd:element name="interfaceName" type="xsd:string" /> <xsd:element name="ifindex" type="xsd:int" /> <xsd:element name="bandwidth" type="xsd:long" /> <xsd:element name="direction" type="xsd:int" /> <xsd:element name="highThreshold" type="xsd:int" /> <xsd:element name="lowThreshold" type="xsd:int" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VideoProbePollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="videoProbes" type="tns:VideoProbePollingType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VideoProbePollingType"> <xsd:sequence> <xsd:element name="probeName" type="xsd:string" /> <xsd:element name="df" type="xsd:int" /> <xsd:element name="loss" type="xsd:int" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VidmonPollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="vidmons" type="tns:VidmonPollingType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VidmonPollingType"> <xsd:sequence> <xsd:element name="vidmonName" type="xsd:string" /> <xsd:element name="df" type="xsd:int" /> <xsd:element name="mrv_min" type="xsd:int" /> <xsd:element name="mrv_max" type="xsd:int" /> <xsd:element name="mlr" type="xsd:int" /> <xsd:element name="vidmonType" type="xsd:int" /> </xsd:sequence> </xsd:complexType>

<xsd:complexType name="SGTimePollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="sgtime" type="tns:SGTimePollingType" maxOccurs="unbounded" />

A-7Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix A CMM Web Services SchemacmmWebServices.xsd

</xsd:sequence> </xsd:complexType>

<xsd:complexType name="SGTimePollingType"> <xsd:sequence> <xsd:element name="source" type="tns:ipAddress" /> <xsd:element name="group" type="tns:ipAddress" /> <xsd:element name="router" type="xsd:string" /> <xsd:element name="units" type="xsd:int" /> <xsd:element name="highThreshold" type="xsd:int" /> <xsd:element name="lowThreshold" type="xsd:int" /> <xsd:element name="startTime_hur" type="xsd:int" /> <xsd:element name="startTime_min" type="xsd:int" /> <xsd:element name="stopTime_hur" type="xsd:int" /> <xsd:element name="stopTime_min" type="xsd:int" /> <xsd:element name="days" type="xsd:string" /> </xsd:sequence> </xsd:complexType>

<xsd:complexType name="RPPollingListType"> <xsd:sequence> <xsd:element name="domainName" type="xsd:string" /> <xsd:element name="rppoll" type="tns:RPPollingType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType>

<xsd:complexType name="RPPollingType"> <xsd:sequence> <xsd:element name="router" type="xsd:string" /> <xsd:element name="groupCount" type="xsd:int" /> </xsd:sequence> </xsd:complexType>

<xsd:complexType name="GlobalPollingListType"> <xsd:sequence> <xsd:element name="drPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="routeMonPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="specificRouteMonPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="rpgPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="rpsPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="rpfPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="thresholdPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="multicastTopoPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="treePolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="interfacePolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="healthPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="selectiveSourcePolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="videoProbePolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="videoMonPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="MVPNPolling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="l2Polling" type="tns:GlobalPollingTypeWS" /> <xsd:element name="heartBeatPolling" type="tns:GlobalPollingTypeWS" />

<xsd:element name="videoProbeClearTimerHur" type="xsd:int" /> <xsd:element name="isRisingFalling" type="xsd:boolean" /> <xsd:element name="trapRepeat" type="xsd:int" /> <xsd:element name="trapReceivers" type="tns:GlobalPollingTrap" maxOccurs="unbounded" /> <xsd:element name="emailAddress" type="xsd:string" maxOccurs="unbounded" /> <xsd:element name="isFwdMixedSignalTraps" type="xsd:boolean" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="GlobalPollingTypeWS"> <xsd:sequence>

A-8Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix A CMM Web Services SchemacmmWebServices.xsd

<xsd:element name="interval" type="xsd:int" /> <xsd:element name="hurMinSec" type="xsd:string" /> <xsd:element name="startTimeHur" type="xsd:int" /> <xsd:element name="startTimeMin" type="xsd:int" /> <xsd:element name="stopTimeHur" type="xsd:int" /> <xsd:element name="stopTimeMin" type="xsd:int" /> <xsd:element name="days" type="xsd:string" /> <xsd:element name="maxThreads" type="xsd:int" /> <xsd:element name="maxDays" type="xsd:int" /> <xsd:element name="maxReports" type="xsd:int" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="GlobalPollingTrap"> <xsd:sequence> <xsd:element name="trapReceiverAddress" type="tns:ipAddress" /> <xsd:element name="port" type="xsd:int" /> </xsd:sequence> </xsd:complexType> <!-- CMM 3.2 Web Service -->

<xsd:element name="multicastTraceRequest" type="tns:multicastTraceType"></xsd:element> <xsd:element name="multicastTraceResponse" type="tns:ImageType"> </xsd:element> <xsd:element name="multicastTraceFault" type="tns:CmmWsFaultType"></xsd:element>

<xsd:element name="multicastDomainSGRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastDomainSGResponse" type="tns:SGListType"></xsd:element> <xsd:element name="multicastDomainSGFault" type="tns:CmmWsFaultType"></xsd:element>

<xsd:element name="multicastDeviceSGRequest" type="tns:DeviceType"></xsd:element> <xsd:element name="multicastDeviceSGResponse" type="tns:SGListType"></xsd:element> <xsd:element name="multicastDeviceSGFault" type="tns:CmmWsFaultType"></xsd:element>

<xsd:element name="multicastDevicesRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastDevicesResponse" type="tns:DeviceListType"></xsd:element> <xsd:element name="multicastDevicesFault" type="tns:CmmWsFaultType"></xsd:element>

<xsd:element name="multicastEventsRequest" type="tns:EventsQueryType"></xsd:element> <xsd:element name="multicastEventsResponse" type="tns:EventListType"></xsd:element> <xsd:element name="multicastEventsFault" type="tns:CmmWsFaultType"></xsd:element>

<xsd:element name="multicastAddUpdateDevicesRequest" type="tns:DeviceListType"></xsd:element> <xsd:element name="multicastAddUpdateDevicesResponse" type="tns:DeviceListType"></xsd:element> <xsd:element name="multicastAddUpdateDevicesFault" type="tns:CmmWsFaultType"></xsd:element>

<xsd:element name="multicastDeleteDevicesRequest" type="tns:DeviceListType"></xsd:element> <xsd:element name="multicastDeleteDevicesResponse" type="tns:DeviceListType"></xsd:element> <xsd:element name="multicastDeleteDevicesFault" type="tns:DeviceListType"></xsd:element>

<xsd:element name="multicastAddUpdateVideoProbeRequest" type="tns:VideoProbeListType"></xsd:element> <xsd:element name="multicastAddUpdateVideoProbeResponse" type="tns:VideoProbeListType"></xsd:element> <xsd:element name="multicastAddUpdateVideoProbeFault" type="tns:CmmWsFaultType"></xsd:element>

<xsd:element name="multicastGetGlobalPollingResponse" type="tns:GlobalPollingListType"></xsd:element>

A-9Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix A CMM Web Services SchemacmmWebServices.xsd

<xsd:element name="multicastGetGlobalPollingFault" type="tns:CmmWsFaultType"></xsd:element> <xsd:element name="multicastSetGlobalPollingRequest" type="tns:GlobalPollingListType"></xsd:element> <xsd:element name="multicastSetGlobalPollingResponse" type="xsd:int"></xsd:element> <xsd:element name="multicastSetGlobalPollingFault" type="tns:CmmWsFaultType"></xsd:element>

<xsd:element name="multicastSGPollingDeleteRequest" type="tns:SGPollingListType"></xsd:element> <xsd:element name="multicastPollingResponse" type="tns:BulkMessageReturnWS"></xsd:element> <xsd:element name="multicastPollingFault" type="tns:CmmWsFaultType"></xsd:element> <xsd:element name="multicastSGPollingAddRequest" type="tns:SGPollingListType"></xsd:element> <xsd:element name="multicastGetAllSGPollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllSGPollingResponse" type="tns:SGPollingListType"></xsd:element>

<xsd:element name="multicastL2PollingDeleteRequest" type="tns:L2PollingListType"></xsd:element> <xsd:element name="multicastL2PollingAddRequest" type="tns:L2PollingConfigType"></xsd:element> <xsd:element name="multicastL2PollingAddResponse" type="xsd:int"></xsd:element> <xsd:element name="multicastGetAllL2PollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllL2PollingResponse" type="tns:L2PollingListType" ></xsd:element>

<xsd:element name="multicastIntPollingDeleteRequest" type="tns:IntPollingListType"></xsd:element> <xsd:element name="multicastIntPollingAddRequest" type="tns:IntPollingListType"></xsd:element> <xsd:element name="multicastGetAllIntPollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllIntPollingResponse" type="tns:IntPollingListType"></xsd:element>

<xsd:element name="multicastRPFPollingDeleteRequest" type="tns:RPFPollingListType"></xsd:element> <xsd:element name="multicastRPFPollingAddRequest" type="tns:RPFPollingConfigType"></xsd:element> <xsd:element name="multicastRPFPollingAddResponse" type="xsd:int"></xsd:element> <xsd:element name="multicastGetAllRPFPollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllRPFPollingResponse" type="tns:RPFPollingListType" ></xsd:element>

<xsd:element name="multicastTreePollingDeleteRequest" type="tns:TreePollingListType"></xsd:element> <xsd:element name="multicastTreePollingAddRequest" type="tns:TreePollingConfigType"></xsd:element> <xsd:element name="multicastTreePollingAddResponse" type="xsd:int"></xsd:element> <xsd:element name="multicastGetAllTreePollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllTreePollingResponse" type="tns:TreePollingListType" ></xsd:element>

<xsd:element name="multicastVideoProbePollingDeleteRequest" type="tns:VideoProbePollingListType"></xsd:element> <xsd:element name="multicastVideoProbePollingAddRequest" type="tns:VideoProbePollingListType"></xsd:element> <xsd:element name="multicastGetAllVideoProbePollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllVideoProbePollingResponse" type="tns:VideoProbePollingListType"></xsd:element>

A-10Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix A CMM Web Services SchemacmmWebServices.xsd

<xsd:element name="multicastVidmonPollingDeleteRequest" type="tns:VidmonPollingListType"></xsd:element> <xsd:element name="multicastVidmonPollingAddRequest" type="tns:VidmonPollingListType"></xsd:element> <xsd:element name="multicastGetAllVidmonPollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllVidmonPollingResponse" type="tns:VidmonPollingListType"></xsd:element>

<xsd:element name="multicastGetAllSGTimePollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllSGTimePollingResponse" type="tns:SGTimePollingListType"></xsd:element> <xsd:element name="multicastSGTimePollingAddRequest" type="tns:SGTimePollingListType"></xsd:element> <xsd:element name="multicastSGTimePollingDeleteRequest" type="tns:SGTimePollingListType"></xsd:element>

<xsd:element name="multicastGetAllRPPollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllRPPollingResponse" type="tns:RPPollingListType"></xsd:element> <xsd:element name="multicastRPPollingAddRequest" type="tns:RPPollingListType"></xsd:element> <xsd:element name="multicastRPPollingAddResponse" type="xsd:int"></xsd:element> <xsd:element name="multicastRPPollingDeleteRequest" type="tns:RPPollingListType"></xsd:element>

<xsd:element name="multicastSSMPollingDeleteRequest" type="tns:SSMPollingListType"></xsd:element> <xsd:element name="multicastSSMPollingAddRequest" type="tns:SSMPollingConfigType"></xsd:element> <xsd:element name="multicastSSMPollingAddResponse" type="xsd:int"></xsd:element> <xsd:element name="multicastGetAllSSMPollingRequest" type="xsd:string"></xsd:element> <xsd:element name="multicastGetAllSSMPollingResponse" type="tns:SSMPollingListType"></xsd:element>

</xsd:schema>

B-1Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

A P P E N D I X BcmmNB.wsdl File

This appendix lists the cmmNB.wsdl Web Services Definition Language file.

cmmNB.wsdl<?xml version="1.0" encoding="windows-1252"?><definitions name="cmmNB" targetNamespace="http://cisco.com.cmm30/schema/CiscoMulticastManager" xmlns:tns="http://cisco.com.cmm30/schema/CiscoMulticastManager" xmlns:ns="http://cisco.com.cmm30/schema/cmmWebServices" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <types> <xsd:schema targetNamespace="http://cisco.com.cmm30/schema/CiscoMulticastManager">

<xsd:import namespace="http://cisco.com.cmm30/schema/cmmWebServices" schemaLocation="../cmmWebServices.xsd"/> </xsd:schema> </types> <message name="msgMulticastDomainSGRequest"> <part name="part1" element="ns:multicastDomainSGRequest"/> </message> <message name="msgMulticastDomainSGResponse"> <part name="part1" element="ns:multicastDomainSGResponse"/> </message> <message name="msgMulticastTraceRequest"> <part name="part1" element="ns:multicastTraceRequest"/> </message> <message name="msgMulticastTraceResponse"> <part name="part1" element="ns:multicastTraceResponse"/> </message> <message name="msgMulticastDeviceRequest"> <part name="part1" element="ns:multicastDevicesRequest"/> </message> <message name="msgMulticastDeviceResponse"> <part name="part1" element="ns:multicastDevicesResponse"/> </message> <message name="msgMulticastDeviceSgListRequest"> <part name="part1" element="ns:multicastDeviceSGRequest"/> </message> <message name="msgMulticastDeviceSgListResponse"> <part name="part1" element="ns:multicastDeviceSGResponse"/>

B-2Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

</message> <message name="msgMulticastEventsRequest"> <part name="part1" element="ns:multicastEventsRequest"/> </message> <message name="msgMulticastEventsResponse"> <part name="part1" element="ns:multicastEventsResponse"/> </message> <message name="msgMulticastDomainSGFault"> <part name="part1" element="ns:multicastDomainSGFault"/> </message> <message name="msgMulticastTraceFault"> <part name="part1" element="ns:multicastTraceFault"/> </message> <message name="msgMulticastDeviceFault"> <part name="part1" element="ns:multicastDevicesFault"/> </message> <message name="msgMulticastDeviceSgFault"> <part name="part1" element="ns:multicastDeviceSGFault"/> </message> <message name="msgMulticastEventsFault"> <part name="part1" element="ns:multicastEventsFault"/> </message> <message name="msgMulticastAddUpdateDevicesRequest"> <part name="part1" element="ns:multicastAddUpdateDevicesRequest"/> </message> <message name="msgMulticastAddUpdateDevicesResponse"> <part name="part1" element="ns:multicastAddUpdateDevicesResponse"/> </message> <message name="msgMulticastAddUpdateDevicesFault"> <part name="part1" element="ns:multicastAddUpdateDevicesFault"/> </message> <message name="msgMulticastDeleteDevicesRequest"> <part name="part1" element="ns:multicastDeleteDevicesRequest"/> </message> <message name="msgMulticastDeleteDevicesResponse"> <part name="part1" element="ns:multicastDeleteDevicesResponse"/> </message> <message name="msgMulticastDeleteDevicesFault"> <part name="part1" element="ns:multicastDeleteDevicesFault"/> </message> <message name="msgMulticastAddUpdateVideoProbeRequest"> <part name="part1" element="ns:multicastAddUpdateVideoProbeRequest"/> </message> <message name="msgMulticastAddUpdateVideoProbeResponse"> <part name="part1" element="ns:multicastAddUpdateVideoProbeResponse"/> </message> <message name="msgMulticastAddUpdateVideoProbeFault"> <part name="part1" element="ns:multicastAddUpdateVideoProbeFault"/> </message> <!-- CMM 3.2 web services --> <message name="msgMulticastSetGlobalPollingRequest"> <part name="part1" element="ns:multicastSetGlobalPollingRequest"/> </message> <message name="msgMulticastSetGlobalPollingResponse"> <part name="part1" element="ns:multicastSetGlobalPollingResponse"/> </message>

<message name="msgMulticastSGPollingDeleteRequest"> <part name="part1" element="ns:multicastSGPollingDeleteRequest"/> </message> <message name="msgMulticastPollingResponse"> <part name="part1" element="ns:multicastPollingResponse"/> </message>

B-3Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<message name="msgMulticastPollingFault"> <part name="part1" element="ns:multicastPollingFault"/> </message> <message name="msgMulticastSGPollingAddRequest"> <part name="part1" element="ns:multicastSGPollingAddRequest"/> </message> <message name="msgMulticastGetAllSGPollingRequest"> <part name="part1" element="ns:multicastGetAllSGPollingRequest"/> </message> <message name="msgMulticastGetAllSGPollingResponse"> <part name="part1" element="ns:multicastGetAllSGPollingResponse"/> </message>

<message name="msgMulticastL2PollingDeleteRequest"> <part name="part1" element="ns:multicastL2PollingDeleteRequest"/> </message> <message name="msgMulticastL2PollingAddRequest"> <part name="part1" element="ns:multicastL2PollingAddRequest"/> </message> <message name="msgMulticastL2PollingAddResponse"> <part name="part1" element="ns:multicastL2PollingAddResponse"/> </message> <message name="msgMulticastGetAllL2PollingRequest"> <part name="part1" element="ns:multicastGetAllL2PollingRequest"/> </message> <message name="msgMulticastGetAllL2PollingResponse"> <part name="part1" element="ns:multicastGetAllL2PollingResponse"/> </message>

<message name="msgMulticastIntPollingDeleteRequest"> <part name="part1" element="ns:multicastIntPollingDeleteRequest"/> </message> <message name="msgMulticastIntPollingAddRequest"> <part name="part1" element="ns:multicastIntPollingAddRequest"/> </message> <message name="msgMulticastGetAllIntPollingRequest"> <part name="part1" element="ns:multicastGetAllIntPollingRequest"/> </message> <message name="msgMulticastGetAllIntPollingResponse"> <part name="part1" element="ns:multicastGetAllIntPollingResponse"/> </message>

<message name="msgMulticastRPFPollingDeleteRequest"> <part name="part1" element="ns:multicastRPFPollingDeleteRequest"/> </message> <message name="msgMulticastRPFPollingAddRequest"> <part name="part1" element="ns:multicastRPFPollingAddRequest"/> </message> <message name="msgMulticastRPFPollingAddResponse"> <part name="part1" element="ns:multicastRPFPollingAddResponse"/> </message> <message name="msgMulticastGetAllRPFPollingRequest"> <part name="part1" element="ns:multicastGetAllRPFPollingRequest"/> </message> <message name="msgMulticastGetAllRPFPollingResponse"> <part name="part1" element="ns:multicastGetAllRPFPollingResponse"/> </message>

<message name="msgMulticastSSMPollingDeleteRequest"> <part name="part1" element="ns:multicastSSMPollingDeleteRequest"/> </message> <message name="msgMulticastSSMPollingAddRequest"> <part name="part1" element="ns:multicastSSMPollingAddRequest"/> </message>

B-4Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<message name="msgMulticastSSMPollingAddResponse"> <part name="part1" element="ns:multicastSSMPollingAddResponse"/> </message> <message name="msgMulticastGetAllSSMPollingRequest"> <part name="part1" element="ns:multicastGetAllSSMPollingRequest"/> </message> <message name="msgMulticastGetAllSSMPollingResponse"> <part name="part1" element="ns:multicastGetAllSSMPollingResponse"/> </message>

<message name="msgMulticastTreePollingDeleteRequest"> <part name="part1" element="ns:multicastTreePollingDeleteRequest"/> </message> <message name="msgMulticastTreePollingAddRequest"> <part name="part1" element="ns:multicastTreePollingAddRequest"/> </message> <message name="msgMulticastTreePollingAddResponse"> <part name="part1" element="ns:multicastTreePollingAddResponse"/> </message> <message name="msgMulticastGetAllTreePollingRequest"> <part name="part1" element="ns:multicastGetAllTreePollingRequest"/> </message> <message name="msgMulticastGetAllTreePollingResponse"> <part name="part1" element="ns:multicastGetAllTreePollingResponse"/> </message>

<message name="msgMulticastVideoProbePollingDeleteRequest"> <part name="part1" element="ns:multicastVideoProbePollingDeleteRequest"/> </message> <message name="msgMulticastVideoProbePollingAddRequest"> <part name="part1" element="ns:multicastVideoProbePollingAddRequest"/> </message> <message name="msgMulticastGetAllVideoProbePollingRequest"> <part name="part1" element="ns:multicastGetAllVideoProbePollingRequest"/> </message> <message name="msgMulticastGetAllVideoProbePollingResponse"> <part name="part1" element="ns:multicastGetAllVideoProbePollingResponse"/> </message>

<message name="msgMulticastVidmonPollingDeleteRequest"> <part name="part1" element="ns:multicastVidmonPollingDeleteRequest"/> </message> <message name="msgMulticastVidmonPollingAddRequest"> <part name="part1" element="ns:multicastVidmonPollingAddRequest"/> </message> <message name="msgMulticastGetAllVidmonPollingRequest"> <part name="part1" element="ns:multicastGetAllVidmonPollingRequest"/> </message> <message name="msgMulticastGetAllVidmonPollingResponse"> <part name="part1" element="ns:multicastGetAllVidmonPollingResponse"/> </message>

<message name="msgMulticastSGTimePollingDeleteRequest"> <part name="part1" element="ns:multicastSGTimePollingDeleteRequest"/> </message> <message name="msgMulticastSGTimePollingAddRequest"> <part name="part1" element="ns:multicastSGTimePollingAddRequest"/> </message> <message name="msgMulticastGetAllSGTimePollingRequest"> <part name="part1" element="ns:multicastGetAllSGTimePollingRequest"/> </message> <message name="msgMulticastGetAllSGTimePollingResponse"> <part name="part1" element="ns:multicastGetAllSGTimePollingResponse"/> </message>

B-5Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<message name="msgMulticastRPPollingDeleteRequest"> <part name="part1" element="ns:multicastRPPollingDeleteRequest"/> </message> <message name="msgMulticastRPPollingAddRequest"> <part name="part1" element="ns:multicastRPPollingAddRequest"/> </message> <message name="msgMulticastGetAllRPPollingRequest"> <part name="part1" element="ns:multicastGetAllRPPollingRequest"/> </message> <message name="msgMulticastGetAllRPPollingResponse"> <part name="part1" element="ns:multicastGetAllRPPollingResponse"/> </message> <message name="msgMulticastRPPollingAddResponse"> <part name="part1" element="ns:multicastRPPollingAddResponse"/> </message>

<!-- CMM 3.2 web services --> <portType name="CmmWeb"> <operation name="getMulticastDomainSGList"> <input name="input1" message="tns:msgMulticastDomainSGRequest"/> <output name="output1" message="tns:msgMulticastDomainSGResponse"/> <fault name="fault1" message="tns:msgMulticastDomainSGFault"/> </operation> <operation name="getMulticastTrace"> <input name="input2" message="tns:msgMulticastTraceRequest"/> <output name="output2" message="tns:msgMulticastTraceResponse"/> <fault name="fault2" message="tns:msgMulticastTraceFault"/> </operation> <operation name="getMulticastDevicesList"> <input name="input3" message="tns:msgMulticastDeviceRequest"/> <output name="output3" message="tns:msgMulticastDeviceResponse"/> <fault name="fault3" message="tns:msgMulticastDeviceFault"/> </operation> <operation name="getMulticastDeviceSGList"> <input name="input4" message="tns:msgMulticastDeviceSgListRequest"/> <output name="output4" message="tns:msgMulticastDeviceSgListResponse"/> <fault name="fault4" message="tns:msgMulticastDeviceSgFault"/> </operation> <operation name="getMulticastEventsList"> <input name="input5" message="tns:msgMulticastEventsRequest"/> <output name="output5" message="tns:msgMulticastEventsResponse"/> <fault name="fault5" message="tns:msgMulticastEventsFault"/> </operation> <operation name="addUpdateMulticastDevices"> <input name="input6" message="tns:msgMulticastAddUpdateDevicesRequest"/> <output name="output6" message="tns:msgMulticastAddUpdateDevicesResponse"/> <fault name="fault6" message="tns:msgMulticastAddUpdateDevicesFault"/> </operation> <operation name="deleteMulticastDevices"> <input name="input7" message="tns:msgMulticastDeleteDevicesRequest"/> <output name="output7" message="tns:msgMulticastDeleteDevicesResponse"/> <fault name="fault7" message="tns:msgMulticastDeleteDevicesFault"/> </operation> <operation name="addUpdateVideoProbe"> <input name="input8" message="tns:msgMulticastAddUpdateVideoProbeRequest"/> <output name="output8" message="tns:msgMulticastAddUpdateVideoProbeResponse"/> <fault name="fault8" message="tns:msgMulticastAddUpdateVideoProbeFault"/> </operation> <!-- CMM 3.2 web services --> <operation name="setGlobalPolling"> <input name="input10" message="tns:msgMulticastSetGlobalPollingRequest"/> <output name="output10" message="tns:msgMulticastSetGlobalPollingResponse"/> <fault name="fault10" message="tns:msgMulticastPollingFault"/> </operation>

B-6Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<operation name="deleteSGPolling"> <input name="input11" message="tns:msgMulticastSGPollingDeleteRequest"/> <output name="output11" message="tns:msgMulticastPollingResponse"/> <fault name="fault11" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addSGPolling"> <input name="input12" message="tns:msgMulticastSGPollingAddRequest"/> <output name="output12" message="tns:msgMulticastPollingResponse"/> <fault name="fault12" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllSGPolling"> <input name="input13" message="tns:msgMulticastGetAllSGPollingRequest"/> <output name="output13" message="tns:msgMulticastGetAllSGPollingResponse"/> <fault name="fault13" message="tns:msgMulticastPollingFault"/> </operation>

<operation name="deleteL2Polling"> <input name="input14" message="tns:msgMulticastL2PollingDeleteRequest"/> <output name="output14" message="tns:msgMulticastPollingResponse"/> <fault name="fault14" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addL2Polling"> <input name="input15" message="tns:msgMulticastL2PollingAddRequest"/> <output name="output15" message="tns:msgMulticastL2PollingAddResponse"/> <fault name="fault15" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllL2Polling"> <input name="input16" message="tns:msgMulticastGetAllL2PollingRequest"/> <output name="output16" message="tns:msgMulticastGetAllL2PollingResponse"/> <fault name="fault16" message="tns:msgMulticastPollingFault"/> </operation>

<operation name="deleteInterfacePolling"> <input name="input17" message="tns:msgMulticastIntPollingDeleteRequest"/> <output name="output17" message="tns:msgMulticastPollingResponse"/> <fault name="fault17" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addInterfacePolling"> <input name="input18" message="tns:msgMulticastIntPollingAddRequest"/> <output name="output18" message="tns:msgMulticastPollingResponse"/> <fault name="fault18" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllInterfacePolling"> <input name="input19" message="tns:msgMulticastGetAllIntPollingRequest"/> <output name="output19" message="tns:msgMulticastGetAllIntPollingResponse"/> <fault name="fault19" message="tns:msgMulticastPollingFault"/> </operation>

<operation name="deleteRPFPolling"> <input name="input20" message="tns:msgMulticastRPFPollingDeleteRequest"/> <output name="output20" message="tns:msgMulticastPollingResponse"/> <fault name="fault20" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addRPFPolling"> <input name="input21" message="tns:msgMulticastRPFPollingAddRequest"/> <output name="output21" message="tns:msgMulticastRPFPollingAddResponse"/> <fault name="fault21" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllRPFPolling"> <input name="input22" message="tns:msgMulticastGetAllRPFPollingRequest"/> <output name="output22" message="tns:msgMulticastGetAllRPFPollingResponse"/> <fault name="fault22" message="tns:msgMulticastPollingFault"/> </operation>

B-7Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<operation name="deleteSSMPolling"> <input name="input38" message="tns:msgMulticastSSMPollingDeleteRequest"/> <output name="output38" message="tns:msgMulticastPollingResponse"/> <fault name="fault38" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addSSMPolling"> <input name="input39" message="tns:msgMulticastSSMPollingAddRequest"/> <output name="output39" message="tns:msgMulticastSSMPollingAddResponse"/> <fault name="fault39" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllSSMPolling"> <input name="input40" message="tns:msgMulticastGetAllSSMPollingRequest"/> <output name="output40" message="tns:msgMulticastGetAllSSMPollingResponse"/> <fault name="fault40" message="tns:msgMulticastPollingFault"/> </operation>

<operation name="deleteTreePolling"> <input name="input23" message="tns:msgMulticastTreePollingDeleteRequest"/> <output name="output23" message="tns:msgMulticastPollingResponse"/> <fault name="fault23" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addTreePolling"> <input name="input24" message="tns:msgMulticastTreePollingAddRequest"/> <output name="output24" message="tns:msgMulticastTreePollingAddResponse"/> <fault name="fault24" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllTreePolling"> <input name="input25" message="tns:msgMulticastGetAllTreePollingRequest"/> <output name="output25" message="tns:msgMulticastGetAllTreePollingResponse"/> <fault name="fault25" message="tns:msgMulticastPollingFault"/> </operation>

<operation name="deleteVideoProbePolling"> <input name="input26" message="tns:msgMulticastVideoProbePollingDeleteRequest"/> <output name="output26" message="tns:msgMulticastPollingResponse"/> <fault name="fault26" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addVideoProbePolling"> <input name="input27" message="tns:msgMulticastVideoProbePollingAddRequest"/> <output name="output27" message="tns:msgMulticastPollingResponse"/> <fault name="fault27" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllVideoProbePolling"> <input name="input28" message="tns:msgMulticastGetAllVideoProbePollingRequest"/> <output name="output28" message="tns:msgMulticastGetAllVideoProbePollingResponse"/> <fault name="fault28" message="tns:msgMulticastPollingFault"/> </operation>

<operation name="deleteVidmonPolling"> <input name="input29" message="tns:msgMulticastVidmonPollingDeleteRequest"/> <output name="output29" message="tns:msgMulticastPollingResponse"/> <fault name="fault29" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addVidmonPolling"> <input name="input30" message="tns:msgMulticastVidmonPollingAddRequest"/> <output name="output30" message="tns:msgMulticastPollingResponse"/> <fault name="fault30" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllVidmonPolling"> <input name="input31" message="tns:msgMulticastGetAllVidmonPollingRequest"/>

B-8Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<output name="output31" message="tns:msgMulticastGetAllVidmonPollingResponse"/> <fault name="fault31" message="tns:msgMulticastPollingFault"/> </operation>

<operation name="deleteSGTimePolling"> <input name="input32" message="tns:msgMulticastSGTimePollingDeleteRequest"/> <output name="output32" message="tns:msgMulticastPollingResponse"/> <fault name="fault32" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addSGTimePolling"> <input name="input33" message="tns:msgMulticastSGTimePollingAddRequest"/> <output name="output33" message="tns:msgMulticastPollingResponse"/> <fault name="fault33" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllSGTimePolling"> <input name="input34" message="tns:msgMulticastGetAllSGTimePollingRequest"/> <output name="output34" message="tns:msgMulticastGetAllSGTimePollingResponse"/> <fault name="fault34" message="tns:msgMulticastPollingFault"/> </operation>

<operation name="deleteRPPolling"> <input name="input35" message="tns:msgMulticastRPPollingDeleteRequest"/> <output name="output35" message="tns:msgMulticastPollingResponse"/> <fault name="fault35" message="tns:msgMulticastPollingFault"/> </operation> <operation name="addRPPolling"> <input name="input36" message="tns:msgMulticastRPPollingAddRequest"/> <output name="output36" message="tns:msgMulticastRPPollingAddResponse"/> <fault name="fault36" message="tns:msgMulticastPollingFault"/> </operation> <operation name="getAllRPPolling"> <input name="input37" message="tns:msgMulticastGetAllRPPollingRequest"/> <output name="output37" message="tns:msgMulticastGetAllRPPollingResponse"/> <fault name="fault37" message="tns:msgMulticastPollingFault"/> </operation>

<!-- CMM 3.2 web services --> </portType> <binding name="CmmWebSoap11" type="tns:CmmWeb"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getMulticastDomainSGList"> <soap:operation soapAction=""/> <input name="input1"> <soap:body use="literal"/> </input> <output name="output1"> <soap:body use="literal"/> </output> <fault name="fault1"> <soap:fault name="fault1" use="literal"/> </fault> </operation> <operation name="getMulticastTrace"> <soap:operation soapAction=""/> <input name="input2"> <soap:body use="literal"/> </input> <output name="output2"> <soap:body use="literal"/> </output> <fault name="fault2"> <soap:fault name="fault2" use="literal"/> </fault>

B-9Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

</operation> <operation name="getMulticastDevicesList"> <soap:operation soapAction=""/> <input name="input3"> <soap:body use="literal"/> </input> <output name="output3"> <soap:body use="literal"/> </output> <fault name="fault3"> <soap:fault name="fault3" use="literal"/> </fault> </operation> <operation name="getMulticastDeviceSGList"> <soap:operation soapAction=""/> <input name="input4"> <soap:body use="literal"/> </input> <output name="output4"> <soap:body use="literal"/> </output> <fault name="fault4"> <soap:fault name="fault4" use="literal"/> </fault> </operation> <operation name="getMulticastEventsList"> <soap:operation soapAction=""/> <input name="input5"> <soap:body use="literal"/> </input> <output name="output5"> <soap:body use="literal"/> </output> <fault name="fault5"> <soap:fault name="fault5" use="literal"/> </fault> </operation> <operation name="addUpdateMulticastDevices"> <input name="input6"> <soap:body use="literal"/> </input> <output name="output6"> <soap:body use="literal"/> </output> <fault name="fault6"> <soap:fault name="fault6" use="literal"/> </fault> </operation> <operation name="deleteMulticastDevices"> <input name="input7"> <soap:body use="literal"/> </input> <output name="output7"> <soap:body use="literal"/> </output> <fault name="fault7"> <soap:fault name="fault7" use="literal"/> </fault> </operation> <operation name="addUpdateVideoProbe"> <input name="input8"> <soap:body use="literal"/> </input> <output name="output8">

B-10Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<soap:body use="literal"/> </output> <fault name="fault8"> <soap:fault name="fault8" use="literal"/> </fault> </operation> <!-- CMM 3.2 web services --> <operation name="setGlobalPolling"> <input name="input10"> <soap:body use="literal"/> </input> <output name="output10"> <soap:body use="literal"/> </output> <fault name="fault10"> <soap:fault name="fault10" use="literal"/> </fault> </operation> <operation name="deleteSGPolling"> <input name="input11"> <soap:body use="literal"/> </input> <output name="output11"> <soap:body use="literal"/> </output> <fault name="fault11"> <soap:fault name="fault11" use="literal"/> </fault> </operation> <operation name="addSGPolling"> <input name="input12"> <soap:body use="literal"/> </input> <output name="output12"> <soap:body use="literal"/> </output> <fault name="fault12"> <soap:fault name="fault12" use="literal"/> </fault> </operation> <operation name="getAllSGPolling"> <input name="input13"> <soap:body use="literal"/> </input> <output name="output13"> <soap:body use="literal"/> </output> <fault name="fault13"> <soap:fault name="fault13" use="literal"/> </fault> </operation> <operation name="deleteL2Polling"> <input name="input14"> <soap:body use="literal"/> </input> <output name="output14"> <soap:body use="literal"/> </output> <fault name="fault14"> <soap:fault name="fault14" use="literal"/> </fault> </operation> <operation name="addL2Polling"> <input name="input15">

B-11Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<soap:body use="literal"/> </input> <output name="output15"> <soap:body use="literal"/> </output> <fault name="fault15"> <soap:fault name="fault15" use="literal"/> </fault> </operation> <operation name="getAllL2Polling"> <input name="input16"> <soap:body use="literal"/> </input> <output name="output16"> <soap:body use="literal"/> </output> <fault name="fault16"> <soap:fault name="fault16" use="literal"/> </fault> </operation> <operation name="deleteInterfacePolling"> <input name="input17"> <soap:body use="literal"/> </input> <output name="output17"> <soap:body use="literal"/> </output> <fault name="fault17"> <soap:fault name="fault17" use="literal"/> </fault> </operation> <operation name="addInterfacePolling"> <input name="input18"> <soap:body use="literal"/> </input> <output name="output18"> <soap:body use="literal"/> </output> <fault name="fault18"> <soap:fault name="fault18" use="literal"/> </fault> </operation> <operation name="getAllInterfacePolling"> <input name="input19"> <soap:body use="literal"/> </input> <output name="output19"> <soap:body use="literal"/> </output> <fault name="fault19"> <soap:fault name="fault19" use="literal"/> </fault> </operation> <operation name="deleteRPFPolling"> <input name="input20"> <soap:body use="literal"/> </input> <output name="output20"> <soap:body use="literal"/> </output> <fault name="fault20"> <soap:fault name="fault20" use="literal"/> </fault> </operation>

B-12Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<operation name="addRPFPolling"> <input name="input21"> <soap:body use="literal"/> </input> <output name="output21"> <soap:body use="literal"/> </output> <fault name="fault21"> <soap:fault name="fault21" use="literal"/> </fault> </operation> <operation name="getAllRPFPolling"> <input name="input22"> <soap:body use="literal"/> </input> <output name="output22"> <soap:body use="literal"/> </output> <fault name="fault22"> <soap:fault name="fault22" use="literal"/> </fault> </operation>

<operation name="deleteSSMPolling"> <input name="input38"> <soap:body use="literal"/> </input> <output name="output38"> <soap:body use="literal"/> </output> <fault name="fault38"> <soap:fault name="fault38" use="literal"/> </fault> </operation> <operation name="addSSMPolling"> <input name="input39"> <soap:body use="literal"/> </input> <output name="output39"> <soap:body use="literal"/> </output> <fault name="fault39"> <soap:fault name="fault39" use="literal"/> </fault> </operation> <operation name="getAllSSMPolling"> <input name="input40"> <soap:body use="literal"/> </input> <output name="output40"> <soap:body use="literal"/> </output> <fault name="fault40"> <soap:fault name="fault40" use="literal"/> </fault> </operation>

<operation name="deleteTreePolling"> <input name="input23"> <soap:body use="literal"/> </input> <output name="output23"> <soap:body use="literal"/> </output>

B-13Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<fault name="fault23"> <soap:fault name="fault23" use="literal"/> </fault> </operation> <operation name="addTreePolling"> <input name="input24"> <soap:body use="literal"/> </input> <output name="output24"> <soap:body use="literal"/> </output> <fault name="fault24"> <soap:fault name="fault24" use="literal"/> </fault> </operation> <operation name="getAllTreePolling"> <input name="input25"> <soap:body use="literal"/> </input> <output name="output25"> <soap:body use="literal"/> </output> <fault name="fault25"> <soap:fault name="fault25" use="literal"/> </fault> </operation> <operation name="deleteVideoProbePolling"> <input name="input26"> <soap:body use="literal"/> </input> <output name="output26"> <soap:body use="literal"/> </output> <fault name="fault26"> <soap:fault name="fault26" use="literal"/> </fault> </operation> <operation name="addVideoProbePolling"> <input name="input27"> <soap:body use="literal"/> </input> <output name="output27"> <soap:body use="literal"/> </output> <fault name="fault27"> <soap:fault name="fault27" use="literal"/> </fault> </operation> <operation name="getAllVideoProbePolling"> <input name="input28"> <soap:body use="literal"/> </input> <output name="output28"> <soap:body use="literal"/> </output> <fault name="fault28"> <soap:fault name="fault28" use="literal"/> </fault> </operation> <operation name="deleteVidmonPolling"> <input name="input29"> <soap:body use="literal"/> </input> <output name="output29">

B-14Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

<soap:body use="literal"/> </output> <fault name="fault29"> <soap:fault name="fault29" use="literal"/> </fault> </operation> <operation name="addVidmonPolling"> <input name="input30"> <soap:body use="literal"/> </input> <output name="output30"> <soap:body use="literal"/> </output> <fault name="fault30"> <soap:fault name="fault30" use="literal"/> </fault> </operation> <operation name="getAllVidmonPolling"> <input name="input31"> <soap:body use="literal"/> </input> <output name="output31"> <soap:body use="literal"/> </output> <fault name="fault31"> <soap:fault name="fault31" use="literal"/> </fault> </operation> <operation name="deleteSGTimePolling"> <input name="input32"> <soap:body use="literal"/> </input> <output name="output32"> <soap:body use="literal"/> </output> <fault name="fault32"> <soap:fault name="fault32" use="literal"/> </fault> </operation> <operation name="addSGTimePolling"> <input name="input33"> <soap:body use="literal"/> </input> <output name="output33"> <soap:body use="literal"/> </output> <fault name="fault33"> <soap:fault name="fault33" use="literal"/> </fault> </operation> <operation name="getAllSGTimePolling"> <input name="input34"> <soap:body use="literal"/> </input> <output name="output34"> <soap:body use="literal"/> </output> <fault name="fault34"> <soap:fault name="fault34" use="literal"/> </fault> </operation>

<operation name="deleteRPPolling"> <input name="input35"> <soap:body use="literal"/>

B-15Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl

</input> <output name="output35"> <soap:body use="literal"/> </output> <fault name="fault35"> <soap:fault name="fault35" use="literal"/> </fault> </operation> <operation name="addRPPolling"> <input name="input36"> <soap:body use="literal"/> </input> <output name="output36"> <soap:body use="literal"/> </output> <fault name="fault36"> <soap:fault name="fault36" use="literal"/> </fault> </operation> <operation name="getAllRPPolling"> <input name="input37"> <soap:body use="literal"/> </input> <output name="output37"> <soap:body use="literal"/> </output> <fault name="fault37"> <soap:fault name="fault37" use="literal"/> </fault> </operation>

<!-- CMM 3.2 web services --> </binding> <service name="CmmWebService"> <port name="CmmWebSoap11" binding="tns:CmmWebSoap11"> <soap:address location="https://localhost:8080/cmm/service"/> </port> </service> <plnk:partnerLinkType name="cmmNB"> <!-- A partner link type is automatically generated when a new port type is added. Partner link types are used by BPEL processes.In a BPEL process, a partner link represents the interaction between the BPEL process and a partner service. Each partner link is associated with a partner link type.A partner link type characterizes the conversational relationship between two services. The partner link type can have one or two roles.--> <plnk:role name="CmmWebRole" portType="tns:CmmWeb"/> </plnk:partnerLinkType></definitions>

B-16Cisco Multicast Manager Developer’s Guide and API Reference, 3.2

OL-21511-03

Appendix B cmmNB.wsdl FilecmmNB.wsdl