0% found this document useful (0 votes)
21 views66 pages

Developer Guide

DeveloperGuide

Uploaded by

Trebor Moob
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views66 pages

Developer Guide

DeveloperGuide

Uploaded by

Trebor Moob
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 66

Developer's Guide for Proactive Outreach

Manager

Release 2.0.1
August 2010
© 2010 Avaya Inc. different number of licenses or units of capacity is specified in the
Documentation or other materials available to End User. “Designated
All Rights Reserved. Processor” means a single stand-alone computing device. “Server”
means a Designated Processor that hosts a software application to be
Notice accessed by multiple users. “Software” means the computer programs
in object code, originally licensed by Avaya and ultimately utilized by
While reasonable efforts have been made to ensure that the
End User, whether as stand-alone products or pre-installed on
information in this document is complete and accurate at the time of
Hardware. “Hardware” means the standard hardware originally sold by
printing, Avaya assumes no liability for any errors. Avaya reserves the
Avaya and ultimately utilized by End User.
right to make changes and corrections to the information in this
document without the obligation to notify any person or organization of Named User License (NU). End User may: (i) install and use the
such changes. Software on a single Designated Processor or Server per authorized
Named User (defined below); or (ii) install and use the Software on a
Documentation disclaimer
Server so long as only authorized Named Users access and use the
Avaya shall not be responsible for any modifications, additions, or Software. “Named User,” means a user or device that has been
deletions to the original published version of this documentation unless expressly authorized by Avaya to access and use the Software. At
such modifications, additions, or deletions were performed by Avaya. Avaya's sole discretion, a “Named User” may be, without limitation,
End User agree to indemnify and hold harmless Avaya, Avaya's agents, designated by name, corporate function (e.g., webmaster or helpdesk),
servants and employees against all claims, lawsuits, demands and an e-mail or voice mail account in the name of a person or corporate
judgments arising out of, or in connection with, subsequent function, or a directory entry in the administrative database utilized by
modifications, additions or deletions to this documentation, to the the Software that permits one user to interface with the Software.
extent made by End User.
Copyright
Link disclaimer
Except where expressly stated otherwise, no use should be made of
Avaya is not responsible for the contents or reliability of any linked Web materials on this site, the Documentation(s) and Product(s) provided
sites referenced within this site or documentation(s) provided by Avaya. by Avaya. All content on this site, the documentation(s) and the
Avaya is not responsible for the accuracy of any information, statement product(s) provided by Avaya including the selection, arrangement and
or content provided on these sites and does not necessarily endorse design of the content is owned either by Avaya or its licensors and is
the products, services, or information described or offered within them. protected by copyright and other intellectual property laws including the
Avaya does not guarantee that these links will work all the time and has sui generis rights relating to the protection of databases. You may not
no control over the availability of the linked pages. modify, copy, reproduce, republish, upload, post, transmit or distribute
in any way any content, in whole or in part, including any code and
Warranty software. Unauthorized reproduction, transmission, dissemination,
storage, and or use without the express written consent of Avaya can
Avaya provides a limited warranty on this product. Refer to your sales be a criminal, as well as a civil, offense under the applicable law.
agreement to establish the terms of the limited warranty. In addition,
Avaya’s standard warranty language, as well as information regarding Third-party components
support for this product, while under warranty, is available to Avaya
customers and other parties through the Avaya Support Web site: Certain software programs or portions thereof included in the Product
[Link] Please note that if you acquired the may contain software distributed under third party agreements (“Third
product from an authorized Avaya reseller outside of the United States Party Components”), which may contain terms that expand or limit
and Canada, the warranty is provided to you by said Avaya reseller and rights to use certain portions of the Product (“Third Party Terms”).
not by Avaya. Information regarding distributed Linux OS source code (for those
Products that have distributed the Linux OS source code), and
Trademarks identifying the copyright holders of the Third Party Components and the
Third Party Terms that apply to them is available on the Avaya Support
Avaya is a registered trademark of Avaya Inc. Web site: [Link]
Licenses Preventing toll fraud
THE SOFTWARE LICENSE TERMS AVAILABLE ON THE AVAYA “Toll fraud” is the unauthorized use of your telecommunications system
WEBSITE, HTTP://[Link]/LICENSEINFO/ ARE by an unauthorized party (for example, a person who is not a corporate
APPLICABLE TO ANYONE WHO DOWNLOADS, USES AND/OR employee, agent, subcontractor, or is not working on your company's
INSTALLS AVAYA SOFTWARE, PURCHASED FROM AVAYA INC., behalf). Be aware that there can be a risk of toll fraud associated with
ANY AVAYA AFFILIATE, OR AN AUTHORIZED AVAYA RESELLER your system and that, if toll fraud occurs, it can result in substantial
(AS APPLICABLE) UNDER A COMMERCIAL AGREEMENT WITH additional charges for your telecommunications services.
AVAYA OR AN AUTHORIZED AVAYA RESELLER. UNLESS
OTHERWISE AGREED TO BY AVAYA IN WRITING, AVAYA DOES Avaya fraud intervention
NOT EXTEND THIS LICENSE IF THE SOFTWARE WAS OBTAINED
FROM ANYONE OTHER THAN AVAYA, AN AVAYA AFFILIATE OR AN If you suspect that you are being victimized by toll fraud and you need
AVAYA AUTHORIZED RESELLER, AND AVAYA RESERVES THE technical assistance or support, call Technical Service Center Toll
RIGHT TO TAKE LEGAL ACTION AGAINST YOU AND ANYONE Fraud Intervention Hotline at +1-800-643-2353 for the United States
ELSE USING OR SELLING THE SOFTWARE WITHOUT A LICENSE. and Canada. For additional support telephone numbers, see the Avaya
BY INSTALLING, DOWNLOADING OR USING THE SOFTWARE, OR Support Web site: [Link] Suspected security
AUTHORIZING OTHERS TO DO SO, YOU, ON BEHALF OF vulnerabilities with Avaya products should be reported to Avaya by
YOURSELF AND THE ENTITY FOR WHOM YOU ARE INSTALLING, sending mail to: securityalerts@[Link].
DOWNLOADING OR USING THE SOFTWARE (HEREINAFTER
REFERRED TO INTERCHANGEABLY AS “YOU” AND “END USER”), Downloading documents
AGREE TO THESE TERMS AND CONDITIONS AND CREATE A For the most current versions of documentation, see the Avaya Support
BINDING CONTRACT BETWEEN YOU AND AVAYA INC. OR THE Web site: [Link]
APPLICABLE AVAYA AFFILIATE (“AVAYA”).
Contact Avaya Support
Avaya grants End User a license within the scope of the license types
described below. The applicable number of licenses and units of Avaya provides a telephone number for you to use to report problems
capacity for which the license is granted will be one (1), unless a or to ask questions about your product. The support telephone number

2 Developer's Guide for Proactive Outreach Manager August 2010


is 1-800-242-2121 in the United States. For additional support
telephone numbers, see the Avaya Web site: [Link]
support

Developer's Guide for Proactive Outreach Manager August 2010 3


4 Developer's Guide for Proactive Outreach Manager August 2010
Contents

Chapter 1: Pluggable Data Connector.....................................................................................7


About Pluggable Data Connector......................................................................................................................7
Getting Started..................................................................................................................................................7
Installing Pluggable Data Connector........................................................................................................7
Configuring Pluggable Data Connector....................................................................................................8
Using Pluggable Data Connector.............................................................................................................9
Project variables................................................................................................................................................9
PDC nodes......................................................................................................................................................10
Update disposition..................................................................................................................................10
Add contact info......................................................................................................................................11
Add contact to running job......................................................................................................................12
Get contact info......................................................................................................................................13
Update contact attribute.........................................................................................................................14
Get contact attribute...............................................................................................................................15
Add to DNC list.......................................................................................................................................15
Remove from DNC list............................................................................................................................16
Building Dialog Designer applications.............................................................................................................17
Describing sample DD application scenario...........................................................................................17
Using the DD application in POM...........................................................................................................18

Chapter 2: About Web services..............................................................................................19


About VP_POMAgentAPIService Web service...............................................................................................19
VP_POMAgentAPIService Web service.................................................................................................19
Configuring the VP_POMAgentAPIService Web service.......................................................................20
Agent API <VP_POMAgentAPIService> WSDL file...............................................................................20
GetAllCompletionCodesForCampaign method......................................................................................33
AddContactToJob method......................................................................................................................33
SaveContact method..............................................................................................................................34
AddToDNCList method...........................................................................................................................35
RemoveFromDNCList method...............................................................................................................35
IsDNC method........................................................................................................................................36
GetContactData method.........................................................................................................................36
GetContactAttributeValue method..........................................................................................................37
UpdateCompletionCode method............................................................................................................38
UpdateContactAttributeValue method....................................................................................................39
AddContactGroupToJob method............................................................................................................40
DeleteContact method............................................................................................................................40
About VP_POMCmpMgMtService Web service..............................................................................................41
VP_POMCmpMgmtService Web service...............................................................................................41
Configuring the VP_POMCmpMgmtService Web service......................................................................41
VP_POMCmpMgmt WSDL file...............................................................................................................42
GetActiveJobs method...........................................................................................................................50
SetMaxAttemptsCount method...............................................................................................................50
GetCampaignJobs method.....................................................................................................................51
RunCampaign method............................................................................................................................52
PauseActiveJob method.........................................................................................................................52
ResumePausedJob................................................................................................................................53
StopJob method.....................................................................................................................................53

Developer's Guide for Proactive Outreach Manager August 2010 5


Chapter 3: Custom connectors, interface definitions, and class files...............................55
Creating a custom data import connector.......................................................................................................55
Creating a custom class for post processing of jobs.......................................................................................58
Creating a custom application class for Custom action..................................................................................61
Creating a custom application class for custom application node...................................................................63

Index.........................................................................................................................................65

6 Developer's Guide for Proactive Outreach Manager August 2010


Chapter 1: Pluggable Data Connector

About Pluggable Data Connector


The Proactive Outreach Manager Pluggable Data Connector ( POM PDC) is a Dialog Designer
(DD) plug-in and extends the DD application's capability to interface and integrate with
Proactive Outreach Manager (POM) using the core functionality of the PDC framework. It
implements the functionality of seamless connectivity with POM for various type of data
exchange, and establishes a connection between the VXML application and the POM server
for information access and update. The PDC is similar to the Connection Technology Inc (CTI)
connector and the IC connector. It extends the functionality of the Data node palette of
Graphical Call flow editor in DD, and provides following nodes to execute custom action for
POM servers:
• Update disposition on page 10
• Add contact info on page 11
• Add contact to running job on page 12
• Get contact info on page 13
• Update contact attribute on page 14
• Get contact attribute on page 15
• Add to DNC list on page 15
• Remove from DNC list on page 16

Getting Started

Installing Pluggable Data Connector

Developer's Guide for Proactive Outreach Manager August 2010 7


Pluggable Data Connector

Prerequisites

• Install Dialog Designer (DD) 5.1 application.


• Download the POM PDC installer jar from [Link]

1. Launch Eclipse.
2. From the menu options, select Help > Software Updates >Available software tab.
3. Click Add Site.
4. Click Archive.
5. From the list of available software, browse to the .jar file and click Open.
6. Select the .jar file and click Install.
The system displays the Progress Information screen, followed by the Summary
Information screen.
7. Click Finish.
The system displays the Operation In Progress screen.
8. Click Details to view the details of the installation.
The system displays the Software Update screen and a message to restart the
server.
9. Click Yes to restart Eclipse for the changes to take effect.

Configuring Pluggable Data Connector

1. Create a new Dialog Designer Speech Project, or use an existing Speech Project.
2. Select the project name in the Speech Navigator tab.
3. Right-click the project name and go to Properties.
4. In the left pane, select Dialog Designer.
5. Select Pluggable Connectors tab.
6. Select POM Connector from the list.
7. Specify the configuration settings as:
• (Optional) Primary Host: Specify the IP address or host name of the primary
POM server.

8 Developer's Guide for Proactive Outreach Manager August 2010


Project variables

• (Optional) Secondary Host: Specify the IP address or host name of the


secondary POM server.
• User: Specify the log in name of Voice Portal user. In case of multi tenancy,
the user should have privilege to access, update, and add data belonging to
the user's organization.
• Password: Specify the password of Voice Portal user.
8. Click OK.

Using Pluggable Data Connector


Prerequisites
Ensure you have at least one data node in the Palette .

To add additional data nodes:

1. From Palette, select Data node to drag-and-drop to add the node in the call flow.
2. Double-click the data node.
In the Palette tab, you can see the list of Proactive Outreach Manager specific
nodes.
3. Drag-and-drop the individual node in the call flow.
4. Click the Properties tab and set the appropriate properties.

Project variables
Once you enable the POM PDC, it creates two complex project variables.
pomInfo
pomInfo complex variable is deleted when you disable the PDC. The fields in the variable are:

Variable Name Data type User Input Required


CampaignName String Yes
CompletionCode String Yes
EMailID String Yes

Developer's Guide for Proactive Outreach Manager August 2010 9


Pluggable Data Connector

Variable Name Data type User Input Required


FirstName String Yes
LastName String Yes
PhoneNumber1 String Yes
PhoneNumber2 String Yes
PrimaryPomServer String Yes
SecondaryPomServer String Yes
SessionID String Yes
ContactGroupName String Yes
ContactID String No. The value is populated by
the system.
JobID String No. The value is populated by
the system.
VDN String Yes

pomDynamicAttributes
This complex variable holds the array of custom attributes associated with a contact. The fields
in the variable are:
• AttributeName
• AttributeType
• AttributeValue

PDC nodes

Update disposition
Use this option to update custom completion codes. Based on these codes, you can terminate
and track the campaign execution. The POM Web service user must have access to campaigns
and completion codes.
The POM Web service user should have access to campaigns and completion codes.
The following table lists the property names and their values:

10 Developer's Guide for Proactive Outreach Manager August 2010


PDC nodes

Property Name Value


Completion Use either a simple, or complex variable.
Code Name
Variable Note:
Ensure that the custom completion codes are a part of the running
campaign.
Completion Use the field from the complex variable.
Code Name
Variable Field
Completion If you know the name of the custom completion code, you can enter the
Code Name name as a constant.
Constant
Note:
You can either set the constant value or use the name variable.

Add contact info


Use this option to add a new contact, or update an existing contact.
The POM Web service user should have access to the contact groups and private attributes.
The following table lists the property names and their values:

Property Name Value


Adding a new contact:
ContactID Create a complex variable or select the existing complex variable from the
Variable drop-down list.

Note:
You need to set this mandatory attribute.
ContactID Use available fields for the complex variable.
Variable Field
Phone # 1 Create a complex variable or select the existing complex variable from the
Variable drop-down list.
Phone # 1 Use available fields for the complex variable.
Variable Field
Phone # 2 Create a complex variable or select the existing complex variable from the
Variable drop-down list.
Phone # 2 Use available fields for the complex variable.
Variable Field

Developer's Guide for Proactive Outreach Manager August 2010 11


Pluggable Data Connector

Property Name Value


First Name Create a complex variable or select the existing complex variable from the
Variable drop-down list.
First Name Use available fields for the complex variable.
Variable Field
Last Name Create a complex variable or select the existing complex variable from the
Variable drop-down list.
Last Name Use available fields for the complex variable.
Variable Field
Email ID Create a complex variable or select the existing complex variable from the
Variable drop-down list.
Email ID Use available fields for the complex variable.
Variable Field
Contact Use either a simple, or complex variable.
Group Name
Variable Note:
You need to set this mandatory attribute.
Contact Use either a simple, or complex variable.
Group Name
Variable Field
Language Use either a simple, or complex variable.
Field
Time Zone Use either a simple, or complex variable.
Field
No of Use to specify any additional custom attributes as integer value. If you add
additional custom attributes, you need to specify the variable and the variable field
attributes values for each of the custom attributes.
For updating a contact:
ContactID For updating, select pomInfo from the drop-down list.
Variable
ContactID Contact ID
Variable Field
For fields like Phone number, First Name, Last Name, and Email ID provide specific
values or accept inputs.

Add contact to running job


Use this option to add contact information to running jobs or campaigns, where you add
contacts at run-time, while the campaign or job is still running in the background.

12 Developer's Guide for Proactive Outreach Manager August 2010


PDC nodes

Before you add any contact to a running job, ensure you have at least one instance of the job
running. The POM Web service user should have access to the specified campaign.
The following table lists the property names and their values:

Property Value
Name
Campaign Use either a simple, or complex variable.
Name
Variable
Campaign The campaign name value specified using the campaign name variable.
Name
Variable Field
Campaign If you know the campaign name, enter the campaign name as a constant.
Name
Variable Note:
Constant You can either set the constant value or use the name variable.

Note:
If there are more than one job instances for the campaign, then the contact is added to
the first available running job instance.

Get contact info


Use this option to retrieve the existing contact information. The POM Web service user should
have access to the contact groups and private attributes.
The following table lists the property names and their values:

Property Name Value


POM Contact Use either a simple, or complex variable.
Info Variable
Note:
This is a mandatory property.
Dynamic pomDynamicAttributes dynamic variable.
Attribute
Variable Note:
Dynamic attributes are stored as arrays.

Developer's Guide for Proactive Outreach Manager August 2010 13


Pluggable Data Connector

Update contact attribute


Use this option to update or modify the existing contact information.
The POM Web service user should have access to the contact groups and private attributes.

Note:
Ensure that the attribute you want to update, exists in the Proactive Outreach Manager
database. The predefined attributes are case-sensitive. The predefined attributes need to
be mapped. The following table shows the mapping:

Attribute Name Name to be used in the method


Id UserContactId
First Name FirstName
Last Name LastName
Phone 1 PhoneNumber1
Phone 2 PhoneNumber2
Email Email
Language Language
Time Zone TimeZone

The following table lists the property names and their values:

Property Name Value


Attribute Name Use either a simple, or complex variable.
Variable
Attribute Name The attribute name value selected above.
Variable Field
Attribute Name If you know the attribute name, you can enter the attribute name as a
Variable constant.
Constant
Note:
You can either set the constant value, or use the name variable.
Attribute Value Use either a simple, or complex variable.
Variable
Attribute Value The attribute value selected above.
Variable Field

14 Developer's Guide for Proactive Outreach Manager August 2010


PDC nodes

Property Name Value


Attribute Value If you know the attribute value, you can enter the attribute name as a
Variable constant.
Constant
Note:
You can either set the constant value, or use the value variable.

Get contact attribute


Use this option to retrieve the existing contact information for a specific contact ID. The POM
Web service user should have access to the contact groups and private attributes.
The following table lists the property names and their values:

Property Value
Name
Attribute Use either a simple, or complex variable.
Name
Variable
Attribute Use the attribute name value selected above.
Name
Variable Field
Attribute If you know the attribute name, you can enter it as constant.
Name
Variable Note:
Constant You can either set the constant value, or use the name variable.
Result Use either a simple, or complex variable.
Variable
Note:
The retrieved value of the attribute is stored in the result variable.
Result Use either a simple, or complex field.
Variable Field

Add to DNC list


Use this option to add phone numbers and/or e-mail addresses to the DNC list.
You can add contacts to the DNC list only if the POM Web service user is a global user and
is not an Org user.

Developer's Guide for Proactive Outreach Manager August 2010 15


Pluggable Data Connector

Note:
A global user is a user who does not belong to any organization, and has the POM
Administration and POM Campaign Manager roles. An organization user (Org user) is a
user who belongs to an organization created in Voice Portal, and has the Org POM
Campaign Manager role.
The following table lists the property names and their values:

Property Name Value


Address for Use either a simple, or session or complex variable.
DNC List
Variable
Address for dns
DNC List
Variable Field
Address for If you know the address variable name, you can enter the address as
DNC List constant.
Variable
Constant Note:
You can either set the constant value or use the address variable.

Remove from DNC list


Use this option to remove phone numbers and/or e-mail addresses from the DNC list.
You can remove contacts from the DNC list only if the POM Web service user is a global user
and is not an Org user.

Note:
A global user is a user who does not belong to any organization, and has the POM
Administration and POM Campaign Manager roles. An organization user (Org user) is a
user who belongs to an organization created in Voice Portal, and has the Org POM
Campaign Manager role.
The following table lists the property names and their values:

Property Name Value


Address for Use either a simple, session, or complex variable.
DNC List
Variable
Address for Use either a simple, session, or complex variable.
DNC List
Variable Field

16 Developer's Guide for Proactive Outreach Manager August 2010


Building Dialog Designer applications

Property Name Value


Address for If you know the address variable, you can enter the address as a constant.
DNC List
Variable Note:
Constant You can either set the constant value, or use the address variable.

Building Dialog Designer applications

Describing sample DD application scenario


Prerequisites
Install DD 5.1 application and install and enable the PDC plug-in.

This section explains using the DD application for a sample campaign Blood Donation
campaign organized by ABC Company. This campaign is run every quarter to fill blood stocks.
ABC Company has a list of potential blood donors from the reputed colleges in the city. The
campaign is designed to call the donors and get there availability for blood donation campaign
on a weekend. The campaign gives different choices to donor for opting, not opting in to
donation drive. If donor opts for donation, the schedule and venue details are sent to the donor.

1. Begin the application flow from Approot.


2. Use the Announcement node for greeting the customer. You can play a welcome
prompt like Welcome to ABC Company Blood Donation Drive.
3. Use the Menu node for giving different choices to donors like:
a. Press 1 if you want to donate blood
b. Press 2 if you do not want to donate blood
c. Press 3 if you do not want such calls in future
d. Press 9 if you want to talk to our coordinator.
4. If the user presses 1, then use the data node to:
a. Select the Update Disposition PDC node from left palette. Specify the INVACP
completion code to Update Disposition node in the database. The INVREJ is a
custom completion code which means Invitation for blood donation is accepted
by customer.

Developer's Guide for Proactive Outreach Manager August 2010 17


Pluggable Data Connector

b. Select the Add Contact To Running Job PDC node to add this contact to another
running job of an infinite e-mail campaign. The mail campaign sends e-mails
for venue details to the interested donors.
5. If the user presses 2, then use the data node to:
Select the Update Disposition PDC node from left palette. Specify the INVREJ
completion code to Update Disposition node in the database. The INVREJ is a
custom completion code which means Invitation for blood donation is rejected by
customer.
6. If the user presses 3, then use the data node to:
a. Select the Add To DNC List PDC node from left palette. Specify the session
variable dnis to update dialed number into database into POM's DNC list. You
need to set the global restriction for DNC so that all those numbers in POM's
DNC list to ensure that customer does not get a call in future if same the
campaign is run next quarter.
b. Select the Update Disposition PDC node from left palette. Specify the DNCREQ
completion code to Update Disposition node in the database. The DNCREQ is
custom completion code which means Do Not Call is requested by customer.
7. If the user presses 9, the call is transferred to the agent or coordinator using DD's
transfer node.

Using the DD application in POM

1. Deploy the sample DD application on one of the application servers.


2. Create one application on Voice Portal with application type as 'POM:Application'
and assign the URL of the sample DD application as [Link]
server IP address>:<port number>/application name/Start.
3. Save the application and ensure it is accessible.
4. Create one contact strategy for voice campaign. In the ResultProcessor for
individual results like Answer Human or Call Answered, use the Custom node under
the Application node for assigning different applications.
5. In the Custom node all those applications having application type as
POM:Application, are available in the drop-down list. select the sample configured
DD application in step 1 and enter the VDN number used in DD application for
transferring call to agent.

18 Developer's Guide for Proactive Outreach Manager August 2010


Chapter 2: About Web services

You can gain access to POM features and functionality programmatically, by using Web
services. There are two Web services which help you to perform and track routine operations
related to campaigns and also have call pacing functionality. The functionality can be accessed
using the VP_POMAgentAPIService Web service on page 19, and
VP_POMCmpMgmtService Web service on page 41.

About VP_POMAgentAPIService Web service

VP_POMAgentAPIService Web service


POM uses the VP_POMAgentAPIService Web service to perform routine operations related
to campaigns like retrieving and updating the completion codes, retrieving and updating the
attributes, adding contacts to running jobs, saving the contact information, adding and
removing information in the DNC list, checking if the address and phone number is included
in the DNC list, and retrieving contact data.
Following is a list of the methods available in the DD application:
• GetAllCompletionCodesForCampaign method on page 33
• AddContactToJob method on page 33
• SaveContact method on page 34
• AddToDNCList method on page 35
• RemoveFromDNCList method on page 35
• IsDNC method on page 36
• GetContactData method on page 36
• GetContactAttributeValue method on page 37
• UpdateCompletionCode method on page 38
• UpdateContactAttributeValue method on page 39
• AddContactGroupToJob method on page 40
• DeleteContact method on page 40

Developer's Guide for Proactive Outreach Manager August 2010 19


About Web services

Configuring the VP_POMAgentAPIService Web service

1. Use a Web browser to open the page [Link] address>/axis2/services/


VP_POMAgentAPIService?wsdl, where Voice Portal Management System (VPMS)
server is the name or IP address of the primary VPMS.

2. Enter a valid VPMS user name and password.


3. Save the Web Service Definition Language (WSDL) file.
You can use this file to build a Web service client that accesses the Agent API Web
service (VP_POMAgentAPIService).

Note:
Ensure that the Web service client generated, is an axis2 client. For more
information on generating the client, refer to the Apache axis2 documentation
from [Link]
This Web service conforms to all the current World Wide Web Consortium (W3C)
standards.

Agent API <VP_POMAgentAPIService> WSDL file


The following is a WSDL file for VP_POMAgentAPIService. This Web service is installed on
all the POM servers. For details on accessing the WSDL file, refer to Configuring the
VP_POMAgentAPIService Web service on page 20.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="AgentAPI" targetNamespace="[Link]
AgentAPI/" xmlns:wsdl="[Link] xmlns:tns="http://
[Link]/AgentAPI/" xmlns:xsd="[Link]
xmlns:soap="[Link]
<wsdl:types>
<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="[Link]
<xsd:element name="GetContactData">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="ContactID" type="xsd:string"/>


<xsd:element name="ContactGroupName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetContactDataResponse">
<xsd:complexType>
<xsd:sequence>

20 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

<xsd:element name="Contact" type="tns:ContactType"/>


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

<xsd:complexType name="ContactType">
<xsd:sequence>
<xsd:element name="ContactId" type="xsd:string"/>
<xsd:element name="ContactGroupName" type="xsd:string"/>
<xsd:element minOccurs="0" name="PhoneNumber1" type="xsd:string">
</xsd:element>
<xsd:element minOccurs="0" name="PhoneNumber2" type="xsd:string">
</xsd:element>
<xsd:element minOccurs="0" name="FirstName" type="xsd:string">
</xsd:element>
<xsd:element minOccurs="0" name="LastName" type="xsd:string">
</xsd:element>
<xsd:element minOccurs="0" name="Email" type="xsd:string">
</xsd:element>
<xsd:element minOccurs="0" name="LastModifiedOn" type="xsd:dateTime">
</xsd:element>
<xsd:element minOccurs="0" name="LastModifiedBy" type="xsd:string">
</xsd:element>

<xsd:element minOccurs="0" name="Language" type="xsd:string">


</xsd:element>
<xsd:element minOccurs="0" name="TimeZone" type="xsd:string">
</xsd:element>
<xsd:element minOccurs="0" name="LastAttemptTime" type="xsd:dateTime">
</xsd:element>
<xsd:element minOccurs="0" name="LastSuccessfulAttemptTime"
type="xsd:dateTime">
</xsd:element>
<xsd:element minOccurs="0" name="LastCompletionCodeId" type="xsd:int">
</xsd:element>

<xsd:element maxOccurs="unbounded" minOccurs="0" name="AttributeObj"


type="tns:AttributeType">
</xsd:element>

</xsd:sequence>
</xsd:complexType>
<xsd:element name="GetContactAttributeValue">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="ContactID" type="xsd:string"/>


<xsd:element name="ContactGroupName" type="xsd:string"/>
<xsd:element name="AttributeName" type="xsd:string"/>

</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetContactAttributeValueResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="AttributeValue" type="xsd:string"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SaveContact">

Developer's Guide for Proactive Outreach Manager August 2010 21


About Web services

<xsd:complexType>
<xsd:sequence>

<xsd:element name="Contact" type="tns:ContactType"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SaveContactResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Result" type="xsd:int"/>


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

<xsd:element name="AddContactToJob">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CampaignName" type="xsd:string"/>
<xsd:element name="ContactID" type="xsd:string"/>
<xsd:element name="ContactGroupName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AddContactToJobResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Result" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="IsDNC">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Address" type="xsd:string"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="IsDNCResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Result" type="xsd:boolean"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AddToDNCList">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Address" type="xsd:string"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AddToDNCListResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Result" type="xsd:boolean"/>


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

22 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

<xsd:element name="RemoveFromDNCList">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Address" type="xsd:string"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RemoveFromDNCListResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Result" type="xsd:boolean"/>


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

<xsd:complexType name="AttributeType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Value" type="xsd:string"/>
<xsd:element minOccurs="0" name="Type" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="UpdateContactAttributeValue">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="ContactID" type="xsd:string"/>


<xsd:element name="ContactGroupName" type="xsd:string"/>
<xsd:element name="AttributeName" type="xsd:string"/>
<xsd:element name="AttributeValue" type="xsd:string">
</xsd:element>

</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UpdateContactAttributeValueResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Result" type="xsd:int"/>


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

<xsd:element name="GetContactDataFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int"/>


<xsd:element name="FaultMsg" type="xsd:string">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetContactAttributeValueFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int"/>


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

Developer's Guide for Proactive Outreach Manager August 2010 23


About Web services

</xsd:element>
<xsd:element name="AddContactToJobFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int"/>


<xsd:element name="FaultMsg" type="xsd:string">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="IsDNCFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int"/>


<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UpdateContactAttributeValueFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int"/>


<xsd:element name="FaultMsg" type="xsd:string">
</xsd:element>

</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetAllCompletionCodesForCampaign">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="JobID" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetAllCompletionCodesForCampaignResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element maxOccurs="unbounded" minOccurs="0"


name="CompletionCodes" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetAllCompletionCodesForCampaignFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int">


</xsd:element>
<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SaveContactFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="FaultMsg" type="xsd:string">


</xsd:element>

24 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

<xsd:element name="RetCode" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AddToDNCListFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="FaultMsg" type="xsd:string">


</xsd:element>

<xsd:element name="RetCode" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RemoveFromDNCListFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="FaultMsg" type="xsd:string">


</xsd:element>

<xsd:element name="RetCode" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UpdateCompletionCode">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="PimSessionID" type="xsd:double"/>


<xsd:element name="CompletionCode" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UpdateCompletionCodeResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Result" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UpdateCompletionCodeFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int">


</xsd:element>
<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeleteContact">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="ContactID" type="xsd:string"/>


<xsd:element name="ContactGroupName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeleteContactResponse">
<xsd:complexType>
<xsd:sequence>

Developer's Guide for Proactive Outreach Manager August 2010 25


About Web services

<xsd:element name="Result" type="xsd:boolean"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeleteContactFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int">


</xsd:element>
<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AddContactGroupToJob">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="CampaignName" type="xsd:string"/>


<xsd:element name="ContactGroupName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AddContactGroupToJobResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Result" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AddContactGroupToJobFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int">


</xsd:element>
<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="SaveContactRequest">
<wsdl:part name="parameters" element="tns:SaveContact">
</wsdl:part>
</wsdl:message>
<wsdl:message name="UpdateCompletionCodeRequest">
<wsdl:part name="parameters" element="tns:UpdateCompletionCode">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AddContactGroupToJobFault">
<wsdl:part name="parameters" element="tns:AddContactGroupToJobFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AddToDNCListRequest">
<wsdl:part name="parameters" element="tns:AddToDNCList">
</wsdl:part>
</wsdl:message>
<wsdl:message name="IsDNCFault">
<wsdl:part name="parameters" element="tns:IsDNCFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetContactDataRequest">

26 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

<wsdl:part name="parameters" element="tns:GetContactData">


</wsdl:part>
</wsdl:message>
<wsdl:message name="RemoveFromDNCListResponse">
<wsdl:part name="parameters" element="tns:RemoveFromDNCListResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetContactAttributeValueRequest">
<wsdl:part name="parameters" element="tns:GetContactAttributeValue">
</wsdl:part>
</wsdl:message>
<wsdl:message name="DeleteContactResponse">
<wsdl:part name="parameters" element="tns:DeleteContactResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetContactDataResponse">
<wsdl:part name="parameters" element="tns:GetContactDataResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AddToDNCListResponse">
<wsdl:part name="parameters" element="tns:AddToDNCListResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AddToDNCListFault">
<wsdl:part name="parameters" element="tns:AddToDNCListFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="UpdateCompletionCodeFault">
<wsdl:part name="parameters" element="tns:UpdateCompletionCodeFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="SaveContactFault">
<wsdl:part name="parameters" element="tns:SaveContactFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AddContactGroupToJobResponse">
<wsdl:part name="parameters" element="tns:AddContactGroupToJobResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="SaveContactResponse">
<wsdl:part name="parameters" element="tns:SaveContactResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="DeleteContactFault">
<wsdl:part name="parameters" element="tns:DeleteContactFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetContactDataFault">
<wsdl:part name="parameters" element="tns:GetContactDataFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="RemoveFromDNCListFault">
<wsdl:part name="parameters" element="tns:RemoveFromDNCListFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetContactAttributeValueFault">
<wsdl:part name="parameters" element="tns:GetContactAttributeValueFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="IsDNCResponse">
<wsdl:part name="parameters" element="tns:IsDNCResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AddContactToJobResponse">
<wsdl:part name="parameters" element="tns:AddContactToJobResponse">

Developer's Guide for Proactive Outreach Manager August 2010 27


About Web services

</wsdl:part>
</wsdl:message>
<wsdl:message name="UpdateContactAttributeValueResponse">
<wsdl:part name="parameters" element="tns:UpdateContactAttributeValueResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AddContactToJobFault">
<wsdl:part name="parameters" element="tns:AddContactToJobFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetContactAttributeValueResponse">
<wsdl:part name="parameters" element="tns:GetContactAttributeValueResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="IsDNCRequest">
<wsdl:part name="parameters" element="tns:IsDNC">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetAllCompletionCodesForCampaignResponse">
<wsdl:part name="parameters"
element="tns:GetAllCompletionCodesForCampaignResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AddContactToJobRequest">
<wsdl:part name="parameters" element="tns:AddContactToJob">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetAllCompletionCodesForCampaignRequest">
<wsdl:part name="parameters" element="tns:GetAllCompletionCodesForCampaign">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetAllCompletionCodesForCampaignFault">
<wsdl:part name="parameters"
element="tns:GetAllCompletionCodesForCampaignFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="UpdateContactAttributeValueRequest">
<wsdl:part name="parameters" element="tns:UpdateContactAttributeValue">
</wsdl:part>
</wsdl:message>
<wsdl:message name="UpdateContactAttributeValueFault">
<wsdl:part name="parameters" element="tns:UpdateContactAttributeValueFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="RemoveFromDNCListRequest">
<wsdl:part name="parameters" element="tns:RemoveFromDNCList">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AddContactGroupToJobRequest">
<wsdl:part name="parameters" element="tns:AddContactGroupToJob">
</wsdl:part>
</wsdl:message>
<wsdl:message name="UpdateCompletionCodeResponse">
<wsdl:part name="parameters" element="tns:UpdateCompletionCodeResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="DeleteContactRequest">
<wsdl:part name="parameters" element="tns:DeleteContact">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="VP_POMAgentAPIService">
<wsdl:operation name="GetContactData">
<wsdl:input message="tns:GetContactDataRequest">
</wsdl:input>
<wsdl:output message="tns:GetContactDataResponse">

28 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

</wsdl:output>
<wsdl:fault name="fault" message="tns:GetContactDataFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="GetContactAttributeValue">
<wsdl:input message="tns:GetContactAttributeValueRequest">
</wsdl:input>
<wsdl:output message="tns:GetContactAttributeValueResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:GetContactAttributeValueFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="SaveContact">
<wsdl:input message="tns:SaveContactRequest">
</wsdl:input>
<wsdl:output message="tns:SaveContactResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:SaveContactFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="AddContactToJob">
<wsdl:input message="tns:AddContactToJobRequest">
</wsdl:input>
<wsdl:output message="tns:AddContactToJobResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:AddContactToJobFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="IsDNC">
<wsdl:input message="tns:IsDNCRequest">
</wsdl:input>
<wsdl:output message="tns:IsDNCResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:IsDNCFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="AddToDNCList">
<wsdl:input message="tns:AddToDNCListRequest">
</wsdl:input>
<wsdl:output message="tns:AddToDNCListResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:AddToDNCListFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="RemoveFromDNCList">
<wsdl:input message="tns:RemoveFromDNCListRequest">
</wsdl:input>
<wsdl:output message="tns:RemoveFromDNCListResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:RemoveFromDNCListFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="UpdateContactAttributeValue">
<wsdl:input message="tns:UpdateContactAttributeValueRequest">
</wsdl:input>
<wsdl:output message="tns:UpdateContactAttributeValueResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:UpdateContactAttributeValueFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="GetAllCompletionCodesForCampaign">
<wsdl:input message="tns:GetAllCompletionCodesForCampaignRequest">
</wsdl:input>
<wsdl:output message="tns:GetAllCompletionCodesForCampaignResponse">
</wsdl:output>

Developer's Guide for Proactive Outreach Manager August 2010 29


About Web services

<wsdl:fault name="fault" message="tns:GetAllCompletionCodesForCampaignFault">


</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="UpdateCompletionCode">
<wsdl:input message="tns:UpdateCompletionCodeRequest">
</wsdl:input>
<wsdl:output message="tns:UpdateCompletionCodeResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:UpdateCompletionCodeFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="DeleteContact">
<wsdl:input message="tns:DeleteContactRequest">
</wsdl:input>
<wsdl:output message="tns:DeleteContactResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:DeleteContactFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="AddContactGroupToJob">
<wsdl:input message="tns:AddContactGroupToJobRequest">
</wsdl:input>
<wsdl:output message="tns:AddContactGroupToJobResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:AddContactGroupToJobFault">
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AgentAPISOAP" type="tns:VP_POMAgentAPIService">
<soap:binding style="document" transport="[Link]
>
<wsdl:operation name="GetContactData">
<soap:operation soapAction="[Link]
GetContactData"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="GetContactAttributeValue">
<soap:operation soapAction="[Link]
GetContactAttributeValue"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="SaveContact">
<soap:operation soapAction="[Link]
SaveContact"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>

30 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="AddContactToJob">
<soap:operation soapAction="[Link]
AddContactToJob"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="IsDNC">
<soap:operation soapAction="[Link]
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="AddToDNCList">
<soap:operation soapAction="[Link]
AddToDNCList"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="RemoveFromDNCList">
<soap:operation soapAction="[Link]
RemoveFromDNCList"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="UpdateContactAttributeValue">
<soap:operation soapAction="[Link]
UpdateContactAttributeValue"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>

Developer's Guide for Proactive Outreach Manager August 2010 31


About Web services

<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="GetAllCompletionCodesForCampaign">
<soap:operation soapAction="[Link]
GetAllCompletionCodesForCampaign"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="UpdateCompletionCode">
<soap:operation soapAction="[Link]
UpdateCompletionCode"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="DeleteContact">
<soap:operation soapAction="[Link]
DeleteContact"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="AddContactGroupToJob">
<soap:operation soapAction="[Link]
AddContactGroupToJob"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="VP_POMAgentAPIService">
<wsdl:port name="AgentAPISOAP" binding="tns:AgentAPISOAP">
<soap:address location="[Link]
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

32 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

GetAllCompletionCodesForCampaign method
Use this method to retrieve all custom completion codes for a given campaign.
Parameter

Parameter Type Description


JobID Integer A job is a running instance of any campaign. This is
internally identified with the help of a unique ID for each
running instance.

This method returns the completion codes for the selected campaign.
Faults

Return code Fault message


-1 No job records found for the selected campaign.
-1 No custom completion codes defined for the selected campaign.

AddContactToJob method
Use this method to add a contact record to a running campaign. The POM Web service user
should have access to the contact groups and private attributes.
Parameters

Parameter Type Description


CampaignNam String The name of the campaign.
e
ContactID Integer The contacts imported in POM database are internally
identified by a unique ID.
ContactGroup String Logical groups of contacts based on different criteria.
Name

This method returns 0 if the contact is added successfully in the first available running job of
the specified campaign.

Developer's Guide for Proactive Outreach Manager August 2010 33


About Web services

Faults

Return Fault message


code
-1 Job record not found.
-1 Cannot add contact. Invalid job status for the given job ID in which you are
trying to add a contact.
-2 Contact record not found.
-3 Contact group not found.
-4 Job contact record not found.
-5 Cannot add contact to the job. It already exists.

SaveContact method
Use this method to save a contact information into any defined contact group.
The parameter for this method is Contact, an object type of Contact type.
Parameters of the ContactType object

Parameter Type Description


ContactID String Unique identification for the contact. This is a
mandatory parameter.
ContactGroupNa String The name of the contact group. This is a mandatory
me parameter.
FirstName String The first name of the contact.
LastName String The last name of the contact.
Phonenumber 1 Integer The phone number of the contact.
Phonenumber 2 Integer The alternative phone number of the contact.
Email String The e-mail address of the contact.
Language String The language of communication to be used.
Time Zone Date Time The date and time zone of the contact.
AttributeObj Attribute Type To specify the custom attributes for the contact.

This method returns a 0 if the contact is saved successfully to the database.

34 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

Faults

Return code Fault message


-2 Failed to get contact group.
-3 Failed to add contact.
-1 Failed to save contact information.

AddToDNCList method
Use this method to add phone numbers and/or e-mail addresses to the Do Not Call (DNC) list.
You can add contacts to the DNC list only if the POM Web service user is a global user and
is not an Org user.

Note:
A global user is a user who does not belong to any organization, and has the POM
Administration and POM Campaign Manager roles. An organization user (Org user) is a
user who belongs to an organization created in Voice Portal, and has the Org POM
Campaign Manager role.
Parameter

Parameter Type Description


Address String Phone number and/or e-mail address.

This method returns a True if the phone number and/or e-mail address is successfully added
to the DNC list.
Fault

Return code Fault message


-1 Phone number and/or e-mail address existing in the DNC list.

RemoveFromDNCList method
Use this method to remove the contact information from the DNC list.
You can remove contacts from the DNC list only if the POM Web service user is a global user
and is not an Org user.

Developer's Guide for Proactive Outreach Manager August 2010 35


About Web services

Note:
A global user is a user who does not belong to any organization, and has the POM
Administration and POM Campaign Manager roles. An organization user (Org user) is a
user who belongs to an organization created in Voice Portal, and has the Org POM
Campaign Manager role.
Parameter

Parameter Type Description


Address String Phone number and/or e-mail
address.

This method returns a True if the phone number and/or e-mail address is successfully removed
from the DNC list.
Fault

Return code Fault message


-1 Cannot remove phone number and/or e-mail address since it is not in the
DNC list.

IsDNC method
This method returns true or false if a given phone number and/or e-mail address exists in the
DNC list.
Parameter

Parameter Type Description


Address String Phone number and/or e-mail address of the contact.

This method returns a True if the phone number and/or e-mail address exists in the DNC list,
and returns a False if the phone number and/or e-mail address does not exist in the DNC list

GetContactData method
Use this method to retrieve contact information from the contact group. The POM Web service
user should have access to the contact groups and private attributes.

36 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

Parameters

Parameter Type Description


ContactID Integer Unique identification of the contact.
ContactGroup String The name of the group where contact is stored.

This method returns the contact data object of type ContactType.


Parameters of the ContactType object

Parameter Type Description


ContactID String Unique identification for the contact. This is a
mandatory parameter.
ContactGroupNa String The name of the contact group. This is a mandatory
me parameter.
FirstName String The first name of the contact.
LastName String The last name of the contact.
Phonenumber 1 Integer The phone number of the contact.
Phonenumber 2 Integer The alternative phone number of the contact.
Email String The e-mail address of the contact.
Language String The language of communication to be used.
Time Zone Date Time The date and time zone of the contact.
AttributeObj Attribute Type To specify the custom attributes for the contact.

Faults

Return code Fault message


-2 Contact record not found.
-1 Contact group not found.

GetContactAttributeValue method
Use this method to retrieve specific contact attribute from the contact group. The POM Web
service user should have access to the contact groups and private attributes.

Developer's Guide for Proactive Outreach Manager August 2010 37


About Web services

Parameter

Parameter Type Description


ContactID Integer Unique identifier for the contact.
ContactGroup String Name of the group where contact is saved.
AttributeName String The specific attribute name from the given contact group.

This method returns the attribute value.


Faults

Return code Fault message


-1 Contact group not found.
-3 Attribute record not found.

UpdateCompletionCode method
Use this method to update the completion code for a given contact record. The POM Web
service user must have access to campaigns and completion codes.
Parameters

Parameter Type Description


PIMSessionID Integer A unique identifier for a session.
CompletionCod String Custom completion code.
e

This method returns a 0 if the custom completion code is successfully updated for the specified
contact.
Faults

Return code Fault message


-1 The record for the given session ID not found.
-2 The completion code record not found.

38 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMAgentAPIService Web service

UpdateContactAttributeValue method
Use this method to update individual contact attribute values for given contact record. The
POM Web service user should have access to the contact groups and private attributes. The
predefined attributes are case-sensitive and need to be mapped. The following table shows
the mapping:

Attribute Name Name to be used in the method


Id UserContactId
First Name FirstName
Last Name LastName
Phone 1 PhoneNumber1
Phone 2 PhoneNumber2
Email Email
Language Language
Time Zone TimeZone

Parameters

Parameter Type Description


ContactID Integer Unique identification of the contact.
ContactGroupN String The name of the group where contact is saved.
ame
AttributeName String The name of the attribute to be updated.
AttributeValue String The value of the attribute to be updated.

This method returns a 0 if the contact attribute value is successfully updated for the specific
contact.
Faults

Return code Fault message


-1 Contact record not found.
-1 Contact group not found.
-3 Attribute record not found.

Developer's Guide for Proactive Outreach Manager August 2010 39


About Web services

AddContactGroupToJob method
Use this method to add a contact group to a running campaign.
Parameters

Parameter Type Description


CampaignNa String The name of a campaign.
me
ContactGroup String Logical groups of contacts based on different criteria.
Name

Faults

Return code Fault message


-1 Job record not found.
-1 Cannot add contact. Invalid job status for Job ID xxxxx.
-2 Cannot add contact group to job. It already exists.

DeleteContact method
Use this method to permanently delete a particular contact from the POM database. You cannot
delete a contact if it is a part of a queue or is being referenced.
Parameter

Parameter Type Description


ContactID Integer The contacts imported in the POM database are
internally identified by a unique ID.
ContactGroupNa String Logical groups of contacts based on different
me criteria.

Faults

Return code Fault message


-1 Contact record not found.
-1 Contact group not found.

40 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMCmpMgMtService Web service

Return code Fault message


-3 Cannot delete contact. It is being used.

About VP_POMCmpMgMtService Web service

VP_POMCmpMgmtService Web service


POM uses VP_POMCmpMgmtService to manage the campaign related features such as
starting, stopping, pausing the campaigns, and to access the call pacing features. Use call
pacing to restrict or determine the maximum number of simultaneous calls allowed for each
campaign. This Web service needs a valid Voice Portal user for authorization. If you have
turned the multi-tenancy on, ensure that the Voice Portal user belongs to the same organization
as that of the campaign. For details on multi-tenancy, refer to the Administering Voice Portal
guide from [Link] Alternatively a global user gains access for all campaigns
across organizations.
You need to create a campaign with call pacing turned on. When the campaign starts, the
Campaign Manager checks the license availability. If license is available and call pacing is
enabled, then the Campaign Manager will refer to the call attempt value. POM marks the call
attempt as over when a call is transferred to an agent, or disconnected, or is unsuccessful.
POM uses the nonzero value specified in the call attempts, and launches the maximum
attempts. POM keeps running with this value and guarantees that the attempts do not exceed
the specified value at any point. From the following methods listed below for the
VP_POMCmpMgmtService Web service, the first two are related to call pacing:
• GetActiveJobs method on page 50
• SetMaxAttemptsCount method on page 50
• GetCampaignJobs method on page 51
• RunCampaign method on page 52
• PauseActiveJob method on page 52
• ResumePausedJob on page 53
• StopJob method on page 53

Configuring the VP_POMCmpMgmtService Web service

Developer's Guide for Proactive Outreach Manager August 2010 41


About Web services

1. Use a Web browser to open the page [Link] address>/axis2/services/


VP_POMCmpMgmtService?wsdl, where Voice Portal Management System
(VPMS) server is the name or IP address of the primary VPMS.

2. Enter a valid VPMS user name and password.


3. Save the Web Service Definition Language (WSDL) file.
You can use this file to build a Web service client that accesses the CmpMgmt Web
service (VP_POMCmpMgmtService).

Note:
Ensure that the Web service client generated, is an axis2 client. For more
information on generating the client, refer to the Apache axis2 documentation
from [Link]
This Web service conforms to all the current World Wide Web Consortium (W3C)
standards.

VP_POMCmpMgmt WSDL file


The following is a WSDL file for VP_POMCmpMgmt Web service. The Web service is installed
on all the POM servers. For details on accessing the WSDL file, refer to Configuring the
VP_POMCmpMgmtService Web service on page 41.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="CmpMgmt" targetNamespace="[Link]
CmpMgmt/" xmlns:wsdl="[Link] xmlns:tns="http://
[Link]/CmpMgmt/" xmlns:xsd="[Link]
xmlns:soap="[Link]
<wsdl:types>
<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="[Link]
<xsd:element name="GetActiveJobs">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CampaignName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetActiveJobsResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="Jobs"
type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetActiveJobsFaultInfo">
<xsd:complexType>
<xsd:sequence>

42 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMCmpMgMtService Web service

<xsd:element name="RetCode" type="xsd:int">


</xsd:element>
<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SetMaxAttemptsCount">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="JobID" type="xsd:int"/>


<xsd:element name="Count" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SetMaxAttemptsCountResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="Result" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SetMaxAttemptsCountFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int">


</xsd:element>
<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PauseActiveJob">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="JobID" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PauseActiveJobResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="IsPaused" type="xsd:boolean"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PauseActiveJob_fault">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="PauseActiveJob_fault" type="xsd:string">


</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PauseActiveJobFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int">


</xsd:element>

Developer's Guide for Proactive Outreach Manager August 2010 43


About Web services

<xsd:element name="FaultMsg" type="xsd:string"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ResumePausedJob">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="JobID" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ResumePausedJobResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="IsResumed" type="xsd:boolean"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ResumePausedJobFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int">


</xsd:element>
<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="StopJob">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="JobID" type="xsd:int"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="StopJobResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="IsStopped" type="xsd:boolean"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="StopJobFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int"/>


<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RunCampaign">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="CampaignName" type="xsd:string"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RunCampaignResponse">
<xsd:complexType>

44 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMCmpMgMtService Web service

<xsd:sequence>

<xsd:element name="IsQueued" type="xsd:boolean"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RunCampaignFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int">


</xsd:element>
<xsd:element name="FaultMsg" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetCampaignJobs">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="CampaignName" type="xsd:string"/>


<xsd:element maxOccurs="unbounded" minOccurs="0" name="JobState"
type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetCampaignJobsResponse">
<xsd:complexType>
<xsd:sequence>

<xsd:element maxOccurs="unbounded" minOccurs="0" name="JobDetails"


type="tns:JobIDsAndStates"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetCampaignJobsFaultInfo">
<xsd:complexType>
<xsd:sequence>

<xsd:element name="RetCode" type="xsd:int">


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

<xsd:complexType name="JobIDsAndStates">
<xsd:sequence>
<xsd:element name="JobID" type="xsd:int"/>
<xsd:element name="JobState" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="ResumePausedJobRequest">
<wsdl:part name="parameters" element="tns:ResumePausedJob">
</wsdl:part>
</wsdl:message>
<wsdl:message name="StopJobResponse">
<wsdl:part name="parameters" element="tns:StopJobResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetActiveJobsResponse">
<wsdl:part name="parameters" element="tns:GetActiveJobsResponse">
</wsdl:part>

Developer's Guide for Proactive Outreach Manager August 2010 45


About Web services

</wsdl:message>
<wsdl:message name="SetMaxAttemptsCountFault">
<wsdl:part name="parameters" element="tns:SetMaxAttemptsCountFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetActiveJobsRequest">
<wsdl:part name="parameters" element="tns:GetActiveJobs">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetActiveJobsFault">
<wsdl:part name="parameters" element="tns:GetActiveJobsFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="ResumePausedJobFault">
<wsdl:part name="parameters" element="tns:ResumePausedJobFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetCampaignJobsRequest">
<wsdl:part name="parameters" element="tns:GetCampaignJobs">
</wsdl:part>
</wsdl:message>
<wsdl:message name="PauseActiveJobFault">
<wsdl:part name="parameters" element="tns:PauseActiveJobFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="SetMaxAttemptsCountResponse">
<wsdl:part name="parameters" element="tns:SetMaxAttemptsCountResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="RunCampaignResponse">
<wsdl:part name="parameters" element="tns:RunCampaignResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetCampaignJobsResponse">
<wsdl:part name="parameters" element="tns:GetCampaignJobsResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="StopJobRequest">
<wsdl:part name="parameters" element="tns:StopJob">
</wsdl:part>
</wsdl:message>
<wsdl:message name="RunCampaignRequest">
<wsdl:part name="parameters" element="tns:RunCampaign">
</wsdl:part>
</wsdl:message>
<wsdl:message name="PauseActiveJobResponse">
<wsdl:part name="parameters" element="tns:PauseActiveJobResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="PauseActiveJobRequest">
<wsdl:part name="parameters" element="tns:PauseActiveJob">
</wsdl:part>
</wsdl:message>
<wsdl:message name="StopJobFault">
<wsdl:part name="parameters" element="tns:StopJobFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:message name="SetMaxAttemptsCountRequest">
<wsdl:part name="parameters" element="tns:SetMaxAttemptsCount">
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetCampaignJobsFault">
<wsdl:part name="parameters" element="tns:GetCampaignJobsFaultInfo">
</wsdl:part>
</wsdl:message>

46 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMCmpMgMtService Web service

<wsdl:message name="ResumePausedJobResponse">
<wsdl:part name="parameters" element="tns:ResumePausedJobResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="RunCampaignFault">
<wsdl:part name="parameters" element="tns:RunCampaignFaultInfo">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="VP_POMCmpMgmtService">
<wsdl:operation name="GetActiveJobs">
<wsdl:input message="tns:GetActiveJobsRequest">
</wsdl:input>
<wsdl:output message="tns:GetActiveJobsResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:GetActiveJobsFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="SetMaxAttemptsCount">
<wsdl:input message="tns:SetMaxAttemptsCountRequest">
</wsdl:input>
<wsdl:output message="tns:SetMaxAttemptsCountResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:SetMaxAttemptsCountFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="PauseActiveJob">
<wsdl:input message="tns:PauseActiveJobRequest">
</wsdl:input>
<wsdl:output message="tns:PauseActiveJobResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:PauseActiveJobFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="ResumePausedJob">
<wsdl:input message="tns:ResumePausedJobRequest">
</wsdl:input>
<wsdl:output message="tns:ResumePausedJobResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:ResumePausedJobFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="StopJob">
<wsdl:input message="tns:StopJobRequest">
</wsdl:input>
<wsdl:output message="tns:StopJobResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:StopJobFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="RunCampaign">
<wsdl:input message="tns:RunCampaignRequest">
</wsdl:input>
<wsdl:output message="tns:RunCampaignResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:RunCampaignFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="GetCampaignJobs">
<wsdl:input message="tns:GetCampaignJobsRequest">
</wsdl:input>
<wsdl:output message="tns:GetCampaignJobsResponse">
</wsdl:output>
<wsdl:fault name="fault" message="tns:GetCampaignJobsFault">
</wsdl:fault>
</wsdl:operation>

Developer's Guide for Proactive Outreach Manager August 2010 47


About Web services

</wsdl:portType>
<wsdl:binding name="CmpMgmtSOAP" type="tns:VP_POMCmpMgmtService">

<soap:binding style="document"
transport="[Link] />
<wsdl:operation name="GetActiveJobs">

<soap:operation
soapAction="[Link] />
<wsdl:input>

<soap:body use="literal" />


</wsdl:input>
<wsdl:output>

<soap:body use="literal" />


</wsdl:output>
<wsdl:fault name="fault">

<soap:fault use="literal" name="fault" />


</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="SetMaxAttemptsCount">

<soap:operation
soapAction="[Link]
SetMaxAttemptsCount" />
<wsdl:input>

<soap:body use="literal" />


</wsdl:input>
<wsdl:output>

<soap:body use="literal" />


</wsdl:output>
<wsdl:fault name="fault">

<soap:fault use="literal" name="fault" />


</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="PauseActiveJob">

<soap:operation
soapAction="[Link] />
<wsdl:input>

<soap:body use="literal" />


</wsdl:input>
<wsdl:output>

<soap:body use="literal" />


</wsdl:output>
<wsdl:fault name="fault">

<soap:fault use="literal" name="fault" />


</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="ResumePausedJob">

<soap:operation
soapAction="[Link] />
<wsdl:input>

<soap:body use="literal" />


</wsdl:input>

48 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMCmpMgMtService Web service

<wsdl:output>

<soap:body use="literal" />


</wsdl:output>
<wsdl:fault name="fault">

<soap:fault use="literal" name="fault" />


</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="StopJob">

<soap:operation
soapAction="[Link] />
<wsdl:input>

<soap:body use="literal" />


</wsdl:input>
<wsdl:output>

<soap:body use="literal" />


</wsdl:output>
<wsdl:fault name="fault">

<soap:fault use="literal" name="fault" />


</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="RunCampaign">

<soap:operation
soapAction="[Link] />
<wsdl:input>

<soap:body use="literal" />


</wsdl:input>
<wsdl:output>

<soap:body use="literal" />


</wsdl:output>
<wsdl:fault name="fault">

<soap:fault use="literal" name="fault" />


</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="GetCampaignJobs">

<soap:operation
soapAction="[Link] />
<wsdl:input>

<soap:body use="literal" />


</wsdl:input>
<wsdl:output>

<soap:body use="literal" />


</wsdl:output>
<wsdl:fault name="fault">

<soap:fault use="literal" name="fault" />


</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="VP_POMCmpMgmtService">
<wsdl:port name="CmpMgmtSOAP" binding="tns:CmpMgmtSOAP">
<soap:address location="[Link]
</wsdl:port>

Developer's Guide for Proactive Outreach Manager August 2010 49


About Web services

</wsdl:service>
</wsdl:definitions>

GetActiveJobs method
Use this method to retrieve the active jobs for a particular campaign, with call pacing turned on.
Parameter

Parameter Type Description


CampaignNam String Campaign name to retrieve the active jobs.
e

The method returns a Jobs parameter of Set<Integer> type, which has the job IDs for the active
jobs. Jobs in Stopped, Stopping, and Completed state are not considered as active.

Note:
POM considers paused jobs as active jobs.
Faults

Return code Fault message


-1 Campaign record not found.
-2 Access Denied — Not a valid campaign for your organization.
-2 Call pacing not enabled for campaign.
-3 No running job found for campaign.

SetMaxAttemptsCount method
Use this method to set the maximum number of simultaneous calls. A campaign with call pacing
enabled always starts with 0 as the value for the Count parameter, and so does not place calls
till the count is set to a nonzero positive value. POM uses the nonzero value specified in the
call attempts, and launches the maximum attempts. POM keeps running with this value and
guarantees that the attempts do not exceed the specified value at any point.
Parameter

Parameter Type Description


JobID Integer Job ID of an active job.

50 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMCmpMgMtService Web service

Parameter Type Description


Count Integer Maximum number of call attempts
allowed.

Faults

Return Fault message


code
-1 Job record not found.
-1 Invalid value for count.
-2 Access Denied — Not a valid campaign for your organization.
-2 Job record not found.
-3 Call pacing not enabled for campaign.
-4 Agent Job Summary record not found.

GetCampaignJobs method
Use this method to retrieve the job ID and the job state for a given campaign. If you do not
specify any job state, then it retrieves all the job ID, irrespective of a specific state, for the given
campaign. This list displays all jobs including finished jobs.
Parameter

Parameter Type Description


CampaignName String Each campaign is identified with a unique campaign
name. Specify the campaign name for which you want
to retrieve the job ID and job state.
(Optional) String[] You can pass the job state as JOB_QUEUED,
JobState JOB_ACTIVE, JOB_PAUSED, or
JOB_COMPLETED to filter out the job IDs matching
with corresponding state.

This method returns an array of JobIdsAndStates object.


Faults

Return code Fault message


-1 Campaign does not exist! Campaign Name: <Campaign
Name>

Developer's Guide for Proactive Outreach Manager August 2010 51


About Web services

Return code Fault message


-2 Access Denied - Not a valid campaign for your organization.
-5 Not a valid job state: <Invalid Job State>
-10 General Fault: <Exception Message>

RunCampaign method
Use this method to run a campaign based on some event. For example, in case of an IT group
running a campaign, all the support personnel belonging to the IT group, need to be called if
the file server goes down. In such cases, you cannot schedule a campaign, as the time at
which the problem occurs is not known. You can then programmatically run the campaign,
based on the occurrence of the event.
Parameter

Parameter Type Description


CampaignName String Each campaign is identified with a unique
campaign name.

This method returns True if a campaign job is successfully queued.


Faults

Return code Fault Message


-1 Job record not found.
-2 Access Denied. Not a valid campaign for your organization.

PauseActiveJob method
Use this method to pause an active job of a running campaign.
Parameter

Parameter Type Description


JobID Integer A job is a running instance of any campaign. This is internally
identified with the help of a unique ID for each running
instance.

52 Developer's Guide for Proactive Outreach Manager August 2010


About VP_POMCmpMgMtService Web service

This method returns True if the active job is successfully paused.


Faults

Return code Fault message


-1 Job record not found.
-2 Access denied. Not a valid campaign for your organization.
-3 Cannot pause job. Job ID xxxx is not in active state.

ResumePausedJob
Use this method to resume a paused job.
Parameter

Parameter Type Description


JobID Integer A job is a running instance of any campaign.
This is internally identified with the help of a
unique ID for each running instance.

This method returns a True if a paused campaign resumes successfully.


Faults

Return code Fault message


-1 Job record not found.
-2 Access denied - Not a valid campaign for your organization.
-3 Cannot resume job. Job ID xxx is not in the paused state.

StopJob method
Use this method to stop an active, or a paused job of a campaign.

Developer's Guide for Proactive Outreach Manager August 2010 53


About Web services

Parameter

Parameter Type Description


JobID Integer A job is a running instance of any campaign. This
is internally identified with the help of a unique ID
for each running instance.

This method returns a True if an active, or a paused job stops successfully.


Faults

Return code Fault message


-1 Job record not found.
-2 Access denied - Not a valid campaign for your organization.
-3 Cannot stop job. Job ID xxx s not in paused or active state.

54 Developer's Guide for Proactive Outreach Manager August 2010


Chapter 3: Custom connectors, interface
definitions, and class files

Creating a custom data import connector


You can use a custom connector to import data from your database or any other source like
ERP systems, or CRM software. To implement the custom interface you need to implement
the following ContactListCreator:
public interface ContactListCreator

void init() throws Exception;

boolean hasMoreContacts();

ArrayList<PimContact>getNextContactBatch()throws Exception;

Prerequisites
To use the provided customer interfaces you must copy the following .jar files in your
development environment.
• [Link] file. This .jar file references:
- import [Link]
- import [Link]
- import [Link]
- import [Link]
• [Link]. This .jar file references:
import [Link];

Note:
POM uses hibernate for database interactions.

Developer's Guide for Proactive Outreach Manager August 2010 55


Custom connectors, interface definitions, and class files

The above mentioned files are in $POM_HOME/lib/common folder.


• [Link]. You can find this file in $POM_HOME/lib/core folder.

Follow these steps to implement the ContactListCreator interface:

1. To implement java class, extend the ImportDsJob class


public class CustomImport extends ImportDsJob implements
ContactListCreator

}
2. Use the constructor with the importId parameter,
public CustomImport(Session session, int importId) throws Exception
{
super(session, importId);
}

3. Implement the following methods from the Interface ContactListCreator:


void init() throws Exception;

To initialize the variables in the user class:


ArrayList<PimContact>getNextContactBatch()throws Exception;

To create list of PimContact objects:


boolean hasMoreContacts();

After every call to getNextContactBatch(), the POM Import Manager calls this
function to check for more contacts.
4. To create a list of PimContacts:
a. Create a list to store contacts:
ArrayList<PimContact> = new ArrayList<PimContact>();

b. Create a PIMContact object using contact information from your source:


PimContact contactObj = new PimContact();
[Link](contactId);
[Link](firstName);
[Link](lastName);
contactObj.setPhoneNumber1(phoneNumber1);
contactObj.setPhoneNumber2(phoneNumber2);
[Link](email);
[Link](language);
[Link](timzone)
Date now = new Date();
[Link](now);

56 Developer's Guide for Proactive Outreach Manager August 2010


Creating a custom data import connector

c. Associate attributes with objects:


i. PimAttribute tmpAttribute
=[Link](attributeName);

Pass attribute name to [Link]()


function.

Warning:
If this attribute is present in the POM system, function returns the
object else it returns null, so it is important to add the attribute in
the POM system first.
If the attribute you try to import does not belong to your
organization, the function
[Link](attributeName) throws
exceptions, and you need to resolve the exceptions.
To add attributes, refer to Adding Attributes section from the User's
Guide from [Link]
ii. PimContactAttribute contactAttributeObj = new
PimContactAttribute(contactObj, tmpAttribute,
attributeValue);

This function takes the contact object, the attribute object , and the
attribute values, and binds them together to the
contactAttributeObj.
iii. Create a set to store contact attributes:
Set <PimContactAttribute>contactAttributeSet = new
HashSet<PimContactAttribute>();
[Link](contactAttributeObj);

iv. Associate the set to contact object:


[Link](contactAttributeSet);

d. Add this contact object to contact list:


[Link](contactObj);

e. Return this contact list:


return numberList;

After you finish creating the contacts, hasMoreContacts() must return false.
5. Create a jar file from this class, for [Link].
6. Copy the jar file to $POM_HOME/lib/custom folder on all the POM servers.
7. Restart POM service by typing/sbin/service POM restart.
8. Restart VPMS service by typing/sbin/service vpms restart.
9. To create data source from the jar:
a. In the left pane, select POM Configurations > Contacts >Contact Data
Sources

Developer's Guide for Proactive Outreach Manager August 2010 57


Custom connectors, interface definitions, and class files

b. Click Add.
c. Select the Custom option button.
d. Specify the name and description.
e. Select the contact group from the drop-down list.
f. Click Next.
g. Specify the class name.
h. Click Finish to finish the data source creation.

Note:
If you have not added attributes, and you are using the custom class to import
contact data, the system does not display any error messages while adding
the contact data source. After running the import, check the Import Monitor
to verify if the import is successful.

Creating a custom class for post processing of jobs


Use this to process all successful contacts after campaign execution. For example you can
export all contacts with customized details like, campaign name, campaign ID, phone number,
e-mail address. The custom class must implement the PomJobPostProcessor interface give
below:
public interface PomJobPostProcessor

public void processContactAttempt(PomCampaignInfo pomCampaignInfo,


PomCampaignJobInfo pomCampaignJobInfo, PomContactInfo pomContactInfo,
PomAttemptInfo attemptInfo) throw Exception;

The interface uses the following four objects:


public class PomCampaignInfo

private int campaignId; // campaign ID

private String orgName; // Organization to which the campaign belongs

private String contactStrategyName;// contact strategy used in the campaign

private int isInfinite;// campaign is finite or infinite

58 Developer's Guide for Proactive Outreach Manager August 2010


Creating a custom class for post processing of jobs

private int priority; // campaign priority

private String name; // campaign name

private String description; // campaign description

private boolean enablePacing; // call pacing is enabled or disabled

private String createdBy; // name of the user who created the campaign

private String lastModifiedBy; // name of the user who last modified the campaign

private Date lastModifiedOn; // date and time when the campaign was last modified

private Date lastJobStartTime; // date and time when the last job of the campaign
was started

private String dialingPrefix; // the dialing prefix used to make outbound calls

private String smsPrefix;// the SMS prefix used to send SMS

private boolean enableComplianceTimers; // compliance timers used or not

private int startOfVoiceTimeout; // start of voice timeout value for the given
campaign

private int liveVoiceTimeout; // start of live voice timeout value for the given
campaign

public class PomCampaignJobInfo

private int jobId; // job ID

private Date startTime;// date and time when the job starts

private Date endTime; // date and time when the job finishes

private String finishReason; // reason for job finish

Developer's Guide for Proactive Outreach Manager August 2010 59


Custom connectors, interface definitions, and class files

public class PomContactInfo

private String contactId; // contact ID

private int contactGroupId;// contact group ID to which the contact belongs

private String contactGroupName; // contact group name to which the contact belongs

private String phoneNumber1; // primary phone number of the contact

private String phoneNumber2; // secondary or alternative phone number of the contact

private String firstName; // first name of the contact

private String lastName; // last name of the contact

private String email; // e-mail address of the contact

private String language; // default language selected for the contact

private String timeZone; // time zone selected for the contact

private Date lastAttemptTime; // when the contact was last attempted

private Date lastSuccessfulAttemptTime; // date and time when the contact was last
attempted

private HashMap<String, String>contactAttribute; // key value pairs for contact


custom attributes and their values
public class PomAttemptInfo

private long pimSessionId; // POM session ID

private String pimCompletionCode; // system and custom completion code for the
specific attempt

private String pimSysCompletionCode; // system completion code

private int pimJobId; // internal contact ID

private String pimServerName;// POM server name

60 Developer's Guide for Proactive Outreach Manager August 2010


Creating a custom application class for Custom action

private String sessionId; // voice portal session ID

private Date contactAttemptTime; // date and time when the attempt is made

private Date ringbackStartTime; // date and time of start of ringing

private Date lastNwDispositionTime; // date and time when the last disposition was
received

private Date callStartTime; // date and time when the call starts

private Date callCompletionTime; // date and time when the call ends

private Long callConnectTime; // date and time when the call was connected

private Integer startOfVoiceOffset; // offset in milliseconds from the connect time

private Integer firstPromptOffset; // offset in milliseconds of the start of play


of the first prompt

private String mediaServerName; // name of the media server

private int channelType; // the type of communication channel used - email, voice,
or sms

private String address; // address used for the attempt

Prerequisites

[Link] file.

Copy the jar file in your development environment. You can find the .jar file in
$POM_HOME/lib/common folder.

Creating a custom application class for Custom action


While creating a contact strategy, if you want to use custom implementation for a given
campaign, you can use the Custom action node instead of using the standard call, SMS, or

Developer's Guide for Proactive Outreach Manager August 2010 61


Custom connectors, interface definitions, and class files

e-mail action node. This custom action uses the Application node and you need to specify the
custom application class or file name under the Application node.
The custom class must implement the followingPomActionProcessor interface:
public interface PomActionProcessor {

public boolean processContact (PomInfo pomInfo, String parentStateName);

where pomInfo is an object which contains the information of the contact to be processed,
and parentStateName is the name of the state under which the Custom action node is added
in the contact strategy.
The processContact function is called for every contact in the campaign.
// class PomInfo with follwing members

JobId // ID of the job


contactId // User Contact ID
contactGroupId // ID of the Contact Group
contactGroupName // Name of the Contact Group
address // Address used in the Contact Attempt
campaignName // name of the campaign

Prerequisites
[Link] file.

Copy the jar file in your development environment. You can find the .jar file in
$POM_HOME/lib/common folder.

Example
Following is an example of a sample class file:
public class TestActionImplementation implements PomActionProcessor {

@Override

public boolean processContact(PomInfo pomInfo) {

[Link]("Inside custom action");

[Link]("User Contact ID - " + [Link]());

[Link]("User Contact Group Name - " + [Link]());

[Link]("Address - " + [Link]());

return true;

62 Developer's Guide for Proactive Outreach Manager August 2010


Creating a custom application class for custom application node

Creating a custom application class for custom application


node
While creating a contact strategy, if you want to use custom implementation for a given
campaign, you can use the custom application node for all other values except for Answer
Human, Answer Machine, Call Answered, and Fax Machine. You need to use the Result node
and specify the custom application class or file name under the Application node.
The custom class must implement the followingPomResultProcessor interface:
New interface PomResultProcessor // This will have a function with following
signature

public boolean processResult (PomInfo pomInfo, String result);

where pomInfo is an object which has the information of all the contacts to be processed, and
result is the value of the result for which the custom application is added in the contact
strategy.
// class PomInfo with follwing members

JobId // ID of the job


contactId // User Contact ID
contactGroupId // ID of the Contact Group
contactGroupName // Name of the Contact Group
address // Address used in the Contact Attempt
campaignName // name of the campaign

Prerequisites

[Link] file.

Copy the jar file in your development environment. You can find the .jar file in
$POM_HOME/lib/common folder.

Example
Following is an example of a sample class file:
public class TestResultProcessor implements PomResultProcessor {

@Override

public boolean processResult(PomInfo pomInfo, String result) {

[Link]("Inside custom result processing for " + result);

Developer's Guide for Proactive Outreach Manager August 2010 63


Custom connectors, interface definitions, and class files

[Link]("User Contact ID - " + [Link]());

[Link]("User Contact Group Name - " + [Link]());

[Link]("Address - " + [Link]());

return true;

64 Developer's Guide for Proactive Outreach Manager August 2010


Index

A L
add contact .................................................................33 legal notices .................................................................2
add contact to job .......................................................13
add to DNC list ......................................................16, 35
AddContactGroupToJob method ................................40 N
Agent API web service ...............................................20
notices legal .................................................................2

C
P
completion code update .............................................38
configuring Pluggable Data Connector ........................8 PauseActiveJob method .............................................52
configuring the VP_POMAgentAPIService web service Pluggable Data Connector ...........................................7
.......................................................................20 Project variables ...........................................................9
Configuring the VP_POMCmpMgmtService Web service
.......................................................................42
contact add .................................................................33
R
contact save ...............................................................34
remove from DNC list ...........................................16, 36
Creating a custom application class for Custom action . .
ResumePaused job ....................................................53
62
RunCampaign method ...............................................52
Creating a custom application class for custom
application node ............................................63
Creating a custom class for post processing of jobs .... S
61
creating custom database connector .........................55 Sample VP_POMCmpMgmt WSDL file ......................42
sample WSDL file .......................................................20
save contact ...............................................................34
D
save contact information .............................................11
DD application scenarios ............................................17 SetMaxAttemptsCount method ..................................50
DeleteContact .............................................................40 StopJob method .........................................................54

G U

get completion codes .................................................33 update completion code .............................................38


get contact attribute ....................................................15 update contact attribute ..............................................14
get contact attribute value ..........................................38 update contact attribute value ....................................39
get contact data ..........................................................37 update disposition .......................................................11
get contact information ...............................................13 using DD application in POM .....................................18
GetActiveJobs method ...............................................50 using Pluggable Data Connector .................................9
GetCampaignJobs method .........................................51
V
I
verify in DNC list .........................................................36
installing Pluggable Data Connector ............................8 VP_POMAgentAPIService Web service ....................19
Is DNC ........................................................................36 VP_POMCmpMgmtService Web service ...................41

Developer's Guide for Proactive Outreach Manager August 2010 65


W WSDL file sample .......................................................20

Web services ..............................................................19

66 Developer's Guide for Proactive Outreach Manager August 2010

You might also like