Developer Guide
Developer Guide
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
Index.........................................................................................................................................65
Getting Started
Prerequisites
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.
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.
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:
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:
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
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.
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:
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
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:
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:
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.
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.
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.
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.
<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:sequence>
</xsd:complexType>
<xsd:element name="GetContactAttributeValue">
<xsd:complexType>
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetContactAttributeValueResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:complexType>
<xsd:sequence>
<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="RemoveFromDNCList">
<xsd:complexType>
<xsd:sequence>
<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:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UpdateContactAttributeValueResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="GetContactDataFaultInfo">
<xsd:complexType>
<xsd:sequence>
</xsd:element>
<xsd:element name="AddContactToJobFaultInfo">
<xsd:complexType>
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetAllCompletionCodesForCampaign">
<xsd:complexType>
<xsd:sequence>
</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">
</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>
</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>
<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>
GetAllCompletionCodesForCampaign method
Use this method to retrieve all custom completion codes for a given campaign.
Parameter
This method returns the completion codes for the selected campaign.
Faults
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
This method returns 0 if the contact is added successfully in the first available running job of
the specified campaign.
Faults
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
Faults
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
This method returns a True if the phone number and/or e-mail address is successfully added
to the DNC list.
Fault
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.
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
This method returns a True if the phone number and/or e-mail address is successfully removed
from the DNC list.
Fault
IsDNC method
This method returns true or false if a given phone number and/or e-mail address exists in the
DNC list.
Parameter
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.
Parameters
Faults
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.
Parameter
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
This method returns a 0 if the custom completion code is successfully updated for the specified
contact.
Faults
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:
Parameters
This method returns a 0 if the contact attribute value is successfully updated for the specific
contact.
Faults
AddContactGroupToJob method
Use this method to add a contact group to a running campaign.
Parameters
Faults
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
Faults
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.
<xsd:sequence>
<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>
</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>
<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>
</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:operation
soapAction="[Link]
SetMaxAttemptsCount" />
<wsdl:input>
<soap:operation
soapAction="[Link] />
<wsdl:input>
<soap:operation
soapAction="[Link] />
<wsdl:input>
<wsdl:output>
<soap:operation
soapAction="[Link] />
<wsdl:input>
<soap:operation
soapAction="[Link] />
<wsdl:input>
<soap:operation
soapAction="[Link] />
<wsdl:input>
</wsdl:service>
</wsdl:definitions>
GetActiveJobs method
Use this method to retrieve the active jobs for a particular campaign, with call pacing turned on.
Parameter
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
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
Faults
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
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
PauseActiveJob method
Use this method to pause an active job of a running campaign.
Parameter
ResumePausedJob
Use this method to resume a paused job.
Parameter
StopJob method
Use this method to stop an active, or a paused job of a campaign.
Parameter
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.
}
2. Use the constructor with the importId parameter,
public CustomImport(Session session, int importId) throws Exception
{
super(session, importId);
}
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>();
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);
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
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.
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 int startOfVoiceTimeout; // start of voice timeout value for the given
campaign
private int liveVoiceTimeout; // start of live voice timeout value for the given
campaign
private Date startTime;// date and time when the job starts
private Date endTime; // date and time when the job finishes
private String contactGroupName; // contact group name to which the contact belongs
private Date lastSuccessfulAttemptTime; // date and time when the contact was last
attempted
private String pimCompletionCode; // system and custom completion code for the
specific attempt
private Date contactAttemptTime; // date and time when the attempt is made
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 int channelType; // the type of communication channel used - email, voice,
or sms
Prerequisites
[Link] file.
Copy the jar file in your development environment. You can find the .jar file in
$POM_HOME/lib/common folder.
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 {
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
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
return true;
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
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
return true;
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